<?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>9767</bug_id>
          
          <creation_ts>2006-07-06 15:35:08 -0700</creation_ts>
          <short_desc>WebPreference methods setAllowsAnimatedImages: and setAllowsAnimatedImageLooping: don&apos;t actually affect WebView behaviors</short_desc>
          <delta_ts>2012-09-04 10:02:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rachael Worthington (cheers)">rachael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>a9016009</cc>
    
    <cc>abarth</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>menard</cc>
    
    <cc>pf</cc>
    
    <cc>rakuco</cc>
    
    <cc>rosnow</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>48621</commentid>
    <comment_count>0</comment_count>
    <who name="Rachael Worthington (cheers)">rachael</who>
    <bug_when>2006-07-06 15:35:08 -0700</bug_when>
    <thetext>calling setAllowsAnimatedImages: and setAllowsAnimatedImageLooping: on a WebPreferences object has absolutely no effect on animated images. a quick search reveals that WebKit never checks the WebPreferences object for these prefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78921</commentid>
    <comment_count>1</comment_count>
    <who name="david rosnow">rosnow</who>
    <bug_when>2008-04-25 10:23:08 -0700</bug_when>
    <thetext>Is there any way this bug can be addressed?

It&apos;s is apparently a problem for Skype.  Skype uses webkit for its chat interface and according to the developer, animated emoticons are always animated using up CPU even if skype is in the background because of this bug.  Perhaps there is another way to handle that issue but is there any reason why this is not  

Also, in terms of Safari, I find that even if a window has popped behind the main window and is not visible to the user it still seems to be animated and using cpu. Might fixing this allow you to stop animations in windows that are not visible to the user. I suspect that would greatly reduce the cpu burden on users on older machines from these animated ads behind the main window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104839</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-07 21:17:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/4679993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104840</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-01-07 21:20:48 -0800</bug_when>
    <thetext>This just needs to be plumbed through from WebPreferences to Settings, and thence to the image code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555811</commentid>
    <comment_count>4</comment_count>
      <attachid>126875</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-13 17:49:12 -0800</bug_when>
    <thetext>Created attachment 126875
Patch for AllowsAnimatedImages pref

This bug should probably be split in two...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555815</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 17:53:27 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555819</commentid>
    <comment_count>6</comment_count>
      <attachid>126875</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-13 17:57:50 -0800</bug_when>
    <thetext>Comment on attachment 126875
Patch for AllowsAnimatedImages pref

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

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:454
&gt; -    if (!skippingFrames &amp;&amp; imageObserver()-&gt;shouldPauseAnimation(this))
&gt; +    if (imageObserver()-&gt;shouldPauseAnimation(this))

I&apos;m not totally sure if this is correct, but if shouldPauseAnimation() is not checked when skipping frames, the effect is advancing one frame at a time in some common situations (like switching tabs and back). If there&apos;s a better place to make the check let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555857</commentid>
    <comment_count>7</comment_count>
      <attachid>126875</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 18:53:34 -0800</bug_when>
    <thetext>Comment on attachment 126875
Patch for AllowsAnimatedImages pref

Attachment 126875 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11514100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555858</commentid>
    <comment_count>8</comment_count>
      <attachid>126875</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-13 18:54:10 -0800</bug_when>
    <thetext>Comment on attachment 126875
Patch for AllowsAnimatedImages pref

Attachment 126875 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11522023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555955</commentid>
    <comment_count>9</comment_count>
      <attachid>126875</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-13 22:24:38 -0800</bug_when>
    <thetext>Comment on attachment 126875
Patch for AllowsAnimatedImages pref

Attachment 126875 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11518128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555967</commentid>
    <comment_count>10</comment_count>
      <attachid>126910</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-13 22:42:23 -0800</bug_when>
    <thetext>Created attachment 126910
Fixed build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555970</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 22:45:46 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556063</commentid>
    <comment_count>12</comment_count>
      <attachid>126910</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-14 00:45:51 -0800</bug_when>
    <thetext>Comment on attachment 126910
Fixed build errors

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

I appreciate you added the new preference to all ports, there are some issues with WebKit2 GTK+, though.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:975
&gt; +gboolean webkit_settings_get_allows_animated_images(WebKitSettings* settings)
&gt; +{
&gt; +    g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
&gt; +
&gt; +    return WKPreferencesGetAllowsAnimatedImages(settings-&gt;priv-&gt;preferences.get());
&gt; +}
&gt; +
&gt; +/**
&gt; + * webkit_settings_set_allows_animated_images:
&gt; + * @settings: a #WebKitSettings
&gt; + * @enabled: Value to be set
&gt; + *
&gt; + * Set the #WebKitSettings:allows-animated-images property.
&gt; + */
&gt; +void webkit_settings_set_allows_animated_images(WebKitSettings* settings, gboolean enabled)
&gt; +{
&gt; +    g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
&gt; +
&gt; +    WebKitSettingsPrivate* priv = settings-&gt;priv;
&gt; +    bool currentValue = WKPreferencesGetAllowsAnimatedImages(priv-&gt;preferences.get());
&gt; +    if (currentValue == enabled)
&gt; +        return;
&gt; +
&gt; +    WKPreferencesSetAllowsAnimatedImages(priv-&gt;preferences.get(), enabled);
&gt; +    g_object_notify(G_OBJECT(settings), &quot;allow-animated-images&quot;);
&gt; +}

This is not enough, you should install the property in webkit_settings_class_init() and implement get/set for the property in webKitSettingsGetProperty() and webKitSettingsSetProperty(). Prototypes should be added to the header too (Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h) and new symbols should be added to the documentation (Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt, in the section WebKitSettings add webkit_settings_get_allows_animated_images and webkit_settings_set_allows_animated_images at the end of the section).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556433</commentid>
    <comment_count>13</comment_count>
      <attachid>126910</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-14 11:20:58 -0800</bug_when>
    <thetext>Comment on attachment 126910
Fixed build errors

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

&gt; Source/WebKit/chromium/public/WebSettings.h:70
&gt; +    virtual void setAllowsAnimatedImages(bool) = 0;

nit: this should probably be &quot;setAllowAnimatedImages&quot; instead.  this matches
other similarly named functions.  i think you should make this change to
WebCore::Settings too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556472</commentid>
    <comment_count>14</comment_count>
      <attachid>127013</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-14 12:04:48 -0800</bug_when>
    <thetext>Created attachment 127013
Fixed chromium and gtk issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556474</commentid>
    <comment_count>15</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-14 12:11:03 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 126910 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126910&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebSettings.h:70
&gt; &gt; +    virtual void setAllowsAnimatedImages(bool) = 0;
&gt; 
&gt; nit: this should probably be &quot;setAllowAnimatedImages&quot; instead.  this matches
&gt; other similarly named functions.  i think you should make this change to
&gt; WebCore::Settings too.

Sorry, i just realized you said i should change it in WebCore::Settings as well, but there are other prefs that sort of use this style as well (e.g. loadsImagesAutomatically), and there was some existing boilerplate code in some places using allowsAnimatedImages, so that&apos;s why i went with it.

I can change the name everywhere anyway if you prefer (and perhaps split this patch into a webcore patch and a bunch of platform ones), let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556503</commentid>
    <comment_count>16</comment_count>
      <attachid>127013</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 12:45:25 -0800</bug_when>
    <thetext>Comment on attachment 127013
Fixed chromium and gtk issues

Attachment 127013 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11515363</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556547</commentid>
    <comment_count>17</comment_count>
      <attachid>127026</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-14 13:18:18 -0800</bug_when>
    <thetext>Created attachment 127026
Missing fixes from last patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556571</commentid>
    <comment_count>18</comment_count>
      <attachid>127026</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 13:57:09 -0800</bug_when>
    <thetext>Comment on attachment 127026
Missing fixes from last patch

Attachment 127026 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11515392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556584</commentid>
    <comment_count>19</comment_count>
      <attachid>127042</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-14 14:09:02 -0800</bug_when>
    <thetext>Created attachment 127042
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556646</commentid>
    <comment_count>20</comment_count>
      <attachid>127042</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 14:58:04 -0800</bug_when>
    <thetext>Comment on attachment 127042
Build fix

Attachment 127042 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11514452</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556713</commentid>
    <comment_count>21</comment_count>
      <attachid>127068</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-14 15:44:29 -0800</bug_when>
    <thetext>Created attachment 127068
Yet another build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556966</commentid>
    <comment_count>22</comment_count>
      <attachid>127068</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-14 23:51:29 -0800</bug_when>
    <thetext>Comment on attachment 127068
Yet another build fix

GTK changes look good to me, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558379</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-16 11:36:42 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 126910 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126910&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebSettings.h:70
&gt; &gt; &gt; +    virtual void setAllowsAnimatedImages(bool) = 0;
&gt; &gt; 
&gt; &gt; nit: this should probably be &quot;setAllowAnimatedImages&quot; instead.  this matches
&gt; &gt; other similarly named functions.  i think you should make this change to
&gt; &gt; WebCore::Settings too.
&gt; 
&gt; Sorry, i just realized you said i should change it in WebCore::Settings as well, but there are other prefs that sort of use this style as well (e.g. loadsImagesAutomatically), and there was some existing boilerplate code in some places using allowsAnimatedImages, so that&apos;s why i went with it.
&gt; 
&gt; I can change the name everywhere anyway if you prefer (and perhaps split this patch into a webcore patch and a bunch of platform ones), let me know.

On WebCore::Settings, I see 3 functions that look like &quot;setAllowFoo&quot; and 0 functions that look like &quot;setAllowsFoo&quot;.  I think you should go with &quot;setAllowFoo&quot; for that reason.  Keep the code consistent :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558680</commentid>
    <comment_count>24</comment_count>
      <attachid>127468</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-16 16:50:46 -0800</bug_when>
    <thetext>Created attachment 127468
Rename to AllowAnimatedImages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559372</commentid>
    <comment_count>25</comment_count>
      <attachid>127468</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-17 11:35:21 -0800</bug_when>
    <thetext>Comment on attachment 127468
Rename to AllowAnimatedImages

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

I looked over the bulk of this patch, and it all looks pretty good to me.  I&apos;m not an expert on all of the ports, but the code for them looks reasonable.

&gt; LayoutTests/fast/images/disallow-animated-images.html:34
&gt; +        }, 150); // Green frame of GIF has 100ms duration

what if this timer happens to be delayed due to some slowness on the bot?  if it ends up running after 200 msec, then won&apos;t this test potentially fail?

when you rely on timers like this in tests, it is very easy to introduce a flaky test.  is there any other way to approach this that won&apos;t be so sensitive to such issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559395</commentid>
    <comment_count>26</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-17 11:47:41 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 127468 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127468&amp;action=review
&gt; 
&gt; I looked over the bulk of this patch, and it all looks pretty good to me.  I&apos;m not an expert on all of the ports, but the code for them looks reasonable.
&gt; 
&gt; &gt; LayoutTests/fast/images/disallow-animated-images.html:34
&gt; &gt; +        }, 150); // Green frame of GIF has 100ms duration
&gt; 
&gt; what if this timer happens to be delayed due to some slowness on the bot?  if it ends up running after 200 msec, then won&apos;t this test potentially fail?
&gt; 
&gt; when you rely on timers like this in tests, it is very easy to introduce a flaky test.  is there any other way to approach this that won&apos;t be so sensitive to such issues?

There&apos;s one frame of green and five frames of red, 100ms each. Also, the idea is that the animation does not run, so if the code that disables animations works correctly, (in theory) it doesn&apos;t really matter how long you wait until you look for the result, it will always be green.
If the code doesn&apos;t work then it would have to be delayed the exact time to fall back into the green zone, so it would be potentially flaky in that case, but then again, it would also be failing.

I ran it with --repeat-each=1000 a bunch of times and didn&apos;t find any flakiness, but if you can think of a better way to test this i&apos;m open to suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559589</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-17 15:18:56 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; There&apos;s one frame of green and five frames of red, 100ms each. Also, the idea is that the animation does not run, so if the code that disables animations works correctly, (in theory) it doesn&apos;t really matter how long you wait until you look for the result, it will always be green.

Good point!  Pretty obvious in hindsight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559590</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-17 15:20:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 126875 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126875&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/BitmapImage.cpp:454
&gt; &gt; -    if (!skippingFrames &amp;&amp; imageObserver()-&gt;shouldPauseAnimation(this))
&gt; &gt; +    if (imageObserver()-&gt;shouldPauseAnimation(this))
&gt; 
&gt; I&apos;m not totally sure if this is correct, but if shouldPauseAnimation() is not checked when skipping frames, the effect is advancing one frame at a time in some common situations (like switching tabs and back). If there&apos;s a better place to make the check let me know.

I&apos;m not an expert on this either.  I am similarly curious if this is the correct code change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562149</commentid>
    <comment_count>29</comment_count>
      <attachid>128248</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-22 10:57:57 -0800</bug_when>
    <thetext>Created attachment 128248
Win build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562151</commentid>
    <comment_count>30</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-02-22 10:58:47 -0800</bug_when>
    <thetext>Any idea of who i can poke to get the interesting parts of this patch reviewed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572343</commentid>
    <comment_count>31</comment_count>
      <attachid>128248</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-03-06 17:38:21 -0800</bug_when>
    <thetext>Comment on attachment 128248
Win build fix

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

&gt; Source/WebCore/rendering/RenderObject.cpp:2593
&gt; +    Settings* settings = document()-&gt;settings();
&gt; +
&gt;      // If we&apos;re not in a window (i.e., we&apos;re dormant from being put in the b/f cache or in a background tab)
&gt;      // then we don&apos;t want to render either.
&gt; -    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen();
&gt; +    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen() &amp;&amp; settings &amp;&amp; settings-&gt;allowAnimatedImages();

I haven&apos;t looked at the rest of the patch, but this caught my eye. Presumably you&apos;re expecting there&apos;s some potential situation where settings could be null, since you added a null check.

Does it make sense, though, to change the return value of willRenderImage() in that case? (i.e. if (!document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen()) is true, but settings is null, you will now return false instead of true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572360</commentid>
    <comment_count>32</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-06 17:45:40 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 128248 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128248&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:2593
&gt; &gt; +    Settings* settings = document()-&gt;settings();
&gt; &gt; +
&gt; &gt;      // If we&apos;re not in a window (i.e., we&apos;re dormant from being put in the b/f cache or in a background tab)
&gt; &gt;      // then we don&apos;t want to render either.
&gt; &gt; -    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen();
&gt; &gt; +    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen() &amp;&amp; settings &amp;&amp; settings-&gt;allowAnimatedImages();
&gt; 
&gt; I haven&apos;t looked at the rest of the patch, but this caught my eye. Presumably you&apos;re expecting there&apos;s some potential situation where settings could be null, since you added a null check.
&gt; 
&gt; Does it make sense, though, to change the return value of willRenderImage() in that case? (i.e. if (!document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen()) is true, but settings is null, you will now return false instead of true.

Yeah, you&apos;re right, since allowAnimatedImages defaults to true it should be checking (!settings || settings-&gt;allowAnimatedImages()) instead. Good catch :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573079</commentid>
    <comment_count>33</comment_count>
      <attachid>128248</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-07 11:51:48 -0800</bug_when>
    <thetext>Comment on attachment 128248
Win build fix

Attachment 128248 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11856194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573278</commentid>
    <comment_count>34</comment_count>
      <attachid>130705</attachid>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-03-07 15:07:14 -0800</bug_when>
    <thetext>Created attachment 130705
Patch

Changed willRenderImage() return clause per Tim&apos;s comment, and hopefully fixed qt-wk2 and win issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605944</commentid>
    <comment_count>35</comment_count>
      <attachid>130705</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-19 14:48:01 -0700</bug_when>
    <thetext>Comment on attachment 130705
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Test: fast/images/disallow-animated-images.html

This needs to have some explanation of what the change is doing.

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:454
&gt; -    if (!skippingFrames &amp;&amp; imageObserver()-&gt;shouldPauseAnimation(this))
&gt; +    if (imageObserver()-&gt;shouldPauseAnimation(this))

Why was !skippingFrames removed?

&gt; Source/WebCore/rendering/RenderObject.cpp:2593
&gt; +    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen() &amp;&amp; (!settings || settings-&gt;allowAnimatedImages());

Does this also affect static images, not just animating ones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609093</commentid>
    <comment_count>36</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-04-24 14:48:00 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 130705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130705&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/BitmapImage.cpp:454
&gt; &gt; -    if (!skippingFrames &amp;&amp; imageObserver()-&gt;shouldPauseAnimation(this))
&gt; &gt; +    if (imageObserver()-&gt;shouldPauseAnimation(this))
&gt; 
&gt; Why was !skippingFrames removed?

If shouldPauseAnimation() is not checked when skipping frames, the effect is that in some situations (like changing tabs and back) the animation is advanced to catch up.
I suppose the question here is whether the animation should catch up to the frame that corresponds to the moment in time when image-animating was actually paused (even if the tab was hidden at the time, for instance), or if it doesn&apos;t really matter.
Personally, i don&apos;t think it matters too much, this sounds like something to save cpu cycles or to prevent annoyance.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:2593
&gt; &gt; +    return !document()-&gt;inPageCache() &amp;&amp; !document()-&gt;view()-&gt;isOffscreen() &amp;&amp; (!settings || settings-&gt;allowAnimatedImages());
&gt; 
&gt; Does this also affect static images, not just animating ones?

It shouldn&apos;t affect static images. As far as i can see willRenderImage() is only called from code dealing with animated images, but it&apos;s probably wise to check that the image is an animated one. What&apos;s a good way to check this, BitmapImage::frameCount() &gt; 1?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126875</attachid>
            <date>2012-02-13 17:49:12 -0800</date>
            <delta_ts>2012-02-13 22:42:16 -0800</delta_ts>
            <desc>Patch for AllowsAnimatedImages pref</desc>
            <filename>bug-9767-20120213174911.patch</filename>
            <type>text/plain</type>
            <size>50502</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLmRh
MDI5MDA2MTJjZWExZTc3ODM1YzRlZDY5MTQ2ODRmNDYyNjc3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3NJbXBsOjpzZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdz
SW1wbCk6CisKIDIwMTItMDItMDggIEFsZXhlaSBTdml0a2luZSAgPGFzdml0a2luZUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQ2hyb21pdW06IEZpeCBNYWMgcnViYmVyIGJhbmQgb3Zlcmhhbmcg
ZHJhd2luZyBvbiBjb21wb3NpdGVkIHBhZ2VzIGFuZCByZS1lbmFibGUgdGVzdHMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggNmE1MmZhMjUyNDFjN2M0ZDcwNzY1Njk3YzM4ZDExNTE2OTA0MzNhNC4uOGNi
YzgyMTg0ZTQ3YjM3MjAyNTkyNDBiYzMyNjAxNjNlMDNjN2E2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9y
b2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9z
ZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAg
ICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxs
b3dzX2FuaW1hdGVkX2ltYWdlc19nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hdXRv
X2xvYWRfaW1hZ2VzX3NldCk6CisKIDIwMTItMDItMDcgIEtyenlzenRvZiBDemVjaCAgPGsuY3pl
Y2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIG1pc3NpbmcgaW5pdGlhbGl6YXRp
b24gb2YgZWRpdGFibGUgdmFyaWFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOGM1OWJiOTNmYjUw
ZDRlY2FjOTEyMzZjODQ3MjgzYmI5Mzg3ZTc3OS4uMzE2ZGMxMTU1YTRiYTgwZTBmNTVhNmU5M2Y1
N2IyZjlkMjkyN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAy
LTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQg
QWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAg
ICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzcHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorCiAyMDEyLTAyLTA4ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR3RrXSBh
dGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBmYWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0
IGxpbmUgZm9yIGxpc3QgaXRlbXMgd2hvc2UgdGV4dCB3cmFwcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IGJmMTE3MzcyMDIyYzIzYmIxNjRiMmI0ZDk4M2ZiM2Q3ZTY5ZTU4NzEuLjgwNDU4ZDQxODExNTNh
MDI4NzA2MDQwZDc5MWZhNTRlYTk5M2M1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisK
KyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxMi0wMi0wNyAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEwNjY4MSk6
IE51bGwgY2hlY2sgbWlzc2luZyBpbiBbV2ViRnJhbWUoV2ViSW50ZXJuYWwpIF90eXBpbmdTdHls
ZV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggOTQwNmM5MjQ3MGI2ODNhNWE3OTg1OWMxZjEwZTlkNDQ1ZGI1
N2ZiMy4uYTU1ZmZiMTVmNzU3Mzg1ZDczNmE3YTRmZDQzNTUwZGRhYThiMGJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxv
ZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZl
cmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzUHJpdmF0
ZTo6YXBwbHkpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MpOgorICAgICAg
ICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9xZGVjbGFyYXRp
dmV3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3
X3AuaDoKKyAgICAgICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzKToKKyAgICAgICAgKFFEZWNs
YXJhdGl2ZVdlYlNldHRpbmdzOjphbGxvd3NBbmltYXRlZEltYWdlcyk6CisgICAgICAgIChRRGVj
bGFyYXRpdmVXZWJTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAq
IHRlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgor
ICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKToKKwogMjAxMi0wMi0w
OCAgTGVvIEZyYW5jaGkgIDxsZnJhbmNoaUBrZGUub3JnPgogCiAgICAgICAgIFJlbW90ZSB3ZWIg
aW5zcGVjdG9yIHJlZW50cmFuY3kgZml4ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBkM2U0NjNhNzAz
ZjE1OWE5YTZmZTFjNjdhZjkyMGMxYzU1ZmFhYjdhLi43NjI0NjBmMzJkY2I1ZDg5MjI4ODdjMjg4
OTQ1N2VmNDA1MjRhNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTIt
MDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFk
ZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJl
bmNlcy5pZGw6CisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5n
ZWQpOgorCiAyMDEyLTAyLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDbGVhciBzaG93biBub3RpZmljYXRpb25zIHdoZW4gY29udGV4dCBpcyBubyBsb25nZXIgYWN0
aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZkMmE3ZTY0N2IyZTBhZTA5YjdmNzZjYzA2NzI2
Nzg1OTNmOTIxMzEuLjBhNmI3Yzc5Mzg1MGFiMTFjOGRhMzhlODFmZDdiMzc1NjU4YmRkNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZs
b3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRl
ZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZp
ZXcpOgorCiAyMDExLTEyLTE5ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTW9yZSBQbGF0Zm9ybUV2ZW50IGNsZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggYjQ1YjM1MDA1
MDA1MTk3NTA5MTM0Y2U0NGM1ZTkxYjM2MThlZDVjNy4uN2U3YTE1ZjU1Yjc4MTFiZGI2MGY1OWE2
YjZkYWUxNDQxMmY3NTZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0w
Mi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRk
IEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKHd4V2ViU2V0dGluZ3M6OlNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKHd4
V2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKiBXZWJTZXR0aW5n
cy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAod3hXZWJWaWV3OjpDcmVhdGUp
OgorCiAyMDEyLTAxLTMwICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29t
PgogCiAgICAgICAgIFt3eF0gVW5yZXZpZXdlZC4gQnVpbGQgZml4LCBhZGQgSmF2YVNjcmlwdENv
cmUvcnVudGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNkMjQ1NTI0ZThhNGViYTM1NWIwZjYzYjFmNTUyZjQ2
MDliYmQ3ZWEuLjI1NDU1Mjg5NDY0ZWI1MzhiZTJlNzMxM2ZhOGQyMzZiYjgxYzdhMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxv
ZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZl
cmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNTZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6CisgICAgICAgIChXS1ByZWZlcmVu
Y2VzR2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGlu
Z3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1h
Z2VzKToKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdl
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorCiAyMDEyLTAyLTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA2OTIw
LCByMTA2OTI0LCByMTA2OTMzLCByMTA2OTM5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBlYzI3
YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi4yNDQxMWI2YzYwMzdmMWZjN2Rh
MGY4YWMwYWI5NmFiMzMzOGRjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTcyLDYgKzk3
Miw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkCiBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEyQXRv
bWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Vzc2lv
blN0b3JhZ2VRdW90YUVqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNob3dzVVJMc0luVG9v
bFRpcHNFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRBbGxvd3NBbmltYXRlZEltYWdlc0Vi
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdFbmFibGVkRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVFaQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVkaXRhYmxlTGlua0JlaGF2
aW9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBiNWNiOTYzYmJmNDEzOTU3NGU1NGY0
Y2ZmYzZlZmVjZGU2MmZkNTVjLi5mYzE5ZGQ0NTRmN2IxOWE5YjBlMWIyMTdiMjRhMDJhOWJlYWUy
NDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIFNldHRp
bmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwgbV9hbGxvd3NBbmltYXRlZEltYWdlcyhm
YWxzZSkKICAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmco
ZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2Nh
cmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4MiwxMSBAQCB2b2lkIFNldHRp
bmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiop
CiAgICAgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFtZXMobV9wYWdlKTsKIH0K
IAordm9pZCBTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd3NBbmlt
YXRlZEltYWdlcykKK3sKKyAgICBtX2FsbG93c0FuaW1hdGVkSW1hZ2VzID0gYWxsb3dzQW5pbWF0
ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCiB7CiAgICAgbV9sb2Fkc1Np
dGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRzU2l0ZUljb25zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJlYWVmOTI2MWE3NDdlMzljZjcw
OTc3NjguLjc5MDliMmFiYTIxNzhhYzU1YmI4OGQzZDVkY2NkYzNmYTdmNTAyZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpOwogICAgICAgICBi
b29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxvd3NBbmltYXRlZEltYWdl
cyhib29sKTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0IHsgcmV0
dXJuIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAvLyBUaGlzIHNldHRpbmcg
b25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcgaXMgdHJ1ZS4KICAgICAg
ICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsK
ICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2FsbG93c0FuaW1hdGVkSW1h
Z2VzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAxOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IGE4OTU3NjAx
ZjYyMWYwNTNhNjA3Zjc2NDY3ZmRkOGYxOTgzNmZiNzMuLjVhZWYwYjIzYWQ0NDQ3MzJiODBkOGRl
NzNjNTdlY2QwYzhkNjQ4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCBib29sIEJpdG1hcEltYWdl
OjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oYm9vbCBza2lwcGluZ0ZyYW1lcykKICAgICAKICAg
ICAvLyBTZWUgaWYgYW55b25lIGlzIHN0aWxsIHBheWluZyBhdHRlbnRpb24gdG8gdGhpcyBhbmlt
YXRpb24uICBJZiBub3QsIHdlIGRvbid0CiAgICAgLy8gYWR2YW5jZSBhbmQgd2lsbCByZW1haW4g
c3VzcGVuZGVkIGF0IHRoZSBjdXJyZW50IGZyYW1lIHVudGlsIHRoZSBhbmltYXRpb24gaXMgcmVz
dW1lZC4KLSAgICBpZiAoIXNraXBwaW5nRnJhbWVzICYmIGltYWdlT2JzZXJ2ZXIoKS0+c2hvdWxk
UGF1c2VBbmltYXRpb24odGhpcykpCisgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKS0+c2hvdWxkUGF1
c2VBbmltYXRpb24odGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICsrbV9jdXJy
ZW50RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4
IDczZDg3NDQxNmY3ODk0OGJmZjMyYTNmMTAxNWNhMWFhNjNjNDc3ZDEuLmJiNjAxZmRlMmI1NWZl
ZjllMTYzMDNiMzZkNDA0OWE1NmJjZmQ1ZGQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGFibGVS
b3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
KyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC0yNTczLDkgKzI1
NzQsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OndpbGxSZW5kZXJJbWFnZShDYWNoZWRJbWFnZSop
CiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5n
cygpOworCiAgICAgLy8gSWYgd2UncmUgbm90IGluIGEgd2luZG93IChpLmUuLCB3ZSdyZSBkb3Jt
YW50IGZyb20gYmVpbmcgcHV0IGluIHRoZSBiL2YgY2FjaGUgb3IgaW4gYSBiYWNrZ3JvdW5kIHRh
YikKICAgICAvLyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGVpdGhlci4KLSAgICByZXR1
cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNP
ZmZzY3JlZW4oKTsKKyAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRv
Y3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKSAmJiBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+
YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJPYmplY3Q6Om1h
eGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJm
MjE4ZWU2NTVjMDJmMTNkZDE2YjJiLi43NjEzNjhhMmY5NzRjOTRkNjUzOGM1YjU5ODdjZGUyYjJi
MTkxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRz
SW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBt
X3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93c0FuaW1hdGVkSW1h
Z2VzKGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0QWxs
b3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCiB2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0
aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNDVlNjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3
YTZmYjA5ZjY1MTNlOS4uYTRlMDQ1ZGMzNDVhYjAzZDc1OGNhN2I4ZWYzYjkyYjlhZGY1YWI4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5
LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEltYWdlc0VuYWJsZWQoYm9vbCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRE
T01QYXN0ZUFsbG93ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA5
Nzg5YzFjMzBkMjkzYTBjZjI0NTA3MjE2YjI4MjkzZTlkMGZiYTgxLi4xNmQyMjc0NGY4MzUzOWEz
NDE5MWQ1MmY4YzM3ODgwYjgyZjQ5Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
QEAgLTE3MSw2ICsxNzEsNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAg
ICAgIGNvbnN0IGNoYXIqIGZvbnRTZXJpZjsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNhbnNT
ZXJpZjsKICAgICAgICAgYm9vbCBhdXRvTG9hZEltYWdlcyA6IDE7CisgICAgICAgIGJvb2wgYWxs
b3dzQW5pbWF0ZWRJbWFnZXM6IDE7CiAgICAgICAgIGJvb2wgYXV0b1Nocmlua0ltYWdlcyA6IDE7
CiAgICAgICAgIGJvb2wgZW5hYmxlQXV0b1Jlc2l6ZVdpbmRvdyA6IDE7CiAgICAgICAgIGJvb2wg
ZW5hYmxlRGV2ZWxvcGVyRXh0cmFzIDogMTsKQEAgLTYyOSw2ICs2MzAsNyBAQCBzdGF0aWMgRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0
YSogc21hcnREYXRhKQogICAgIHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLnVzZXJTY2FsYWJsZSA9
IHRydWU7CiAKICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSh0cnVlKTsKKyAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1h
Z2VzKHRydWUpOwogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGlu
Z05hbWUoImlzby04ODU5LTEiKTsKICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRG
aXhlZEZvbnRTaXplKDEyKTsKICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRGb250
U2l6ZSgxNik7CkBAIC02NzMsNiArNjc1LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0
YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAg
ICBwcml2LT5zZXR0aW5ncy5mb250U2Fuc1NlcmlmID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3Ry
aW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgcHJpdi0+c2V0dGluZ3MuYXV0b0xv
YWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgp
OworICAgIHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gcHJpdi0+cGFnZVNl
dHRpbmdzLT5hbGxvd3NBbmltYXRlZEltYWdlcygpOwogICAgIHByaXYtPnNldHRpbmdzLmF1dG9T
aHJpbmtJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPnNocmlua3NTdGFuZGFsb25lSW1hZ2Vz
VG9GaXQoKTsKICAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVBdXRvUmVzaXplV2luZG93ID0gdHJ1
ZTsKICAgICBwcml2LT5zZXR0aW5ncy5lbmFibGVEZXZlbG9wZXJFeHRyYXMgPSBwcml2LT5wYWdl
U2V0dGluZ3MtPmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKQEAgLTE5MjgsNiArMTkzMSwyNSBA
QCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgRWluYV9Cb29sCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0VpbmFfQm9v
bCBld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy5hbGxvd3NB
bmltYXRlZEltYWdlczsKK30KKworRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2Fk
X2ltYWdlc19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBhdXRvbWF0aWMpCit7
CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNl
KTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxz
ZSk7CisgICAgYXV0b21hdGljID0gISFhdXRvbWF0aWM7CisgICAgaWYgKHByaXYtPnNldHRpbmdz
LmFsbG93c0FuaW1hdGVkSW1hZ2VzICE9IGF1dG9tYXRpYykgeworICAgICAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShhdXRvbWF0aWMpOworICAgICAg
ICBwcml2LT5zZXR0aW5ncy5hbGxvd3NBbmltYXRlZEltYWdlcyA9IGF1dG9tYXRpYzsKKyAgICB9
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
c2hyaW5rX2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCmluZGV4IGQ5MWMz
YmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjZiZjBiOTJmZWNmNWQwMjRhYmE3
M2JlY2RlNzU4MjEwNTE0NjVjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsKICAgICBQUk9QX01J
TklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2X0RQSSwKICAgICBQ
Uk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAog
ICAgIFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAogICAgIFBST1BfUFJJTlRfQkFDS0dST1VORFMs
CiAgICAgUFJPUF9FTkFCTEVfU0NSSVBUUywKQEAgLTMzNCw2ICszMzUsMTUgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNldHRpbmdzQ2xhc3Mq
IGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKIAog
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdF
UywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93cy1hbmltYXRl
ZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3dz
IEFuaW1hdGVkIEltYWdlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiQWxsb3cgdGhlIGFuaW1hdGlvbiBvZiBpbWFnZXMuIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ3MpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVj
dF9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQVVUT19T
SFJJTktfSU1BR0VTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0
by1zaHJpbmstaW1hZ2VzIiwKQEAgLTEwMTEsNiArMTAyMSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgY29uCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIHByaXYtPmF1
dG9Mb2FkSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTOgorICAgICAgICBwcml2LT5h
bGxvd3NBbmltYXRlZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBST1BfQVVUT19TSFJJTktfSU1BR0VTOgogICAgICAgICBwcml2
LT5hdXRvU2hyaW5rSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMTE3OSw2ICsxMTkyLDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0
aW5nc19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmEKICAg
ICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgcHJpdi0+YXV0b0xvYWRJbWFnZXMpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIFBST1BfQVVUT19TSFJJTktfSU1BR0VTOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29s
ZWFuKHZhbHVlLCBwcml2LT5hdXRvU2hyaW5rSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgK
aW5kZXggZDdkMDgyZTViYjNmZmFiYmVmNGRlYmM2YThlMTI1YWZjN2M3MjYzMS4uY2U0NWI1MmNh
Nzg3NTFkNzQ0NmJlNDgxMzI2MWI5ZTYwZDVhMjFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaApAQCAtNDIsNiArNDIsNyBA
QCBzdHJ1Y3QgX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZSB7CiAgICAgZ3VpbnQgbWluaW11bUxv
Z2ljYWxGb250U2l6ZTsKICAgICBnYm9vbGVhbiBlbmZvcmNlOTZEUEk7CiAgICAgZ2Jvb2xlYW4g
YXV0b0xvYWRJbWFnZXM7CisgICAgZ2Jvb2xlYW4gYWxsb3dzQW5pbWF0ZWRJbWFnZXM7CiAgICAg
Z2Jvb2xlYW4gYXV0b1Nocmlua0ltYWdlczsKICAgICBnYm9vbGVhbiBwcmludEJhY2tncm91bmRz
OwogICAgIGdib29sZWFuIGVuYWJsZVNjcmlwdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAKaW5kZXggYzIyNDYxYzc0OTg3NjA4MWQ5N2I0NjA1ZTkyMGMyZjFj
NDU3YjlkMC4uYjgzNTAzNjRlMzYxNDkzYTBhMTliNDNjMTBmZTAwMDAyN2I3MDUxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMzIwMCw2ICszMjAw
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2Fuc1NlcmlmRm9udEZhbWls
eShzZXR0aW5nc1ByaXZhdGUtPnNhbnNTZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3Jl
U2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShzZXR0aW5nc1ByaXZhdGUtPnNlcmlmRm9udEZh
bWlseS5kYXRhKCkpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5KHNldHRpbmdzUHJpdmF0ZS0+YXV0b0xvYWRJbWFnZXMpOworICAgIGNvcmVTZXR0aW5ncy0+
c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoc2V0dGluZ3NQcml2YXRlLT5hbGxvd3NBbmltYXRlZElt
YWdlcyk7CiAgICAgY29yZVNldHRpbmdzLT5zZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0
KHNldHRpbmdzUHJpdmF0ZS0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAgY29yZVNldHRpbmdzLT5z
ZXRTaG91bGRQcmludEJhY2tncm91bmRzKHNldHRpbmdzUHJpdmF0ZS0+cHJpbnRCYWNrZ3JvdW5k
cyk7CiAgICAgY29yZVNldHRpbmdzLT5zZXRTY3JpcHRFbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+
ZW5hYmxlU2NyaXB0cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
LmgKaW5kZXggODBjYzkzNTVhY2JiZDc0MWQ3YmU4OWRiNzhmYjdkMjQxNzI2YjU4Zi4uYzU0ZmFk
ZjA2NWI1MGEwZjY5ZWIyYTA0ZGFhYTVmNjQwYjQ5MjIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaApAQCAtMjg4LDEyICsyODgsMTIgQEAgZXh0ZXJuIE5T
U3RyaW5nICpXZWJQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb247CiAtICh2b2lkKXNldFBs
dWdJbnNFbmFibGVkOihCT09MKWZsYWc7CiAKIC8qIQotICAgIEBtZXRob2QgYWxsb3dBbmltYXRl
ZEltYWdlcworICAgIEBtZXRob2QgYWxsb3dzQW5pbWF0ZWRJbWFnZXMKICovCiAtIChCT09MKWFs
bG93c0FuaW1hdGVkSW1hZ2VzOwogCiAvKiEKLSAgICBAbWV0aG9kIHNldEFsbG93QW5pbWF0ZWRJ
bWFnZXM6CisgICAgQG1ldGhvZCBzZXRBbGxvd3NBbmltYXRlZEltYWdlczoKICAgICBAcGFyYW0g
ZmxhZwogKi8KIC0gKHZvaWQpc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6KEJPT0wpZmxhZzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0NTI1Y2JhOWZjMzg5NGFhNGI0ZmI0
ZTA1YTJjZWU2YzBiZDhjODAyLi5mOTc4ZTM5ZmRhMmM4YjllYjhmYmRlOGMxMWVlZjkzZDMwZjc3
YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDIxLDYgKzE0MjEs
NyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAgICAg
c2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc2VyaWZGb250RmFtaWx5
XSk7CiAgICAgc2V0dGluZ3MtPnNldFN0YW5kYXJkRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc3Rh
bmRhcmRGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseShbcHJlZmVyZW5jZXMgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5XSk7CisgICAgc2V0dGlu
Z3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFtwcmVmZXJlbmNlcyBhbGxvd3NBbmltYXRlZElt
YWdlc10pOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2Fk
aW5nU2V0dGluZyhbcHJlZmVyZW5jZXMgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGlu
Z1ByZWZlcmVuY2VdKTsKICAgICBzZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhb
cHJlZmVyZW5jZXMgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kc10pOwogICAgIHNldHRpbmdzLT5zZXRU
ZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0FyZVJlc2l6YWJsZV0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKaW5kZXggODllOTgyMTQwNGExM2Q1
OTg4N2E2OWZmN2E4YzFhY2U5NTY3OWNkMC4uMDFhMTljOGRlN2YxNTEyN2ZkMzI4NGZkNmI0YWQ4
NzkxZWIwY2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCkBAIC0xNDIs
NiArMTQyLDEwIEBAIHZvaWQgUVdlYlNldHRpbmdzUHJpdmF0ZTo6YXBwbHkoKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdl
YlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcykpOwogICAgICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KHZhbHVlKTsKIAorICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMu
dmFsdWUoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpKTsKKyAgICAgICAgc2V0dGluZ3MtPnNldEFsbG93
c0FuaW1hdGVkSW1hZ2VzKHZhbHVlKTsKKwogICAgICAgICB2YWx1ZSA9IGF0dHJpYnV0ZXMudmFs
dWUoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnbG9iYWwtPmF0dHJpYnV0ZXMudmFsdWUoUVdlYlNldHRpbmdzOjpEbnNQ
cmVmZXRjaEVuYWJsZWQpKTsKICAgICAgICAgc2V0dGluZ3MtPnNldEROU1ByZWZldGNoaW5nRW5h
YmxlZCh2YWx1ZSk7CkBAIC01MDIsNiArNTA2LDcgQEAgUVdlYlNldHRpbmdzOjpRV2ViU2V0dGlu
Z3MoKQogICAgIGQtPmZvbnRGYW1pbGllcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpGaXhlZEZvbnQs
IGRlZmF1bHRGb250LmRlZmF1bHRGYW1pbHkoKSk7CiAKICAgICBkLT5hdHRyaWJ1dGVzLmluc2Vy
dChRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzLCB0cnVlKTsKKyAgICBkLT5hdHRyaWJ1dGVz
Lmluc2VydChRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCB0cnVlKTsKICAgICBk
LT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkRuc1ByZWZldGNoRW5hYmxlZCwgZmFs
c2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6SmF2YXNjcmlwdEVu
YWJsZWQsIHRydWUpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5oCmluZGV4IDQwZjdmNzNmOTRkMTk4YmYxZGYzNmEyOGM2YWMwYTczNTU2M2Y5OGYuLmRjMjNj
ZjEyMGQ4MjRkZDJiY2FmNTU1OWI0N2JjMWE5YmU0NjFjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIGVudW0g
V2ViQXR0cmlidXRlIHsKICAgICAgICAgQXV0b0xvYWRJbWFnZXMsCisgICAgICAgIEFsbG93c0Fu
aW1hdGVkSW1hZ2VzLAogICAgICAgICBKYXZhc2NyaXB0RW5hYmxlZCwKICAgICAgICAgSmF2YUVu
YWJsZWQsCiAgICAgICAgIFBsdWdpbnNFbmFibGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXggYWJmOWJiMjE4YTM2
MWIxYTQ0N2FjOTk0MWMyMDNlM2ZkZjI3ZjczYy4uZjFhNTZiOWVhMzViMzE0MGJmYzlkNjRlZTFm
ZTY2YjIxYmM2MjZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9x
ZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZl
L3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCkBAIC03MjcsNiArNzI3LDcgQEAgUVdlYlBhZ2UqIFFE
ZWNsYXJhdGl2ZVdlYlZpZXc6OnBhZ2UoKSBjb25zdAogICAgIFxxbWxwcm9wZXJ0eSBpbnQgV2Vi
Vmlldzo6c2V0dGluZ3MuZGVmYXVsdEZpeGVkRm9udFNpemUKIAogICAgIFxxbWxwcm9wZXJ0eSBi
b29sIFdlYlZpZXc6OnNldHRpbmdzLmF1dG9Mb2FkSW1hZ2VzCisgICAgXHFtbHByb3BlcnR5IGJv
b2wgV2ViVmlldzo6c2V0dGluZ3MuYWxsb3dzQW5pbWF0ZWRJbWFnZXMKICAgICBccW1scHJvcGVy
dHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZhc2NyaXB0RW5hYmxlZAogICAgIFxxbWxwcm9w
ZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmphdmFFbmFibGVkCiAgICAgXHFtbHByb3BlcnR5
IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MucGx1Z2luc0VuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCmluZGV4IDgzNDYz
ZGI5N2JiNjRkYTZjMGRiZTE2ZWVkZjk2NWY0MDExNmE3OWQuLmE2MDczNTNjNjk1ZTU4ZTQ5M2Q3
MGQ3MzdlMTM5OTE0YTI3Mjc3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFy
YXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaApAQCAtMzA2LDYgKzMwNiw3IEBAIGNsYXNz
IFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzIDogcHVibGljIFFPYmplY3QgewogICAgIFFfUFJPUEVS
VFkoaW50IGRlZmF1bHRGaXhlZEZvbnRTaXplIFJFQUQgZGVmYXVsdEZpeGVkRm9udFNpemUgV1JJ
VEUgc2V0RGVmYXVsdEZpeGVkRm9udFNpemUpCiAKICAgICBRX1BST1BFUlRZKGJvb2wgYXV0b0xv
YWRJbWFnZXMgUkVBRCBhdXRvTG9hZEltYWdlcyBXUklURSBzZXRBdXRvTG9hZEltYWdlcykKKyAg
ICBRX1BST1BFUlRZKGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMgUkVBRCBhbGxvd3NBbmltYXRl
ZEltYWdlcyBXUklURSBzZXRBbGxvd3NBbmltYXRlZEltYWdlcykKICAgICBRX1BST1BFUlRZKGJv
b2wgamF2YXNjcmlwdEVuYWJsZWQgUkVBRCBqYXZhc2NyaXB0RW5hYmxlZCBXUklURSBzZXRKYXZh
c2NyaXB0RW5hYmxlZCkKICAgICBRX1BST1BFUlRZKGJvb2wgamF2YUVuYWJsZWQgUkVBRCBqYXZh
RW5hYmxlZCBXUklURSBzZXRKYXZhRW5hYmxlZCkKICAgICBRX1BST1BFUlRZKGJvb2wgcGx1Z2lu
c0VuYWJsZWQgUkVBRCBwbHVnaW5zRW5hYmxlZCBXUklURSBzZXRQbHVnaW5zRW5hYmxlZCkKQEAg
LTM0OCw2ICszNDksOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGF1dG9Mb2FkSW1hZ2VzKCkgY29u
c3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2Vz
KTsgfQogICAgIHZvaWQgc2V0QXV0b0xvYWRJbWFnZXMoYm9vbCBvbikgeyBzLT5zZXRBdHRyaWJ1
dGUoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywgb24pOyB9CisgICAgYm9vbCBhbGxvd3NB
bmltYXRlZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRp
bmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcyk7IH0KKyAgICB2b2lkIHNldEFsbG93c0FuaW1hdGVk
SW1hZ2VzKGJvb2wgb24pIHsgcy0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5p
bWF0ZWRJbWFnZXMsIG9uKTsgfQogICAgIGJvb2wgamF2YXNjcmlwdEVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6SmF2YXNjcmlwdEVuYWJsZWQp
OyB9CiAgICAgdm9pZCBzZXRKYXZhc2NyaXB0RW5hYmxlZChib29sIG9uKSB7IHMtPnNldEF0dHJp
YnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkLCBvbik7IH0KICAgICBib29sIGph
dmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkphdmFFbmFibGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVj
bGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5j
cHAKaW5kZXggYjM4ZGIxZGFmZmQwM2NiZmFjNWFjZDQ5YzM5OGQwYzdjNzMzZGE5NS4uYzkxZGFi
NDFhZjg3ODI3NjEwMTE2NWUxYWIzYmIzMDYzMjdmYzY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0
X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCkBAIC00ODMsNiArNDgzLDcgQEAgdm9pZCB0c3RfUURl
Y2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MoKQogCiAgICAgUVN0cmluZ0xpc3Qgc2V0dGluZ3NM
aXN0OwogICAgIHNldHRpbmdzTGlzdCA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoImF1dG9Mb2FkSW1h
Z2VzIikKKyAgICAgICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJhbGxvd3NBbmlt
YXRlZEltYWdlcyIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21B
c2NpaSgiamF2YUVuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNj
aWkoImphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsIGIvU291cmNlL1dlYktpdC93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDA3OTEzZWM3ODUyNDZiYTkx
M2ViOGZkZGFjZGJkYzA5ZDUwNzQzMTMuLjY2MjM0YTM3ZDEzYzgzZTlmZWZhYTM2Y2U0YmQ0Y2Fh
YmFkYmE0NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlcy5pZGwKQEAgLTEzOSw2ICsxMzksOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2Vz
IDogSVVua25vd24KICAgICBIUkVTVUxUIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShbaW5d
IEJPT0wgZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoW291
dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKIAorICAgIEhSRVNVTFQgc2V0QWxsb3dzQW5pbWF0
ZWRJbWFnZXMoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNVTFQgYWxsb3dzQW5pbWF0ZWRJ
bWFnZXMoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKKwogICAgIEhSRVNVTFQgc2V0QXV0
b3NhdmVzKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGF1dG9zYXZlcyhbb3V0LCBy
ZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IDc2ZWFjZmZlYmJlYzZkMGVhOWI0NmFiM2YxODdmMzE1ZmQ0
OGRhNTYuLjMxY2I0ZjJjNThlMmViNmNmMjIyN2EyYjQyMDI0Y2QzMjdmOTg4NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC01OSw2ICs1OSw3
IEBACiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5ICJXZWJL
aXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dB
bmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFn
ZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5ICJX
ZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgorI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2Vz
S2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzS2V5IgogI2RlZmluZSBXZWJLaXRMb2FkU2l0
ZUljb25zS2V5ICJXZWJLaXRMb2FkU2l0ZUljb25zS2V5IgogI2RlZmluZSBXZWJLaXRCYWNrRm9y
d2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5ICJXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhw
aXJhdGlvbkludGVydmFsS2V5IgogI2RlZmluZSBXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSAiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4
IDU3YWNjMTMxODAwMzIwM2YzMDI1NmNhMTI2MTY3Mjc1MTc4MDc4NjQuLmE1MmQ1ZjFlZTIwZDUw
OTgyY2IwNzk1MDdiNzU1MTI3YjkyOTZhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC00Njc1
LDYgKzQ2NzUsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
SVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAg
c2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSghIWVuYWJsZWQpOwogCisgICAg
aHIgPSBwcmVmZXJlbmNlcy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoJmVuYWJsZWQpOworICAgIGlm
IChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3MtPnNldEFsbG93
c0FuaW1hdGVkSW1hZ2VzKCEhZW5hYmxlZCk7CisKICAgICBociA9IHByZWZlcmVuY2VzLT51c2Vy
U3R5bGVTaGVldEVuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAg
ICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcAppbmRleCBkZGUzNzhmMDJiZmJjZTY5
YTk4ZTFhZmZiZTViNTQwODFlMjE4NGZlLi4yMWM3ODJmMzQwODhkZTIwZWIxYzNlNmQyYTYyNzcw
NTA3MTEzYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKQEAgLTEwMyw2ICsxMDMsNyBAQCBX
ZWJWaWV3OjpXZWJWaWV3KEhXTkQgaHduZCwgdW5zaWduZWQgZmVhdHVyZXMpCiAgICAgc2V0dGlu
Z3MtPnNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUoOCk7CiAgICAgc2V0dGluZ3MtPnNldFNjcmlw
dEVuYWJsZWQodHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAK
ICAgICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UqIGxvYWRlckNsaWVudCA9IG5ldyBX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UodGhpcyk7CiAgICAgUmVmUHRyPEZyYW1lPiBm
cmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLCAwLCBsb2FkZXJDbGllbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmNwcAppbmRleCA4OTFhODY3YThlYTIyOTA5NDhiNTM4YjZlOTk0YzI0ZGNjNTQy
Nzg1Li4zMzY2MTc3YWM3MTZlOGRiOTA0YWI0Zjg5ZTk0MDllYzcwNzU4MDUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4
L1dlYlNldHRpbmdzLmNwcApAQCAtODgsNiArODgsMjAgQEAgYm9vbCB3eFdlYlNldHRpbmdzOjpM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KICAg
ICAKK3ZvaWQgd3hXZWJTZXR0aW5nczo6U2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxv
d3NBbmltYXRlZEltYWdlcykKK3sKKyAgICBpZiAobV9zZXR0aW5ncykKKyAgICAgICAgbV9zZXR0
aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQor
Citib29sIHd4V2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9zZXR0aW5ncykKKyAgICAgICAgcmV0dXJuIG1fc2V0dGluZ3MtPmFsbG93c0FuaW1h
dGVkSW1hZ2VzKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgd3hXZWJTZXR0aW5n
czo6U2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChtX3NldHRp
bmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5oIGIvU291cmNl
L1dlYktpdC93eC9XZWJTZXR0aW5ncy5oCmluZGV4IGI3MGRkZTVhM2U1Y2YyZTMzMDJmMTRlYmI1
MzY4OThhNDUyNWFiMzIuLjAzZTFlNTA2OWNmZWIzNTBiMWUxMDNlYWY2ZDQ5YTEyM2E5NmNiMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKQEAgLTExMSw2ICsxMTEsMTYgQEAgcHVibGljOgogICAg
IGJvb2wgTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkgY29uc3Q7CiAgICAgCiAgICAgLyoqCisg
ICAgICAgIFNldHMgd2hldGhlciBvciBub3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1h
dGVkLgorICAgICovCisgICAgdm9pZCBTZXRBbGxvd3NBbmltYXRlZEltYWdlcyhib29sKTsKKwor
ICAgIC8qKgorICAgICAgICBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IGltYWdlcyBhcmUgYWxsb3dl
ZCB0byBiZSBhbmltYXRlZC4KKyAgICAqLworICAgIGJvb2wgQWxsb3dzQW5pbWF0ZWRJbWFnZXMo
KSBjb25zdDsKKworICAgIC8qKgogICAgICAgICBTZXRzIHdoZXRoZXIgb3Igbm90IHRoZSBXZWJW
aWV3IHJ1bnMgSmF2YVNjcmlwdCBjb2RlLgogICAgICovCiAgICAgdm9pZCBTZXRKYXZhU2NyaXB0
RW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3BwCmluZGV4IDkxMTdjOTZiMGI1OTZmZGExNDZi
MzQxMmM1MGMxNmNmOGVkODc4YTcuLjU4ZTE4NmQwNTgxYWMwYmRjOGU4MjY5ODU4MTA5MmY5YjM5
YjNmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcApAQCAtNDA3LDYgKzQwNyw3IEBAIGJvb2wgd3hXZWJW
aWV3OjpDcmVhdGUod3hXaW5kb3cqIHBhcmVudCwgY29uc3Qgd3hTdHJpbmcmIHVybCwgaW50IGlk
LCBjb25zdCB3eFBvCiAgICAgLy8gZXZlbnR1YWxseQogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBz
ZXR0aW5ncyA9IG1faW1wbC0+cGFnZS0+c2V0dGluZ3MoKTsKICAgICBzZXR0aW5ncy0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUo
MTMpOwogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rm9udFNpemUoMTYpOwogICAgIHNldHRpbmdz
LT5zZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIE5ldyBSb21hbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggMGNkYzk3NTk0ZTI3NDhkYjA5NGE0
NDNlNDFiYTg1NjYxOWM5NGJlZC4uM2U1ZTk0MmUzZjEyMjhhMWRmMDkwMTRlNDBmZWUzNTM5MjU5
MzU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBA
IC01MSw2ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2RlZmluZSBGT1JfRUFDSF9XRUJL
SVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlwdEVuYWJsZWQs
IGphdmFTY3JpcHRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5LCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIEJvb2wsIGJvb2ws
IHRydWUpIFwKKyAgICBtYWNybyhBbGxvd3NBbmltYXRlZEltYWdlcywgYWxsb3dzQW5pbWF0ZWRJ
bWFnZXMsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhMb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1ByZWZlcmVuY2UsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oUGx1Z2luc0Vu
YWJsZWQsIHBsdWdpbnNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oSmF2
YUVuYWJsZWQsIGphdmFFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggNTIxZTZkNGEw
NWNjZGYxY2E2ZjFjZjRmZTY2ZGY0OTk5ZWJiZTk1YS4uM2M4YWZkOWI2OTk4OWEyNDVmMDJkMTcx
ZGZkNWI3MzQxMmM1NjM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNzgsNiArNzgsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNS
ZWYpCiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSgpOwogfQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NBbmltYXRlZEltYWdl
cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGFsbG93c0FuaW1hdGVkSW1h
Z2VzKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFsbG93c0FuaW1hdGVkSW1h
Z2VzKGFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0QWxs
b3dzQW5pbWF0ZWRJbWFnZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsK
K30KKwogdm9pZCBXS1ByZWZlcmVuY2VzU2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1ByZWZlcmVuY2UoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBsb2Fk
c1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSkKIHsKICAgICB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5zZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJl
ZmVyZW5jZShsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAppbmRleCBm
MTM1NTlhY2I4MmUxM2FhYjIwNDZkMTAyMWE3ZGQ4Nzk3OTA0OTI1Li43N2MxMWI5MzQ1MWRiZmM3
OTg3YzBjODU0ZTM3ZWFkNDYwMTFkZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAgLTQ5LDYgKzQ5LDEwIEBAIFdLX0VYUE9SVCBib29s
IFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzKTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKIAorLy8gRGVmYXVs
dHMgdG8gdHJ1ZS4KK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGFsbG93c0FuaW1hdGVk
SW1hZ2VzKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZElt
YWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKKwogLy8gRGVmYXVsdHMgdG8gZmFs
c2UuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9v
bCBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSk7CiBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGlu
Z1ByZWZlcmVuY2UoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggNzc0
ZjE3MTkwYzk4OTk0YTRjYTllOGEyMDkxMjJkM2YzMmU0NWM1My4uMmYyYTkzZTlhMTc0NDBkZmI5
ODRlN2Y1YjQxZDhiNGJkMzlkZDZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcApAQCAtOTQwLDYgKzk0MCw0MSBAQCB2b2lk
IHdlYmtpdF9zZXR0aW5nc19zZXRfYXV0b19sb2FkX2ltYWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0
dGluZ3MsIGdib29sZWFuIGVuYQogfQogCiAvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfYWxs
b3dzX2FuaW1hdGVkX2ltYWdlczoKKyAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKKyAq
CisgKiBHZXQgdGhlICNXZWJLaXRTZXR0aW5nczphbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3Bl
cnR5LgorICoKKyAqIFJldHVybnM6ICVUUlVFIElmIGFuaW1hdGlvbiBvZiBpbWFnZXMgaXMgYWxs
b3dlZCBvciAlRkFMU0Ugb3RoZXJ3aXNlLgorICovCitnYm9vbGVhbiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncyksIEZB
TFNFKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
c2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLmdldCgpKTsKK30KKworLyoqCisgKiB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXM6CisgKiBAc2V0dGluZ3M6IGEgI1dl
YktpdFNldHRpbmdzCisgKiBAZW5hYmxlZDogVmFsdWUgdG8gYmUgc2V0CisgKgorICogU2V0IHRo
ZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3dzLWFuaW1hdGVkLWltYWdlcyBwcm9wZXJ0eS4KKyAqLwor
dm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMoV2ViS2l0U2V0
dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbmFibGVkKQoreworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1By
aXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IFdL
UHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQo
KSk7CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMocHJpdi0+cHJlZmVyZW5j
ZXMuZ2V0KCksIGVuYWJsZWQpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5n
cyksICJhbGxvdy1hbmltYXRlZC1pbWFnZXMiKTsKK30KKworLyoqCiAgKiB3ZWJraXRfc2V0dGlu
Z3NfZ2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nOgogICogQHNldHRp
bmdzOiBhICNXZWJLaXRTZXR0aW5ncwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3MWMxMWFmZTU3NjRmOWQwZTYx
ZTU2NWYyZWQzZTNjOGY5OGRlZTI1Li4xNGUzZmFjNTFjMDI0NGI3MmJkMzI0ZGIwMmVlNDQ1MGVh
NzMwNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwCkBAIC00MCw2ICs0MCw4IEBAIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUK
ICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgogICAgICAgICBy
ZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNl
c1JlZigpKTsKKyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJbWFnZXM6CisgICAgICAgIHJldHVybiBX
S1ByZWZlcmVuY2VzR2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMocHJlZmVyZW5jZXNSZWYoKSk7CiAg
ICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNH
ZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFBsdWdpbnNF
bmFibGVkOgpAQCAtNjYsNiArNjgsOSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNl
dEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogICAgIGNh
c2UgQXV0b0xvYWRJbWFnZXM6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0QWxs
b3dzQW5pbWF0ZWRJbWFnZXMocHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBKYXZhc2NyaXB0RW5hYmxlZDoKICAgICAgICAgV0tQcmVmZXJlbmNlc1Nl
dEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGY4YTg2YWU2NmE4ZjUwNTM4MWM0YTNmODZkMzQ4YjE3NTYwMmE5MmMuLjJkNGIzYzAxMDQ0
NzMwYzBjOGIyY2MyY2QyZGRkNjMxZDQ2YmY1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE4NDAsNiArMTg0MCw3IEBAIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUp
CiAKICAgICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0
aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5S2V5KCkpKTsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd3NBbmltYXRlZEltYWdlc0tleSgpKSk7CiAgICAg
c2V0dGluZ3MtPnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9hZHNTaXRlSWNvbnNJ
Z25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2VLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRQ
bHVnaW5zRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OnBsdWdpbnNFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YUVuYWJsZWQoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtleSgp
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NzQ1MzY3MjRjYWQ1M2E0ZjRhZjc2ZWY5MjMzNGFmMjdhNDI4ZTgwZS4uMDZmYmQ3ZjVjYmU4ODVl
YTkyMGI3NDVlMGRjNTNiOTRkZWYxZmMyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTEzICBQYWJsbyBG
bG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0
ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6Om92ZXJyaWRlUHJlZmVyZW5jZSk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5j
ZXM6OnJlc2V0KToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXMpOgorCiAyMDEyLTAyLTA4ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAg
ICAgICAgW0JsYWNrQmVycnldIFVwc3RyZWFtIER1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCBmYjUyY2ZkZTkzNGJhODUwZDg1YzI4ODkzMGFkNjVkZjA4ZTk2YmJmLi4zM2M0YjlhZDYz
MzMzNjhmYzVjYTUxZWEwNDQ5MTAwNWNmOWViMTc3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMjM5LDYgKzIzOSw3IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KCkKICAgICBzZXR0aW5ncy0+c2V0VGV4dFJlZmxvd01vZGUoV2ViU2V0dGluZ3M6OlRleHRSZWZs
b3dEaXNhYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKHRydWUpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRK
YXZhU2NyaXB0T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KHRydWUpOwogICAgIHNldHRpbmdzLT5z
ZXRab29tVG9GaXRPbkxvYWQoZmFsc2UpOwogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rm9udFNp
emUoMTYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGIwMzQ3Yzg1MzYwYzQyZTE0Y2VmNmE4MGNhZTM2MDIx
NzFjODk2NDAuLjJiMTNmOTYzMzE1OGY5MjgxY2E1Mjg5NWJlNDk0YzFjNDViYTgwN2MgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTE1MDcsNiArMTUwNyw4IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om92ZXJyaWRlUHJlZmVyZW5jZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywKICAg
ICAgICAgcHJlZnMtPmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBjcHBW
YXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdERpc3BsYXlJ
bWFnZXNLZXkiKQogICAgICAgICBwcmVmcy0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gY3Bw
VmFyaWFudFRvQm9vbCh2YWx1ZSk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIpCisgICAgICAgIHByZWZzLT5hbGxvd3NBbmltYXRl
ZEltYWdlcyA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVsc2UgaWYgKGtleSA9PSAi
V2ViS2l0UGx1Z2luc0VuYWJsZWQiKQogICAgICAgICBwcmVmcy0+cGx1Z2luc0VuYWJsZWQgPSBj
cHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdERPTVBh
c3RlQWxsb3dlZFByZWZlcmVuY2VLZXkiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDg3MmViZmI0YWE1ZmRhMDZjNTllYmI3YWIz
N2M4OTFjMzFlOTBhNDQuLjAzMzMyZDFiNDI5NDA5ZjJjYTFkYjYyYmQzNWMyNDRiNDBkNjk3YTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2Vz
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5j
cHAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSB0cnVlOwogICAgIGphdmFTY3Jp
cHRFbmFibGVkID0gdHJ1ZTsKICAgICBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSB0cnVlOwor
ICAgIGFsbG93c0FuaW1hdGVkSW1hZ2VzID0gdHJ1ZTsKICAgICBsb2NhbFN0b3JhZ2VFbmFibGVk
ID0gdHJ1ZTsKICAgICBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgPSB0cnVlOwog
ICAgIHBsdWdpbnNFbmFibGVkID0gdHJ1ZTsKQEAgLTE5Nyw2ICsxOTgsNyBAQCB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3MtPnNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKGph
dmFTY3JpcHRFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5KGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93c0Fu
aW1hdGVkSW1hZ2VzKGFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0aW5ncy0+c2V0TG9j
YWxTdG9yYWdlRW5hYmxlZChsb2NhbFN0b3JhZ2VFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKHBsdWdpbnNFbmFi
bGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZl
cmVuY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5o
CmluZGV4IGVlMDRhMjA5NDY2YmJiNWJjODhkMTdiNGUwZDMzMmY2MmEzYmRlOTEuLjZlMzg2YWVh
NDU2YTY3MmVkNmU0YzBjMDYyM2E3N2U0ZGFmZjc0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtODcsNiArODcsNyBAQCBzdHJ1Y3Qg
V2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseTsKICAgICBib29sIGphdmFTY3JpcHRFbmFibGVkOwogICAgIGJvb2wgbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5OworICAgIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXM7CiAgICAgYm9v
bCBsb2NhbFN0b3JhZ2VFbmFibGVkOwogICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkOwogICAgIGJvb2wgcGx1Z2luc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMzAxMmE3MGQ4OGI0MTYzMjQzZWU4YWYxYzU0
YWIxZTBmNjQyMTEyOC4uNmZjNTQ0NGNjZTVjMGE5YjMyN2QzOGNjZWYyYWU3NDhkYmVmOTcxOSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjI5LDYg
KzYyOSw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQog
ICAgIFtwcmVmZXJlbmNlcyBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6WUVT
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpOT107CiAgICAg
W3ByZWZlcmVuY2VzIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOworICAgIFtwcmVm
ZXJlbmNlcyBzZXRBbGxvd3NBbmltYXRlZEltYWdlczpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZTpOT107CiAgICAg
W3ByZWZlcmVuY2VzIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAyMWRhOGQwNGI0Y2I3NDc1ZTczZTQw
ZjY5OWNhYjdhYmUxNTcwZDkzLi5kZWQ2MWFiMGVjODg0ODkzOTU5OGNlOWVlNGQxOGM0MWQ5NGVj
NWZiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApA
QCAtMTg5LDYgKzE4OSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0aW5ncygpCiAgICAgc2V0
dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCk7CiAg
ICAgc2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0
dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzKCktPnJlc2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5KTsKIAogICAgIG1fZHJ0LT5sYXlv
dXRUZXN0Q29udHJvbGxlcigpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxZWM1YzVlNjA3
ZWY2ZGI3NDRjZWVmZDk2ZmRiODU0M2M5YzZhZmFmLi5hMDVhNDVkNTBlYzEzMmQxOTNlNjQ0ZTNk
YmIxZWZkNWQzNjFmNDdlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVy
VHJlZS5jcHAKQEAgLTg1NSw2ICs4NTUsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9D
b25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVy
ZW5jZXMtPnNldFRhYnNUb0xpbmtzKEZBTFNFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0U2hvdWxk
UHJpbnRCYWNrZ3JvdW5kcyhUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0TG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KFRSVUUpOworICAgIHByZWZlcmVuY2VzLT5zZXRBbGxvd3NBbmltYXRlZElt
YWdlcyhUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVk
aXRpbmdXaW5CZWhhdmlvcik7CiAKICAgICBpZiAocGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9j
YXRpb24pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmYTcxNWJjMTJmZGZjNWJlMTRjMjcwODk0N2ZlY2M4YmJlZjlmODlj
Li5iNzIyN2M3ZjQwOTBjYWI5ODQ3YzU3YjI1YWI2ZTk5NjhjM2IzOWFhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29t
PgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRlZC5naWY6IEFk
ZGVkLgorCiAyMDEyLTAyLTEwICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4K
IAogICAgICAgICBQb3BTdGF0ZUV2ZW50LnN0YXRlIHNob3VsZCB1c2UgdGhlIHNhbWUgb2JqZWN0
IGFzIGhpc3Rvcnkuc3RhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rp
c2FsbG93LWFuaW1hdGVkLWltYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYy
ODYwODk4OGQ1MDlhOGRiMjJmMmJiYzUzZTk1MDJmZDEwMDI5OWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJl
IGRpc2FibGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZ2JhU3Ry
aW5nKGdpZkZyYW1lKSBpcyAnMTM3MTAwZmYnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNzEzYzc4NWVi
ODFmYzQ2ZTE1ZDQzN2UxOGRmN2NjOTMzOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sCkBAIC0wLDAgKzEs
NDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGNhbnZhcyBzdHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj5GQUlMPC9jYW52YXM+Cis8c2Ny
aXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBk
aXNhYmxlZC4iKTsKKworICAgIGZ1bmN0aW9uIHJnYmFTdHJpbmcgKGEpIHsKKyAgICAgICAgcmV0
dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChhLCAoZnVuY3Rpb24gKG4pIHsgcmV0dXJuICgi
MDAiK24udG9TdHJpbmcoMTYpKS5zbGljZSgtMik7IH0pKS5qb2luKCIiKTsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1h
Z2VzUHJlZmVyZW5jZUtleSIsIDApOworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gInJlc291
cmNlcy9ncmVlbi1yZWQtYW5pbWF0ZWQuZ2lmPyIgKyBNYXRoLnJhbmRvbSgpOworICAgIGltYWdl
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIC8vIFRo
ZSBnaWYgaXMgb25lIGZyYW1lIG9mIGdyZWVuIGFuZCBzZXZlcmFsIGZyYW1lcyBvZiByZWQuCisg
ICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKworICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAw
LCAwKTsKKyAgICAgICAgICAgIGdpZkZyYW1lID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwg
MSwgMSkuZGF0YTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZ2JhU3RyaW5nKGdpZkZyYW1lKSIs
ICInMTM3MTAwZmYnIik7IC8vIEdyZWVuLgorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSwgMTUwKTsgLy8gR3JlZW4gZnJhbWUgb2YgR0lGIGhhcyAxMDBtcyBkdXJhdGlv
bgorICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
cmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRlZC5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9yZXNvdXJjZXMvZ3JlZW4tcmVkLWFuaW1hdGVkLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmM0NThhZmM4
MzgyODUyYzJkODE2OTA5MDQ0YWMzZmI1N2RhNmY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4
NjcKemNtWj93YmhFSGJHLTVEZl9gdHYqVCp2P2ZpYSVLeHhJcHdqT1huYjAjfU5NQER+MHFGLUs+
SnRiY0hmUUpwJT1lCnooJkVnI2JPbGNAY0xsRWlTOWdVbjNqPDlaZ35IT3JvWG5DKzF6UUQ2MTE8
KXx8Sjs3QUE7SGQkMGpAQFIyRiMyPQp6Xks/TGxnS1QxOEdIJlQjZEhPQj87eUdKeGIjSzE2PVFu
QGJCYWRtJUkrd2pWd2UyMUVAbFFWMnp4Nik8Yj8qQj0Kb2VqY3YmQmExJEVfLUx1S1FwYTZ6TT5Q
QlpJY0wtPDtNZmBzNj5NcGtJLXowPjBRQDtXSnBjZHoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126910</attachid>
            <date>2012-02-13 22:42:23 -0800</date>
            <delta_ts>2012-02-14 12:04:40 -0800</delta_ts>
            <desc>Fixed build errors</desc>
            <filename>bug-9767-20120213224221.patch</filename>
            <type>text/plain</type>
            <size>51792</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLjdi
YWEyZDEyNDc3YWUyYzU5ZWE4ZDdhYzBiZjc4ZWRlOWM3YTU5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd3NB
bmltYXRlZEltYWdlcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0
aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisKIDIwMTItMDItMDggIEFs
ZXhlaSBTdml0a2luZSAgPGFzdml0a2luZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hyb21p
dW06IEZpeCBNYWMgcnViYmVyIGJhbmQgb3ZlcmhhbmcgZHJhd2luZyBvbiBjb21wb3NpdGVkIHBh
Z2VzIGFuZCByZS1lbmFibGUgdGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNmE1MmZhMjUyNDFj
N2M0ZDcwNzY1Njk3YzM4ZDExNTE2OTA0MzNhNC4uZmRhNTNmYjBjMzg2OGQ1ZWYyZGM4MmQxNjk5
ZjQ4MjExYTYzNTQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAy
LTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQg
QWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAg
ICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfbmV3
KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVkX2ltYWdlc19nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX3NldCk6
CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDItMDcgIEtyenlzenRvZiBDemVj
aCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIG1pc3NpbmcgaW5p
dGlhbGl6YXRpb24gb2YgZWRpdGFibGUgdmFyaWFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOGM1
OWJiOTNmYjUwZDRlY2FjOTEyMzZjODQ3MjgzYmI5Mzg3ZTc3OS4uMzE2ZGMxMTU1YTRiYTgwZTBm
NTVhNmU5M2Y1N2IyZjlkMjkyN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6
CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzcHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorCiAyMDEyLTAy
LTA4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR3RrXSBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBmYWlscyB0byBwcm92aWRlIHRo
ZSBjb3JyZWN0IGxpbmUgZm9yIGxpc3QgaXRlbXMgd2hvc2UgdGV4dCB3cmFwcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IGJmMTE3MzcyMDIyYzIzYmIxNjRiMmI0ZDk4M2ZiM2Q3ZTY5ZTU4NzEuLjgwNDU4
ZDQxODExNTNhMDI4NzA2MDQwZDc5MWZhNTRlYTk5M2M1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9s
YS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0
dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxMi0wMi0wNyAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjEwNjY4MSk6IE51bGwgY2hlY2sgbWlzc2luZyBpbiBbV2ViRnJhbWUoV2ViSW50ZXJuYWwpIF90
eXBpbmdTdHlsZV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOTQwNmM5MjQ3MGI2ODNhNWE3OTg1OWMxZjEw
ZTlkNDQ1ZGI1N2ZiMy4uYTU1ZmZiMTVmNzU3Mzg1ZDczNmE3YTRmZDQzNTUwZGRhYThiMGJmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJl
dCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1h
Z2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRp
bmdzUHJpdmF0ZTo6YXBwbHkpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3Mp
OgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuaDoKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9x
ZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKiBkZWNsYXJhdGl2ZS9xZGVjbGFyYXRp
dmV3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzKToKKyAgICAg
ICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzOjphbGxvd3NBbmltYXRlZEltYWdlcyk6CisgICAg
ICAgIChRRGVjbGFyYXRpdmVXZWJTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgor
ICAgICAgICAqIHRlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZp
ZXcuY3BwOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKToKKwog
MjAxMi0wMi0wOCAgTGVvIEZyYW5jaGkgIDxsZnJhbmNoaUBrZGUub3JnPgogCiAgICAgICAgIFJl
bW90ZSB3ZWIgaW5zcGVjdG9yIHJlZW50cmFuY3kgZml4ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBk
M2U0NjNhNzAzZjE1OWE5YTZmZTFjNjdhZjkyMGMxYzU1ZmFhYjdhLi4xY2I0OTFkNTdhYmU5YzA1
ODJmOTQyMTY1ODFlNzAxN2FhMTdjMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisg
ICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMTItMDItMDIgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFyIHNob3duIG5vdGlmaWNhdGlvbnMgd2hlbiBj
b250ZXh0IGlzIG5vIGxvbmdlciBhY3RpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggNmQyYTdl
NjQ3YjJlMGFlMDliN2Y3NmNjMDY3MjY3ODU5M2Y5MjEzMS4uMGE2YjdjNzkzODUwYWIxMWM4ZGEz
OGU4MWZkN2IzNzU2NThiZGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgor
ICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6CisKIDIwMTEtMTItMTkgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3JlIFBsYXRmb3JtRXZlbnQgY2xlYW51cApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZwppbmRleCBiNDViMzUwMDUwMDUxOTc1MDkxMzRjZTQ0YzVlOTFiMzYxOGVkNWM3Li43
ZTdhMTVmNTViNzgxMWJkYjYwZjU5YTZiNmRhZTE0NDEyZjc1NmNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9y
b2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9z
ZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViU2V0dGluZ3MuY3BwOgorICAgICAgICAod3hXZWJTZXR0aW5nczo6U2V0QWxsb3dzQW5pbWF0
ZWRJbWFnZXMpOgorICAgICAgICAod3hXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMp
OgorICAgICAgICAqIFdlYlNldHRpbmdzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAg
ICAgICh3eFdlYlZpZXc6OkNyZWF0ZSk6CisKIDIwMTItMDEtMzAgIEtldmluIE9sbGl2aWVyICA8
a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgW3d4XSBVbnJldmlld2VkLiBCdWls
ZCBmaXgsIGFkZCBKYXZhU2NyaXB0Q29yZS9ydW50aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2QyNDU1MjRl
OGE0ZWJhMzU1YjBmNjNiMWY1NTJmNDYwOWJiZDdlYS4uMjU0NTUyODk0NjRlYjUzOGJlMmU3MzEz
ZmE4ZDIzNmJiODFjN2ExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEz
ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxs
b3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0
QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTItMDItMDggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMDY5MjAsIHIxMDY5MjQsIHIxMDY5MzMsIHIxMDY5MzksCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IGVjMjdhZWM0ZjYwYjcwNDAyN2Q5M2ZkYWE5YTRjMjNmNDEwYmI3
YTEuLjI0NDExYjZjNjAzN2YxZmM3ZGEwZjhhYzBhYjk2YWIzMzM4ZGM0MmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC05NzIsNiArOTcyLDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRN
aW5ET01UaW1lckludGVydmFsRWQKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1Nlcmlm
Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjJzZXRTZXNzaW9uU3RvcmFnZVF1b3RhRWoKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2hvd3NVUkxzSW5Ub29sVGlwc0ViCitfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3Nl
dEFsbG93c0FuaW1hdGVkSW1hZ2VzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXREZWZhdWx0Rml4ZWRG
b250U2l6ZUVpCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldEVkaXRhYmxlTGlua0JlaGF2aW9y
RU5TXzIwRWRpdGFibGVMaW5rQmVoYXZpb3JFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4
IGI1Y2I5NjNiYmY0MTM5NTc0ZTU0ZjRjZmZjNmVmZWNkZTYyZmQ1NWMuLmZjMTlkZDQ1NGY3YjE5
YTliMGUxYjIxN2IyNGEwMmE5YmVhZTI0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBA
IC0xMjgsNiArMTI4LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBt
X2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFFbmFibGVk
KGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBt
X2FsbG93c0FuaW1hdGVkSW1hZ2VzKGZhbHNlKQogICAgICwgbV9sb2Fkc1NpdGVJY29uc0lnbm9y
aW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpCkBAIC0zODEs
NiArMzgyLDExIEBAIHZvaWQgU2V0dGluZ3M6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVy
RmlyZWQoVGltZXI8U2V0dGluZ3M+KikKICAgICBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlJ
bkFsbEZyYW1lcyhtX3BhZ2UpOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQoreworICAgIG1fYWxsb3dzQW5pbWF0
ZWRJbWFnZXMgPSBhbGxvd3NBbmltYXRlZEltYWdlczsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0
TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCBsb2Fkc1NpdGVJ
Y29ucykKIHsKICAgICBtX2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5n
ID0gbG9hZHNTaXRlSWNvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggM2ExNDA2NjAxNmVh
ZjNkYmVhZWY5MjYxYTc0N2UzOWNmNzA5Nzc2OC4uNzkwOWIyYWJhMjE3OGFjNTViYjg4ZDNkNWRj
Y2RjM2ZhN2Y1MDJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTA4LDYgKzEwOCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoYm9vbCk7CiAgICAgICAgIGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkgY29u
c3QgeyByZXR1cm4gbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7IH0KIAorICAgICAgICB2b2lk
IHNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGJvb2wpOworICAgICAgICBib29sIGFsbG93c0FuaW1h
dGVkSW1hZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NBbmltYXRlZEltYWdlczsgfQorCiAg
ICAgICAgIC8vIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGltYWdlIGxvYWRp
bmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2UgYW5kIHRoaXMg
c2V0dGluZyBpcyB0cnVlLgogICAgICAgICAvLyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxs
IGhlZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCiAgICAgICAgIHZvaWQgc2V0
TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoYm9vbCk7CkBAIC01Njcs
NiArNTcwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAxOworICAgICAgICBi
b29sIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNTaXRl
SWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgOiAxOwogICAgICAgICBib29sIG1fcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jYXJldEJyb3dzaW5nRW5h
YmxlZCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKaW5kZXggYTg5NTc2MDFmNjIxZjA1M2E2MDdmNzY0NjdmZGQ4ZjE5ODM2ZmI3My4u
NWFlZjBiMjNhZDQ0NDczMmI4MGQ4ZGU3M2M1N2VjZDBjOGQ2NDg3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNDUxLDcgKzQ1
MSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbihib29sIHNr
aXBwaW5nRnJhbWVzKQogICAgIAogICAgIC8vIFNlZSBpZiBhbnlvbmUgaXMgc3RpbGwgcGF5aW5n
IGF0dGVudGlvbiB0byB0aGlzIGFuaW1hdGlvbi4gIElmIG5vdCwgd2UgZG9uJ3QKICAgICAvLyBh
ZHZhbmNlIGFuZCB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgYXQgdGhlIGN1cnJlbnQgZnJhbWUgdW50
aWwgdGhlIGFuaW1hdGlvbiBpcyByZXN1bWVkLgotICAgIGlmICghc2tpcHBpbmdGcmFtZXMgJiYg
aW1hZ2VPYnNlcnZlcigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKKyAgICBpZiAoaW1h
Z2VPYnNlcnZlcigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgKyttX2N1cnJlbnRGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggNzNkODc0NDE2Zjc4OTQ4YmZmMzJhM2YxMDE1Y2ExYWE2
M2M0NzdkMS4uYmI2MDFmZGUyYjU1ZmVmOWUxNjMwM2IzNmQ0MDQ5YTU2YmNmZDVkZCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPGFs
Z29yaXRobT4KQEAgLTI1NzMsOSArMjU3NCwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6d2lsbFJl
bmRlckltYWdlKENhY2hlZEltYWdlKikKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9
IFZJU0lCTEUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIFNldHRpbmdzKiBzZXR0aW5n
cyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKICAgICAvLyBJZiB3ZSdyZSBub3QgaW4gYSB3
aW5kb3cgKGkuZS4sIHdlJ3JlIGRvcm1hbnQgZnJvbSBiZWluZyBwdXQgaW4gdGhlIGIvZiBjYWNo
ZSBvciBpbiBhIGJhY2tncm91bmQgdGFiKQogICAgIC8vIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBy
ZW5kZXIgZWl0aGVyLgotICAgIHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSAmJiAh
ZG9jdW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigpOworICAgIHJldHVybiAhZG9jdW1lbnQo
KS0+aW5QYWdlQ2FjaGUoKSAmJiAhZG9jdW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigpICYm
IHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd3NBbmltYXRlZEltYWdlcygpOwogfQogCiBMYXlv
dXRVbml0IFJlbmRlck9iamVjdDo6bWF4aW1hbE91dGxpbmVTaXplKFBhaW50UGhhc2UgcCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDI1
YWMwNzUyMzk2Nzg3YjZhY2FkNDMxYzNiNzE2NzZhZDIwMGY0ODYuLjlmMzdmZmMyOWVhMGE4ZTBi
NjJhYTM4NWE2NDdmZTM5ODc4MzkyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRBbGxvd3NBbmltYXRlZEltYWdlcyhib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
bHVnaW5zRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxs
b3dlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJmMjE4ZWU2NTVjMDJmMTNkZDE2YjJi
Li43NjEzNjhhMmY5NzRjOTRkNjUzOGM1YjU5ODdjZGUyYjJiMTkxNTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEzNCw2ICsxMzQs
MTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShi
b29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKIH0KIAordm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGJvb2wgYWxsb3dzQW5pbWF0
ZWRJbWFnZXMpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxs
b3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2Vz
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxl
ZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmgKaW5kZXggNDVlNjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3YTZmYjA5ZjY1MTNlOS4uYTRlMDQ1
ZGMzNDVhYjAzZDc1OGNhN2I4ZWYzYjkyYjlhZGY1YWI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldEltYWdlc0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbnNF
bmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRET01QYXN0ZUFsbG93ZWQoYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA5Nzg5YzFjMzBkMjkzYTBjZjI0NTA3
MjE2YjI4MjkzZTlkMGZiYTgxLi5jZDYzYTdhZmRlODkyYWRmZDg1Y2ExZDZlMGY4MDM1MWIwM2Mw
MDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTE3MSw2ICsxNzEsNyBAQCBz
dHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGZvbnRT
ZXJpZjsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNhbnNTZXJpZjsKICAgICAgICAgYm9vbCBh
dXRvTG9hZEltYWdlcyA6IDE7CisgICAgICAgIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXM6IDE7
CiAgICAgICAgIGJvb2wgYXV0b1Nocmlua0ltYWdlcyA6IDE7CiAgICAgICAgIGJvb2wgZW5hYmxl
QXV0b1Jlc2l6ZVdpbmRvdyA6IDE7CiAgICAgICAgIGJvb2wgZW5hYmxlRGV2ZWxvcGVyRXh0cmFz
IDogMTsKQEAgLTYyOSw2ICs2MzAsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBf
ZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIHBy
aXYtPnZpZXdwb3J0QXJndW1lbnRzLnVzZXJTY2FsYWJsZSA9IHRydWU7CiAKICAgICBwcml2LT5w
YWdlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKKyAgICBwcml2
LT5wYWdlU2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHByaXYt
PnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoImlzby04ODU5LTEiKTsK
ICAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEyKTsKICAg
ICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6ZSgxNik7CkBAIC02NzMsNiAr
Njc1LDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT5zZXR0aW5ncy5mb250
U2Fuc1NlcmlmID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcHJpdi0+c2V0dGluZ3MuYXV0b0xvYWRJbWFnZXMgPSBwcml2LT5wYWdl
U2V0dGluZ3MtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHByaXYtPnNldHRpbmdz
LmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5hbGxvd3NBbmltYXRl
ZEltYWdlcygpOwogICAgIHByaXYtPnNldHRpbmdzLmF1dG9TaHJpbmtJbWFnZXMgPSBwcml2LT5w
YWdlU2V0dGluZ3MtPnNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKTsKICAgICBwcml2LT5z
ZXR0aW5ncy5lbmFibGVBdXRvUmVzaXplV2luZG93ID0gdHJ1ZTsKICAgICBwcml2LT5zZXR0aW5n
cy5lbmFibGVEZXZlbG9wZXJFeHRyYXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmRldmVsb3BlckV4
dHJhc0VuYWJsZWQoKTsKQEAgLTE5MjgsNiArMTkzMSwyNSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9C
b29sCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0VpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2Fs
bG93c19hbmltYXRlZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQorewor
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7
CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
OworICAgIHJldHVybiBwcml2LT5zZXR0aW5ncy5hbGxvd3NBbmltYXRlZEltYWdlczsKK30KKwor
RWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVkX2ltYWdlc19zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBhbGxvdykKK3sKKyAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKKyAgICBhbGxvdyA9ICEh
YWxsb3c7CisgICAgaWYgKHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzICE9IGFs
bG93KSB7CisgICAgICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFn
ZXMoYWxsb3cpOworICAgICAgICBwcml2LT5zZXR0aW5ncy5hbGxvd3NBbmltYXRlZEltYWdlcyA9
IGFsbG93OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogRWluYV9Cb29sIGV3a192aWV3
X3NldHRpbmdfYXV0b19zaHJpbmtfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBkMzQ3NGE2NGIzOTNmNjVlMTAz
YzQ5YjAyYjY1NTQzNTgzYjUzZDZjLi5iODc3YmQ1ZGNlODM4OTEyYjIzNjRkN2ZlY2ZmZDUyZTYy
NDc0MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMTM1MSw2ICsxMzUxLDI3IEBA
IEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2FkX2ltYWdlc19nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGlu
Z19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGF1dG9tYXRp
Yyk7CiAKIC8qKgorICogUXVlcmllcyBpZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGFuaW1h
dGUuCisgKgorICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIGltYWdlcyBh
cmUgYWxsb3dlZCB0byBhbmltYXRlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhl
IGltYWdlcyBhcmUgYWxsb3dlZCB0byBhbmltYXRlLAorICogICAgICAgICBAYyBFSU5BX0ZBTFNF
IGlmIG5vdCBvciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3Nl
dHRpbmdfYWxsb3dzX2FuaW1hdGVkX2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwor
CisvKioKKyAqIEFsbG93cy9kaXNhbGxvd3MgYW5pbWF0aW9uIG9mIGltYWdlcy4KKyAqCisgKiBA
cGFyYW0gbyB2aWV3IG9iamVjdCB0byBzZXQgd2hldGhlciBpbWFnZXMgY2FuIGJlIGFuaW1hdGVk
IG9yIG5vdAorICogQHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGFuaW1h
dGlvbiBvZiBpbWFnZXMsCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgor
ICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZh
aWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5p
bWF0ZWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGFsbG93KTsKKworLyoq
CiAgKiBRdWVyaWVzIGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRpY2FsbHkKICAq
CiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBzaHJp
bmtlZCBhdXRvbWF0aWNhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcAppbmRleCBkOTFjM2JiZjM1MjFjMjU2YzQ5ZDI4NmUyNDFlZDllNzUwMDU4
YzNkLi42YmYwYjkyZmVjZjVkMDI0YWJhNzNiZWNkZTc1ODIxMDUxNDY1Yzc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTgzLDYgKzgz
LDcgQEAgZW51bSB7CiAgICAgUFJPUF9NSU5JTVVNX0xPR0lDQUxfRk9OVF9TSVpFLAogICAgIFBS
T1BfRU5GT1JDRV85Nl9EUEksCiAgICAgUFJPUF9BVVRPX0xPQURfSU1BR0VTLAorICAgIFBST1Bf
QUxMT1dTX0FOSU1BVEVEX0lNQUdFUywKICAgICBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAg
ICBQUk9QX1BSSU5UX0JBQ0tHUk9VTkRTLAogICAgIFBST1BfRU5BQkxFX1NDUklQVFMsCkBAIC0z
MzQsNiArMzM1LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRXZWJTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CiAKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJhbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkFsbG93cyBBbmltYXRlZCBJbWFnZXMiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkFsbG93IHRoZSBhbmltYXRpb24gb2YgaW1hZ2Vz
LiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7CisKKyAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImF1dG8tc2hyaW5rLWltYWdlcyIsCkBAIC0xMDExLDYgKzEw
MjEsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbgogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURf
SU1BR0VTOgogICAgICAgICBwcml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dTX0FOSU1BVEVE
X0lNQUdFUzoKKyAgICAgICAgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dl
dF9ib29sZWFuKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hS
SU5LX0lNQUdFUzoKICAgICAgICAgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0
X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAg
ICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVM6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmFsbG93c0FuaW1hdGVkSW1h
Z2VzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoK
ICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdl
cyk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4
ZTEyNWFmYzdjNzI2MzEuLmNlNDViNTJjYTc4NzUxZDc0NDZiZTQ4MTMyNjFiOWU2MGQ1YTIxZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nw
cml2YXRlLmgKQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZh
dGUgewogICAgIGd1aW50IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5m
b3JjZTk2RFBJOwogICAgIGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFs
bG93c0FuaW1hdGVkSW1hZ2VzOwogICAgIGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAg
Z2Jvb2xlYW4gcHJpbnRCYWNrZ3JvdW5kczsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGMyMjQ2MWM3
NDk4NzYwODFkOTdiNDYwNWU5MjBjMmYxYzQ1N2I5ZDAuLmI4MzUwMzY0ZTM2MTQ5M2EwYTE5YjQz
YzEwZmUwMDAwMjdiNzA1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKQEAgLTMyMDAsNiArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGlu
Z3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250
RmFtaWx5LmRhdGEoKSk7CiAgICAgY29yZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0
dGluZ3NQcml2YXRlLT5zZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1h
Z2VzKTsKKyAgICBjb3JlU2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHNldHRpbmdz
UHJpdmF0ZS0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hy
aW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFn
ZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5n
c1ByaXZhdGUtPnByaW50QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0
RW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDgwY2M5MzU1YWNiYmQ3NDFkN2JlODlk
Yjc4ZmI3ZDI0MTcyNmI1OGYuLmM1NGZhZGYwNjViNTBhMGY2OWViMmEwNGRhYWE1ZjY0MGI0OTIy
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI4
OCwxMiArMjg4LDEyIEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uOwogLSAodm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClmbGFnOwogCiAvKiEK
LSAgICBAbWV0aG9kIGFsbG93QW5pbWF0ZWRJbWFnZXMKKyAgICBAbWV0aG9kIGFsbG93c0FuaW1h
dGVkSW1hZ2VzCiAqLwogLSAoQk9PTClhbGxvd3NBbmltYXRlZEltYWdlczsKIAogLyohCi0gICAg
QG1ldGhvZCBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgIEBtZXRob2Qgc2V0QWxsb3dzQW5p
bWF0ZWRJbWFnZXM6CiAgICAgQHBhcmFtIGZsYWcKICovCiAtICh2b2lkKXNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzOihCT09MKWZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggNDUyNWNiYTlmYzM4OTRhYTRiNGZiNGUwNWEyY2VlNmMwYmQ4YzgwMi4uZjk3OGUzOWZkYTJj
OGI5ZWI4ZmJkZThjMTFlZWY5M2QzMGY3N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMTQyMSw2ICsxNDIxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWlu
V2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoW3By
ZWZlcmVuY2VzIHNlcmlmRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZv
bnRGYW1pbHkoW3ByZWZlcmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdz
LT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0
b21hdGljYWxseV0pOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbcHJl
ZmVyZW5jZXMgYWxsb3dzQW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGluZ3MtPnNl
dFNob3VsZFByaW50QmFja2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFja2dyb3Vu
ZHNdKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNl
cyB0ZXh0QXJlYXNBcmVSZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3Mu
Y3BwCmluZGV4IDg5ZTk4MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAuLjAxYTE5
YzhkZTdmMTUxMjdmZDMyODRmZDZiNGFkODc5MWViMGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnNldHRpbmdzLmNwcApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1By
aXZhdGU6OmFwcGx5KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpKTsKICAg
ICAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7CiAKKyAg
ICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0
ZWRJbWFnZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+
YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKSk7Cisg
ICAgICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAgICAg
ICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFi
bGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNldHRp
bmdzLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3IEBA
IFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5zZXJ0
KFFXZWJTZXR0aW5nczo6Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkpOwog
CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywg
dHJ1ZSk7CisgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmlt
YXRlZEltYWdlcywgdHJ1ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdz
OjpEbnNQcmVmZXRjaEVuYWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChR
V2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVz
Lmluc2VydChRV2ViU2V0dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZh
MjhjNmFjMGE3MzU1NjNmOThmLi5kYzIzY2YxMjBkODI0ZGQyYmNhZjU1NTliNDdiYzFhOWJlNDYx
YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBw
dWJsaWM6CiAgICAgfTsKICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2Fk
SW1hZ2VzLAorICAgICAgICBBbGxvd3NBbmltYXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlw
dEVuYWJsZWQsCiAgICAgICAgIEphdmFFbmFibGVkLAogICAgICAgICBQbHVnaW5zRW5hYmxlZCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vi
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZp
ZXcuY3BwCmluZGV4IGFiZjliYjIxOGEzNjFiMWE0NDdhYzk5NDFjMjAzZTNmZGYyN2Y3M2MuLmYx
YTU2YjllYTM1YjMxNDBiZmM5ZDY0ZWUxZmU2NmIyMWJjNjI2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNzI3
LDYgKzcyNyw3IEBAIFFXZWJQYWdlKiBRRGVjbGFyYXRpdmVXZWJWaWV3OjpwYWdlKCkgY29uc3QK
ICAgICBccW1scHJvcGVydHkgaW50IFdlYlZpZXc6OnNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRT
aXplCiAKICAgICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hdXRvTG9hZElt
YWdlcworICAgIFxxbWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmFsbG93c0FuaW1h
dGVkSW1hZ2VzCiAgICAgXHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNj
cmlwdEVuYWJsZWQKICAgICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZh
RW5hYmxlZAogICAgIFxxbWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNF
bmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJh
dGl2ZXdlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRp
dmV3ZWJ2aWV3X3AuaAppbmRleCA4MzQ2M2RiOTdiYjY0ZGE2YzBkYmUxNmVlZGY5NjVmNDAxMTZh
NzlkLi5hNjA3MzUzYzY5NWU1OGU0OTNkNzBkNzM3ZTEzOTkxNGEyNzI3NzFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgK
QEAgLTMwNiw2ICszMDYsNyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1Ymxp
YyBRT2JqZWN0IHsKICAgICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFE
IGRlZmF1bHRGaXhlZEZvbnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAg
ICAgUV9QUk9QRVJUWShib29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJ
VEUgc2V0QXV0b0xvYWRJbWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93c0FuaW1hdGVk
SW1hZ2VzIFJFQUQgYWxsb3dzQW5pbWF0ZWRJbWFnZXMgV1JJVEUgc2V0QWxsb3dzQW5pbWF0ZWRJ
bWFnZXMpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNj
cmlwdEVuYWJsZWQgV1JJVEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShi
b29sIGphdmFFbmFibGVkIFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAg
ICAgUV9QUk9QRVJUWShib29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJ
VEUgc2V0UGx1Z2luc0VuYWJsZWQpCkBAIC0zNDgsNiArMzQ5LDggQEAgcHVibGljOgogCiAgICAg
Ym9vbCBhdXRvTG9hZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2Vz
KGJvb2wgb24pIHsgcy0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMs
IG9uKTsgfQorICAgIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBz
LT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOyB9Cisg
ICAgdm9pZCBzZXRBbGxvd3NBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGph
dmFzY3JpcHRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0
dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJs
ZWQoYm9vbCBvbikgeyBzLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5h
YmxlZCwgb24pOyB9CiAgICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRl
c3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZl
d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcv
dHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IGIzOGRiMWRhZmZkMDNjYmZhYzVhY2Q0
OWMzOThkMGM3YzczM2RhOTUuLmM5MWRhYjQxYWY4NzgyNzYxMDExNjVlMWFiM2JiMzA2MzI3ZmM2
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmll
dy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDgz
LDYgKzQ4Myw3IEBAIHZvaWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAog
ICAgIFFTdHJpbmdMaXN0IHNldHRpbmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJhdXRvTG9hZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJp
bmc6OmZyb21Bc2NpaSgiYWxsb3dzQW5pbWF0ZWRJbWFnZXMiKQogICAgICAgICAgICAgICAgICA8
PCBRU3RyaW5nOjpmcm9tQXNjaWkoImRldmVsb3BlckV4dHJhc0VuYWJsZWQiKQogICAgICAgICAg
ICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoImphdmFFbmFibGVkIikKICAgICAgICAgICAg
ICAgICAgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJqYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
IikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
NzZlYWNmZmViYmVjNmQwZWE5YjQ2YWIzZjE4N2YzMTVmZDQ4ZGE1Ni4uMzFjYjRmMmM1OGUyZWI2
Y2YyMjI3YTJiNDIwMjRjZDMyN2Y5ODg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNkZWZpbmUgV2ViS2l0QWxs
b3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQ
cmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJl
ZmVyZW5jZUtleSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXki
CiAjZGVmaW5lIFdlYktpdERpc3BsYXlJbWFnZXNLZXkgIldlYktpdERpc3BsYXlJbWFnZXNLZXki
CisjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkgIldlYktpdEFsbG93QW5pbWF0
ZWRJbWFnZXNLZXkiCiAjZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgIldlYktpdExvYWRT
aXRlSWNvbnNLZXkiCiAjZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50
ZXJ2YWxLZXkgIldlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAj
ZGVmaW5lIFdlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5ICJXZWJLaXRUYWJUb0xpbmtzUHJl
ZmVyZW5jZUtleSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNTdhY2MxMzE4MDAzMjAzZjMwMjU2
Y2ExMjYxNjcyNzUxNzgwNzg2NC4uYTUyZDVmMWVlMjBkNTA5ODJjYjA3OTUwN2I3NTUxMjdiOTI5
NmFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ2NzUsNiArNDY3NSwxMSBAQCBIUkVTVUxU
IFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZlcmVuY2VzLT5hbGxv
d3NBbmltYXRlZEltYWdlcygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAg
IHJldHVybiBocjsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoISFlbmFi
bGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnVzZXJTdHlsZVNoZWV0RW5hYmxlZCgmZW5h
YmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYlZpZXcuY3BwCmluZGV4IGRkZTM3OGYwMmJmYmNlNjlhOThlMWFmZmJlNWI1NDA4MWUyMTg0
ZmUuLjIxYzc4MmYzNDA4OGRlMjBlYjFjM2U2ZDJhNjI3NzA1MDcxMTNiODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJWaWV3LmNwcApAQCAtMTAzLDYgKzEwMyw3IEBAIFdlYlZpZXc6OldlYlZpZXcoSFdORCBo
d25kLCB1bnNpZ25lZCBmZWF0dXJlcykKICAgICBzZXR0aW5ncy0+c2V0TWluaW11bUxvZ2ljYWxG
b250U2l6ZSg4KTsKICAgICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBz
ZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdz
LT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh0cnVlKTsKIAogICAgIFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRSogbG9hZGVyQ2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnRXaW5DRSh0aGlzKTsKICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZSht
X3BhZ2UsIDAsIGxvYWRlckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDg5
MWE4NjdhOGVhMjI5MDk0OGI1MzhiNmU5OTRjMjRkY2M1NDI3ODUuLjMzNjYxNzdhYzcxNmU4ZGI5
MDRhYjRmODllOTQwOWVjNzA3NTgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCkBAIC04
OCw2ICs4OCwyMCBAQCBib29sIHd4V2ViU2V0dGluZ3M6OkxvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAordm9pZCB3eFdlYlNldHRpbmdz
OjpTZXRBbGxvd3NBbmltYXRlZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQorewor
ICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyhhbGxvd3NBbmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6
QWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdAoreworICAgIGlmIChtX3NldHRpbmdzKQorICAg
ICAgICByZXR1cm4gbV9zZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKKworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogdm9pZCB3eFdlYlNldHRpbmdzOjpTZXRKYXZhU2NyaXB0RW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdz
LmgKaW5kZXggYjcwZGRlNWEzZTVjZjJlMzMwMmYxNGViYjUzNjg5OGE0NTI1YWIzMi4uMDNlMWU1
MDY5Y2ZlYjM1MGIxZTEwM2VhZjZkNDlhMTIzYTk2Y2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93eC9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3Mu
aApAQCAtMTExLDYgKzExMSwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkoKSBjb25zdDsKICAgICAKICAgICAvKioKKyAgICAgICAgU2V0cyB3aGV0aGVyIG9y
IG5vdCBpbWFnZXMgYXJlIGFsbG93ZWQgdG8gYmUgYW5pbWF0ZWQuCisgICAgKi8KKyAgICB2b2lk
IFNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVy
bnMgd2hldGhlciBvciBub3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAg
ICovCisgICAgYm9vbCBBbGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0OworCisgICAgLyoqCiAg
ICAgICAgIFNldHMgd2hldGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBKYXZhU2NyaXB0IGNv
ZGUuCiAgICAgKi8KICAgICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
Vmlldy5jcHAKaW5kZXggOTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2Y2Y4ZWQ4NzhhNy4u
NThlMTg2ZDA1ODFhYzBiZGM4ZTgyNjk4NTgxMDkyZjliMzliM2Y0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcu
Y3BwCkBAIC00MDcsNiArNDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0ZSh3eFdpbmRvdyog
cGFyZW50LCBjb25zdCB3eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4UG8KICAgICAvLyBl
dmVudHVhbGx5CiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0gbV9pbXBsLT5wYWdl
LT5zZXR0aW5ncygpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
dHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAg
IHNldHRpbmdzLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgc2V0dGluZ3MtPnNl
dERlZmF1bHRGb250U2l6ZSgxNik7CiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgi
VGltZXMgTmV3IFJvbWFuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
U3RvcmUuaAppbmRleCAwY2RjOTc1OTRlMjc0OGRiMDk0YTQ0M2U0MWJhODU2NjE5Yzk0YmVkLi4z
ZTVlOTQyZTNmMTIyOGExZGYwOTAxNGU0MGZlZTM1MzkyNTkzNThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFj
cm8pIFwKICAgICBtYWNybyhKYXZhU2NyaXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJv
b2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFs
bG93c0FuaW1hdGVkSW1hZ2VzLCBhbGxvd3NBbmltYXRlZEltYWdlcywgQm9vbCwgYm9vbCwgdHJ1
ZSkgXAogICAgIG1hY3JvKExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJl
bmNlLCBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNmNGZlNjZkZjQ5
OTllYmJlOTVhLi4zYzhhZmQ5YjY5OTg5YTI0NWYwMmQxNzFkZmQ1YjczNDEyYzU2Mzc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBA
IC03OCw2ICs3OCwxNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9CiAKK3ZvaWQg
V0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFn
ZXMpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5hbGxvd3NBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExv
YWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUljb25z
SWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0NmQx
MDIxYTdkZDg3OTc5MDQ5MjUuLjc3YzExYjkzNDUxZGJmYzc5ODdjMGM4NTRlMzdlYWQ0NjAxMWRm
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
aApAQCAtNDksNiArNDksMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFT
Y3JpcHRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMsIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXMpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5j
ZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIw
OTEyMmQzZjMyZTQ1YzUzLi4yZjJhOTNlOWExNzQ0MGRmYjk4NGU3ZjViNDFkOGI0YmQzOWRkNmI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0
dGluZ3MuY3BwCkBAIC05NDAsNiArOTQwLDQxIEBAIHZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9h
dXRvX2xvYWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW5hCiB9
CiAKIC8qKgorICogd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzOgor
ICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICoKKyAqIEdldCB0aGUgI1dlYktpdFNl
dHRpbmdzOmFsbG93cy1hbmltYXRlZC1pbWFnZXMgcHJvcGVydHkuCisgKgorICogUmV0dXJuczog
JVRSVUUgSWYgYW5pbWF0aW9uIG9mIGltYWdlcyBpcyBhbGxvd2VkIG9yICVGQUxTRSBvdGhlcndp
c2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZXR0aW5nc19nZXRfYWxsb3dzX2FuaW1hdGVkX2lt
YWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOworCisgICAgcmV0dXJuIFdL
UHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhzZXR0aW5ncy0+cHJpdi0+cHJlZmVy
ZW5jZXMuZ2V0KCkpOworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2Fu
aW1hdGVkX2ltYWdlczoKKyAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKKyAqIEBlbmFi
bGVkOiBWYWx1ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczphbGxv
d3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2b2lkIHdlYmtpdF9zZXR0aW5nc19z
ZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29s
ZWFuIGVuYWJsZWQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Mo
c2V0dGluZ3MpKTsKKworICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9IHNldHRpbmdz
LT5wcml2OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gV0tQcmVmZXJlbmNlc0dldEFsbG93c0Fu
aW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBpZiAoY3VycmVudFZh
bHVlID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRB
bGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSwgZW5hYmxlZCk7Cisg
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFsbG93LWFuaW1hdGVkLWlt
YWdlcyIpOworfQorCisvKioKICAqIHdlYmtpdF9zZXR0aW5nc19nZXRfbG9hZF9pY29uc19pZ25v
cmluZ19pbWFnZV9sb2FkX3NldHRpbmc6CiAgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdz
CiAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwCmluZGV4IDcxYzExYWZlNTc2NGY5ZDBlNjFlNTY1ZjJlZDNlM2M4Zjk4ZGVlMjUu
LjE0ZTNmYWM1MWMwMjQ0YjcyYmQzMjRkYjAyZWU0NDUwZWE3MzA1MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTQw
LDYgKzQwLDggQEAgYm9vbCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZQogICAgIHN3aXRjaCAoYXR0cikgewog
ICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0
TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHByZWZlcmVuY2VzUmVmKCkpOworICAgIGNhc2UgQWxs
b3dBbmltYXRlZEltYWdlczoKKyAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NB
bmltYXRlZEltYWdlcyhwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIEphdmFzY3JpcHRFbmFi
bGVkOgogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHBy
ZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgUGx1Z2luc0VuYWJsZWQ6CkBAIC02Niw2ICs2OCw5
IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBhCiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAg
ICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNl
c1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJ
bWFnZXM6CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcmVm
ZXJlbmNlc1JlZigpLCBlbmFibGUpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEphdmFzY3Jp
cHRFbmFibGVkOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQocHJl
ZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjhhODZhZTY2YThmNTA1Mzgx
YzRhM2Y4NmQzNDhiMTc1NjAyYTkyYy4uMmQ0YjNjMDEwNDQ3MzBjMGM4YjJjYzJjZDJkZGQ2MzFk
NDZiZjVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMTg0MCw2ICsxODQwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIAogICAgIHNldHRpbmdzLT5zZXRT
Y3JpcHRFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
amF2YVNjcmlwdEVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojps
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlLZXkoKSkpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NB
bmltYXRlZEltYWdlcyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OmFsbG93c0FuaW1hdGVkSW1hZ2VzS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRl
SWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJl
ZmVyZW5jZUtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVkS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NDUzNjcyNGNhZDUzYTRmNGFmNzZl
ZjkyMzM0YWYyN2E0MjhlODBlLi4wNmZiZDdmNWNiZTg4NWVhOTIwYjc0NWUwZGM1M2I5NGRlZjFm
YzIzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3Nl
dHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVC
ZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJp
ZGVQcmVmZXJlbmNlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVm
ZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgorICAgICAgICAo
V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXRE
ZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
RHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNl
dHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
OgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMTItMDIt
MDggIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBz
dHJlYW0gRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGZiNTJjZmRlOTM0YmE4NTBk
ODVjMjg4OTMwYWQ2NWRmMDhlOTZiYmYuLjMzYzRiOWFkNjMzMzM2OGZjNWNhNTFlYTA0NDkxMDA1
Y2Y5ZWIxNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVt
cFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVt
cFJlbmRlclRyZWUuY3BwCkBAIC0yMzksNiArMjM5LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6
cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIHNldHRpbmdzLT5zZXRU
ZXh0UmVmbG93TW9kZShXZWJTZXR0aW5nczo6VGV4dFJlZmxvd0Rpc2FibGVkKTsKICAgICBzZXR0
aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQodHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0
ZWRJbWFnZXModHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRPcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkodHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldFpvb21Ub0ZpdE9uTG9hZChmYWxz
ZSk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6ZSgxNik7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggYjAzNDdjODUzNjBjNDJlMTRjZWY2YTgwY2FlMzYwMjE3MWM4OTY0MC4uMmIxM2Y5NjMzMTU4
ZjkyODFjYTUyODk1YmU0OTRjMWM0NWJhODA3YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTUwNyw2ICsx
NTA3LDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLAogICAgICAgICBwcmVmcy0+amF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwog
ICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0RGlzcGxheUltYWdlc0tleSIpCiAgICAgICAgIHBy
ZWZzLT5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsK
KyAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNl
S2V5IikKKyAgICAgICAgcHJlZnMtPmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRQbHVnaW5zRW5hYmxlZCIp
CiAgICAgICAgIHByZWZzLT5wbHVnaW5zRW5hYmxlZCA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUp
OwogICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0RE9NUGFzdGVBbGxvd2VkUHJlZmVyZW5jZUtl
eSIpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJl
bmNlcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5j
cHAKaW5kZXggODcyZWJmYjRhYTVmZGEwNmM1OWViYjdhYjM3Yzg5MWMzMWU5MGE0NC4uMDMzMzJk
MWI0Mjk0MDlmMmNhMWRiNjJiZDM1YzI0NGI0MGQ2OTdhNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtODUsNiArODUsNyBAQCB2
b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSA9IHRydWU7CiAgICAgamF2YVNjcmlwdEVuYWJsZWQgPSB0cnVlOwogICAg
IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IHRydWU7CisgICAgYWxsb3dzQW5pbWF0ZWRJbWFn
ZXMgPSB0cnVlOwogICAgIGxvY2FsU3RvcmFnZUVuYWJsZWQgPSB0cnVlOwogICAgIG9mZmxpbmVX
ZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA9IHRydWU7CiAgICAgcGx1Z2luc0VuYWJsZWQgPSB0
cnVlOwpAQCAtMTk3LDYgKzE5OCw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2Vi
Vmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseShqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKICAg
ICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwogICAg
IHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5p
bWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGxvY2Fs
U3RvcmFnZUVuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQob2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKTsKICAgICBzZXR0
aW5ncy0+c2V0UGx1Z2luc0VuYWJsZWQocGx1Z2luc0VuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggZWUwNGEyMDk0NjZiYmI1
YmM4OGQxN2I0ZTBkMzMyZjYyYTNiZGU5MS4uNmUzODZhZWE0NTZhNjcyZWQ2ZTRjMGMwNjIzYTc3
ZTRkYWZmNzQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
UHJlZmVyZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVm
ZXJlbmNlcy5oCkBAIC04Nyw2ICs4Nyw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAg
Ym9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwogICAgIGJvb2wgamF2
YVNjcmlwdEVuYWJsZWQ7CiAgICAgYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7CisgICAg
Ym9vbCBhbGxvd3NBbmltYXRlZEltYWdlczsKICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQ7
CiAgICAgYm9vbCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ7CiAgICAgYm9vbCBw
bHVnaW5zRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQppbmRleCAzMDEyYTcwZDg4YjQxNjMyNDNlZThhZjFjNTRhYjFlMGY2NDIxMTI4Li42ZmM1NDQ0
Y2NlNWMwYTliMzI3ZDM4Y2NlZjJhZTc0OGRiZWY5NzE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC02MjksNiArNjI5LDcgQEAgc3RhdGljIHZvaWQg
cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgW3ByZWZlcmVuY2VzIHNldE9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5OllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZDpOT107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuY3BwCmluZGV4IDIxZGE4ZDA0YjRjYjc0NzVlNzNlNDBmNjk5Y2FiN2FiZTE1NzBkOTMuLjAz
ODAxNjEwODNkMTEzMzhlMTJkMzliYTc4YmRmY2ZiMWE0OWYwOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0xODksNiArMTg5LDcgQEAgdm9p
ZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNFbmFibGVkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0
dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpOwogICAg
IHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMp
OworICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5p
bWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5n
czo6Wm9vbVRleHRPbmx5KTsKIAogICAgIG1fZHJ0LT5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5z
ZXRDYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxZWM1YzVlNjA3ZWY2ZGI3NDRjZWVmZDk2ZmRiODU0
M2M5YzZhZmFmLi5hMDVhNDVkNTBlYzEzMmQxOTNlNjQ0ZTNkYmIxZWZkNWQzNjFmNDdlIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTg1NSw2ICs4
NTUsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQ
cmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVyZW5jZXMtPnNldFRhYnNUb0xpbmtz
KEZBTFNFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhUUlVF
KTsKICAgICBwcmVmZXJlbmNlcy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFRSVUUpOwor
ICAgIHByZWZlcmVuY2VzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhUUlVFKTsKICAgICBwcmVm
ZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdXaW5CZWhhdmlvcik7CiAK
ICAgICBpZiAocGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24pIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYTcx
NWJjMTJmZGZjNWJlMTRjMjcwODk0N2ZlY2M4YmJlZjlmODljLi5iNzIyN2M3ZjQwOTBjYWI5ODQ3
YzU3YjI1YWI2ZTk5NjhjM2IzOWFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTMg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRl
ZC1pbWFnZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9kaXNh
bGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMv
cmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRlZC5naWY6IEFkZGVkLgorCiAyMDEyLTAyLTEwICBQ
YWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBQb3BTdGF0ZUV2
ZW50LnN0YXRlIHNob3VsZCB1c2UgdGhlIHNhbWUgb2JqZWN0IGFzIGhpc3Rvcnkuc3RhdGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRl
ZC1pbWFnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyODYwODk4OGQ1MDlhOGRiMjJmMmJi
YzUzZTk1MDJmZDEwMDI5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJlIGRpc2FibGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZ2JhU3RyaW5nKGdpZkZyYW1lKSBpcyAnMTM3
MTAwZmYnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQt
aW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNzEzYzc4NWViODFmYzQ2ZTE1ZDQzN2UxOGRmN2Nj
OTMzOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2Fs
bG93LWFuaW1hdGVkLWltYWdlcy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBzdHlsZT0idmlz
aWJpbGl0eTogaGlkZGVuIj5GQUlMPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4iKTsKKworICAgIGZ1
bmN0aW9uIHJnYmFTdHJpbmcgKGEpIHsKKyAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5t
YXAuY2FsbChhLCAoZnVuY3Rpb24gKG4pIHsgcmV0dXJuICgiMDAiK24udG9TdHJpbmcoMTYpKS5z
bGljZSgtMik7IH0pKS5qb2luKCIiKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJp
ZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIsIDAp
OworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGltYWdlID0g
bmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVlbi1yZWQtYW5pbWF0
ZWQuZ2lmPyIgKyBNYXRoLnJhbmRvbSgpOworICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52YXMi
KS5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIC8vIFRoZSBnaWYgaXMgb25lIGZyYW1lIG9m
IGdyZWVuIGFuZCBzZXZlcmFsIGZyYW1lcyBvZiByZWQuCisgICAgICAgIGNvbnRleHQuZHJhd0lt
YWdlKGltYWdlLCAwLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgICAgICAgICAgIGdp
ZkZyYW1lID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSkuZGF0YTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJyZ2JhU3RyaW5nKGdpZkZyYW1lKSIsICInMTM3MTAwZmYnIik7IC8vIEdy
ZWVuLgorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMTUwKTsgLy8g
R3JlZW4gZnJhbWUgb2YgR0lGIGhhcyAxMDBtcyBkdXJhdGlvbgorICAgIH0KKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1h
bmltYXRlZC5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tcmVk
LWFuaW1hdGVkLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmM0NThhZmM4MzgyODUyYzJkODE2OTA5MDQ0YWMz
ZmI1N2RhNmY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4NjcKemNtWj93YmhFSGJHLTVEZl9g
dHYqVCp2P2ZpYSVLeHhJcHdqT1huYjAjfU5NQER+MHFGLUs+SnRiY0hmUUpwJT1lCnooJkVnI2JP
bGNAY0xsRWlTOWdVbjNqPDlaZ35IT3JvWG5DKzF6UUQ2MTE8KXx8Sjs3QUE7SGQkMGpAQFIyRiMy
PQp6Xks/TGxnS1QxOEdIJlQjZEhPQj87eUdKeGIjSzE2PVFuQGJCYWRtJUkrd2pWd2UyMUVAbFFW
Mnp4Nik8Yj8qQj0Kb2VqY3YmQmExJEVfLUx1S1FwYTZ6TT5QQlpJY0wtPDtNZmBzNj5NcGtJLXow
PjBRQDtXSnBjZHoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127013</attachid>
            <date>2012-02-14 12:04:48 -0800</date>
            <delta_ts>2012-02-14 13:18:07 -0800</delta_ts>
            <desc>Fixed chromium and gtk issues</desc>
            <filename>bug-9767-20120214120449.patch</filename>
            <type>text/plain</type>
            <size>56078</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLjc5
OGUzMmNmZGM0NGFhNTNiMTdmMDgyNmU0NGVkODg0NzhlNzgxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wMi0wOCAgQWxl
eGVpIFN2aXRraW5lICA8YXN2aXRraW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1
bTogRml4IE1hYyBydWJiZXIgYmFuZCBvdmVyaGFuZyBkcmF3aW5nIG9uIGNvbXBvc2l0ZWQgcGFn
ZXMgYW5kIHJlLWVuYWJsZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2YTUyZmEyNTI0MWM3
YzRkNzA3NjU2OTdjMzhkMTE1MTY5MDQzM2E0Li5mZGE1M2ZiMGMzODY4ZDVlZjJkYzgyZDE2OTlm
NDgyMTFhNjM1NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBB
bGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX2dldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNfc2V0KToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wMi0wNyAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgbWlzc2luZyBpbml0
aWFsaXphdGlvbiBvZiBlZGl0YWJsZSB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4YzU5
YmI5M2ZiNTBkNGVjYWM5MTIzNmM4NDcyODNiYjkzODdlNzc5Li4zMTZkYzExNTVhNGJhODBlMGY1
NWE2ZTkzZjU3YjJmOWQyOTI3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisKIDIwMTItMDIt
MDggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZSBmb3IgbGlzdCBpdGVtcyB3aG9zZSB0ZXh0IHdyYXBzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYmYxMTczNzIwMjJjMjNiYjE2NGIyYjRkOTgzZmIzZDdlNjllNTg3MS4uODA0NThk
NDE4MTE1M2EwMjg3MDYwNDBkNzkxZmE1NGVhOTkzYzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDEyLTAyLTA3ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MTA2NjgxKTogTnVsbCBjaGVjayBtaXNzaW5nIGluIFtXZWJGcmFtZShXZWJJbnRlcm5hbCkgX3R5
cGluZ1N0eWxlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5NDA2YzkyNDcwYjY4M2E1YTc5ODU5YzFmMTBl
OWQ0NDVkYjU3ZmIzLi5hNTVmZmIxNWY3NTczODVkNzM2YTdhNGZkNDM1NTBkZGFhOGIwYmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFn
ZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6
CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2
ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAg
ICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzOjpzZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6Cisg
ICAgICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmll
dy5jcHA6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MpOgorCiAy
MDEyLTAyLTA4ICBMZW8gRnJhbmNoaSAgPGxmcmFuY2hpQGtkZS5vcmc+CiAKICAgICAgICAgUmVt
b3RlIHdlYiBpbnNwZWN0b3IgcmVlbnRyYW5jeSBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGQz
ZTQ2M2E3MDNmMTU5YTlhNmZlMWM2N2FmOTIwYzFjNTVmYWFiN2EuLjFjYjQ5MWQ1N2FiZTljMDU4
MmY5NDIxNjU4MWU3MDE3YWExN2MzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMi0wMi0wMiAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgc2hvd24gbm90aWZpY2F0aW9ucyB3aGVuIGNv
bnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZDJhN2U2
NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi4wYTZiN2M3OTM4NTBhYjExYzhkYTM4
ZTgxZmQ3YjM3NTY1OGJkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxhdGZvcm1FdmVudCBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IGI0NWIzNTAwNTAwNTE5NzUwOTEzNGNlNDRjNWU5MWIzNjE4ZWQ1YzcuLjdl
N2ExNWY1NWI3ODExYmRiNjBmNTlhNmI2ZGFlMTQ0MTJmNzU2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3Nl
dHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyk6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcyk6
CisgICAgICAgICogV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHd4V2ViVmlldzo6Q3JlYXRlKToKKwogMjAxMi0wMS0zMCAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQuIEJ1aWxk
IGZpeCwgYWRkIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZDI0NTUyNGU4
YTRlYmEzNTViMGY2M2IxZjU1MmY0NjA5YmJkN2VhLi45MzZhMGIzYzU5MmZiNzU5M2NiN2I5YzUw
MGViMmQ5MTllYTBjZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDItMTMg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzU2V0
UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eSk6CisgICAgICAg
ICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0
ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDEyLTAyLTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA2OTIwLCByMTA2OTI0LCByMTA2OTMzLCByMTA2OTM5LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBlYzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi4yNDQx
MWI2YzYwMzdmMWZjN2RhMGY4YWMwYWI5NmFiMzMzOGRjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtOTcyLDYgKzk3Miw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGlt
ZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1p
bHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2Vzc2lvblN0b3JhZ2VRdW90YUVqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dFNob3dzVVJMc0luVG9vbFRpcHNFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRBbGxvd3NB
bmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVF
aQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVk
aXRhYmxlTGlua0JlaGF2aW9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBiNWNiOTYz
YmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi5mYzE5ZGQ0NTRmN2IxOWE5YjBlMWIy
MTdiMjRhMDJhOWJlYWUyNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI4LDYg
KzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9pc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwgbV9hbGxvd3NB
bmltYXRlZEltYWdlcyhmYWxzZSkKICAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4Miwx
MSBAQCB2b2lkIFNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRp
bWVyPFNldHRpbmdzPiopCiAgICAgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFt
ZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
Ym9vbCBhbGxvd3NBbmltYXRlZEltYWdlcykKK3sKKyAgICBtX2FsbG93c0FuaW1hdGVkSW1hZ2Vz
ID0gYWxsb3dzQW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCiB7
CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRz
U2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJlYWVm
OTI2MWE3NDdlMzljZjcwOTc3NjguLjc5MDliMmFiYTIxNzhhYzU1YmI4OGQzZDVkY2NkYzNmYTdm
NTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sKTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAv
LyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcg
aXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2Fs
bG93c0FuaW1hdGVkSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IGE4OTU3NjAxZjYyMWYwNTNhNjA3Zjc2NDY3ZmRkOGYxOTgzNmZiNzMuLjVhZWYwYjIz
YWQ0NDQ3MzJiODBkOGRlNzNjNTdlY2QwYzhkNjQ4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCBi
b29sIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oYm9vbCBza2lwcGluZ0Zy
YW1lcykKICAgICAKICAgICAvLyBTZWUgaWYgYW55b25lIGlzIHN0aWxsIHBheWluZyBhdHRlbnRp
b24gdG8gdGhpcyBhbmltYXRpb24uICBJZiBub3QsIHdlIGRvbid0CiAgICAgLy8gYWR2YW5jZSBh
bmQgd2lsbCByZW1haW4gc3VzcGVuZGVkIGF0IHRoZSBjdXJyZW50IGZyYW1lIHVudGlsIHRoZSBh
bmltYXRpb24gaXMgcmVzdW1lZC4KLSAgICBpZiAoIXNraXBwaW5nRnJhbWVzICYmIGltYWdlT2Jz
ZXJ2ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCisgICAgaWYgKGltYWdlT2JzZXJ2
ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICsrbV9jdXJyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCmluZGV4IDczZDg3NDQxNmY3ODk0OGJmZjMyYTNmMTAxNWNhMWFhNjNjNDc3ZDEu
LmJiNjAxZmRlMmI1NWZlZjllMTYzMDNiMzZkNDA0OWE1NmJjZmQ1ZGQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CkBAIC0yNTczLDkgKzI1NzQsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OndpbGxSZW5kZXJJbWFn
ZShDYWNoZWRJbWFnZSopCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1
bWVudCgpLT5zZXR0aW5ncygpOworCiAgICAgLy8gSWYgd2UncmUgbm90IGluIGEgd2luZG93IChp
LmUuLCB3ZSdyZSBkb3JtYW50IGZyb20gYmVpbmcgcHV0IGluIHRoZSBiL2YgY2FjaGUgb3IgaW4g
YSBiYWNrZ3JvdW5kIHRhYikKICAgICAvLyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGVp
dGhlci4KLSAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRvY3VtZW50
KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKKyAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFn
ZUNhY2hlKCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKSAmJiBzZXR0aW5n
cyAmJiBzZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBS
ZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAyNWFjMDc1MjM5
Njc4N2I2YWNhZDQzMWMzYjcxNjc2YWQyMDBmNDg2Li5iMmVkZDVjMjU0ZTlmNDUzMjgzNmQ3MmMw
ODU2ZGNhODUxOTc2ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29s
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJmMjE4ZWU2NTVjMDJmMTNkZDE2YjJiLi4xNWY5ZTYx
ZmEyMTVjZDk3OTRmNzU3YTUxNDBkMGRhZWNiYTFhMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKIH0KIAordm9pZCBXZWJTZXR0aW5n
c0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQor
eworICAgIG1fc2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNDVl
NjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3YTZmYjA5ZjY1MTNlOS4uY2Q3NjE5NGQ4YTU0YzQ0NTJh
YWQyY2IzNDJlMjg1OGE4YTQ4OWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2Vz
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODljMWMzMGQyOTNhMGNmMjQ1MDcyMTZiMjgyOTNlOWQw
ZmJhODEuLmNkNjNhN2FmZGU4OTJhZGZkODVjYTFkNmUwZjgwMzUxYjAzYzAwMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTcxLDYgKzE3MSw3IEBAIHN0cnVjdCBfRXdrX1Zp
ZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlmOwogICAgICAg
ICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9Mb2FkSW1hZ2Vz
IDogMTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlczogMTsKICAgICAgICAgYm9v
bCBhdXRvU2hyaW5rSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBlbmFibGVBdXRvUmVzaXplV2lu
ZG93IDogMTsKICAgICAgICAgYm9vbCBlbmFibGVEZXZlbG9wZXJFeHRyYXMgOiAxOwpAQCAtNjI5
LDYgKzYzMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2
X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcHJpdi0+dmlld3BvcnRB
cmd1bWVudHMudXNlclNjYWxhYmxlID0gdHJ1ZTsKIAogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHByaXYtPnBhZ2VTZXR0aW5n
cy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4NTktMSIpOwogICAgIHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTIpOwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKQEAgLTY3Myw2ICs2NzUsNyBAQCBzdGF0
aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTYW5zU2VyaWYgPSBl
aW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAg
ICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0
ZWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKCk7CiAg
ICAgcHJpdi0+c2V0dGluZ3MuYXV0b1Nocmlua0ltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCgpOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJs
ZUF1dG9SZXNpemVXaW5kb3cgPSB0cnVlOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVs
b3BlckV4dHJhcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
OwpAQCAtMTkyOCw2ICsxOTMxLDI1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVk
X2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgcmV0dXJu
IHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgRWluYV9Cb29sIGFsbG93KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIGFsbG93ID0gISFhbGxvdzsKKyAgICBp
ZiAocHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0ZWRJbWFnZXMgIT0gYWxsb3cpIHsKKyAgICAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvdyk7Cisg
ICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gYWxsb3c7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdXRv
X3Nocmlua19pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1
ODNiNTNkNmMuLmI4NzdiZDVkY2U4Mzg5MTJiMjM2NGQ3ZmVjZmZkNTJlNjI0NzQyYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMzUxLDYgKzEzNTEsMjcgQEAgRUFQSSBFaW5hX0Jv
b2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9p
bWFnZXNfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKIAogLyoqCisg
KiBRdWVyaWVzIGlmIHRoZSBpbWFnZXMgYXJlIGFsbG93ZWQgdG8gYW5pbWF0ZS4KKyAqCisgKiBA
cGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRv
IGFuaW1hdGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2VzIGFyZSBh
bGxvd2VkIHRvIGFuaW1hdGUsCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3Nf
YW5pbWF0ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQWxs
b3dzL2Rpc2FsbG93cyBhbmltYXRpb24gb2YgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIHNldCB3aGV0aGVyIGltYWdlcyBjYW4gYmUgYW5pbWF0ZWQgb3Igbm90CisgKiBA
cGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYW5pbWF0aW9uIG9mIGltYWdl
cywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNf
c2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMg
aWYgdGhlIGltYWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBv
IHZpZXcgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRp
Y2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CmluZGV4IGQ5MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc4NDg4OGQw
ZTcyODA4ZGIyZDA5ZDI4NzhhZDIzZjRmZDBiYWYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsK
ICAgICBQUk9QX01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2
X0RQSSwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFU
RURfSU1BR0VTLAogICAgIFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAogICAgIFBST1BfUFJJTlRf
QkFDS0dST1VORFMsCiAgICAgUFJPUF9FTkFCTEVfU0NSSVBUUywKQEAgLTMzNCw2ICszMzUsMTUg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNl
dHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQUxMT1dTX0FO
SU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRvIGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dG8tc2hyaW5rLWltYWdlcyIsCkBAIC0xMDExLDYgKzEwMjEsOSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbgogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAg
ICBwcml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAg
ICAgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAg
ICAgICAgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
cHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4ZTEyNWFmYzdjNzI2MzEu
LmNlNDViNTJjYTc4NzUxZDc0NDZiZTQ4MTMyNjFiOWU2MGQ1YTIxZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKQEAgLTQy
LDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGd1aW50
IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5mb3JjZTk2RFBJOwogICAg
IGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFsbG93c0FuaW1hdGVkSW1h
Z2VzOwogICAgIGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRC
YWNrZ3JvdW5kczsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGMyMjQ2MWM3NDk4NzYwODFkOTdiNDYw
NWU5MjBjMmYxYzQ1N2I5ZDAuLmI4MzUwMzY0ZTM2MTQ5M2EwYTE5YjQzYzEwZmUwMDAwMjdiNzA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMy
MDAsNiArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGlu
Z3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJp
ZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7
CiAgICAgY29yZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5z
ZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3Jl
U2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHNldHRpbmdzUHJpdmF0ZS0+YWxsb3dz
QW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJ
bWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgIGNvcmVT
ZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5nc1ByaXZhdGUtPnByaW50
QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzZXR0aW5n
c1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDgwY2M5MzU1YWNiYmQ3NDFkN2JlODlkYjc4ZmI3ZDI0MTcyNmI1
OGYuLmM1NGZhZGYwNjViNTBhMGY2OWViMmEwNGRhYWE1ZjY0MGI0OTIyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI4OCwxMiArMjg4LDEyIEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogLSAo
dm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClmbGFnOwogCiAvKiEKLSAgICBAbWV0aG9kIGFs
bG93QW5pbWF0ZWRJbWFnZXMKKyAgICBAbWV0aG9kIGFsbG93c0FuaW1hdGVkSW1hZ2VzCiAqLwog
LSAoQk9PTClhbGxvd3NBbmltYXRlZEltYWdlczsKIAogLyohCi0gICAgQG1ldGhvZCBzZXRBbGxv
d0FuaW1hdGVkSW1hZ2VzOgorICAgIEBtZXRob2Qgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6CiAg
ICAgQHBhcmFtIGZsYWcKICovCiAtICh2b2lkKXNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOihCT09M
KWZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDUyNWNiYTlmYzM4
OTRhYTRiNGZiNGUwNWEyY2VlNmMwYmQ4YzgwMi4uZjk3OGUzOWZkYTJjOGI5ZWI4ZmJkZThjMTFl
ZWY5M2QzMGY3N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQy
MSw2ICsxNDIxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVp
cmsoKQogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHNlcmlm
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZl
cmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseV0pOwor
ICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbcHJlZmVyZW5jZXMgYWxsb3dz
QW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFByaW50QmFj
a2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFja2dyb3VuZHNdKTsKICAgICBzZXR0
aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVS
ZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDg5ZTk4
MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAuLjAxYTE5YzhkZTdmMTUxMjdmZDMy
ODRmZDZiNGFkODc5MWViMGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNw
cApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpKTsKICAgICAgICAgc2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7CiAKKyAgICAgICAgdmFsdWUgPSBh
dHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKSk7CisgICAgICAgIHNldHRpbmdz
LT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNldHRpbmdzLT5zZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3IEBAIFFXZWJTZXR0aW5nczo6
UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6
Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkpOwogCiAgICAgZC0+YXR0cmli
dXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywgdHJ1ZSk7CisgICAgZC0+
YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcywgdHJ1
ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVu
YWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Okph
dmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1NjNm
OThmLi5kYzIzY2YxMjBkODI0ZGQyYmNhZjU1NTliNDdiYzFhOWJlNDYxYzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAgICAg
ICBBbGxvd3NBbmltYXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCiAgICAg
ICAgIEphdmFFbmFibGVkLAogICAgICAgICBQbHVnaW5zRW5hYmxlZCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IGFi
ZjliYjIxOGEzNjFiMWE0NDdhYzk5NDFjMjAzZTNmZGYyN2Y3M2MuLmYxYTU2YjllYTM1YjMxNDBi
ZmM5ZDY0ZWUxZmU2NmIyMWJjNjI2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNzI3LDYgKzcyNyw3IEBAIFFX
ZWJQYWdlKiBRRGVjbGFyYXRpdmVXZWJWaWV3OjpwYWdlKCkgY29uc3QKICAgICBccW1scHJvcGVy
dHkgaW50IFdlYlZpZXc6OnNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRTaXplCiAKICAgICBccW1s
cHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hdXRvTG9hZEltYWdlcworICAgIFxxbWxw
cm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzCiAgICAg
XHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNjcmlwdEVuYWJsZWQKICAg
ICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZhRW5hYmxlZAogICAgIFxx
bWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5o
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaApp
bmRleCA4MzQ2M2RiOTdiYjY0ZGE2YzBkYmUxNmVlZGY5NjVmNDAxMTZhNzlkLi5hNjA3MzUzYzY5
NWU1OGU0OTNkNzBkNzM3ZTEzOTkxNGEyNzI3NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKQEAgLTMwNiw2ICszMDYs
NyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1YmxpYyBRT2JqZWN0IHsKICAg
ICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFEIGRlZmF1bHRGaXhlZEZv
bnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAgICAgUV9QUk9QRVJUWShi
b29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0QXV0b0xvYWRJ
bWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxs
b3dzQW5pbWF0ZWRJbWFnZXMgV1JJVEUgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpCiAgICAgUV9Q
Uk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNjcmlwdEVuYWJsZWQgV1JJ
VEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFFbmFibGVk
IFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShi
b29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUgc2V0UGx1Z2luc0Vu
YWJsZWQpCkBAIC0zNDgsNiArMzQ5LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBhdXRvTG9hZElt
YWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgb24pIHsgcy0+
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIG9uKTsgfQorICAgIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRl
KFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOyB9CisgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3Jp
cHRFbmFibGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBz
LT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAg
ICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2
ZXdlYnZpZXcuY3BwCmluZGV4IGIzOGRiMWRhZmZkMDNjYmZhYzVhY2Q0OWMzOThkMGM3YzczM2Rh
OTUuLmM5MWRhYjQxYWY4NzgyNzYxMDExNjVlMWFiM2JiMzA2MzI3ZmM2OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0
aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3
ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDgzLDYgKzQ4Myw3IEBAIHZv
aWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0
IHNldHRpbmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJh
dXRvTG9hZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
YWxsb3dzQW5pbWF0ZWRJbWFnZXMiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImRldmVsb3BlckV4dHJhc0VuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3Ry
aW5nOjpmcm9tQXNjaWkoImphdmFFbmFibGVkIikKICAgICAgICAgICAgICAgICAgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJqYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNzZlYWNmZmViYmVjNmQw
ZWE5YjQ2YWIzZjE4N2YzMTVmZDQ4ZGE1Ni4uMzFjYjRmMmM1OGUyZWI2Y2YyMjI3YTJiNDIwMjRj
ZDMyN2Y5ODg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5Igog
I2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSAiV2Vi
S2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktp
dERpc3BsYXlJbWFnZXNLZXkgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCisjZGVmaW5lIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkiCiAj
ZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgIldlYktpdExvYWRTaXRlSWNvbnNLZXkiCiAj
ZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkgIldlYktp
dEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAjZGVmaW5lIFdlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5ICJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKaW5kZXggNTdhY2MxMzE4MDAzMjAzZjMwMjU2Y2ExMjYxNjcyNzUxNzgw
Nzg2NC4uYTUyZDVmMWVlMjBkNTA5ODJjYjA3OTUwN2I3NTUxMjdiOTI5NmFmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKQEAgLTQ2NzUsNiArNDY3NSwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
ICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZlcmVuY2VzLT5hbGxvd3NBbmltYXRlZEltYWdl
cygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoISFlbmFibGVkKTsKKwogICAgIGhy
ID0gcHJlZmVyZW5jZXMtPnVzZXJTdHlsZVNoZWV0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYg
KEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmlu
ZGV4IGRkZTM3OGYwMmJmYmNlNjlhOThlMWFmZmJlNWI1NDA4MWUyMTg0ZmUuLjIxYzc4MmYzNDA4
OGRlMjBlYjFjM2U2ZDJhNjI3NzA1MDcxMTNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApA
QCAtMTAzLDYgKzEwMyw3IEBAIFdlYlZpZXc6OldlYlZpZXcoSFdORCBod25kLCB1bnNpZ25lZCBm
ZWF0dXJlcykKICAgICBzZXR0aW5ncy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKICAg
ICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyh0cnVlKTsKIAogICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSog
bG9hZGVyQ2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsK
ICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UsIDAsIGxvYWRl
ckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDg5MWE4NjdhOGVhMjI5MDk0
OGI1MzhiNmU5OTRjMjRkY2M1NDI3ODUuLjMzNjYxNzdhYzcxNmU4ZGI5MDRhYjRmODllOTQwOWVj
NzA3NTgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCkBAIC04OCw2ICs4OCwyMCBAQCBi
b29sIHd4V2ViU2V0dGluZ3M6OkxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogICAgIAordm9pZCB3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQoreworICAgIGlmIChtX3NldHRp
bmdzKQorICAgICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvd3NB
bmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJ
bWFnZXMoKSBjb25zdAoreworICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCB3eFdlYlNldHRpbmdzOjpTZXRKYXZhU2NyaXB0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKaW5kZXggYjcwZGRl
NWEzZTVjZjJlMzMwMmYxNGViYjUzNjg5OGE0NTI1YWIzMi4uMDNlMWU1MDY5Y2ZlYjM1MGIxZTEw
M2VhZjZkNDlhMTIzYTk2Y2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaApAQCAtMTExLDYgKzEx
MSwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25z
dDsKICAgICAKICAgICAvKioKKyAgICAgICAgU2V0cyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgYXJl
IGFsbG93ZWQgdG8gYmUgYW5pbWF0ZWQuCisgICAgKi8KKyAgICB2b2lkIFNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBu
b3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBB
bGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0OworCisgICAgLyoqCiAgICAgICAgIFNldHMgd2hl
dGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBKYXZhU2NyaXB0IGNvZGUuCiAgICAgKi8KICAg
ICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKaW5kZXgg
OTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2Y2Y4ZWQ4NzhhNy4uNThlMTg2ZDA1ODFhYzBi
ZGM4ZTgyNjk4NTgxMDkyZjliMzliM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3BwCkBAIC00MDcsNiAr
NDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0ZSh3eFdpbmRvdyogcGFyZW50LCBjb25zdCB3
eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4UG8KICAgICAvLyBldmVudHVhbGx5CiAgICAg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0gbV9pbXBsLT5wYWdlLT5zZXR0aW5ncygpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6
ZSgxNik7CiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgiVGltZXMgTmV3IFJvbWFu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCAw
Y2RjOTc1OTRlMjc0OGRiMDk0YTQ0M2U0MWJhODU2NjE5Yzk0YmVkLi4zZTVlOTQyZTNmMTIyOGEx
ZGYwOTAxNGU0MGZlZTM1MzkyNTkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAj
ZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNy
byhKYXZhU2NyaXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUp
IFwKICAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFsbG93c0FuaW1hdGVkSW1h
Z2VzLCBhbGxvd3NBbmltYXRlZEltYWdlcywgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3Jv
KExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
ICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNmNGZlNjZkZjQ5OTllYmJlOTVhLi4zYzhh
ZmQ5YjY5OTg5YTI0NWYwMmQxNzFkZmQ1YjczNDEyYzU2Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC03OCw2ICs3OCwxNiBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCitib29s
IFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxv
d3NBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJl
bmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0NmQxMDIxYTdkZDg3OTc5MDQ5
MjUuLjc3YzExYjkzNDUxZGJmYzc5ODdjMGM4NTRlMzdlYWQ0NjAxMWRmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaApAQCAtNDksNiArNDks
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwor
CiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRM
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQ
cmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNl
dHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIwOTEyMmQzZjMyZTQ1YzUz
Li4zZTQyNGEyZjkxM2I2NGIzYjk0OGI1MTQ3ZGRiMTkxYjQwY2U4Y2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC03
Myw2ICs3Myw3IEBAIGVudW0gewogCiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVCwKICAgICBQ
Uk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAog
ICAgIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkcsCiAgICAgUFJP
UF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05fQ0FDSEUsCiAgICAgUFJPUF9FTkFCTEVf
SFRNTDVfTE9DQUxfU1RPUkFHRSwKQEAgLTExNiw2ICsxMTcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRTZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25z
dCBHVmFsdQogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRF
RF9JTUFHRVM6CisgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2lt
YWdlcyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkc6
CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9s
b2FkX3NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAg
ICAgYnJlYWs7CkBAIC0yMjMsNiArMjI3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NH
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAg
ICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2VzKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXMoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNf
aWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpA
QCAtMzYzLDYgKzM3MCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmFsbG93cy1hbmltYXRlZC1p
bWFnZXM6CisgICAgICoKKyAgICAgKiBDb250cm9scyB3aGV0aGVyIGFuaW1hdGVkIGltYWdlcyBz
aG91bGQgYmUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImFsbG93cy1hbmltYXRlZC1p
bWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRv
IGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KworICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmxvYWQtaWNvbnMtaWdub3JpbmctaW1h
Z2UtbG9hZC1zZXR0aW5nOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2l0
ZSBjYW4gbG9hZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKQEAgLTk0MCw2ICs5NjAsNDEgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNl
dHRpbmdzLCBnYm9vbGVhbiBlbmEKIH0KIAogLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXM6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisg
KgorICogR2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3dzLWFuaW1hdGVkLWltYWdlcyBwcm9w
ZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBJZiBhbmltYXRpb24gb2YgaW1hZ2VzIGlzIGFs
bG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdz
X2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBG
QUxTRSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2Vz
KHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX3NldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzOgorICogQHNldHRpbmdzOiBhICNX
ZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhl
ICNXZWJLaXRTZXR0aW5nczphbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyhXZWJLaXRTZXR0
aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGFsbG93KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IFdLUHJl
ZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7
CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykKKyAgICAgICAgcmV0dXJuOworCisgICAg
V0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdl
dCgpLCBhbGxvdyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiKTsKK30KKworLyoqCiAgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0
X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nOgogICogQHNldHRpbmdzOiBh
ICNXZWJLaXRTZXR0aW5ncwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDI3Y2I3Yzc1YTE5MWRiZDNlNGEyNDhmMzJlODJj
OTBkZDViNTVjMzAuLmE3NGE1Nzc3MThhZjg4MjMyM2Y1ZDY2MjM3Y2Q2ODY2NmFlOTA3OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aApAQCAtOTIsNiArOTIsMTMgQEAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRfaW1hZ2Vz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiAgICAgICAgZW5hYmxlZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5n
c19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGFsbG93KTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5n
X2ltYWdlX2xvYWRfc2V0dGluZyAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiAKIFdF
QktJVF9BUEkgdm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNTJjZDg5ZWU3MTli
NzJmZmY1ZDhkYWFmMzdjMzk0ZDkzMmQ4ZWZlNi4uYmVmNjNlOTEzYzlhZDRlOTE5MWZiMDIyNTk4
YzlkNzI1ZGZkMjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNTYsNiArMTU2
LDggQEAgd2Via2l0X3NldHRpbmdzX25ldwogd2Via2l0X3NldHRpbmdzX25ld193aXRoX3NldHRp
bmdzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2F1dG9fbG9hZF9pbWFnZXMKIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcword2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0
ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMKIHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxl
X2h0bWw1X2RhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZmU1NzY0ZjlkMGU2MWU1NjVmMmVkM2Uz
YzhmOThkZWUyNS4uMTRlM2ZhYzUxYzAyNDRiNzJiZDMyNGRiMDJlZTQ0NTBlYTczMDUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
LmNwcApAQCAtNDAsNiArNDAsOCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RB
dHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgc3dpdGNo
IChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7Cisg
ICAgY2FzZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgSmF2
YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlw
dEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKQEAg
LTY2LDYgKzY4LDkgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIEF1dG9Mb2Fk
SW1hZ2VzOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxs
b3dBbmltYXRlZEltYWdlczoKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVk
SW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmOGE4NmFl
NjZhOGY1MDUzODFjNGEzZjg2ZDM0OGIxNzU2MDJhOTJjLi4yZDRiM2MwMTA0NDczMGMwYzhiMmNj
MmNkMmRkZDYzMWQ0NmJmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0
dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgpKSk7CisgICAgc2V0dGluZ3Mt
PnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YWxsb3dzQW5pbWF0ZWRJbWFnZXNLZXkoKSkpOwogICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJs
ZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRLZXkoKSkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0NTM2NzI0Y2Fk
NTNhNGY0YWY3NmVmOTIzMzRhZjI3YTQyOGU4MGUuLjA2ZmJkN2Y1Y2JlODg1ZWE5MjBiNzQ1ZTBk
YzUzYjk0ZGVmMWZjMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBh
YmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHBy
ZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6
CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlBh
Z2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToK
KwogMjAxMi0wMi0wOCAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBVcHN0cmVhbSBEdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZmI1MmNm
ZGU5MzRiYTg1MGQ4NWMyODg5MzBhZDY1ZGYwOGU5NmJiZi4uMzNjNGI5YWQ2MzMzMzY4ZmM1Y2E1
MWVhMDQ0OTEwMDVjZjllYjE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTIzOSw2ICsyMzksNyBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgc2V0
dGluZ3MtPnNldFRleHRSZWZsb3dNb2RlKFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RGlzYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5n
cy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRB
bGxvd3NBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0
T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCBiMDM0N2M4NTM2MGM0MmUxNGNlZjZhODBjYWUzNjAyMTcxYzg5NjQwLi4y
YjEzZjk2MzMxNThmOTI4MWNhNTI4OTViZTQ5NGMxYzQ1YmE4MDdjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNTA3LDYgKzE1MDcsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZz
LT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9v
bCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikK
ICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jv
b2wodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkiKQorICAgICAgICBwcmVmcy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBj
cHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFBsdWdp
bnNFbmFibGVkIikKICAgICAgICAgcHJlZnMtPnBsdWdpbnNFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRET01QYXN0ZUFsbG93ZWRQ
cmVmZXJlbmNlS2V5IikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCA4NzJlYmZiNGFhNWZkYTA2YzU5ZWJiN2FiMzdjODkxYzMxZTkw
YTQ0Li4wMzMzMmQxYjQyOTQwOWYyY2ExZGI2MmJkMzVjMjQ0YjQwZDY5N2E1IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC04NSw2
ICs4NSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkKICAgICBqYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKICAgICBqYXZhU2NyaXB0RW5hYmxlZCA9
IHRydWU7CiAgICAgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKKyAgICBhbGxvd3NB
bmltYXRlZEltYWdlcyA9IHRydWU7CiAgICAgbG9jYWxTdG9yYWdlRW5hYmxlZCA9IHRydWU7CiAg
ICAgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkID0gdHJ1ZTsKICAgICBwbHVnaW5z
RW5hYmxlZCA9IHRydWU7CkBAIC0xOTcsNiArMTk4LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6
YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5h
YmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdl
cyhhbGxvd3NBbmltYXRlZEltYWdlcyk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZUVu
YWJsZWQobG9jYWxTdG9yYWdlRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZChvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxlZChwbHVnaW5zRW5hYmxlZCk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBlZTA0
YTIwOTQ2NmJiYjViYzg4ZDE3YjRlMGQzMzJmNjJhM2JkZTkxLi42ZTM4NmFlYTQ1NmE2NzJlZDZl
NGMwYzA2MjNhNzdlNGRhZmY3NDY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IFdlYlByZWZlcmVu
Y2VzIHsKICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7CiAg
ICAgYm9vbCBqYXZhU2NyaXB0RW5hYmxlZDsKICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseTsKKyAgICBib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzOwogICAgIGJvb2wgbG9jYWxTdG9y
YWdlRW5hYmxlZDsKICAgICBib29sIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDsK
ICAgICBib29sIHBsdWdpbnNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCmluZGV4IDMwMTJhNzBkODhiNDE2MzI0M2VlOGFmMWM1NGFiMWUwZjY0MjEx
MjguLjZmYzU0NDRjY2U1YzBhOWIzMjdkMzhjY2VmMmFlNzQ4ZGJlZjk3MTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTYyOSw2ICs2MjksNyBAQCBz
dGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBbcHJlZmVy
ZW5jZXMgc2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOllFU107CiAgICAgW3By
ZWZlcmVuY2VzIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk6WUVTXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0
QWxsb3dzQW5pbWF0ZWRJbWFnZXM6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TG9hZHNTaXRl
SWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2U6Tk9dOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkOk5PXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVt
cFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjFkYThkMDRiNGNiNzQ3NWU3M2U0MGY2OTljYWI3YWJl
MTU3MGQ5My4uMDM4MDE2MTA4M2QxMTMzOGUxMmQzOWJhNzhiZGZjZmIxYTQ5ZjA5MSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTE4OSw2ICsx
ODksNyBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogICAgIHNldHRpbmdzKCktPnJl
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQpOwogICAgIHNldHRpbmdz
KCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6SmF2YXNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZCk7CiAgICAgc2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcyk7CisgICAgc2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdz
OjpBbGxvd3NBbmltYXRlZEltYWdlcyk7CiAgICAgc2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUo
UVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHkpOwogCiAgICAgbV9kcnQtPmxheW91dFRlc3RDb250
cm9sbGVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDFlYzVjNWU2MDdlZjZkYjc0NGNl
ZWZkOTZmZGI4NTQzYzljNmFmYWYuLmEwNWE0NWQ1MGVjMTMyZDE5M2U2NDRlM2RiYjFlZmQ1ZDM2
MWY0N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApA
QCAtODU1LDYgKzg1NSw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBwcmVmZXJlbmNlcy0+c2V0
VGFic1RvTGlua3MoRkFMU0UpOwogICAgIHByZWZlcmVuY2VzLT5zZXRTaG91bGRQcmludEJhY2tn
cm91bmRzKFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkoVFJVRSk7CisgICAgcHJlZmVyZW5jZXMtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFRSVUUp
OwogICAgIHByZWZlcmVuY2VzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ1dpbkJl
aGF2aW9yKTsKIAogICAgIGlmIChwZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbikgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGZhNzE1YmMxMmZkZmM1YmUxNGMyNzA4OTQ3ZmVjYzhiYmVmOWY4OWMuLmI3MjI3Yzdm
NDA5MGNhYjk4NDdjNTdiMjVhYjZlOTk2OGMzYjM5YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAg
ICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2Rpc2Fs
bG93LWFuaW1hdGVkLWltYWdlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tcmVkLWFuaW1hdGVkLmdpZjogQWRkZWQuCisKIDIw
MTItMDItMTAgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgogCiAgICAgICAg
IFBvcFN0YXRlRXZlbnQuc3RhdGUgc2hvdWxkIHVzZSB0aGUgc2FtZSBvYmplY3QgYXMgaGlzdG9y
eS5zdGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5p
bWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2Fs
bG93LWFuaW1hdGVkLWltYWdlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI4NjA4OTg4ZDUw
OWE4ZGIyMmYyYmJjNTNlOTUwMmZkMTAwMjk5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdCB0aGF0IGltYWdlIGFuaW1hdGlvbiBjYW4gYmUgZGlzYWJsZWQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJnYmFTdHJpbmcoZ2lmRnJh
bWUpIGlzICcxMzcxMDBmZicKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxs
b3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxv
dy1hbmltYXRlZC1pbWFnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDA3MTNjNzg1ZWI4MWZjNDZlMTVk
NDM3ZTE4ZGY3Y2M5MzM5ZjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8Y2FudmFz
IHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW4iPkZBSUw8L2NhbnZhcz4KKzxzY3JpcHQ+CisgICAg
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJlIGRpc2FibGVkLiIp
OworCisgICAgZnVuY3Rpb24gcmdiYVN0cmluZyAoYSkgeworICAgICAgICByZXR1cm4gQXJyYXku
cHJvdG90eXBlLm1hcC5jYWxsKGEsIChmdW5jdGlvbiAobikgeyByZXR1cm4gKCIwMCIrbi50b1N0
cmluZygxNikpLnNsaWNlKC0yKTsgfSkpLmpvaW4oIiIpOworICAgIH0KKworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJl
bmNlS2V5IiwgMCk7CisKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2
YXIgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL2dyZWVu
LXJlZC1hbmltYXRlZC5naWY/IiArIE1hdGgucmFuZG9tKCk7CisgICAgaW1hZ2Uub25sb2FkID0g
ZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgY29udGV4dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7CisKKyAgICAgICAgLy8gVGhlIGdpZiBpcyBv
bmUgZnJhbWUgb2YgZ3JlZW4gYW5kIHNldmVyYWwgZnJhbWVzIG9mIHJlZC4KKyAgICAgICAgY29u
dGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAg
ICAgICAgICAgZ2lmRnJhbWUgPSBjb250ZXh0LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKS5kYXRh
OworICAgICAgICAgICAgc2hvdWxkQmUoInJnYmFTdHJpbmcoZ2lmRnJhbWUpIiwgIicxMzcxMDBm
ZiciKTsgLy8gR3JlZW4uCisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9
LCAxNTApOyAvLyBHcmVlbiBmcmFtZSBvZiBHSUYgaGFzIDEwMG1zIGR1cmF0aW9uCisgICAgfQor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMv
Z3JlZW4tcmVkLWFuaW1hdGVkLmdpZiBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNl
cy9ncmVlbi1yZWQtYW5pbWF0ZWQuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YzQ1OGFmYzgzODI4NTJjMmQ4
MTY5MDkwNDRhYzNmYjU3ZGE2ZjYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDg2Nwp6Y21aP3di
aEVIYkctNURmX2B0dipUKnY/ZmlhJUt4eElwd2pPWG5iMCN9Tk1ARH4wcUYtSz5KdGJjSGZRSnAl
PWUKeigmRWcjYk9sY0BjTGxFaVM5Z1VuM2o8OVpnfkhPcm9YbkMrMXpRRDYxMTwpfHxKOzdBQTtI
ZCQwakBAUjJGIzI9CnpeSz9MbGdLVDE4R0gmVCNkSE9CPzt5R0p4YiNLMTY9UW5AYkJhZG0lSSt3
alZ3ZTIxRUBsUVYyeng2KTxiPypCPQpvZWpjdiZCYTEkRV8tTHVLUXBhNnpNPlBCWkljTC08O01m
YHM2Pk1wa0ktejA+MFFAO1dKcGNkegoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127026</attachid>
            <date>2012-02-14 13:18:18 -0800</date>
            <delta_ts>2012-02-14 14:08:54 -0800</delta_ts>
            <desc>Missing fixes from last patch</desc>
            <filename>bug-9767-20120214131818.patch</filename>
            <type>text/plain</type>
            <size>56074</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLjc5
OGUzMmNmZGM0NGFhNTNiMTdmMDgyNmU0NGVkODg0NzhlNzgxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wMi0wOCAgQWxl
eGVpIFN2aXRraW5lICA8YXN2aXRraW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1
bTogRml4IE1hYyBydWJiZXIgYmFuZCBvdmVyaGFuZyBkcmF3aW5nIG9uIGNvbXBvc2l0ZWQgcGFn
ZXMgYW5kIHJlLWVuYWJsZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2YTUyZmEyNTI0MWM3
YzRkNzA3NjU2OTdjMzhkMTE1MTY5MDQzM2E0Li5mZGE1M2ZiMGMzODY4ZDVlZjJkYzgyZDE2OTlm
NDgyMTFhNjM1NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBB
bGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX2dldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNfc2V0KToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wMi0wNyAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgbWlzc2luZyBpbml0
aWFsaXphdGlvbiBvZiBlZGl0YWJsZSB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4YzU5
YmI5M2ZiNTBkNGVjYWM5MTIzNmM4NDcyODNiYjkzODdlNzc5Li4zMTZkYzExNTVhNGJhODBlMGY1
NWE2ZTkzZjU3YjJmOWQyOTI3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisKIDIwMTItMDIt
MDggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZSBmb3IgbGlzdCBpdGVtcyB3aG9zZSB0ZXh0IHdyYXBzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYmYxMTczNzIwMjJjMjNiYjE2NGIyYjRkOTgzZmIzZDdlNjllNTg3MS4uODA0NThk
NDE4MTE1M2EwMjg3MDYwNDBkNzkxZmE1NGVhOTkzYzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDEyLTAyLTA3ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MTA2NjgxKTogTnVsbCBjaGVjayBtaXNzaW5nIGluIFtXZWJGcmFtZShXZWJJbnRlcm5hbCkgX3R5
cGluZ1N0eWxlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5NDA2YzkyNDcwYjY4M2E1YTc5ODU5YzFmMTBl
OWQ0NDVkYjU3ZmIzLi5hNTVmZmIxNWY3NTczODVkNzM2YTdhNGZkNDM1NTBkZGFhOGIwYmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFn
ZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6
CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2
ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAg
ICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzOjpzZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6Cisg
ICAgICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmll
dy5jcHA6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MpOgorCiAy
MDEyLTAyLTA4ICBMZW8gRnJhbmNoaSAgPGxmcmFuY2hpQGtkZS5vcmc+CiAKICAgICAgICAgUmVt
b3RlIHdlYiBpbnNwZWN0b3IgcmVlbnRyYW5jeSBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGQz
ZTQ2M2E3MDNmMTU5YTlhNmZlMWM2N2FmOTIwYzFjNTVmYWFiN2EuLjFjYjQ5MWQ1N2FiZTljMDU4
MmY5NDIxNjU4MWU3MDE3YWExN2MzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMi0wMi0wMiAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgc2hvd24gbm90aWZpY2F0aW9ucyB3aGVuIGNv
bnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZDJhN2U2
NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi4wYTZiN2M3OTM4NTBhYjExYzhkYTM4
ZTgxZmQ3YjM3NTY1OGJkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxhdGZvcm1FdmVudCBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IGI0NWIzNTAwNTAwNTE5NzUwOTEzNGNlNDRjNWU5MWIzNjE4ZWQ1YzcuLjdl
N2ExNWY1NWI3ODExYmRiNjBmNTlhNmI2ZGFlMTQ0MTJmNzU2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3Nl
dHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyk6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcyk6
CisgICAgICAgICogV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHd4V2ViVmlldzo6Q3JlYXRlKToKKwogMjAxMi0wMS0zMCAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQuIEJ1aWxk
IGZpeCwgYWRkIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZDI0NTUyNGU4
YTRlYmEzNTViMGY2M2IxZjU1MmY0NjA5YmJkN2VhLi45MzZhMGIzYzU5MmZiNzU5M2NiN2I5YzUw
MGViMmQ5MTllYTBjZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDItMTMg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzU2V0
UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eSk6CisgICAgICAg
ICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0
ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDEyLTAyLTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA2OTIwLCByMTA2OTI0LCByMTA2OTMzLCByMTA2OTM5LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBlYzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi4yNDQx
MWI2YzYwMzdmMWZjN2RhMGY4YWMwYWI5NmFiMzMzOGRjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtOTcyLDYgKzk3Miw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGlt
ZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1p
bHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2Vzc2lvblN0b3JhZ2VRdW90YUVqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dFNob3dzVVJMc0luVG9vbFRpcHNFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRBbGxvd3NB
bmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVF
aQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVk
aXRhYmxlTGlua0JlaGF2aW9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBiNWNiOTYz
YmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi5mYzE5ZGQ0NTRmN2IxOWE5YjBlMWIy
MTdiMjRhMDJhOWJlYWUyNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI4LDYg
KzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9pc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwgbV9hbGxvd3NB
bmltYXRlZEltYWdlcyhmYWxzZSkKICAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4Miwx
MSBAQCB2b2lkIFNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRp
bWVyPFNldHRpbmdzPiopCiAgICAgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFt
ZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
Ym9vbCBhbGxvd3NBbmltYXRlZEltYWdlcykKK3sKKyAgICBtX2FsbG93c0FuaW1hdGVkSW1hZ2Vz
ID0gYWxsb3dzQW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCiB7
CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRz
U2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJlYWVm
OTI2MWE3NDdlMzljZjcwOTc3NjguLjc5MDliMmFiYTIxNzhhYzU1YmI4OGQzZDVkY2NkYzNmYTdm
NTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sKTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAv
LyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcg
aXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2Fs
bG93c0FuaW1hdGVkSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IGE4OTU3NjAxZjYyMWYwNTNhNjA3Zjc2NDY3ZmRkOGYxOTgzNmZiNzMuLjVhZWYwYjIz
YWQ0NDQ3MzJiODBkOGRlNzNjNTdlY2QwYzhkNjQ4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCBi
b29sIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oYm9vbCBza2lwcGluZ0Zy
YW1lcykKICAgICAKICAgICAvLyBTZWUgaWYgYW55b25lIGlzIHN0aWxsIHBheWluZyBhdHRlbnRp
b24gdG8gdGhpcyBhbmltYXRpb24uICBJZiBub3QsIHdlIGRvbid0CiAgICAgLy8gYWR2YW5jZSBh
bmQgd2lsbCByZW1haW4gc3VzcGVuZGVkIGF0IHRoZSBjdXJyZW50IGZyYW1lIHVudGlsIHRoZSBh
bmltYXRpb24gaXMgcmVzdW1lZC4KLSAgICBpZiAoIXNraXBwaW5nRnJhbWVzICYmIGltYWdlT2Jz
ZXJ2ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCisgICAgaWYgKGltYWdlT2JzZXJ2
ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICsrbV9jdXJyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCmluZGV4IDczZDg3NDQxNmY3ODk0OGJmZjMyYTNmMTAxNWNhMWFhNjNjNDc3ZDEu
LmJiNjAxZmRlMmI1NWZlZjllMTYzMDNiMzZkNDA0OWE1NmJjZmQ1ZGQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CkBAIC0yNTczLDkgKzI1NzQsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OndpbGxSZW5kZXJJbWFn
ZShDYWNoZWRJbWFnZSopCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1
bWVudCgpLT5zZXR0aW5ncygpOworCiAgICAgLy8gSWYgd2UncmUgbm90IGluIGEgd2luZG93IChp
LmUuLCB3ZSdyZSBkb3JtYW50IGZyb20gYmVpbmcgcHV0IGluIHRoZSBiL2YgY2FjaGUgb3IgaW4g
YSBiYWNrZ3JvdW5kIHRhYikKICAgICAvLyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGVp
dGhlci4KLSAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRvY3VtZW50
KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKKyAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFn
ZUNhY2hlKCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKSAmJiBzZXR0aW5n
cyAmJiBzZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBS
ZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAyNWFjMDc1MjM5
Njc4N2I2YWNhZDQzMWMzYjcxNjc2YWQyMDBmNDg2Li5iMmVkZDVjMjU0ZTlmNDUzMjgzNmQ3MmMw
ODU2ZGNhODUxOTc2ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29s
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJmMjE4ZWU2NTVjMDJmMTNkZDE2YjJiLi4xNWY5ZTYx
ZmEyMTVjZDk3OTRmNzU3YTUxNDBkMGRhZWNiYTFhMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKIH0KIAordm9pZCBXZWJTZXR0aW5n
c0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQor
eworICAgIG1fc2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNDVl
NjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3YTZmYjA5ZjY1MTNlOS4uY2Q3NjE5NGQ4YTU0YzQ0NTJh
YWQyY2IzNDJlMjg1OGE4YTQ4OWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2Vz
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODljMWMzMGQyOTNhMGNmMjQ1MDcyMTZiMjgyOTNlOWQw
ZmJhODEuLmNkNjNhN2FmZGU4OTJhZGZkODVjYTFkNmUwZjgwMzUxYjAzYzAwMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTcxLDYgKzE3MSw3IEBAIHN0cnVjdCBfRXdrX1Zp
ZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlmOwogICAgICAg
ICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9Mb2FkSW1hZ2Vz
IDogMTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlczogMTsKICAgICAgICAgYm9v
bCBhdXRvU2hyaW5rSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBlbmFibGVBdXRvUmVzaXplV2lu
ZG93IDogMTsKICAgICAgICAgYm9vbCBlbmFibGVEZXZlbG9wZXJFeHRyYXMgOiAxOwpAQCAtNjI5
LDYgKzYzMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2
X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcHJpdi0+dmlld3BvcnRB
cmd1bWVudHMudXNlclNjYWxhYmxlID0gdHJ1ZTsKIAogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHByaXYtPnBhZ2VTZXR0aW5n
cy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4NTktMSIpOwogICAgIHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTIpOwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKQEAgLTY3Myw2ICs2NzUsNyBAQCBzdGF0
aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTYW5zU2VyaWYgPSBl
aW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAg
ICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0
ZWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKCk7CiAg
ICAgcHJpdi0+c2V0dGluZ3MuYXV0b1Nocmlua0ltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCgpOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJs
ZUF1dG9SZXNpemVXaW5kb3cgPSB0cnVlOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVs
b3BlckV4dHJhcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
OwpAQCAtMTkyOCw2ICsxOTMxLDI1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVk
X2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgcmV0dXJu
IHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgRWluYV9Cb29sIGFsbG93KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIGFsbG93ID0gISFhbGxvdzsKKyAgICBp
ZiAocHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0ZWRJbWFnZXMgIT0gYWxsb3cpIHsKKyAgICAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvdyk7Cisg
ICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gYWxsb3c7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdXRv
X3Nocmlua19pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1
ODNiNTNkNmMuLmI4NzdiZDVkY2U4Mzg5MTJiMjM2NGQ3ZmVjZmZkNTJlNjI0NzQyYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMzUxLDYgKzEzNTEsMjcgQEAgRUFQSSBFaW5hX0Jv
b2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9p
bWFnZXNfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKIAogLyoqCisg
KiBRdWVyaWVzIGlmIHRoZSBpbWFnZXMgYXJlIGFsbG93ZWQgdG8gYW5pbWF0ZS4KKyAqCisgKiBA
cGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRv
IGFuaW1hdGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2VzIGFyZSBh
bGxvd2VkIHRvIGFuaW1hdGUsCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3Nf
YW5pbWF0ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQWxs
b3dzL2Rpc2FsbG93cyBhbmltYXRpb24gb2YgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIHNldCB3aGV0aGVyIGltYWdlcyBjYW4gYmUgYW5pbWF0ZWQgb3Igbm90CisgKiBA
cGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYW5pbWF0aW9uIG9mIGltYWdl
cywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNf
c2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMg
aWYgdGhlIGltYWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBv
IHZpZXcgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRp
Y2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CmluZGV4IGQ5MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc4NDg4OGQw
ZTcyODA4ZGIyZDA5ZDI4NzhhZDIzZjRmZDBiYWYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsK
ICAgICBQUk9QX01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2
X0RQSSwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFU
RURfSU1BR0VTLAogICAgIFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAogICAgIFBST1BfUFJJTlRf
QkFDS0dST1VORFMsCiAgICAgUFJPUF9FTkFCTEVfU0NSSVBUUywKQEAgLTMzNCw2ICszMzUsMTUg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNl
dHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQUxMT1dTX0FO
SU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRvIGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dG8tc2hyaW5rLWltYWdlcyIsCkBAIC0xMDExLDYgKzEwMjEsOSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbgogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAg
ICBwcml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAg
ICAgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAg
ICAgICAgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
cHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4ZTEyNWFmYzdjNzI2MzEu
LmNlNDViNTJjYTc4NzUxZDc0NDZiZTQ4MTMyNjFiOWU2MGQ1YTIxZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKQEAgLTQy
LDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGd1aW50
IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5mb3JjZTk2RFBJOwogICAg
IGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFsbG93c0FuaW1hdGVkSW1h
Z2VzOwogICAgIGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRC
YWNrZ3JvdW5kczsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGMyMjQ2MWM3NDk4NzYwODFkOTdiNDYw
NWU5MjBjMmYxYzQ1N2I5ZDAuLmI4MzUwMzY0ZTM2MTQ5M2EwYTE5YjQzYzEwZmUwMDAwMjdiNzA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMy
MDAsNiArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGlu
Z3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJp
ZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7
CiAgICAgY29yZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5z
ZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3Jl
U2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHNldHRpbmdzUHJpdmF0ZS0+YWxsb3dz
QW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJ
bWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgIGNvcmVT
ZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5nc1ByaXZhdGUtPnByaW50
QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzZXR0aW5n
c1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDgwY2M5MzU1YWNiYmQ3NDFkN2JlODlkYjc4ZmI3ZDI0MTcyNmI1
OGYuLmM1NGZhZGYwNjViNTBhMGY2OWViMmEwNGRhYWE1ZjY0MGI0OTIyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI4OCwxMiArMjg4LDEyIEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogLSAo
dm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClmbGFnOwogCiAvKiEKLSAgICBAbWV0aG9kIGFs
bG93QW5pbWF0ZWRJbWFnZXMKKyAgICBAbWV0aG9kIGFsbG93c0FuaW1hdGVkSW1hZ2VzCiAqLwog
LSAoQk9PTClhbGxvd3NBbmltYXRlZEltYWdlczsKIAogLyohCi0gICAgQG1ldGhvZCBzZXRBbGxv
d0FuaW1hdGVkSW1hZ2VzOgorICAgIEBtZXRob2Qgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6CiAg
ICAgQHBhcmFtIGZsYWcKICovCiAtICh2b2lkKXNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOihCT09M
KWZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDUyNWNiYTlmYzM4
OTRhYTRiNGZiNGUwNWEyY2VlNmMwYmQ4YzgwMi4uZjk3OGUzOWZkYTJjOGI5ZWI4ZmJkZThjMTFl
ZWY5M2QzMGY3N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQy
MSw2ICsxNDIxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVp
cmsoKQogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHNlcmlm
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZl
cmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseV0pOwor
ICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbcHJlZmVyZW5jZXMgYWxsb3dz
QW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFByaW50QmFj
a2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFja2dyb3VuZHNdKTsKICAgICBzZXR0
aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVS
ZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDg5ZTk4
MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAuLjAxYTE5YzhkZTdmMTUxMjdmZDMy
ODRmZDZiNGFkODc5MWViMGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNw
cApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpKTsKICAgICAgICAgc2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7CiAKKyAgICAgICAgdmFsdWUgPSBh
dHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKSk7CisgICAgICAgIHNldHRpbmdz
LT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNldHRpbmdzLT5zZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3IEBAIFFXZWJTZXR0aW5nczo6
UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6
Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkpOwogCiAgICAgZC0+YXR0cmli
dXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywgdHJ1ZSk7CisgICAgZC0+
YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcywgdHJ1
ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVu
YWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Okph
dmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1NjNm
OThmLi5kYzIzY2YxMjBkODI0ZGQyYmNhZjU1NTliNDdiYzFhOWJlNDYxYzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAgICAg
ICBBbGxvd3NBbmltYXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCiAgICAg
ICAgIEphdmFFbmFibGVkLAogICAgICAgICBQbHVnaW5zRW5hYmxlZCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IGFi
ZjliYjIxOGEzNjFiMWE0NDdhYzk5NDFjMjAzZTNmZGYyN2Y3M2MuLmYxYTU2YjllYTM1YjMxNDBi
ZmM5ZDY0ZWUxZmU2NmIyMWJjNjI2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNzI3LDYgKzcyNyw3IEBAIFFX
ZWJQYWdlKiBRRGVjbGFyYXRpdmVXZWJWaWV3OjpwYWdlKCkgY29uc3QKICAgICBccW1scHJvcGVy
dHkgaW50IFdlYlZpZXc6OnNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRTaXplCiAKICAgICBccW1s
cHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hdXRvTG9hZEltYWdlcworICAgIFxxbWxw
cm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzCiAgICAg
XHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNjcmlwdEVuYWJsZWQKICAg
ICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZhRW5hYmxlZAogICAgIFxx
bWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5o
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaApp
bmRleCA4MzQ2M2RiOTdiYjY0ZGE2YzBkYmUxNmVlZGY5NjVmNDAxMTZhNzlkLi5hNjA3MzUzYzY5
NWU1OGU0OTNkNzBkNzM3ZTEzOTkxNGEyNzI3NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKQEAgLTMwNiw2ICszMDYs
NyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1YmxpYyBRT2JqZWN0IHsKICAg
ICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFEIGRlZmF1bHRGaXhlZEZv
bnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAgICAgUV9QUk9QRVJUWShi
b29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0QXV0b0xvYWRJ
bWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxs
b3dzQW5pbWF0ZWRJbWFnZXMgV1JJVEUgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpCiAgICAgUV9Q
Uk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNjcmlwdEVuYWJsZWQgV1JJ
VEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFFbmFibGVk
IFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShi
b29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUgc2V0UGx1Z2luc0Vu
YWJsZWQpCkBAIC0zNDgsNiArMzQ5LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBhdXRvTG9hZElt
YWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgb24pIHsgcy0+
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIG9uKTsgfQorICAgIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRl
KFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOyB9CisgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3Jp
cHRFbmFibGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBz
LT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAg
ICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2
ZXdlYnZpZXcuY3BwCmluZGV4IGIzOGRiMWRhZmZkMDNjYmZhYzVhY2Q0OWMzOThkMGM3YzczM2Rh
OTUuLmM5MWRhYjQxYWY4NzgyNzYxMDExNjVlMWFiM2JiMzA2MzI3ZmM2OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0
aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3
ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDgzLDYgKzQ4Myw3IEBAIHZv
aWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0
IHNldHRpbmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJh
dXRvTG9hZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
YWxsb3dzQW5pbWF0ZWRJbWFnZXMiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImRldmVsb3BlckV4dHJhc0VuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3Ry
aW5nOjpmcm9tQXNjaWkoImphdmFFbmFibGVkIikKICAgICAgICAgICAgICAgICAgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJqYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNzZlYWNmZmViYmVjNmQw
ZWE5YjQ2YWIzZjE4N2YzMTVmZDQ4ZGE1Ni4uMzFjYjRmMmM1OGUyZWI2Y2YyMjI3YTJiNDIwMjRj
ZDMyN2Y5ODg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5Igog
I2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSAiV2Vi
S2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktp
dERpc3BsYXlJbWFnZXNLZXkgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCisjZGVmaW5lIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkiCiAj
ZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgIldlYktpdExvYWRTaXRlSWNvbnNLZXkiCiAj
ZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkgIldlYktp
dEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAjZGVmaW5lIFdlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5ICJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKaW5kZXggNTdhY2MxMzE4MDAzMjAzZjMwMjU2Y2ExMjYxNjcyNzUxNzgw
Nzg2NC4uYTUyZDVmMWVlMjBkNTA5ODJjYjA3OTUwN2I3NTUxMjdiOTI5NmFmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKQEAgLTQ2NzUsNiArNDY3NSwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
ICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZlcmVuY2VzLT5hbGxvd3NBbmltYXRlZEltYWdl
cygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoISFlbmFibGVkKTsKKwogICAgIGhy
ID0gcHJlZmVyZW5jZXMtPnVzZXJTdHlsZVNoZWV0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYg
KEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmlu
ZGV4IGRkZTM3OGYwMmJmYmNlNjlhOThlMWFmZmJlNWI1NDA4MWUyMTg0ZmUuLjIxYzc4MmYzNDA4
OGRlMjBlYjFjM2U2ZDJhNjI3NzA1MDcxMTNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApA
QCAtMTAzLDYgKzEwMyw3IEBAIFdlYlZpZXc6OldlYlZpZXcoSFdORCBod25kLCB1bnNpZ25lZCBm
ZWF0dXJlcykKICAgICBzZXR0aW5ncy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKICAg
ICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyh0cnVlKTsKIAogICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSog
bG9hZGVyQ2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsK
ICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UsIDAsIGxvYWRl
ckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDg5MWE4NjdhOGVhMjI5MDk0
OGI1MzhiNmU5OTRjMjRkY2M1NDI3ODUuLjMzNjYxNzdhYzcxNmU4ZGI5MDRhYjRmODllOTQwOWVj
NzA3NTgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCkBAIC04OCw2ICs4OCwyMCBAQCBi
b29sIHd4V2ViU2V0dGluZ3M6OkxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogICAgIAordm9pZCB3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQoreworICAgIGlmIChtX3NldHRp
bmdzKQorICAgICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvd3NB
bmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJ
bWFnZXMoKSBjb25zdAoreworICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCB3eFdlYlNldHRpbmdzOjpTZXRKYXZhU2NyaXB0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKaW5kZXggYjcwZGRl
NWEzZTVjZjJlMzMwMmYxNGViYjUzNjg5OGE0NTI1YWIzMi4uMDNlMWU1MDY5Y2ZlYjM1MGIxZTEw
M2VhZjZkNDlhMTIzYTk2Y2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaApAQCAtMTExLDYgKzEx
MSwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25z
dDsKICAgICAKICAgICAvKioKKyAgICAgICAgU2V0cyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgYXJl
IGFsbG93ZWQgdG8gYmUgYW5pbWF0ZWQuCisgICAgKi8KKyAgICB2b2lkIFNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBu
b3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBB
bGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0OworCisgICAgLyoqCiAgICAgICAgIFNldHMgd2hl
dGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBKYXZhU2NyaXB0IGNvZGUuCiAgICAgKi8KICAg
ICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKaW5kZXgg
OTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2Y2Y4ZWQ4NzhhNy4uNThlMTg2ZDA1ODFhYzBi
ZGM4ZTgyNjk4NTgxMDkyZjliMzliM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3BwCkBAIC00MDcsNiAr
NDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0ZSh3eFdpbmRvdyogcGFyZW50LCBjb25zdCB3
eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4UG8KICAgICAvLyBldmVudHVhbGx5CiAgICAg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0gbV9pbXBsLT5wYWdlLT5zZXR0aW5ncygpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6
ZSgxNik7CiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgiVGltZXMgTmV3IFJvbWFu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCAw
Y2RjOTc1OTRlMjc0OGRiMDk0YTQ0M2U0MWJhODU2NjE5Yzk0YmVkLi4zZTVlOTQyZTNmMTIyOGEx
ZGYwOTAxNGU0MGZlZTM1MzkyNTkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAj
ZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNy
byhKYXZhU2NyaXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUp
IFwKICAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFsbG93c0FuaW1hdGVkSW1h
Z2VzLCBhbGxvd3NBbmltYXRlZEltYWdlcywgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3Jv
KExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
ICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNmNGZlNjZkZjQ5OTllYmJlOTVhLi4zYzhh
ZmQ5YjY5OTg5YTI0NWYwMmQxNzFkZmQ1YjczNDEyYzU2Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC03OCw2ICs3OCwxNiBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCitib29s
IFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxv
d3NBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJl
bmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0NmQxMDIxYTdkZDg3OTc5MDQ5
MjUuLjc3YzExYjkzNDUxZGJmYzc5ODdjMGM4NTRlMzdlYWQ0NjAxMWRmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaApAQCAtNDksNiArNDks
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwor
CiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRM
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQ
cmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNl
dHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIwOTEyMmQzZjMyZTQ1YzUz
Li4zZTQyNGEyZjkxM2I2NGIzYjk0OGI1MTQ3ZGRiMTkxYjQwY2U4Y2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC03
Myw2ICs3Myw3IEBAIGVudW0gewogCiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVCwKICAgICBQ
Uk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAog
ICAgIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkcsCiAgICAgUFJP
UF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05fQ0FDSEUsCiAgICAgUFJPUF9FTkFCTEVf
SFRNTDVfTE9DQUxfU1RPUkFHRSwKQEAgLTExNiw2ICsxMTcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRTZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25z
dCBHVmFsdQogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRF
RF9JTUFHRVM6CisgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2lt
YWdlcyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkc6
CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9s
b2FkX3NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAg
ICAgYnJlYWs7CkBAIC0yMjMsNiArMjI3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NH
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAg
ICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2VzKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXMoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNf
aWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpA
QCAtMzYzLDYgKzM3MCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmFsbG93cy1hbmltYXRlZC1p
bWFnZXM6CisgICAgICoKKyAgICAgKiBDb250cm9scyB3aGV0aGVyIGFuaW1hdGVkIGltYWdlcyBz
aG91bGQgYmUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImFsbG93cy1hbmltYXRlZC1p
bWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRv
IGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KworICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmxvYWQtaWNvbnMtaWdub3JpbmctaW1h
Z2UtbG9hZC1zZXR0aW5nOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2l0
ZSBjYW4gbG9hZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKQEAgLTk0MCw2ICs5NjAsNDEgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNl
dHRpbmdzLCBnYm9vbGVhbiBlbmEKIH0KIAogLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXM6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisg
KgorICogR2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3dzLWFuaW1hdGVkLWltYWdlcyBwcm9w
ZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBJZiBhbmltYXRpb24gb2YgaW1hZ2VzIGlzIGFs
bG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdz
X2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBG
QUxTRSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2Vz
KHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX3NldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzOgorICogQHNldHRpbmdzOiBhICNX
ZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhl
ICNXZWJLaXRTZXR0aW5nczphbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyhXZWJLaXRTZXR0
aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGFsbG93KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IFdLUHJl
ZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7
CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykKKyAgICAgICAgcmV0dXJuOworCisgICAg
V0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdl
dCgpLCBhbGxvdyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiKTsKK30KKworLyoqCiAgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0
X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nOgogICogQHNldHRpbmdzOiBh
ICNXZWJLaXRTZXR0aW5ncwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDI3Y2I3Yzc1YTE5MWRiZDNlNGEyNDhmMzJlODJj
OTBkZDViNTVjMzAuLmE3NGE1Nzc3MThhZjg4MjMyM2Y1ZDY2MjM3Y2Q2ODY2NmFlOTA3OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aApAQCAtOTIsNiArOTIsMTMgQEAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRfaW1hZ2Vz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiAgICAgICAgZW5hYmxlZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5n
c19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGFsbG93KTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5n
X2ltYWdlX2xvYWRfc2V0dGluZyAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiAKIFdF
QktJVF9BUEkgdm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNTJjZDg5ZWU3MTli
NzJmZmY1ZDhkYWFmMzdjMzk0ZDkzMmQ4ZWZlNi4uYmVmNjNlOTEzYzlhZDRlOTE5MWZiMDIyNTk4
YzlkNzI1ZGZkMjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNTYsNiArMTU2
LDggQEAgd2Via2l0X3NldHRpbmdzX25ldwogd2Via2l0X3NldHRpbmdzX25ld193aXRoX3NldHRp
bmdzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2F1dG9fbG9hZF9pbWFnZXMKIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcword2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0
ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMKIHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxl
X2h0bWw1X2RhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZmU1NzY0ZjlkMGU2MWU1NjVmMmVkM2Uz
YzhmOThkZWUyNS4uMTRlM2ZhYzUxYzAyNDRiNzJiZDMyNGRiMDJlZTQ0NTBlYTczMDUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
LmNwcApAQCAtNDAsNiArNDAsOCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RB
dHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgc3dpdGNo
IChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7Cisg
ICAgY2FzZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgSmF2
YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlw
dEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKQEAg
LTY2LDYgKzY4LDkgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIEF1dG9Mb2Fk
SW1hZ2VzOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxs
b3dBbmltYXRlZEltYWdlczoKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVk
SW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmOGE4NmFl
NjZhOGY1MDUzODFjNGEzZjg2ZDM0OGIxNzU2MDJhOTJjLi4yZDRiM2MwMTA0NDczMGMwYzhiMmNj
MmNkMmRkZDYzMWQ0NmJmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0
dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgpKSk7CisgICAgc2V0dGluZ3Mt
PnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YWxsb3dzQW5pbWF0ZWRJbWFnZXNLZXkoKSkpOwogICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJs
ZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRLZXkoKSkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0NTM2NzI0Y2Fk
NTNhNGY0YWY3NmVmOTIzMzRhZjI3YTQyOGU4MGUuLjA2ZmJkN2Y1Y2JlODg1ZWE5MjBiNzQ1ZTBk
YzUzYjk0ZGVmMWZjMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBh
YmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHBy
ZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6
CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlBh
Z2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToK
KwogMjAxMi0wMi0wOCAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBVcHN0cmVhbSBEdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZmI1MmNm
ZGU5MzRiYTg1MGQ4NWMyODg5MzBhZDY1ZGYwOGU5NmJiZi4uMzNjNGI5YWQ2MzMzMzY4ZmM1Y2E1
MWVhMDQ0OTEwMDVjZjllYjE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTIzOSw2ICsyMzksNyBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgc2V0
dGluZ3MtPnNldFRleHRSZWZsb3dNb2RlKFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RGlzYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5n
cy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRB
bGxvd3NBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0
T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCBiMDM0N2M4NTM2MGM0MmUxNGNlZjZhODBjYWUzNjAyMTcxYzg5NjQwLi42
YWNiNGQ4ZTJiNmU2NDk3NTA5NjFmNWUxMGUwYWJhOGQ0MzVhNTRmIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNTA3LDYgKzE1MDcsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZz
LT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9v
bCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikK
ICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jv
b2wodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkiKQorICAgICAgICBwcmVmcy0+YWxsb3dBbmltYXRlZEltYWdlcyA9IGNw
cFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0UGx1Z2lu
c0VuYWJsZWQiKQogICAgICAgICBwcmVmcy0+cGx1Z2luc0VuYWJsZWQgPSBjcHBWYXJpYW50VG9C
b29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdERPTVBhc3RlQWxsb3dlZFBy
ZWZlcmVuY2VLZXkiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDg3MmViZmI0YWE1ZmRhMDZjNTllYmI3YWIzN2M4OTFjMzFlOTBh
NDQuLjBiNmZjZGIzZWY2YmU2NjQ0ZmU1OGNiYzkyMTNiNWM3MWU5M2Q3ZTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTg1LDYg
Kzg1LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSB0cnVlOwogICAgIGphdmFTY3JpcHRFbmFibGVkID0g
dHJ1ZTsKICAgICBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSB0cnVlOworICAgIGFsbG93QW5p
bWF0ZWRJbWFnZXMgPSB0cnVlOwogICAgIGxvY2FsU3RvcmFnZUVuYWJsZWQgPSB0cnVlOwogICAg
IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCA9IHRydWU7CiAgICAgcGx1Z2luc0Vu
YWJsZWQgPSB0cnVlOwpAQCAtMTk3LDYgKzE5OCw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFw
cGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseShqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5KTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJs
ZWQpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhh
bGxvd0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChsb2NhbFN0b3JhZ2VFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkKG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk7CiAg
ICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKHBsdWdpbnNFbmFibGVkKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IGVlMDRhMjA5
NDY2YmJiNWJjODhkMTdiNGUwZDMzMmY2MmEzYmRlOTEuLjZlMzg2YWVhNDU2YTY3MmVkNmU0YzBj
MDYyM2E3N2U0ZGFmZjc0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuaApAQCAtODcsNiArODcsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXMg
ewogICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKICAgICBi
b29sIGphdmFTY3JpcHRFbmFibGVkOwogICAgIGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
OworICAgIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXM7CiAgICAgYm9vbCBsb2NhbFN0b3JhZ2VF
bmFibGVkOwogICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOwogICAg
IGJvb2wgcGx1Z2luc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KaW5kZXggMzAxMmE3MGQ4OGI0MTYzMjQzZWU4YWYxYzU0YWIxZTBmNjQyMTEyOC4u
NmZjNTQ0NGNjZTVjMGE5YjMyN2QzOGNjZWYyYWU3NDhkYmVmOTcxOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjI5LDYgKzYyOSw3IEBAIHN0YXRp
YyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVy
ZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNl
dExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRBbGxv
d3NBbmltYXRlZEltYWdlczpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZTpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcAppbmRleCAyMWRhOGQwNGI0Y2I3NDc1ZTczZTQwZjY5OWNhYjdhYmUxNTcw
ZDkzLi4wMzgwMTYxMDgzZDExMzM4ZTEyZDM5YmE3OGJkZmNmYjFhNDlmMDkxIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtMTg5LDYgKzE4OSw3
IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0aW5ncygpCiAgICAgc2V0dGluZ3MoKS0+cmVzZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MoKS0+
cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2Fk
SW1hZ2VzKTsKKyAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkFs
bG93c0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2Vi
U2V0dGluZ3M6Olpvb21UZXh0T25seSk7CiAKICAgICBtX2RydC0+bGF5b3V0VGVzdENvbnRyb2xs
ZXIoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggMWVjNWM1ZTYwN2VmNmRiNzQ0Y2VlZmQ5
NmZkYjg1NDNjOWM2YWZhZi4uYTA1YTQ1ZDUwZWMxMzJkMTkzZTY0NGUzZGJiMWVmZDVkMzYxZjQ3
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04
NTUsNiArODU1LDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
cyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZlcmVuY2VzLT5zZXRUYWJz
VG9MaW5rcyhGQUxTRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldFNob3VsZFByaW50QmFja2dyb3Vu
ZHMoVFJVRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShU
UlVFKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoVFJVRSk7CiAg
ICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nV2luQmVoYXZp
b3IpOwogCiAgICAgaWYgKHBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZmE3MTViYzEyZmRmYzViZTE0YzI3MDg5NDdmZWNjOGJiZWY5Zjg5Yy4uYjcyMjdjN2Y0MDkw
Y2FiOTg0N2M1N2IyNWFiNmU5OTY4YzNiMzlhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEy
LTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBB
ZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvZGlzYWxsb3ct
YW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1yZWQtYW5pbWF0ZWQuZ2lmOiBBZGRlZC4KKwogMjAxMi0w
Mi0xMCAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9w
U3RhdGVFdmVudC5zdGF0ZSBzaG91bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0
YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRl
ZC1pbWFnZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ct
YW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjg2MDg5ODhkNTA5YThk
YjIyZjJiYmM1M2U5NTAyZmQxMDAyOTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmdiYVN0cmluZyhnaWZGcmFtZSkg
aXMgJzEzNzEwMGZmJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1h
bmltYXRlZC1pbWFnZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFu
aW1hdGVkLWltYWdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMDcxM2M3ODVlYjgxZmM0NmUxNWQ0Mzdl
MThkZjdjYzkzMzlmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgc3R5
bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+RkFJTDwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdCB0aGF0IGltYWdlIGFuaW1hdGlvbiBjYW4gYmUgZGlzYWJsZWQuIik7CisK
KyAgICBmdW5jdGlvbiByZ2JhU3RyaW5nIChhKSB7CisgICAgICAgIHJldHVybiBBcnJheS5wcm90
b3R5cGUubWFwLmNhbGwoYSwgKGZ1bmN0aW9uIChuKSB7IHJldHVybiAoIjAwIituLnRvU3RyaW5n
KDE2KSkuc2xpY2UoLTIpOyB9KSkuam9pbigiIik7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VL
ZXkiLCAwKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIHZhciBp
bWFnZSA9IG5ldyBJbWFnZSgpOworICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4tcmVk
LWFuaW1hdGVkLmdpZj8iICsgTWF0aC5yYW5kb20oKTsKKyAgICBpbWFnZS5vbmxvYWQgPSBmdW5j
dGlvbiAoKSB7CisgICAgICAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
Y2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKworICAgICAgICAvLyBUaGUgZ2lmIGlzIG9uZSBm
cmFtZSBvZiBncmVlbiBhbmQgc2V2ZXJhbCBmcmFtZXMgb2YgcmVkLgorICAgICAgICBjb250ZXh0
LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgICAg
ICAgICBnaWZGcmFtZSA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpLmRhdGE7Cisg
ICAgICAgICAgICBzaG91bGRCZSgicmdiYVN0cmluZyhnaWZGcmFtZSkiLCAiJzEzNzEwMGZmJyIp
OyAvLyBHcmVlbi4KKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIDE1
MCk7IC8vIEdyZWVuIGZyYW1lIG9mIEdJRiBoYXMgMTAwbXMgZHVyYXRpb24KKyAgICB9CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9ncmVl
bi1yZWQtYW5pbWF0ZWQuZ2lmIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dy
ZWVuLXJlZC1hbmltYXRlZC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZjNDU4YWZjODM4Mjg1MmMyZDgxNjkw
OTA0NGFjM2ZiNTdkYTZmNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgODY3CnpjbVo/d2JoRUhi
Ry01RGZfYHR2KlQqdj9maWElS3h4SXB3ak9YbmIwI31OTUBEfjBxRi1LPkp0YmNIZlFKcCU9ZQp6
KCZFZyNiT2xjQGNMbEVpUzlnVW4zajw5Wmd+SE9yb1huQysxelFENjExPCl8fEo7N0FBO0hkJDBq
QEBSMkYjMj0Kel5LP0xsZ0tUMThHSCZUI2RIT0I/O3lHSnhiI0sxNj1RbkBiQmFkbSVJK3dqVndl
MjFFQGxRVjJ6eDYpPGI/KkI9Cm9lamN2JkJhMSRFXy1MdUtRcGE2ek0+UEJaSWNMLTw7TWZgczY+
TXBrSS16MD4wUUA7V0pwY2R6CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127042</attachid>
            <date>2012-02-14 14:09:02 -0800</date>
            <delta_ts>2012-02-14 15:44:22 -0800</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-9767-20120214140901.patch</filename>
            <type>text/plain</type>
            <size>56076</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLjc5
OGUzMmNmZGM0NGFhNTNiMTdmMDgyNmU0NGVkODg0NzhlNzgxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wMi0wOCAgQWxl
eGVpIFN2aXRraW5lICA8YXN2aXRraW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1
bTogRml4IE1hYyBydWJiZXIgYmFuZCBvdmVyaGFuZyBkcmF3aW5nIG9uIGNvbXBvc2l0ZWQgcGFn
ZXMgYW5kIHJlLWVuYWJsZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2YTUyZmEyNTI0MWM3
YzRkNzA3NjU2OTdjMzhkMTE1MTY5MDQzM2E0Li5mZGE1M2ZiMGMzODY4ZDVlZjJkYzgyZDE2OTlm
NDgyMTFhNjM1NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBB
bGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX2dldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNfc2V0KToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wMi0wNyAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgbWlzc2luZyBpbml0
aWFsaXphdGlvbiBvZiBlZGl0YWJsZSB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4YzU5
YmI5M2ZiNTBkNGVjYWM5MTIzNmM4NDcyODNiYjkzODdlNzc5Li4zMTZkYzExNTVhNGJhODBlMGY1
NWE2ZTkzZjU3YjJmOWQyOTI3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisKIDIwMTItMDIt
MDggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZSBmb3IgbGlzdCBpdGVtcyB3aG9zZSB0ZXh0IHdyYXBzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYmYxMTczNzIwMjJjMjNiYjE2NGIyYjRkOTgzZmIzZDdlNjllNTg3MS4uODA0NThk
NDE4MTE1M2EwMjg3MDYwNDBkNzkxZmE1NGVhOTkzYzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDEyLTAyLTA3ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MTA2NjgxKTogTnVsbCBjaGVjayBtaXNzaW5nIGluIFtXZWJGcmFtZShXZWJJbnRlcm5hbCkgX3R5
cGluZ1N0eWxlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5NDA2YzkyNDcwYjY4M2E1YTc5ODU5YzFmMTBl
OWQ0NDVkYjU3ZmIzLi5hNTVmZmIxNWY3NTczODVkNzM2YTdhNGZkNDM1NTBkZGFhOGIwYmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFn
ZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6
CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2
ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAg
ICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzOjpzZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6Cisg
ICAgICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmll
dy5jcHA6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MpOgorCiAy
MDEyLTAyLTA4ICBMZW8gRnJhbmNoaSAgPGxmcmFuY2hpQGtkZS5vcmc+CiAKICAgICAgICAgUmVt
b3RlIHdlYiBpbnNwZWN0b3IgcmVlbnRyYW5jeSBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGQz
ZTQ2M2E3MDNmMTU5YTlhNmZlMWM2N2FmOTIwYzFjNTVmYWFiN2EuLjFjYjQ5MWQ1N2FiZTljMDU4
MmY5NDIxNjU4MWU3MDE3YWExN2MzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMi0wMi0wMiAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgc2hvd24gbm90aWZpY2F0aW9ucyB3aGVuIGNv
bnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZDJhN2U2
NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi4wYTZiN2M3OTM4NTBhYjExYzhkYTM4
ZTgxZmQ3YjM3NTY1OGJkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxhdGZvcm1FdmVudCBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IGI0NWIzNTAwNTAwNTE5NzUwOTEzNGNlNDRjNWU5MWIzNjE4ZWQ1YzcuLjdl
N2ExNWY1NWI3ODExYmRiNjBmNTlhNmI2ZGFlMTQ0MTJmNzU2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3Nl
dHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyk6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcyk6
CisgICAgICAgICogV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHd4V2ViVmlldzo6Q3JlYXRlKToKKwogMjAxMi0wMS0zMCAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQuIEJ1aWxk
IGZpeCwgYWRkIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZDI0NTUyNGU4
YTRlYmEzNTViMGY2M2IxZjU1MmY0NjA5YmJkN2VhLi45MzZhMGIzYzU5MmZiNzU5M2NiN2I5YzUw
MGViMmQ5MTllYTBjZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDItMTMg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzU2V0
UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eSk6CisgICAgICAg
ICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0
ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDEyLTAyLTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA2OTIwLCByMTA2OTI0LCByMTA2OTMzLCByMTA2OTM5LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBlYzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi4yNDQx
MWI2YzYwMzdmMWZjN2RhMGY4YWMwYWI5NmFiMzMzOGRjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtOTcyLDYgKzk3Miw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGlt
ZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1p
bHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2Vzc2lvblN0b3JhZ2VRdW90YUVqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dFNob3dzVVJMc0luVG9vbFRpcHNFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRBbGxvd3NB
bmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVF
aQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVk
aXRhYmxlTGlua0JlaGF2aW9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBiNWNiOTYz
YmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi5mYzE5ZGQ0NTRmN2IxOWE5YjBlMWIy
MTdiMjRhMDJhOWJlYWUyNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI4LDYg
KzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9pc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwgbV9hbGxvd3NB
bmltYXRlZEltYWdlcyhmYWxzZSkKICAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4Miwx
MSBAQCB2b2lkIFNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRp
bWVyPFNldHRpbmdzPiopCiAgICAgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFt
ZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
Ym9vbCBhbGxvd3NBbmltYXRlZEltYWdlcykKK3sKKyAgICBtX2FsbG93c0FuaW1hdGVkSW1hZ2Vz
ID0gYWxsb3dzQW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCiB7
CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRz
U2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJlYWVm
OTI2MWE3NDdlMzljZjcwOTc3NjguLjc5MDliMmFiYTIxNzhhYzU1YmI4OGQzZDVkY2NkYzNmYTdm
NTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sKTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAv
LyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcg
aXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2Fs
bG93c0FuaW1hdGVkSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IGE4OTU3NjAxZjYyMWYwNTNhNjA3Zjc2NDY3ZmRkOGYxOTgzNmZiNzMuLjVhZWYwYjIz
YWQ0NDQ3MzJiODBkOGRlNzNjNTdlY2QwYzhkNjQ4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCBi
b29sIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oYm9vbCBza2lwcGluZ0Zy
YW1lcykKICAgICAKICAgICAvLyBTZWUgaWYgYW55b25lIGlzIHN0aWxsIHBheWluZyBhdHRlbnRp
b24gdG8gdGhpcyBhbmltYXRpb24uICBJZiBub3QsIHdlIGRvbid0CiAgICAgLy8gYWR2YW5jZSBh
bmQgd2lsbCByZW1haW4gc3VzcGVuZGVkIGF0IHRoZSBjdXJyZW50IGZyYW1lIHVudGlsIHRoZSBh
bmltYXRpb24gaXMgcmVzdW1lZC4KLSAgICBpZiAoIXNraXBwaW5nRnJhbWVzICYmIGltYWdlT2Jz
ZXJ2ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCisgICAgaWYgKGltYWdlT2JzZXJ2
ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICsrbV9jdXJyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCmluZGV4IDczZDg3NDQxNmY3ODk0OGJmZjMyYTNmMTAxNWNhMWFhNjNjNDc3ZDEu
LmJiNjAxZmRlMmI1NWZlZjllMTYzMDNiMzZkNDA0OWE1NmJjZmQ1ZGQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CkBAIC0yNTczLDkgKzI1NzQsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OndpbGxSZW5kZXJJbWFn
ZShDYWNoZWRJbWFnZSopCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1
bWVudCgpLT5zZXR0aW5ncygpOworCiAgICAgLy8gSWYgd2UncmUgbm90IGluIGEgd2luZG93IChp
LmUuLCB3ZSdyZSBkb3JtYW50IGZyb20gYmVpbmcgcHV0IGluIHRoZSBiL2YgY2FjaGUgb3IgaW4g
YSBiYWNrZ3JvdW5kIHRhYikKICAgICAvLyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGVp
dGhlci4KLSAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRvY3VtZW50
KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKKyAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFn
ZUNhY2hlKCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKSAmJiBzZXR0aW5n
cyAmJiBzZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBS
ZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAyNWFjMDc1MjM5
Njc4N2I2YWNhZDQzMWMzYjcxNjc2YWQyMDBmNDg2Li5iMmVkZDVjMjU0ZTlmNDUzMjgzNmQ3MmMw
ODU2ZGNhODUxOTc2ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29s
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJmMjE4ZWU2NTVjMDJmMTNkZDE2YjJiLi4xNWY5ZTYx
ZmEyMTVjZDk3OTRmNzU3YTUxNDBkMGRhZWNiYTFhMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKIH0KIAordm9pZCBXZWJTZXR0aW5n
c0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQor
eworICAgIG1fc2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNDVl
NjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3YTZmYjA5ZjY1MTNlOS4uY2Q3NjE5NGQ4YTU0YzQ0NTJh
YWQyY2IzNDJlMjg1OGE4YTQ4OWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2Vz
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODljMWMzMGQyOTNhMGNmMjQ1MDcyMTZiMjgyOTNlOWQw
ZmJhODEuLmNkNjNhN2FmZGU4OTJhZGZkODVjYTFkNmUwZjgwMzUxYjAzYzAwMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTcxLDYgKzE3MSw3IEBAIHN0cnVjdCBfRXdrX1Zp
ZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlmOwogICAgICAg
ICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9Mb2FkSW1hZ2Vz
IDogMTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlczogMTsKICAgICAgICAgYm9v
bCBhdXRvU2hyaW5rSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBlbmFibGVBdXRvUmVzaXplV2lu
ZG93IDogMTsKICAgICAgICAgYm9vbCBlbmFibGVEZXZlbG9wZXJFeHRyYXMgOiAxOwpAQCAtNjI5
LDYgKzYzMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2
X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcHJpdi0+dmlld3BvcnRB
cmd1bWVudHMudXNlclNjYWxhYmxlID0gdHJ1ZTsKIAogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHByaXYtPnBhZ2VTZXR0aW5n
cy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4NTktMSIpOwogICAgIHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTIpOwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKQEAgLTY3Myw2ICs2NzUsNyBAQCBzdGF0
aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTYW5zU2VyaWYgPSBl
aW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAg
ICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0
ZWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKCk7CiAg
ICAgcHJpdi0+c2V0dGluZ3MuYXV0b1Nocmlua0ltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCgpOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJs
ZUF1dG9SZXNpemVXaW5kb3cgPSB0cnVlOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVs
b3BlckV4dHJhcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
OwpAQCAtMTkyOCw2ICsxOTMxLDI1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVk
X2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgcmV0dXJu
IHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgRWluYV9Cb29sIGFsbG93KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIGFsbG93ID0gISFhbGxvdzsKKyAgICBp
ZiAocHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0ZWRJbWFnZXMgIT0gYWxsb3cpIHsKKyAgICAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvdyk7Cisg
ICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gYWxsb3c7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdXRv
X3Nocmlua19pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1
ODNiNTNkNmMuLmI4NzdiZDVkY2U4Mzg5MTJiMjM2NGQ3ZmVjZmZkNTJlNjI0NzQyYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMzUxLDYgKzEzNTEsMjcgQEAgRUFQSSBFaW5hX0Jv
b2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9p
bWFnZXNfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKIAogLyoqCisg
KiBRdWVyaWVzIGlmIHRoZSBpbWFnZXMgYXJlIGFsbG93ZWQgdG8gYW5pbWF0ZS4KKyAqCisgKiBA
cGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRv
IGFuaW1hdGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2VzIGFyZSBh
bGxvd2VkIHRvIGFuaW1hdGUsCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3Nf
YW5pbWF0ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQWxs
b3dzL2Rpc2FsbG93cyBhbmltYXRpb24gb2YgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIHNldCB3aGV0aGVyIGltYWdlcyBjYW4gYmUgYW5pbWF0ZWQgb3Igbm90CisgKiBA
cGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYW5pbWF0aW9uIG9mIGltYWdl
cywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNf
c2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMg
aWYgdGhlIGltYWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBv
IHZpZXcgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRp
Y2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CmluZGV4IGQ5MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc4NDg4OGQw
ZTcyODA4ZGIyZDA5ZDI4NzhhZDIzZjRmZDBiYWYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsK
ICAgICBQUk9QX01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2
X0RQSSwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFU
RURfSU1BR0VTLAogICAgIFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAogICAgIFBST1BfUFJJTlRf
QkFDS0dST1VORFMsCiAgICAgUFJPUF9FTkFCTEVfU0NSSVBUUywKQEAgLTMzNCw2ICszMzUsMTUg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNl
dHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQUxMT1dTX0FO
SU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRvIGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dG8tc2hyaW5rLWltYWdlcyIsCkBAIC0xMDExLDYgKzEwMjEsOSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbgogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAg
ICBwcml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAg
ICAgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAg
ICAgICAgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
cHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4ZTEyNWFmYzdjNzI2MzEu
LmNlNDViNTJjYTc4NzUxZDc0NDZiZTQ4MTMyNjFiOWU2MGQ1YTIxZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKQEAgLTQy
LDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGd1aW50
IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5mb3JjZTk2RFBJOwogICAg
IGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFsbG93c0FuaW1hdGVkSW1h
Z2VzOwogICAgIGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRC
YWNrZ3JvdW5kczsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGMyMjQ2MWM3NDk4NzYwODFkOTdiNDYw
NWU5MjBjMmYxYzQ1N2I5ZDAuLmI4MzUwMzY0ZTM2MTQ5M2EwYTE5YjQzYzEwZmUwMDAwMjdiNzA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMy
MDAsNiArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGlu
Z3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJp
ZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7
CiAgICAgY29yZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5z
ZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3Jl
U2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHNldHRpbmdzUHJpdmF0ZS0+YWxsb3dz
QW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJ
bWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgIGNvcmVT
ZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5nc1ByaXZhdGUtPnByaW50
QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzZXR0aW5n
c1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDgwY2M5MzU1YWNiYmQ3NDFkN2JlODlkYjc4ZmI3ZDI0MTcyNmI1
OGYuLmM1NGZhZGYwNjViNTBhMGY2OWViMmEwNGRhYWE1ZjY0MGI0OTIyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI4OCwxMiArMjg4LDEyIEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogLSAo
dm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClmbGFnOwogCiAvKiEKLSAgICBAbWV0aG9kIGFs
bG93QW5pbWF0ZWRJbWFnZXMKKyAgICBAbWV0aG9kIGFsbG93c0FuaW1hdGVkSW1hZ2VzCiAqLwog
LSAoQk9PTClhbGxvd3NBbmltYXRlZEltYWdlczsKIAogLyohCi0gICAgQG1ldGhvZCBzZXRBbGxv
d0FuaW1hdGVkSW1hZ2VzOgorICAgIEBtZXRob2Qgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6CiAg
ICAgQHBhcmFtIGZsYWcKICovCiAtICh2b2lkKXNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOihCT09M
KWZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDUyNWNiYTlmYzM4
OTRhYTRiNGZiNGUwNWEyY2VlNmMwYmQ4YzgwMi4uZjk3OGUzOWZkYTJjOGI5ZWI4ZmJkZThjMTFl
ZWY5M2QzMGY3N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQy
MSw2ICsxNDIxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVp
cmsoKQogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHNlcmlm
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZl
cmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseV0pOwor
ICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbcHJlZmVyZW5jZXMgYWxsb3dz
QW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFByaW50QmFj
a2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFja2dyb3VuZHNdKTsKICAgICBzZXR0
aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVS
ZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDg5ZTk4
MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAuLjAxYTE5YzhkZTdmMTUxMjdmZDMy
ODRmZDZiNGFkODc5MWViMGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNw
cApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpKTsKICAgICAgICAgc2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7CiAKKyAgICAgICAgdmFsdWUgPSBh
dHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKSk7CisgICAgICAgIHNldHRpbmdz
LT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNldHRpbmdzLT5zZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3IEBAIFFXZWJTZXR0aW5nczo6
UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6
Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkpOwogCiAgICAgZC0+YXR0cmli
dXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywgdHJ1ZSk7CisgICAgZC0+
YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcywgdHJ1
ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVu
YWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Okph
dmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1NjNm
OThmLi5kYzIzY2YxMjBkODI0ZGQyYmNhZjU1NTliNDdiYzFhOWJlNDYxYzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAgICAg
ICBBbGxvd3NBbmltYXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCiAgICAg
ICAgIEphdmFFbmFibGVkLAogICAgICAgICBQbHVnaW5zRW5hYmxlZCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IGFi
ZjliYjIxOGEzNjFiMWE0NDdhYzk5NDFjMjAzZTNmZGYyN2Y3M2MuLmYxYTU2YjllYTM1YjMxNDBi
ZmM5ZDY0ZWUxZmU2NmIyMWJjNjI2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNzI3LDYgKzcyNyw3IEBAIFFX
ZWJQYWdlKiBRRGVjbGFyYXRpdmVXZWJWaWV3OjpwYWdlKCkgY29uc3QKICAgICBccW1scHJvcGVy
dHkgaW50IFdlYlZpZXc6OnNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRTaXplCiAKICAgICBccW1s
cHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hdXRvTG9hZEltYWdlcworICAgIFxxbWxw
cm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzCiAgICAg
XHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNjcmlwdEVuYWJsZWQKICAg
ICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZhRW5hYmxlZAogICAgIFxx
bWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5o
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaApp
bmRleCA4MzQ2M2RiOTdiYjY0ZGE2YzBkYmUxNmVlZGY5NjVmNDAxMTZhNzlkLi5hNjA3MzUzYzY5
NWU1OGU0OTNkNzBkNzM3ZTEzOTkxNGEyNzI3NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKQEAgLTMwNiw2ICszMDYs
NyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1YmxpYyBRT2JqZWN0IHsKICAg
ICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFEIGRlZmF1bHRGaXhlZEZv
bnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAgICAgUV9QUk9QRVJUWShi
b29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0QXV0b0xvYWRJ
bWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxs
b3dzQW5pbWF0ZWRJbWFnZXMgV1JJVEUgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpCiAgICAgUV9Q
Uk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNjcmlwdEVuYWJsZWQgV1JJ
VEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFFbmFibGVk
IFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShi
b29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUgc2V0UGx1Z2luc0Vu
YWJsZWQpCkBAIC0zNDgsNiArMzQ5LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBhdXRvTG9hZElt
YWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgb24pIHsgcy0+
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIG9uKTsgfQorICAgIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRl
KFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOyB9CisgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3Jp
cHRFbmFibGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBz
LT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAg
ICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2
ZXdlYnZpZXcuY3BwCmluZGV4IGIzOGRiMWRhZmZkMDNjYmZhYzVhY2Q0OWMzOThkMGM3YzczM2Rh
OTUuLmM5MWRhYjQxYWY4NzgyNzYxMDExNjVlMWFiM2JiMzA2MzI3ZmM2OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0
aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3
ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDgzLDYgKzQ4Myw3IEBAIHZv
aWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0
IHNldHRpbmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJh
dXRvTG9hZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
YWxsb3dzQW5pbWF0ZWRJbWFnZXMiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImRldmVsb3BlckV4dHJhc0VuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3Ry
aW5nOjpmcm9tQXNjaWkoImphdmFFbmFibGVkIikKICAgICAgICAgICAgICAgICAgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJqYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNzZlYWNmZmViYmVjNmQw
ZWE5YjQ2YWIzZjE4N2YzMTVmZDQ4ZGE1Ni4uMzFjYjRmMmM1OGUyZWI2Y2YyMjI3YTJiNDIwMjRj
ZDMyN2Y5ODg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5Igog
I2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSAiV2Vi
S2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktp
dERpc3BsYXlJbWFnZXNLZXkgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCisjZGVmaW5lIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkiCiAj
ZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgIldlYktpdExvYWRTaXRlSWNvbnNLZXkiCiAj
ZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkgIldlYktp
dEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAjZGVmaW5lIFdlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5ICJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKaW5kZXggNTdhY2MxMzE4MDAzMjAzZjMwMjU2Y2ExMjYxNjcyNzUxNzgw
Nzg2NC4uYTUyZDVmMWVlMjBkNTA5ODJjYjA3OTUwN2I3NTUxMjdiOTI5NmFmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKQEAgLTQ2NzUsNiArNDY3NSwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
ICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZlcmVuY2VzLT5hbGxvd3NBbmltYXRlZEltYWdl
cygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoISFlbmFibGVkKTsKKwogICAgIGhy
ID0gcHJlZmVyZW5jZXMtPnVzZXJTdHlsZVNoZWV0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYg
KEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmlu
ZGV4IGRkZTM3OGYwMmJmYmNlNjlhOThlMWFmZmJlNWI1NDA4MWUyMTg0ZmUuLjIxYzc4MmYzNDA4
OGRlMjBlYjFjM2U2ZDJhNjI3NzA1MDcxMTNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApA
QCAtMTAzLDYgKzEwMyw3IEBAIFdlYlZpZXc6OldlYlZpZXcoSFdORCBod25kLCB1bnNpZ25lZCBm
ZWF0dXJlcykKICAgICBzZXR0aW5ncy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKICAg
ICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyh0cnVlKTsKIAogICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSog
bG9hZGVyQ2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsK
ICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UsIDAsIGxvYWRl
ckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDg5MWE4NjdhOGVhMjI5MDk0
OGI1MzhiNmU5OTRjMjRkY2M1NDI3ODUuLjMzNjYxNzdhYzcxNmU4ZGI5MDRhYjRmODllOTQwOWVj
NzA3NTgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCkBAIC04OCw2ICs4OCwyMCBAQCBi
b29sIHd4V2ViU2V0dGluZ3M6OkxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogICAgIAordm9pZCB3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQoreworICAgIGlmIChtX3NldHRp
bmdzKQorICAgICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvd3NB
bmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJ
bWFnZXMoKSBjb25zdAoreworICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCB3eFdlYlNldHRpbmdzOjpTZXRKYXZhU2NyaXB0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKaW5kZXggYjcwZGRl
NWEzZTVjZjJlMzMwMmYxNGViYjUzNjg5OGE0NTI1YWIzMi4uMDNlMWU1MDY5Y2ZlYjM1MGIxZTEw
M2VhZjZkNDlhMTIzYTk2Y2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaApAQCAtMTExLDYgKzEx
MSwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25z
dDsKICAgICAKICAgICAvKioKKyAgICAgICAgU2V0cyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgYXJl
IGFsbG93ZWQgdG8gYmUgYW5pbWF0ZWQuCisgICAgKi8KKyAgICB2b2lkIFNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBu
b3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBB
bGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0OworCisgICAgLyoqCiAgICAgICAgIFNldHMgd2hl
dGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBKYXZhU2NyaXB0IGNvZGUuCiAgICAgKi8KICAg
ICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKaW5kZXgg
OTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2Y2Y4ZWQ4NzhhNy4uNThlMTg2ZDA1ODFhYzBi
ZGM4ZTgyNjk4NTgxMDkyZjliMzliM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3BwCkBAIC00MDcsNiAr
NDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0ZSh3eFdpbmRvdyogcGFyZW50LCBjb25zdCB3
eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4UG8KICAgICAvLyBldmVudHVhbGx5CiAgICAg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0gbV9pbXBsLT5wYWdlLT5zZXR0aW5ncygpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6
ZSgxNik7CiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgiVGltZXMgTmV3IFJvbWFu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCAw
Y2RjOTc1OTRlMjc0OGRiMDk0YTQ0M2U0MWJhODU2NjE5Yzk0YmVkLi4zZTVlOTQyZTNmMTIyOGEx
ZGYwOTAxNGU0MGZlZTM1MzkyNTkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAj
ZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNy
byhKYXZhU2NyaXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUp
IFwKICAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFsbG93c0FuaW1hdGVkSW1h
Z2VzLCBhbGxvd3NBbmltYXRlZEltYWdlcywgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3Jv
KExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
ICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNmNGZlNjZkZjQ5OTllYmJlOTVhLi4zYzhh
ZmQ5YjY5OTg5YTI0NWYwMmQxNzFkZmQ1YjczNDEyYzU2Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC03OCw2ICs3OCwxNiBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCitib29s
IFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxv
d3NBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJl
bmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0NmQxMDIxYTdkZDg3OTc5MDQ5
MjUuLjc3YzExYjkzNDUxZGJmYzc5ODdjMGM4NTRlMzdlYWQ0NjAxMWRmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaApAQCAtNDksNiArNDks
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwor
CiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRM
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQ
cmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNl
dHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIwOTEyMmQzZjMyZTQ1YzUz
Li4zZTQyNGEyZjkxM2I2NGIzYjk0OGI1MTQ3ZGRiMTkxYjQwY2U4Y2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC03
Myw2ICs3Myw3IEBAIGVudW0gewogCiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVCwKICAgICBQ
Uk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAog
ICAgIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkcsCiAgICAgUFJP
UF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05fQ0FDSEUsCiAgICAgUFJPUF9FTkFCTEVf
SFRNTDVfTE9DQUxfU1RPUkFHRSwKQEAgLTExNiw2ICsxMTcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRTZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25z
dCBHVmFsdQogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRF
RF9JTUFHRVM6CisgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2lt
YWdlcyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkc6
CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9s
b2FkX3NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAg
ICAgYnJlYWs7CkBAIC0yMjMsNiArMjI3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NH
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAg
ICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2VzKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXMoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNf
aWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpA
QCAtMzYzLDYgKzM3MCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmFsbG93cy1hbmltYXRlZC1p
bWFnZXM6CisgICAgICoKKyAgICAgKiBDb250cm9scyB3aGV0aGVyIGFuaW1hdGVkIGltYWdlcyBz
aG91bGQgYmUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImFsbG93cy1hbmltYXRlZC1p
bWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRv
IGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KworICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmxvYWQtaWNvbnMtaWdub3JpbmctaW1h
Z2UtbG9hZC1zZXR0aW5nOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2l0
ZSBjYW4gbG9hZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKQEAgLTk0MCw2ICs5NjAsNDEgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNl
dHRpbmdzLCBnYm9vbGVhbiBlbmEKIH0KIAogLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXM6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisg
KgorICogR2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3dzLWFuaW1hdGVkLWltYWdlcyBwcm9w
ZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBJZiBhbmltYXRpb24gb2YgaW1hZ2VzIGlzIGFs
bG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdz
X2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBG
QUxTRSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2Vz
KHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX3NldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzOgorICogQHNldHRpbmdzOiBhICNX
ZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhl
ICNXZWJLaXRTZXR0aW5nczphbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyhXZWJLaXRTZXR0
aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGFsbG93KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IFdLUHJl
ZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7
CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykKKyAgICAgICAgcmV0dXJuOworCisgICAg
V0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdl
dCgpLCBhbGxvdyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiKTsKK30KKworLyoqCiAgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0
X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nOgogICogQHNldHRpbmdzOiBh
ICNXZWJLaXRTZXR0aW5ncwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDI3Y2I3Yzc1YTE5MWRiZDNlNGEyNDhmMzJlODJj
OTBkZDViNTVjMzAuLmE3NGE1Nzc3MThhZjg4MjMyM2Y1ZDY2MjM3Y2Q2ODY2NmFlOTA3OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aApAQCAtOTIsNiArOTIsMTMgQEAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRfaW1hZ2Vz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiAgICAgICAgZW5hYmxlZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5n
c19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGFsbG93KTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5n
X2ltYWdlX2xvYWRfc2V0dGluZyAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiAKIFdF
QktJVF9BUEkgdm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNTJjZDg5ZWU3MTli
NzJmZmY1ZDhkYWFmMzdjMzk0ZDkzMmQ4ZWZlNi4uYmVmNjNlOTEzYzlhZDRlOTE5MWZiMDIyNTk4
YzlkNzI1ZGZkMjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNTYsNiArMTU2
LDggQEAgd2Via2l0X3NldHRpbmdzX25ldwogd2Via2l0X3NldHRpbmdzX25ld193aXRoX3NldHRp
bmdzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2F1dG9fbG9hZF9pbWFnZXMKIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcword2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0
ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMKIHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxl
X2h0bWw1X2RhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZmU1NzY0ZjlkMGU2MWU1NjVmMmVkM2Uz
YzhmOThkZWUyNS4uMTRlM2ZhYzUxYzAyNDRiNzJiZDMyNGRiMDJlZTQ0NTBlYTczMDUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
LmNwcApAQCAtNDAsNiArNDAsOCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RB
dHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgc3dpdGNo
IChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7Cisg
ICAgY2FzZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgSmF2
YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlw
dEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKQEAg
LTY2LDYgKzY4LDkgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIEF1dG9Mb2Fk
SW1hZ2VzOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxs
b3dBbmltYXRlZEltYWdlczoKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVk
SW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmOGE4NmFl
NjZhOGY1MDUzODFjNGEzZjg2ZDM0OGIxNzU2MDJhOTJjLi4yZDRiM2MwMTA0NDczMGMwYzhiMmNj
MmNkMmRkZDYzMWQ0NmJmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0
dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgpKSk7CisgICAgc2V0dGluZ3Mt
PnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YWxsb3dzQW5pbWF0ZWRJbWFnZXNLZXkoKSkpOwogICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJs
ZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRLZXkoKSkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0NTM2NzI0Y2Fk
NTNhNGY0YWY3NmVmOTIzMzRhZjI3YTQyOGU4MGUuLjA2ZmJkN2Y1Y2JlODg1ZWE5MjBiNzQ1ZTBk
YzUzYjk0ZGVmMWZjMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBh
YmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHBy
ZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6
CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlBh
Z2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToK
KwogMjAxMi0wMi0wOCAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBVcHN0cmVhbSBEdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZmI1MmNm
ZGU5MzRiYTg1MGQ4NWMyODg5MzBhZDY1ZGYwOGU5NmJiZi4uMzNjNGI5YWQ2MzMzMzY4ZmM1Y2E1
MWVhMDQ0OTEwMDVjZjllYjE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTIzOSw2ICsyMzksNyBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgc2V0
dGluZ3MtPnNldFRleHRSZWZsb3dNb2RlKFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RGlzYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5n
cy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRB
bGxvd3NBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0
T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCBiMDM0N2M4NTM2MGM0MmUxNGNlZjZhODBjYWUzNjAyMTcxYzg5NjQwLi4y
YjEzZjk2MzMxNThmOTI4MWNhNTI4OTViZTQ5NGMxYzQ1YmE4MDdjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNTA3LDYgKzE1MDcsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZz
LT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9v
bCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikK
ICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jv
b2wodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkiKQorICAgICAgICBwcmVmcy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBj
cHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFBsdWdp
bnNFbmFibGVkIikKICAgICAgICAgcHJlZnMtPnBsdWdpbnNFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRET01QYXN0ZUFsbG93ZWRQ
cmVmZXJlbmNlS2V5IikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCA4NzJlYmZiNGFhNWZkYTA2YzU5ZWJiN2FiMzdjODkxYzMxZTkw
YTQ0Li5kYTk0YzZjMzJhNmJiZjE1MTc5OWI0YzQ4MzQ2YmRiZTIyNWE1OWMyIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC04NSw2
ICs4NSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkKICAgICBqYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKICAgICBqYXZhU2NyaXB0RW5hYmxlZCA9
IHRydWU7CiAgICAgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKKyAgICBhbGxvd3NB
bmltYXRlZEltYWdlcyA9IHRydWU7CiAgICAgbG9jYWxTdG9yYWdlRW5hYmxlZCA9IHRydWU7CiAg
ICAgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkID0gdHJ1ZTsKICAgICBwbHVnaW5z
RW5hYmxlZCA9IHRydWU7CkBAIC0xOTcsNiArMTk4LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6
YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5h
YmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2Vz
KGFsbG93QW5pbWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFi
bGVkKGxvY2FsU3RvcmFnZUVuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQob2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKTsK
ICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJsZWQocGx1Z2luc0VuYWJsZWQpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggZWUwNGEy
MDk0NjZiYmI1YmM4OGQxN2I0ZTBkMzMyZjYyYTNiZGU5MS4uNmUzODZhZWE0NTZhNjcyZWQ2ZTRj
MGMwNjIzYTc3ZTRkYWZmNzQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5oCkBAIC04Nyw2ICs4Nyw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNl
cyB7CiAgICAgYm9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwogICAg
IGJvb2wgamF2YVNjcmlwdEVuYWJsZWQ7CiAgICAgYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHk7CisgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlczsKICAgICBib29sIGxvY2FsU3RvcmFn
ZUVuYWJsZWQ7CiAgICAgYm9vbCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ7CiAg
ICAgYm9vbCBwbHVnaW5zRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQppbmRleCAzMDEyYTcwZDg4YjQxNjMyNDNlZThhZjFjNTRhYjFlMGY2NDIxMTI4
Li42ZmM1NDQ0Y2NlNWMwYTliMzI3ZDM4Y2NlZjJhZTc0OGRiZWY5NzE5IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC02MjksNiArNjI5LDcgQEAgc3Rh
dGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgW3ByZWZlcmVu
Y2VzIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVm
ZXJlbmNlcyBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMg
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldEFs
bG93c0FuaW1hdGVkSW1hZ2VzOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldExvYWRzU2l0ZUlj
b25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlOk5PXTsKICAgICBbcHJlZmVyZW5jZXMg
c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZDpOT107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwCmluZGV4IDIxZGE4ZDA0YjRjYjc0NzVlNzNlNDBmNjk5Y2FiN2FiZTE1
NzBkOTMuLjAzODAxNjEwODNkMTEzMzhlMTJkMzliYTc4YmRmY2ZiMWE0OWYwOTEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0xODksNiArMTg5
LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKICAgICBzZXR0aW5ncygpLT5yZXNl
dEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNFbmFibGVkKTsKICAgICBzZXR0aW5ncygp
LT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQpOwogICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xv
YWRJbWFnZXMpOworICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6
QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmlidXRlKFFX
ZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5KTsKIAogICAgIG1fZHJ0LT5sYXlvdXRUZXN0Q29udHJv
bGxlcigpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAxZWM1YzVlNjA3ZWY2ZGI3NDRjZWVm
ZDk2ZmRiODU0M2M5YzZhZmFmLi5hMDVhNDVkNTBlYzEzMmQxOTNlNjQ0ZTNkYmIxZWZkNWQzNjFm
NDdlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAg
LTg1NSw2ICs4NTUsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFs
dWVzKElXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVyZW5jZXMtPnNldFRh
YnNUb0xpbmtzKEZBTFNFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3Jv
dW5kcyhUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KFRSVUUpOworICAgIHByZWZlcmVuY2VzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhUUlVFKTsK
ICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdXaW5CZWhh
dmlvcik7CiAKICAgICBpZiAocGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24pIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmYTcxNWJjMTJmZGZjNWJlMTRjMjcwODk0N2ZlY2M4YmJlZjlmODljLi5iNzIyN2M3ZjQw
OTBjYWI5ODQ3YzU3YjI1YWI2ZTk5NjhjM2IzOWFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAg
IEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxv
dy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRlZC5naWY6IEFkZGVkLgorCiAyMDEy
LTAyLTEwICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBQ
b3BTdGF0ZUV2ZW50LnN0YXRlIHNob3VsZCB1c2UgdGhlIHNhbWUgb2JqZWN0IGFzIGhpc3Rvcnku
c3RhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1h
dGVkLWltYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxv
dy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyODYwODk4OGQ1MDlh
OGRiMjJmMmJiYzUzZTk1MDJmZDEwMDI5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJlIGRpc2FibGVkLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZ2JhU3RyaW5nKGdpZkZyYW1l
KSBpcyAnMTM3MTAwZmYnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93
LWFuaW1hdGVkLWltYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ct
YW5pbWF0ZWQtaW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNzEzYzc4NWViODFmYzQ2ZTE1ZDQz
N2UxOGRmN2NjOTMzOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBz
dHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj5GQUlMPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4iKTsK
KworICAgIGZ1bmN0aW9uIHJnYmFTdHJpbmcgKGEpIHsKKyAgICAgICAgcmV0dXJuIEFycmF5LnBy
b3RvdHlwZS5tYXAuY2FsbChhLCAoZnVuY3Rpb24gKG4pIHsgcmV0dXJuICgiMDAiK24udG9TdHJp
bmcoMTYpKS5zbGljZSgtMik7IH0pKS5qb2luKCIiKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5j
ZUtleSIsIDApOworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFy
IGltYWdlID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVlbi1y
ZWQtYW5pbWF0ZWQuZ2lmPyIgKyBNYXRoLnJhbmRvbSgpOworICAgIGltYWdlLm9ubG9hZCA9IGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIC8vIFRoZSBnaWYgaXMgb25l
IGZyYW1lIG9mIGdyZWVuIGFuZCBzZXZlcmFsIGZyYW1lcyBvZiByZWQuCisgICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgICAg
ICAgICAgIGdpZkZyYW1lID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSkuZGF0YTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJyZ2JhU3RyaW5nKGdpZkZyYW1lKSIsICInMTM3MTAwZmYn
Iik7IC8vIEdyZWVuLgorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
MTUwKTsgLy8gR3JlZW4gZnJhbWUgb2YgR0lGIGhhcyAxMDBtcyBkdXJhdGlvbgorICAgIH0KKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dy
ZWVuLXJlZC1hbmltYXRlZC5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMv
Z3JlZW4tcmVkLWFuaW1hdGVkLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmM0NThhZmM4MzgyODUyYzJkODE2
OTA5MDQ0YWMzZmI1N2RhNmY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4NjcKemNtWj93YmhF
SGJHLTVEZl9gdHYqVCp2P2ZpYSVLeHhJcHdqT1huYjAjfU5NQER+MHFGLUs+SnRiY0hmUUpwJT1l
CnooJkVnI2JPbGNAY0xsRWlTOWdVbjNqPDlaZ35IT3JvWG5DKzF6UUQ2MTE8KXx8Sjs3QUE7SGQk
MGpAQFIyRiMyPQp6Xks/TGxnS1QxOEdIJlQjZEhPQj87eUdKeGIjSzE2PVFuQGJCYWRtJUkrd2pW
d2UyMUVAbFFWMnp4Nik8Yj8qQj0Kb2VqY3YmQmExJEVfLUx1S1FwYTZ6TT5QQlpJY0wtPDtNZmBz
Nj5NcGtJLXowPjBRQDtXSnBjZHoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127068</attachid>
            <date>2012-02-14 15:44:29 -0800</date>
            <delta_ts>2012-02-16 16:50:37 -0800</delta_ts>
            <desc>Yet another build fix</desc>
            <filename>bug-9767-20120214154428.patch</filename>
            <type>text/plain</type>
            <size>56077</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZjNjA1MzJlOGYzNzZm
YzgwMGQ4YzdlMGQxMGFhMzEwODBkOTcwYS4uYWVlMThiZGMzMTljNmZhZTUwZmYwNDhjYjRjNTFk
ZmEzMDQ0YzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTEzICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5p
bWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVk
LWltYWdlcy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2Vz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xMCAgUGFibG8gRmxvdXJldCAg
PHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91
bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5LnN0YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDM3YWExODU4MzM4YmU2NTk5ODk5NDg4NDc3YzIzMGFkNGE1ODYyZmMuLjc5
OGUzMmNmZGM0NGFhNTNiMTdmMDgyNmU0NGVkODg0NzhlNzgxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxw
YWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBw
cmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRp
bmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wMi0wOCAgQWxl
eGVpIFN2aXRraW5lICA8YXN2aXRraW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1
bTogRml4IE1hYyBydWJiZXIgYmFuZCBvdmVyaGFuZyBkcmF3aW5nIG9uIGNvbXBvc2l0ZWQgcGFn
ZXMgYW5kIHJlLWVuYWJsZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2YTUyZmEyNTI0MWM3
YzRkNzA3NjU2OTdjMzhkMTE1MTY5MDQzM2E0Li5mZGE1M2ZiMGMzODY4ZDVlZjJkYzgyZDE2OTlm
NDgyMTFhNjM1NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDIt
MTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBB
bGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcp
OgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX2dldCk6
CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNfc2V0KToK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wMi0wNyAgS3J6eXN6dG9mIEN6ZWNo
ICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgbWlzc2luZyBpbml0
aWFsaXphdGlvbiBvZiBlZGl0YWJsZSB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4YzU5
YmI5M2ZiNTBkNGVjYWM5MTIzNmM4NDcyODNiYjkzODdlNzc5Li4zMTZkYzExNTVhNGJhODBlMGY1
NWE2ZTkzZjU3YjJmOWQyOTI3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisKIDIwMTItMDIt
MDggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZSBmb3IgbGlzdCBpdGVtcyB3aG9zZSB0ZXh0IHdyYXBzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggYmYxMTczNzIwMjJjMjNiYjE2NGIyYjRkOTgzZmIzZDdlNjllNTg3MS4uODA0NThk
NDE4MTE1M2EwMjg3MDYwNDBkNzkxZmE1NGVhOTkzYzUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0
aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDEyLTAyLTA3ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChy
MTA2NjgxKTogTnVsbCBjaGVjayBtaXNzaW5nIGluIFtXZWJGcmFtZShXZWJJbnRlcm5hbCkgX3R5
cGluZ1N0eWxlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5NDA2YzkyNDcwYjY4M2E1YTc5ODU5YzFmMTBl
OWQ0NDVkYjU3ZmIzLi5hNTVmZmIxNWY3NTczODVkNzM2YTdhNGZkNDM1NTBkZGFhOGIwYmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFn
ZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6
CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3Fk
ZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2
ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAg
ICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFFEZWNsYXJhdGl2ZVdlYlNldHRpbmdzOjpzZXRBbGxvd3NBbmltYXRlZEltYWdlcyk6Cisg
ICAgICAgICogdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmll
dy5jcHA6CisgICAgICAgICh0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MpOgorCiAy
MDEyLTAyLTA4ICBMZW8gRnJhbmNoaSAgPGxmcmFuY2hpQGtkZS5vcmc+CiAKICAgICAgICAgUmVt
b3RlIHdlYiBpbnNwZWN0b3IgcmVlbnRyYW5jeSBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGQz
ZTQ2M2E3MDNmMTU5YTlhNmZlMWM2N2FmOTIwYzFjNTVmYWFiN2EuLjFjYjQ5MWQ1N2FiZTljMDU4
MmY5NDIxNjU4MWU3MDE3YWExN2MzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMi0wMi0wMiAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgc2hvd24gbm90aWZpY2F0aW9ucyB3aGVuIGNv
bnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZDJhN2U2
NDdiMmUwYWUwOWI3Zjc2Y2MwNjcyNjc4NTkzZjkyMTMxLi4wYTZiN2M3OTM4NTBhYjExYzhkYTM4
ZTgxZmQ3YjM3NTY1OGJkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAg
ICAgICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgUGxhdGZvcm1FdmVudCBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IGI0NWIzNTAwNTAwNTE5NzUwOTEzNGNlNDRjNWU5MWIzNjE4ZWQ1YzcuLjdl
N2ExNWY1NWI3ODExYmRiNjBmNTlhNmI2ZGFlMTQ0MTJmNzU2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTMgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3Nl
dHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmltYXRl
ZEltYWdlcyk6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcyk6
CisgICAgICAgICogV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHd4V2ViVmlldzo6Q3JlYXRlKToKKwogMjAxMi0wMS0zMCAgS2V2aW4gT2xsaXZpZXIgIDxr
ZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQuIEJ1aWxk
IGZpeCwgYWRkIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZDI0NTUyNGU4
YTRlYmEzNTViMGY2M2IxZjU1MmY0NjA5YmJkN2VhLi45MzZhMGIzYzU5MmZiNzU5M2NiN2I5YzUw
MGViMmQ5MTllYTBjZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDItMTMg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d3NBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzU2V0
UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eSk6CisgICAgICAg
ICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwOgorICAgICAgICAoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0
ZSk6CisgICAgICAgIChRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDEyLTAyLTA4ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTA2OTIwLCByMTA2OTI0LCByMTA2OTMzLCByMTA2OTM5LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBlYzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi4yNDQx
MWI2YzYwMzdmMWZjN2RhMGY4YWMwYWI5NmFiMzMzOGRjNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtOTcyLDYgKzk3Miw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGlt
ZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1p
bHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0U2Vzc2lvblN0b3JhZ2VRdW90YUVqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dFNob3dzVVJMc0luVG9vbFRpcHNFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRBbGxvd3NB
bmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldENhcmV0QnJvd3NpbmdF
bmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVF
aQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVk
aXRhYmxlTGlua0JlaGF2aW9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBiNWNiOTYz
YmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi5mYzE5ZGQ0NTRmN2IxOWE5YjBlMWIy
MTdiMjRhMDJhOWJlYWUyNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTI4LDYg
KzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9pc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwgbV9hbGxvd3NB
bmltYXRlZEltYWdlcyhmYWxzZSkKICAgICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1NldHRpbmcoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX2NhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4Miwx
MSBAQCB2b2lkIFNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRp
bWVyPFNldHRpbmdzPiopCiAgICAgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFt
ZXMobV9wYWdlKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMo
Ym9vbCBhbGxvd3NBbmltYXRlZEltYWdlcykKK3sKKyAgICBtX2FsbG93c0FuaW1hdGVkSW1hZ2Vz
ID0gYWxsb3dzQW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMpCiB7
CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxvYWRz
U2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJlYWVm
OTI2MWE3NDdlMzljZjcwOTc3NjguLjc5MDliMmFiYTIxNzhhYzU1YmI4OGQzZDVkY2NkYzNmYTdm
NTAyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sKTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdl
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAv
LyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcg
aXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2Fs
bG93c0FuaW1hdGVkSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fY2FyZXRCcm93c2luZ0VuYWJsZWQgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
CmluZGV4IGE4OTU3NjAxZjYyMWYwNTNhNjA3Zjc2NDY3ZmRkOGYxOTgzNmZiNzMuLjVhZWYwYjIz
YWQ0NDQ3MzJiODBkOGRlNzNjNTdlY2QwYzhkNjQ4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCBi
b29sIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oYm9vbCBza2lwcGluZ0Zy
YW1lcykKICAgICAKICAgICAvLyBTZWUgaWYgYW55b25lIGlzIHN0aWxsIHBheWluZyBhdHRlbnRp
b24gdG8gdGhpcyBhbmltYXRpb24uICBJZiBub3QsIHdlIGRvbid0CiAgICAgLy8gYWR2YW5jZSBh
bmQgd2lsbCByZW1haW4gc3VzcGVuZGVkIGF0IHRoZSBjdXJyZW50IGZyYW1lIHVudGlsIHRoZSBh
bmltYXRpb24gaXMgcmVzdW1lZC4KLSAgICBpZiAoIXNraXBwaW5nRnJhbWVzICYmIGltYWdlT2Jz
ZXJ2ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCisgICAgaWYgKGltYWdlT2JzZXJ2
ZXIoKS0+c2hvdWxkUGF1c2VBbmltYXRpb24odGhpcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICsrbV9jdXJyZW50RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCmluZGV4IDczZDg3NDQxNmY3ODk0OGJmZjMyYTNmMTAxNWNhMWFhNjNjNDc3ZDEu
LmJiNjAxZmRlMmI1NWZlZjllMTYzMDNiMzZkNDA0OWE1NmJjZmQ1ZGQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+
CkBAIC0yNTczLDkgKzI1NzQsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OndpbGxSZW5kZXJJbWFn
ZShDYWNoZWRJbWFnZSopCiAgICAgaWYgKHN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxF
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1
bWVudCgpLT5zZXR0aW5ncygpOworCiAgICAgLy8gSWYgd2UncmUgbm90IGluIGEgd2luZG93IChp
LmUuLCB3ZSdyZSBkb3JtYW50IGZyb20gYmVpbmcgcHV0IGluIHRoZSBiL2YgY2FjaGUgb3IgaW4g
YSBiYWNrZ3JvdW5kIHRhYikKICAgICAvLyB0aGVuIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGVp
dGhlci4KLSAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkgJiYgIWRvY3VtZW50
KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKTsKKyAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFn
ZUNhY2hlKCkgJiYgIWRvY3VtZW50KCktPnZpZXcoKS0+aXNPZmZzY3JlZW4oKSAmJiBzZXR0aW5n
cyAmJiBzZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBS
ZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQYWludFBoYXNlIHApIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAyNWFjMDc1MjM5
Njc4N2I2YWNhZDQzMWMzYjcxNjc2YWQyMDBmNDg2Li5iMmVkZDVjMjU0ZTlmNDUzMjgzNmQ3MmMw
ODU2ZGNhODUxOTc2ZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNl
dHRpbmdzLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRX
ZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29s
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cAppbmRleCAxMWU5YzMzN2IwN2EyMjBmMGJmMjE4ZWU2NTVjMDJmMTNkZDE2YjJiLi4xNWY5ZTYx
ZmEyMTVjZDk3OTRmNzU3YTUxNDBkMGRhZWNiYTFhMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKIH0KIAordm9pZCBXZWJTZXR0aW5n
c0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQor
eworICAgIG1fc2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNDVl
NjJkYjZmYmUyMGNjNTdjMGYxN2U4NTg3YTZmYjA5ZjY1MTNlOS4uY2Q3NjE5NGQ4YTU0YzQ0NTJh
YWQyY2IzNDJlMjg1OGE4YTQ4OWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2Vz
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IDk3ODljMWMzMGQyOTNhMGNmMjQ1MDcyMTZiMjgyOTNlOWQw
ZmJhODEuLmNkNjNhN2FmZGU4OTJhZGZkODVjYTFkNmUwZjgwMzUxYjAzYzAwMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTcxLDYgKzE3MSw3IEBAIHN0cnVjdCBfRXdrX1Zp
ZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlmOwogICAgICAg
ICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9Mb2FkSW1hZ2Vz
IDogMTsKKyAgICAgICAgYm9vbCBhbGxvd3NBbmltYXRlZEltYWdlczogMTsKICAgICAgICAgYm9v
bCBhdXRvU2hyaW5rSW1hZ2VzIDogMTsKICAgICAgICAgYm9vbCBlbmFibGVBdXRvUmVzaXplV2lu
ZG93IDogMTsKICAgICAgICAgYm9vbCBlbmFibGVEZXZlbG9wZXJFeHRyYXMgOiAxOwpAQCAtNjI5
LDYgKzYzMCw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2
X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcHJpdi0+dmlld3BvcnRB
cmd1bWVudHMudXNlclNjYWxhYmxlID0gdHJ1ZTsKIAogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHByaXYtPnBhZ2VTZXR0aW5n
cy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4NTktMSIpOwogICAgIHByaXYtPnBh
Z2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTIpOwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKQEAgLTY3Myw2ICs2NzUsNyBAQCBzdGF0
aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21h
cnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPnNldHRpbmdzLmZvbnRTYW5zU2VyaWYgPSBl
aW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAg
ICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+bG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0
ZWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKCk7CiAg
ICAgcHJpdi0+c2V0dGluZ3MuYXV0b1Nocmlua0ltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCgpOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJs
ZUF1dG9SZXNpemVXaW5kb3cgPSB0cnVlOwogICAgIHByaXYtPnNldHRpbmdzLmVuYWJsZURldmVs
b3BlckV4dHJhcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
OwpAQCAtMTkyOCw2ICsxOTMxLDI1IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYWxsb3dzX2FuaW1hdGVk
X2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgcmV0dXJu
IHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgRWluYV9Cb29sIGFsbG93KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIGFsbG93ID0gISFhbGxvdzsKKyAgICBp
ZiAocHJpdi0+c2V0dGluZ3MuYWxsb3dzQW5pbWF0ZWRJbWFnZXMgIT0gYWxsb3cpIHsKKyAgICAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvdyk7Cisg
ICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzID0gYWxsb3c7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdXRv
X3Nocmlua19pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVX
S19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGQzNDc0YTY0YjM5M2Y2NWUxMDNjNDliMDJiNjU1NDM1
ODNiNTNkNmMuLmI4NzdiZDVkY2U4Mzg5MTJiMjM2NGQ3ZmVjZmZkNTJlNjI0NzQyYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMzUxLDYgKzEzNTEsMjcgQEAgRUFQSSBFaW5hX0Jv
b2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9p
bWFnZXNfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYXV0b21hdGljKTsKIAogLyoqCisg
KiBRdWVyaWVzIGlmIHRoZSBpbWFnZXMgYXJlIGFsbG93ZWQgdG8gYW5pbWF0ZS4KKyAqCisgKiBA
cGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRv
IGFuaW1hdGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB0aGUgaW1hZ2VzIGFyZSBh
bGxvd2VkIHRvIGFuaW1hdGUsCisgKiAgICAgICAgIEBjIEVJTkFfRkFMU0UgaWYgbm90IG9yIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd3Nf
YW5pbWF0ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQWxs
b3dzL2Rpc2FsbG93cyBhbmltYXRpb24gb2YgaW1hZ2VzLgorICoKKyAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIHNldCB3aGV0aGVyIGltYWdlcyBjYW4gYmUgYW5pbWF0ZWQgb3Igbm90CisgKiBA
cGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYW5pbWF0aW9uIG9mIGltYWdl
cywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2FsbG93c19hbmltYXRlZF9pbWFnZXNf
c2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMg
aWYgdGhlIGltYWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBv
IHZpZXcgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRp
Y2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CmluZGV4IGQ5MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc4NDg4OGQw
ZTcyODA4ZGIyZDA5ZDI4NzhhZDIzZjRmZDBiYWYwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsK
ICAgICBQUk9QX01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2
X0RQSSwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFU
RURfSU1BR0VTLAogICAgIFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAogICAgIFBST1BfUFJJTlRf
QkFDS0dST1VORFMsCiAgICAgUFJPUF9FTkFCTEVfU0NSSVBUUywKQEAgLTMzNCw2ICszMzUsMTUg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFdlYlNl
dHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQUxMT1dTX0FO
SU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRvIGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF1dG8tc2hyaW5rLWltYWdlcyIsCkBAIC0xMDExLDYgKzEwMjEsOSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbgogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAg
ICBwcml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dTX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAg
ICAgcHJpdi0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAg
ICAgICAgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUp
OwogICAgICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
cHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4ZTEyNWFmYzdjNzI2MzEu
LmNlNDViNTJjYTc4NzUxZDc0NDZiZTQ4MTMyNjFiOWU2MGQ1YTIxZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKQEAgLTQy
LDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGd1aW50
IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5mb3JjZTk2RFBJOwogICAg
IGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFsbG93c0FuaW1hdGVkSW1h
Z2VzOwogICAgIGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRC
YWNrZ3JvdW5kczsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGMyMjQ2MWM3NDk4NzYwODFkOTdiNDYw
NWU5MjBjMmYxYzQ1N2I5ZDAuLmI4MzUwMzY0ZTM2MTQ5M2EwYTE5YjQzYzEwZmUwMDAwMjdiNzA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMy
MDAsNiArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGlu
Z3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJp
ZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7
CiAgICAgY29yZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5z
ZXJpZkZvbnRGYW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3Jl
U2V0dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHNldHRpbmdzUHJpdmF0ZS0+YWxsb3dz
QW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJ
bWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgIGNvcmVT
ZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5nc1ByaXZhdGUtPnByaW50
QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzZXR0aW5n
c1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDgwY2M5MzU1YWNiYmQ3NDFkN2JlODlkYjc4ZmI3ZDI0MTcyNmI1
OGYuLmM1NGZhZGYwNjViNTBhMGY2OWViMmEwNGRhYWE1ZjY0MGI0OTIyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTI4OCwxMiArMjg4LDEyIEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogLSAo
dm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClmbGFnOwogCiAvKiEKLSAgICBAbWV0aG9kIGFs
bG93QW5pbWF0ZWRJbWFnZXMKKyAgICBAbWV0aG9kIGFsbG93c0FuaW1hdGVkSW1hZ2VzCiAqLwog
LSAoQk9PTClhbGxvd3NBbmltYXRlZEltYWdlczsKIAogLyohCi0gICAgQG1ldGhvZCBzZXRBbGxv
d0FuaW1hdGVkSW1hZ2VzOgorICAgIEBtZXRob2Qgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXM6CiAg
ICAgQHBhcmFtIGZsYWcKICovCiAtICh2b2lkKXNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOihCT09M
KWZsYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDUyNWNiYTlmYzM4
OTRhYTRiNGZiNGUwNWEyY2VlNmMwYmQ4YzgwMi4uZjk3OGUzOWZkYTJjOGI5ZWI4ZmJkZThjMTFl
ZWY5M2QzMGY3N2M0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQy
MSw2ICsxNDIxLDcgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVp
cmsoKQogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoW3ByZWZlcmVuY2VzIHNlcmlm
Rm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoW3ByZWZl
cmVuY2VzIHN0YW5kYXJkRm9udEZhbWlseV0pOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoW3ByZWZlcmVuY2VzIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseV0pOwor
ICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbcHJlZmVyZW5jZXMgYWxsb3dz
QW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmlu
Z0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFByaW50QmFj
a2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFja2dyb3VuZHNdKTsKICAgICBzZXR0
aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVS
ZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCmluZGV4IDg5ZTk4
MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAuLjAxYTE5YzhkZTdmMTUxMjdmZDMy
ODRmZDZiNGFkODc5MWViMGNkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNw
cApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVz
LnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpKTsKICAgICAgICAgc2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7CiAKKyAgICAgICAgdmFsdWUgPSBh
dHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1
ZShRV2ViU2V0dGluZ3M6OkFsbG93c0FuaW1hdGVkSW1hZ2VzKSk7CisgICAgICAgIHNldHRpbmdz
LT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAgICAgICAgdmFsdWUgPSBhdHRy
aWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0
aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNldHRpbmdzLT5zZXRETlNQcmVm
ZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3IEBAIFFXZWJTZXR0aW5nczo6
UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6
Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkpOwogCiAgICAgZC0+YXR0cmli
dXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdlcywgdHJ1ZSk7CisgICAgZC0+
YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd3NBbmltYXRlZEltYWdlcywgdHJ1
ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVu
YWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Okph
dmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9x
d2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1NjNm
OThmLi5kYzIzY2YxMjBkODI0ZGQyYmNhZjU1NTliNDdiYzFhOWJlNDYxYzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAgICAg
ICBBbGxvd3NBbmltYXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCiAgICAg
ICAgIEphdmFFbmFibGVkLAogICAgICAgICBQbHVnaW5zRW5hYmxlZCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmluZGV4IGFi
ZjliYjIxOGEzNjFiMWE0NDdhYzk5NDFjMjAzZTNmZGYyN2Y3M2MuLmYxYTU2YjllYTM1YjMxNDBi
ZmM5ZDY0ZWUxZmU2NmIyMWJjNjI2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvZGVj
bGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNzI3LDYgKzcyNyw3IEBAIFFX
ZWJQYWdlKiBRRGVjbGFyYXRpdmVXZWJWaWV3OjpwYWdlKCkgY29uc3QKICAgICBccW1scHJvcGVy
dHkgaW50IFdlYlZpZXc6OnNldHRpbmdzLmRlZmF1bHRGaXhlZEZvbnRTaXplCiAKICAgICBccW1s
cHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hdXRvTG9hZEltYWdlcworICAgIFxxbWxw
cm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmFsbG93c0FuaW1hdGVkSW1hZ2VzCiAgICAg
XHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNjcmlwdEVuYWJsZWQKICAg
ICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZhRW5hYmxlZAogICAgIFxx
bWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5o
IGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaApp
bmRleCA4MzQ2M2RiOTdiYjY0ZGE2YzBkYmUxNmVlZGY5NjVmNDAxMTZhNzlkLi5hNjA3MzUzYzY5
NWU1OGU0OTNkNzBkNzM3ZTEzOTkxNGEyNzI3NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKQEAgLTMwNiw2ICszMDYs
NyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1YmxpYyBRT2JqZWN0IHsKICAg
ICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFEIGRlZmF1bHRGaXhlZEZv
bnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAgICAgUV9QUk9QRVJUWShi
b29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJVEUgc2V0QXV0b0xvYWRJ
bWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxs
b3dzQW5pbWF0ZWRJbWFnZXMgV1JJVEUgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMpCiAgICAgUV9Q
Uk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNjcmlwdEVuYWJsZWQgV1JJ
VEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFFbmFibGVk
IFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShi
b29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUgc2V0UGx1Z2luc0Vu
YWJsZWQpCkBAIC0zNDgsNiArMzQ5LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBhdXRvTG9hZElt
YWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgb24pIHsgcy0+
c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIG9uKTsgfQorICAgIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRl
KFFXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJbWFnZXMpOyB9CisgICAgdm9pZCBzZXRBbGxv
d3NBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkFsbG93c0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3Jp
cHRFbmFibGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBz
LT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAg
ICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
dGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2
ZXdlYnZpZXcuY3BwCmluZGV4IGIzOGRiMWRhZmZkMDNjYmZhYzVhY2Q0OWMzOThkMGM3YzczM2Rh
OTUuLmM5MWRhYjQxYWY4NzgyNzYxMDExNjVlMWFiM2JiMzA2MzI3ZmM2OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0
aXZld2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3
ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDgzLDYgKzQ4Myw3IEBAIHZv
aWQgdHN0X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0
IHNldHRpbmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJh
dXRvTG9hZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
YWxsb3dzQW5pbWF0ZWRJbWFnZXMiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImRldmVsb3BlckV4dHJhc0VuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3Ry
aW5nOjpmcm9tQXNjaWkoImphdmFFbmFibGVkIikKICAgICAgICAgICAgICAgICAgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJqYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNzZlYWNmZmViYmVjNmQw
ZWE5YjQ2YWIzZjE4N2YzMTVmZDQ4ZGE1Ni4uMzFjYjRmMmM1OGUyZWI2Y2YyMjI3YTJiNDIwMjRj
ZDMyN2Y5ODg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5Igog
I2RlZmluZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VMb29waW5nUHJlZmVyZW5jZUtleSAiV2Vi
S2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktp
dERpc3BsYXlJbWFnZXNLZXkgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiCisjZGVmaW5lIFdlYktp
dEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNLZXkiCiAj
ZGVmaW5lIFdlYktpdExvYWRTaXRlSWNvbnNLZXkgIldlYktpdExvYWRTaXRlSWNvbnNLZXkiCiAj
ZGVmaW5lIFdlYktpdEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkgIldlYktp
dEJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWxLZXkiCiAjZGVmaW5lIFdlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5ICJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKaW5kZXggNTdhY2MxMzE4MDAzMjAzZjMwMjU2Y2ExMjYxNjcyNzUxNzgw
Nzg2NC4uYTUyZDVmMWVlMjBkNTA5ODJjYjA3OTUwN2I3NTUxMjdiOTI5NmFmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKQEAgLTQ2NzUsNiArNDY3NSwxMSBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
ICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KCEhZW5hYmxlZCk7CiAKKyAgICBociA9IHByZWZlcmVuY2VzLT5hbGxvd3NBbmltYXRlZEltYWdl
cygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoISFlbmFibGVkKTsKKwogICAgIGhy
ID0gcHJlZmVyZW5jZXMtPnVzZXJTdHlsZVNoZWV0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYg
KEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmlu
ZGV4IGRkZTM3OGYwMmJmYmNlNjlhOThlMWFmZmJlNWI1NDA4MWUyMTg0ZmUuLjIxYzc4MmYzNDA4
OGRlMjBlYjFjM2U2ZDJhNjI3NzA1MDcxMTNiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApA
QCAtMTAzLDYgKzEwMyw3IEBAIFdlYlZpZXc6OldlYlZpZXcoSFdORCBod25kLCB1bnNpZ25lZCBm
ZWF0dXJlcykKICAgICBzZXR0aW5ncy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKICAg
ICBzZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyh0cnVlKTsKIAogICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSog
bG9hZGVyQ2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsK
ICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UsIDAsIGxvYWRl
ckNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCmluZGV4IDg5MWE4NjdhOGVhMjI5MDk0
OGI1MzhiNmU5OTRjMjRkY2M1NDI3ODUuLjMzNjYxNzdhYzcxNmU4ZGI5MDRhYjRmODllOTQwOWVj
NzA3NTgwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwCkBAIC04OCw2ICs4OCwyMCBAQCBi
b29sIHd4V2ViU2V0dGluZ3M6OkxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogICAgIAordm9pZCB3eFdlYlNldHRpbmdzOjpTZXRBbGxvd3NBbmlt
YXRlZEltYWdlcyhib29sIGFsbG93c0FuaW1hdGVkSW1hZ2VzKQoreworICAgIGlmIChtX3NldHRp
bmdzKQorICAgICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd3NBbmltYXRlZEltYWdlcyhhbGxvd3NB
bmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dzQW5pbWF0ZWRJ
bWFnZXMoKSBjb25zdAoreworICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCB3eFdlYlNldHRpbmdzOjpTZXRKYXZhU2NyaXB0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKaW5kZXggYjcwZGRl
NWEzZTVjZjJlMzMwMmYxNGViYjUzNjg5OGE0NTI1YWIzMi4uMDNlMWU1MDY5Y2ZlYjM1MGIxZTEw
M2VhZjZkNDlhMTIzYTk2Y2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaApAQCAtMTExLDYgKzEx
MSwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25z
dDsKICAgICAKICAgICAvKioKKyAgICAgICAgU2V0cyB3aGV0aGVyIG9yIG5vdCBpbWFnZXMgYXJl
IGFsbG93ZWQgdG8gYmUgYW5pbWF0ZWQuCisgICAgKi8KKyAgICB2b2lkIFNldEFsbG93c0FuaW1h
dGVkSW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBu
b3QgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBB
bGxvd3NBbmltYXRlZEltYWdlcygpIGNvbnN0OworCisgICAgLyoqCiAgICAgICAgIFNldHMgd2hl
dGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBKYXZhU2NyaXB0IGNvZGUuCiAgICAgKi8KICAg
ICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKaW5kZXgg
OTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2Y2Y4ZWQ4NzhhNy4uNThlMTg2ZDA1ODFhYzBi
ZGM4ZTgyNjk4NTgxMDkyZjliMzliM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3BwCkBAIC00MDcsNiAr
NDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0ZSh3eFdpbmRvdyogcGFyZW50LCBjb25zdCB3
eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4UG8KICAgICAvLyBldmVudHVhbGx5CiAgICAg
V2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0gbV9pbXBsLT5wYWdlLT5zZXR0aW5ncygpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6
ZSgxNik7CiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgiVGltZXMgTmV3IFJvbWFu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCAw
Y2RjOTc1OTRlMjc0OGRiMDk0YTQ0M2U0MWJhODU2NjE5Yzk0YmVkLi4zZTVlOTQyZTNmMTIyOGEx
ZGYwOTAxNGU0MGZlZTM1MzkyNTkzNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc1N0b3JlLmgKQEAgLTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAj
ZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNy
byhKYXZhU2NyaXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUp
IFwKICAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFsbG93c0FuaW1hdGVkSW1h
Z2VzLCBhbGxvd3NBbmltYXRlZEltYWdlcywgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3Jv
KExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
ICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNmNGZlNjZkZjQ5OTllYmJlOTVhLi4zYzhh
ZmQ5YjY5OTg5YTI0NWYwMmQxNzFkZmQ1YjczNDEyYzU2Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC03OCw2ICs3OCwxNiBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworfQorCitib29s
IFdLUHJlZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxv
d3NBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJl
bmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0NmQxMDIxYTdkZDg3OTc5MDQ5
MjUuLjc3YzExYjkzNDUxZGJmYzc5ODdjMGM4NTRlMzdlYWQ0NjAxMWRmMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaApAQCAtNDksNiArNDks
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwor
CiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRM
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQ
cmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNl
dHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIwOTEyMmQzZjMyZTQ1YzUz
Li4zZTQyNGEyZjkxM2I2NGIzYjk0OGI1MTQ3ZGRiMTkxYjQwY2U4Y2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC03
Myw2ICs3Myw3IEBAIGVudW0gewogCiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVCwKICAgICBQ
Uk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAog
ICAgIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkcsCiAgICAgUFJP
UF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05fQ0FDSEUsCiAgICAgUFJPUF9FTkFCTEVf
SFRNTDVfTE9DQUxfU1RPUkFHRSwKQEAgLTExNiw2ICsxMTcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJL
aXRTZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25z
dCBHVmFsdQogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgogICAgICAgICB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XU19BTklNQVRF
RF9JTUFHRVM6CisgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2lt
YWdlcyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9MT0FEX1NFVFRJTkc6
CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9s
b2FkX3NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAg
ICAgYnJlYWs7CkBAIC0yMjMsNiArMjI3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NH
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAg
ICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2VzKHNldHRpbmdzKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXMoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNf
aWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nKHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpA
QCAtMzYzLDYgKzM3MCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmFsbG93cy1hbmltYXRlZC1p
bWFnZXM6CisgICAgICoKKyAgICAgKiBDb250cm9scyB3aGV0aGVyIGFuaW1hdGVkIGltYWdlcyBz
aG91bGQgYmUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BTExPV1NfQU5JTUFURURfSU1BR0VTLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImFsbG93cy1hbmltYXRlZC1p
bWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiQWxsb3dzIGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgaW1hZ2VzIHRv
IGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KworICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmxvYWQtaWNvbnMtaWdub3JpbmctaW1h
Z2UtbG9hZC1zZXR0aW5nOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2l0
ZSBjYW4gbG9hZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKQEAgLTk0MCw2ICs5NjAsNDEgQEAgdm9p
ZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNl
dHRpbmdzLCBnYm9vbGVhbiBlbmEKIH0KIAogLyoqCisgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2Fs
bG93c19hbmltYXRlZF9pbWFnZXM6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisg
KgorICogR2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3dzLWFuaW1hdGVkLWltYWdlcyBwcm9w
ZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBJZiBhbmltYXRpb24gb2YgaW1hZ2VzIGlzIGFs
bG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdz
X2dldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBG
QUxTRSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFsbG93c0FuaW1hdGVkSW1hZ2Vz
KHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7Cit9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX3NldF9hbGxvd3NfYW5pbWF0ZWRfaW1hZ2VzOgorICogQHNldHRpbmdzOiBhICNX
ZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhl
ICNXZWJLaXRTZXR0aW5nczphbGxvd3MtYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyhXZWJLaXRTZXR0
aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGFsbG93KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CisKKyAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IFdLUHJl
ZmVyZW5jZXNHZXRBbGxvd3NBbmltYXRlZEltYWdlcyhwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7
CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykKKyAgICAgICAgcmV0dXJuOworCisgICAg
V0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdl
dCgpLCBhbGxvdyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFs
bG93cy1hbmltYXRlZC1pbWFnZXMiKTsKK30KKworLyoqCiAgKiB3ZWJraXRfc2V0dGluZ3NfZ2V0
X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5nOgogICogQHNldHRpbmdzOiBh
ICNXZWJLaXRTZXR0aW5ncwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDI3Y2I3Yzc1YTE5MWRiZDNlNGEyNDhmMzJlODJj
OTBkZDViNTVjMzAuLmE3NGE1Nzc3MThhZjg4MjMyM2Y1ZDY2MjM3Y2Q2ODY2NmFlOTA3OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
aApAQCAtOTIsNiArOTIsMTMgQEAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRfaW1hZ2Vz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiAgICAgICAgZW5hYmxlZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5n
c19zZXRfYWxsb3dzX2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGFsbG93KTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5n
X2ltYWdlX2xvYWRfc2V0dGluZyAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CiAKIFdF
QktJVF9BUEkgdm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggNTJjZDg5ZWU3MTli
NzJmZmY1ZDhkYWFmMzdjMzk0ZDkzMmQ4ZWZlNi4uYmVmNjNlOTEzYzlhZDRlOTE5MWZiMDIyNTk4
YzlkNzI1ZGZkMjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNTYsNiArMTU2
LDggQEAgd2Via2l0X3NldHRpbmdzX25ldwogd2Via2l0X3NldHRpbmdzX25ld193aXRoX3NldHRp
bmdzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2F1dG9fbG9hZF9pbWFnZXMKIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcword2Via2l0X3NldHRpbmdzX2dldF9hbGxvd3NfYW5pbWF0
ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93c19hbmltYXRlZF9pbWFnZXMKIHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5n
c19zZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxl
X2h0bWw1X2RhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZmU1NzY0ZjlkMGU2MWU1NjVmMmVkM2Uz
YzhmOThkZWUyNS4uMTRlM2ZhYzUxYzAyNDRiNzJiZDMyNGRiMDJlZTQ0NTBlYTczMDUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2Vz
LmNwcApAQCAtNDAsNiArNDAsOCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RB
dHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgc3dpdGNo
IChhdHRyKSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgcmV0dXJuIFdLUHJl
ZmVyZW5jZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7Cisg
ICAgY2FzZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgSmF2
YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIHJldHVybiBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlw
dEVuYWJsZWQocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBQbHVnaW5zRW5hYmxlZDoKQEAg
LTY2LDYgKzY4LDkgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUo
UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlIGEKICAgICBjYXNlIEF1dG9Mb2Fk
SW1hZ2VzOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWxs
b3dBbmltYXRlZEltYWdlczoKKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93c0FuaW1hdGVk
SW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0
RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmOGE4NmFl
NjZhOGY1MDUzODFjNGEzZjg2ZDM0OGIxNzU2MDJhOTJjLi4yZDRiM2MwMTA0NDczMGMwYzhiMmNj
MmNkMmRkZDYzMWQ0NmJmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0
dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgpKSk7CisgICAgc2V0dGluZ3Mt
PnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YWxsb3dzQW5pbWF0ZWRJbWFnZXNLZXkoKSkpOwogICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFn
ZUxvYWRpbmdQcmVmZXJlbmNlS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0UGx1Z2luc0VuYWJs
ZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwbHVnaW5zRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRLZXkoKSkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0NTM2NzI0Y2Fk
NTNhNGY0YWY3NmVmOTIzMzRhZjI3YTQyOGU4MGUuLjA2ZmJkN2Y1Y2JlODg1ZWE5MjBiNzQ1ZTBk
YzUzYjk0ZGVmMWZjMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0xMyAgUGFibG8gRmxvdXJldCAgPHBh
YmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93c0FuaW1hdGVkSW1hZ2VzIHBy
ZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6
CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlBh
Z2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToK
KwogMjAxMi0wMi0wOCAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBVcHN0cmVhbSBEdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZmI1MmNm
ZGU5MzRiYTg1MGQ4NWMyODg5MzBhZDY1ZGYwOGU5NmJiZi4uMzNjNGI5YWQ2MzMzMzY4ZmM1Y2E1
MWVhMDQ0OTEwMDVjZjllYjE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTIzOSw2ICsyMzksNyBAQCB2b2lkIER1bXBS
ZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgc2V0
dGluZ3MtPnNldFRleHRSZWZsb3dNb2RlKFdlYlNldHRpbmdzOjpUZXh0UmVmbG93RGlzYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5n
cy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRB
bGxvd3NBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0
T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCBiMDM0N2M4NTM2MGM0MmUxNGNlZjZhODBjYWUzNjAyMTcxYzg5NjQwLi4y
YjEzZjk2MzMxNThmOTI4MWNhNTI4OTViZTQ5NGMxYzQ1YmE4MDdjIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNTA3LDYgKzE1MDcsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVBy
ZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZz
LT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9v
bCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikK
ICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jv
b2wodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdl
c1ByZWZlcmVuY2VLZXkiKQorICAgICAgICBwcmVmcy0+YWxsb3dzQW5pbWF0ZWRJbWFnZXMgPSBj
cHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFBsdWdp
bnNFbmFibGVkIikKICAgICAgICAgcHJlZnMtPnBsdWdpbnNFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRET01QYXN0ZUFsbG93ZWRQ
cmVmZXJlbmNlS2V5IikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCA4NzJlYmZiNGFhNWZkYTA2YzU5ZWJiN2FiMzdjODkxYzMxZTkw
YTQ0Li41MDk3YTViZDUzMjZjZGIzNDc5ZTM2NDM5NWI3NWY5ODA3Yzk3NWE1IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC04NSw2
ICs4NSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkKICAgICBqYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKICAgICBqYXZhU2NyaXB0RW5hYmxlZCA9
IHRydWU7CiAgICAgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKKyAgICBhbGxvd3NB
bmltYXRlZEltYWdlcyA9IHRydWU7CiAgICAgbG9jYWxTdG9yYWdlRW5hYmxlZCA9IHRydWU7CiAg
ICAgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkID0gdHJ1ZTsKICAgICBwbHVnaW5z
RW5hYmxlZCA9IHRydWU7CkBAIC0xOTcsNiArMTk4LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6
YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5h
YmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2Vz
KGFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5h
YmxlZChsb2NhbFN0b3JhZ2VFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk7
CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVkKHBsdWdpbnNFbmFibGVkKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IGVlMDRh
MjA5NDY2YmJiNWJjODhkMTdiNGUwZDMzMmY2MmEzYmRlOTEuLjZlMzg2YWVhNDU2YTY3MmVkNmU0
YzBjMDYyM2E3N2U0ZGFmZjc0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtODcsNiArODcsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5j
ZXMgewogICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKICAg
ICBib29sIGphdmFTY3JpcHRFbmFibGVkOwogICAgIGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5OworICAgIGJvb2wgYWxsb3dzQW5pbWF0ZWRJbWFnZXM7CiAgICAgYm9vbCBsb2NhbFN0b3Jh
Z2VFbmFibGVkOwogICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOwog
ICAgIGJvb2wgcGx1Z2luc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KaW5kZXggMzAxMmE3MGQ4OGI0MTYzMjQzZWU4YWYxYzU0YWIxZTBmNjQyMTEy
OC4uNmZjNTQ0NGNjZTVjMGE5YjMyN2QzOGNjZWYyYWU3NDhkYmVmOTcxOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjI5LDYgKzYyOSw3IEBAIHN0
YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJl
bmNlcyBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6WUVTXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVuY2Vz
IHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRB
bGxvd3NBbmltYXRlZEltYWdlczpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRMb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZTpOT107CiAgICAgW3ByZWZlcmVuY2Vz
IHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcAppbmRleCAyMWRhOGQwNGI0Y2I3NDc1ZTczZTQwZjY5OWNhYjdhYmUx
NTcwZDkzLi4wMzgwMTYxMDgzZDExMzM4ZTEyZDM5YmE3OGJkZmNmYjFhNDlmMDkxIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtMTg5LDYgKzE4
OSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0aW5ncygpCiAgICAgc2V0dGluZ3MoKS0+cmVz
ZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCk7CiAgICAgc2V0dGluZ3Mo
KS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkF1dG9M
b2FkSW1hZ2VzKTsKKyAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
OkFsbG93c0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6Olpvb21UZXh0T25seSk7CiAKICAgICBtX2RydC0+bGF5b3V0VGVzdENvbnRy
b2xsZXIoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggMWVjNWM1ZTYwN2VmNmRiNzQ0Y2Vl
ZmQ5NmZkYjg1NDNjOWM2YWZhZi4uYTA1YTQ1ZDUwZWMxMzJkMTkzZTY0NGUzZGJiMWVmZDVkMzYx
ZjQ3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC04NTUsNiArODU1LDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZlcmVuY2VzLT5zZXRU
YWJzVG9MaW5rcyhGQUxTRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldFNob3VsZFByaW50QmFja2dy
b3VuZHMoVFJVRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShUUlVFKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoVFJVRSk7
CiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nV2luQmVo
YXZpb3IpOwogCiAgICAgaWYgKHBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZmE3MTViYzEyZmRmYzViZTE0YzI3MDg5NDdmZWNjOGJiZWY5Zjg5Yy4uYjcyMjdjN2Y0
MDkwY2FiOTg0N2M1N2IyNWFiNmU5OTY4YzNiMzlhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBBZGQgQWxsb3dzQW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvZGlzYWxs
b3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1yZWQtYW5pbWF0ZWQuZ2lmOiBBZGRlZC4KKwogMjAx
Mi0wMi0xMCAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAg
UG9wU3RhdGVFdmVudC5zdGF0ZSBzaG91bGQgdXNlIHRoZSBzYW1lIG9iamVjdCBhcyBoaXN0b3J5
LnN0YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmlt
YXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxs
b3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjg2MDg5ODhkNTA5
YThkYjIyZjJiYmM1M2U5NTAyZmQxMDAyOTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmdiYVN0cmluZyhnaWZGcmFt
ZSkgaXMgJzEzNzEwMGZmJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxv
dy1hbmltYXRlZC1pbWFnZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93
LWFuaW1hdGVkLWltYWdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkMDcxM2M3ODVlYjgxZmM0NmUxNWQ0
MzdlMThkZjdjYzkzMzlmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMg
c3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbiI+RkFJTDwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBk
ZXNjcmlwdGlvbigiVGVzdCB0aGF0IGltYWdlIGFuaW1hdGlvbiBjYW4gYmUgZGlzYWJsZWQuIik7
CisKKyAgICBmdW5jdGlvbiByZ2JhU3RyaW5nIChhKSB7CisgICAgICAgIHJldHVybiBBcnJheS5w
cm90b3R5cGUubWFwLmNhbGwoYSwgKGZ1bmN0aW9uIChuKSB7IHJldHVybiAoIjAwIituLnRvU3Ry
aW5nKDE2KSkuc2xpY2UoLTIpOyB9KSkuam9pbigiIik7CisgICAgfQorCisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVu
Y2VLZXkiLCAwKTsKKworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIHZh
ciBpbWFnZSA9IG5ldyBJbWFnZSgpOworICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4t
cmVkLWFuaW1hdGVkLmdpZj8iICsgTWF0aC5yYW5kb20oKTsKKyAgICBpbWFnZS5vbmxvYWQgPSBm
dW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiY2FudmFzIikuZ2V0Q29udGV4dCgiMmQiKTsKKworICAgICAgICAvLyBUaGUgZ2lmIGlzIG9u
ZSBmcmFtZSBvZiBncmVlbiBhbmQgc2V2ZXJhbCBmcmFtZXMgb2YgcmVkLgorICAgICAgICBjb250
ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAg
ICAgICAgICBnaWZGcmFtZSA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpLmRhdGE7
CisgICAgICAgICAgICBzaG91bGRCZSgicmdiYVN0cmluZyhnaWZGcmFtZSkiLCAiJzEzNzEwMGZm
JyIpOyAvLyBHcmVlbi4KKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0s
IDE1MCk7IC8vIEdyZWVuIGZyYW1lIG9mIEdJRiBoYXMgMTAwbXMgZHVyYXRpb24KKyAgICB9Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi1yZWQtYW5pbWF0ZWQuZ2lmIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2Vz
L2dyZWVuLXJlZC1hbmltYXRlZC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZjNDU4YWZjODM4Mjg1MmMyZDgx
NjkwOTA0NGFjM2ZiNTdkYTZmNgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgODY3CnpjbVo/d2Jo
RUhiRy01RGZfYHR2KlQqdj9maWElS3h4SXB3ak9YbmIwI31OTUBEfjBxRi1LPkp0YmNIZlFKcCU9
ZQp6KCZFZyNiT2xjQGNMbEVpUzlnVW4zajw5Wmd+SE9yb1huQysxelFENjExPCl8fEo7N0FBO0hk
JDBqQEBSMkYjMj0Kel5LP0xsZ0tUMThHSCZUI2RIT0I/O3lHSnhiI0sxNj1RbkBiQmFkbSVJK3dq
VndlMjFFQGxRVjJ6eDYpPGI/KkI9Cm9lamN2JkJhMSRFXy1MdUtRcGE2ek0+UEJaSWNMLTw7TWZg
czY+TXBrSS16MD4wUUA7V0pwY2R6CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127468</attachid>
            <date>2012-02-16 16:50:46 -0800</date>
            <delta_ts>2012-02-22 10:57:48 -0800</delta_ts>
            <desc>Rename to AllowAnimatedImages</desc>
            <filename>bug-9767-20120216165045.patch</filename>
            <type>text/plain</type>
            <size>55221</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxNWQzOTMwYjkxMjZh
MjFiMzI0YzVmZTk4MmQ1MjI3Y2RiN2I4ZC4uZGM0OTMxYTNlOGFjOTMyNjc0NTJlMjY0ZGQ3Nzc2
ZjU2Y2ZkZTRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTE2ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmlt
YXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQt
aW1hZ2VzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjphbGxvd0FuaW1hdGVkSW1hZ2VzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xNiAgUmF1bCBIdWRlYSAgPHJodWRl
YUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdb3ZlcmZsb3dSZWdpb24gdGVzdHMg
YXJlIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjYTJiOGVmZGQ2MTY5NThh
ZDU1MmM3YjYwOGIxNjVjMWE2MTk3YTkuLjFlYmI3MzhjN2MzYmUxNjMzZGZmZWNiNGY4MmRiOWJj
NGYxN2VlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDItMTYgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAg
IEFkZCBBbGxvd0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5o
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5n
c0ltcGwpOgorCiAyMDEyLTAyLTE2ICBWaWV0LVRydW5nIEx1dSAgPHZpZXR0cnVuZ2x1dUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgbWV0aG9kIHRvIFdlYlBsdWdpbkNv
bnRhaW5lciB0byBjaGVjayBpZiBhIHJlY3RhbmdsZSBpcyB0b3Btb3N0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggZTU3OGQzYjAzZjczOTAwNzRkMGE0Y2M0YTIyOWI1ZjVmOGI5MmZkNi4uNDY2YTRmMDBh
MWQ0NWI4MjcyMzVmYmFkMTc0OTdmN2E0NDE2YWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNv
bT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdr
X3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChf
ZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmlt
YXRlZF9pbWFnZXNfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3dfYW5pbWF0
ZWRfaW1hZ2VzX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDEtMzEg
IFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAg
W3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggNGYwMTc5YzkwZTFjOWU0MzM3M2YzYWMzMGI5YzhlMDRkZDVlNzg0Zi4uMjA2Mzk0
YWJkZWE3ZWI5ZDc2ZjhjYjVkMzgxMjliNjdiNzc0NTEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRp
bmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6
CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNzaW9uIGZlYXR1cmUgaW5p
dGlhbGl6YXRpb24gdG8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNWQ4MjdiMWU3ZGNi
ZTZjOWJjOWU0NmM0NTAxYmQ4NGQ0MDM5MmEuLjgwZTJlNzM1NWEyN2I5NmI4OTI3ZmE2M2Y3NGU4
ZWY1YjRlOGVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0x
NiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFs
bG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTItMDItMTUgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBDbGlwYm9h
cmRNYWMgY2xhc3MgdG8gdXNlIFBsYXRmb3JtU3RyYXRlZ2llcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
NDY3MjEzMGQ2Y2M5MTRhZmE3ZDhmNDFjMjUzZDIxNWNhOWU3OWFhNi4uYWZlNjhiZDJlNzAwNmQ4
ZTNmNDViYTU2M2U3N2I1OTc2OWZmMGNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMi0wMi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5n
cy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChR
V2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5o
OgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAg
ICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xh
cmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFs
bG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OnNl
dEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAqIHRlc3RzL3FkZWNsYXJhdGl2ZXdlYnZp
ZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2
ZVdlYlZpZXc6OnNldHRpbmdzKToKKwogMjAxMi0wMi0xNiAgU2ltb24gSGF1c21hbm4gIDxzaW1v
bi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBicm93bi1wYXBlciBi
YWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDE2OWU5OGI3Mjc1ZTMxYzgxYjQ4MzAx
NTI1ZTk2NGE0MWRjZGEyODEuLjkyOWZlYjE0NWNlOGMyNDUxZTIxYWU0ZjZmZDYyMWNjNGJjNTk4
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0xNiAgUGFibG8g
RmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93QW5pbWF0
ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5n
ZWQpOgorCiAyMDEyLTAyLTE1ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBOb3RpZnkgQ2hyb21lQ2xpZW50IHdoZW4gdG91Y2gtZXZlbnQg
aGFuZGxlcnMgYXJlIGluc3RhbGxlZC9yZW1vdmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAx
YzhiMDE1MmE4MDVlM2YyYTBhOGE5NzgyMzlmZjJlMzUxOTdlMjNjLi5mNWQ5N2QwZDIyOGU3MjBk
Yzk2MGFiOGY4NjY3MjViYTgwYmM1M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4K
KworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorCiAyMDEyLTAyLTE1ICBQYXRyaWNrIEdh
bnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ0Ug
YnVpbGQgZml4IGFmdGVyIHIxMDc2MDYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDA1YmU4NGI3MThkZjdl
NDcxZTgxYmFhNzM1ZjA1ZTQzMTAzYzA1MzcuLmYwMDg2MGRmMjViMjdiOTFjM2M0YWJjN2QyNTc0
NTdjMTM1OWVhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMTYg
IFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxv
d0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlNldHRpbmdzLmNwcDoKKyAgICAgICAgKHd4
V2ViU2V0dGluZ3M6OlNldEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAod3hXZWJTZXR0
aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcyk6CisgICAgICAgICogV2ViU2V0dGluZ3MuaDoKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKHd4V2ViVmlldzo6Q3JlYXRlKToKKwogMjAx
Mi0wMi0xNSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTm90aWZ5IENocm9tZUNsaWVudCB3aGVuIHRvdWNoLWV2ZW50IGhhbmRsZXJzIGFy
ZSBpbnN0YWxsZWQvcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4NzdlNzM1MjQxZTU3M2U5Y2IzYTUx
MzM1MWYwZjUwZTE5ODA1NGExLi4zZTc1M2JhZDMxMDQzOTVmMWZlYWUxY2YxZmM4OWEwN2Q3ODQy
OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDItMTYgIFBhYmxvIEZsb3Vy
ZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd0FuaW1hdGVkSW1h
Z2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFdL
UHJlZmVyZW5jZXNHZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkpOgorICAg
ICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfc2V0dGlu
Z3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X2FuaW1h
dGVkX2ltYWdlcyk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93X2FuaW1hdGVk
X2ltYWdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVBy
ZWZlcmVuY2VzKToKKwogMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRo
YWxAbm9raWEuY29tPgogCiAgICAgICAgIFtUZXhtYXBdIEltcHJvdmUgdGhlIHdheSB3ZSBkZWFs
IHdpdGggQkdSQSBleHRlbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNjViOGM1NjI3MWNk
MWFjNjg1MDlmYWFhODAzOTFiNmUyZTUwMjQ4OC4uYzY2MGJjZGZkNGQxYTE1OWNjNDA4ZTJhYjIz
MWMxOTVkN2FiM2FjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk3OSw2ICs5NzksNyBAQCBf
X1pON1dlYkNvcmU4U2V0dGluZ3MyMW1vY2tTY3JvbGxiYXJzRW5hYmxlZEV2CiBfX1pON1dlYkNv
cmU4U2V0dGluZ3MyMXNldFNob3dSZXBhaW50Q291bnRlckViCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyMXNldFN0YW5kYXJkRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0
Q29kZQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRXZWJTZWN1cml0eUVuYWJsZWRFYgorX19a
TjdXZWJDb3JlOFNldHRpbmdzMjJzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzRWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIyc2V0TG9jYWxTdG9yYWdlRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MyMnNldE1pbkRPTVRpbWVySW50ZXJ2YWxFZAogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRT
YW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGI1Y2I5NjNiYmY0MTM5NTc0ZTU0ZjRjZmZjNmVm
ZWNkZTYyZmQ1NWMuLjMwN2RlNzU1YzlkZjc0MWE1ODFjMGYyMjdiOTMzNGQ3NmYyYjQ2NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAgU2V0dGluZ3M6OlNl
dHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZh
bHNlKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBtX2FsbG93QW5pbWF0ZWRJbWFnZXModHJ1ZSkKICAg
ICAsIG1fbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoZmFsc2UpCiAg
ICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2NhcmV0QnJvd3Np
bmdFbmFibGVkKGZhbHNlKQpAQCAtMzgxLDYgKzM4MiwxMSBAQCB2b2lkIFNldHRpbmdzOjpsb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdzPiopCiAgICAgc2V0
TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5SW5BbGxGcmFtZXMobV9wYWdlKTsKIH0KIAordm9pZCBT
ZXR0aW5nczo6c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sIGFsbG93QW5pbWF0ZWRJbWFnZXMp
Cit7CisgICAgbV9hbGxvd0FuaW1hdGVkSW1hZ2VzID0gYWxsb3dBbmltYXRlZEltYWdlczsKK30K
Kwogdm9pZCBTZXR0aW5nczo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1Nl
dHRpbmcoYm9vbCBsb2Fkc1NpdGVJY29ucykKIHsKICAgICBtX2xvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nID0gbG9hZHNTaXRlSWNvbnM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKaW5kZXggM2ExNDA2NjAxNmVhZjNkYmVhZWY5MjYxYTc0N2UzOWNmNzA5Nzc2OC4uMGRlMjI2
NzYxZDJlODNlZTEyOTBkNDlmYjFlMDI4ODM0M2IyZWNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aApAQCAtMTA4LDYgKzEwOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBz
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgICAgIGJvb2wgbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHk7IH0KIAorICAgICAgICB2b2lkIHNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCk7CisgICAg
ICAgIGJvb2wgYWxsb3dBbmltYXRlZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dBbmlt
YXRlZEltYWdlczsgfQorCiAgICAgICAgIC8vIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0
ZSBpY29uIGltYWdlIGxvYWRpbmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcg
aXMgZmFsc2UgYW5kIHRoaXMgc2V0dGluZyBpcyB0cnVlLgogICAgICAgICAvLyBBbGwgb3RoZXIg
cGVybXV0YXRpb25zIHN0aWxsIGhlZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcu
CiAgICAgICAgIHZvaWQgc2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRp
bmcoYm9vbCk7CkBAIC01NjcsNiArNTcwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBib29sIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
aXNKYXZhRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkgOiAxOworICAgICAgICBib29sIG1fYWxsb3dBbmltYXRlZEltYWdlcyA6IDE7CiAgICAgICAg
IGJvb2wgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA6IDE7CiAg
ICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBt
X2NhcmV0QnJvd3NpbmdFbmFibGVkIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBhODk1NzYwMWY2MjFmMDUzYTYwN2Y3NjQ2
N2ZkZDhmMTk4MzZmYjczLi41YWVmMGIyM2FkNDQ0NzMyYjgwZDhkZTczYzU3ZWNkMGM4ZDY0ODc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCkBAIC00NTEsNyArNDUxLDcgQEAgYm9vbCBCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNl
QW5pbWF0aW9uKGJvb2wgc2tpcHBpbmdGcmFtZXMpCiAgICAgCiAgICAgLy8gU2VlIGlmIGFueW9u
ZSBpcyBzdGlsbCBwYXlpbmcgYXR0ZW50aW9uIHRvIHRoaXMgYW5pbWF0aW9uLiAgSWYgbm90LCB3
ZSBkb24ndAogICAgIC8vIGFkdmFuY2UgYW5kIHdpbGwgcmVtYWluIHN1c3BlbmRlZCBhdCB0aGUg
Y3VycmVudCBmcmFtZSB1bnRpbCB0aGUgYW5pbWF0aW9uIGlzIHJlc3VtZWQuCi0gICAgaWYgKCFz
a2lwcGluZ0ZyYW1lcyAmJiBpbWFnZU9ic2VydmVyKCktPnNob3VsZFBhdXNlQW5pbWF0aW9uKHRo
aXMpKQorICAgIGlmIChpbWFnZU9ic2VydmVyKCktPnNob3VsZFBhdXNlQW5pbWF0aW9uKHRoaXMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICArK21fY3VycmVudEZyYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA2Y2E3MTkyMzkxMjQyYTI3
ZmI2YzA0OTI3ODM1NDkxNGI3NGM0YzYzLi41MmViYjU2OGE1ZDM0M2EzMmM3YTUyNjQ0ZjBjNDY4
NWQ0NTY1YjBiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApA
QCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRhYmxlUm93LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtMjU4NSw5ICsyNTg2LDExIEBAIGJvb2wgUmVu
ZGVyT2JqZWN0Ojp3aWxsUmVuZGVySW1hZ2UoQ2FjaGVkSW1hZ2UqKQogICAgIGlmIChzdHlsZSgp
LT52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKKwogICAgIC8vIElm
IHdlJ3JlIG5vdCBpbiBhIHdpbmRvdyAoaS5lLiwgd2UncmUgZG9ybWFudCBmcm9tIGJlaW5nIHB1
dCBpbiB0aGUgYi9mIGNhY2hlIG9yIGluIGEgYmFja2dyb3VuZCB0YWIpCiAgICAgLy8gdGhlbiB3
ZSBkb24ndCB3YW50IHRvIHJlbmRlciBlaXRoZXIuCi0gICAgcmV0dXJuICFkb2N1bWVudCgpLT5p
blBhZ2VDYWNoZSgpICYmICFkb2N1bWVudCgpLT52aWV3KCktPmlzT2Zmc2NyZWVuKCk7CisgICAg
cmV0dXJuICFkb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpICYmICFkb2N1bWVudCgpLT52aWV3KCkt
PmlzT2Zmc2NyZWVuKCkgJiYgc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93QW5pbWF0ZWRJbWFn
ZXMoKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJPYmplY3Q6Om1heGltYWxPdXRsaW5lU2l6ZShQ
YWludFBoYXNlIHApIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAppbmRleCBhYTI3ODI1YjRmMDY2NjUxNDJiZWY2NWExZGU2NmRiNTVjZTZhYmUzLi4x
Njc4ZmE1YThjMWFhMTA5ZDk3MTg5ZTJlMDhmNzk5ZmZiYWMyNTFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEltYWdlc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldERPTVBhc3RlQWxsb3dlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCBkOTQ1OGM0YjM5ZjNjODEwY2IxZTZkNzk4
ZmUzNjM2Y2RiYmMzMzE4Li42MzEwZDhiMjA1ODUzNjRkOGZjYjc0NjQwNGI3ZjBkZmRmMTdjODc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
QEAgLTEzNCw2ICsxMzQsMTEgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKICAgICBtX3NldHRp
bmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9v
bCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQoreworICAgIG1fc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0
ZWRJbWFnZXMoYWxsb3dBbmltYXRlZEltYWdlcyk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBs
OjpzZXRJbWFnZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRJ
bWFnZXNFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaAppbmRleCA2ZDFlZGI2Nzc3MDFiZTk3NDQyYWU2MDViYzgyNDkwYzI4MTIx
YmIyLi5mYzQzNTQxZDk3YWU0YzE2NTYyNWE1NGM4OTk4NDc1YjcyZjExMjA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtNTksNiArNTksNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxs
eShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJv
b2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbWFnZXNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RE9NUGFzdGVBbGxv
d2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggYWFlOTU1MWVmODgw
NjYzNDlhY2M4Yjc1OTJlMjYzMDhiYjBhNGNjNS4uMzA2Y2VmNDY1ZTMxMjA5YmI0MzdmMmE4OGQ0
MzY1ZmIzYmIxZTU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xNzMsNiAr
MTczLDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgICAgICBjb25zdCBj
aGFyKiBmb250U2VyaWY7CiAgICAgICAgIGNvbnN0IGNoYXIqIGZvbnRTYW5zU2VyaWY7CiAgICAg
ICAgIGJvb2wgYXV0b0xvYWRJbWFnZXMgOiAxOworICAgICAgICBib29sIGFsbG93QW5pbWF0ZWRJ
bWFnZXM6IDE7CiAgICAgICAgIGJvb2wgYXV0b1Nocmlua0ltYWdlcyA6IDE7CiAgICAgICAgIGJv
b2wgZW5hYmxlQXV0b1Jlc2l6ZVdpbmRvdyA6IDE7CiAgICAgICAgIGJvb2wgZW5hYmxlRGV2ZWxv
cGVyRXh0cmFzIDogMTsKQEAgLTYzMiw2ICs2MzMsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRh
KQogICAgIHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLnVzZXJTY2FsYWJsZSA9IHRydWU7CiAKICAg
ICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsK
KyAgICBwcml2LT5wYWdlU2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAg
ICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNvLTg4
NTktMSIpOwogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUo
MTIpOwogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKQEAg
LTY3Niw2ICs2NzgsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdf
cHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPnNldHRp
bmdzLmZvbnRTYW5zU2VyaWYgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChzdHJpbmcuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICBwcml2LT5zZXR0aW5ncy5hdXRvTG9hZEltYWdlcyA9IHBy
aXYtPnBhZ2VTZXR0aW5ncy0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CisgICAgcHJpdi0+
c2V0dGluZ3MuYWxsb3dBbmltYXRlZEltYWdlcyA9IHByaXYtPnBhZ2VTZXR0aW5ncy0+YWxsb3dB
bmltYXRlZEltYWdlcygpOwogICAgIHByaXYtPnNldHRpbmdzLmF1dG9TaHJpbmtJbWFnZXMgPSBw
cml2LT5wYWdlU2V0dGluZ3MtPnNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoKTsKICAgICBw
cml2LT5zZXR0aW5ncy5lbmFibGVBdXRvUmVzaXplV2luZG93ID0gdHJ1ZTsKICAgICBwcml2LT5z
ZXR0aW5ncy5lbmFibGVEZXZlbG9wZXJFeHRyYXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmRldmVs
b3BlckV4dHJhc0VuYWJsZWQoKTsKQEAgLTE5MzMsNiArMTkzNiwyNSBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
RWluYV9Cb29sCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0VpbmFfQm9vbCBld2tfdmlld19zZXR0
aW5nX2FsbG93X2FuaW1hdGVkX2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
Cit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZh
bHNlKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSk7CisgICAgcmV0dXJuIHByaXYtPnNldHRpbmdzLmFsbG93QW5pbWF0ZWRJbWFnZXM7Cit9
CisKK0VpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2FsbG93X2FuaW1hdGVkX2ltYWdlc19zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBhbGxvdykKK3sKKyAgICBFV0tfVklFV19T
RF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOworICAgIEVXS19WSUVX
X1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKKyAgICBhbGxvdyA9
ICEhYWxsb3c7CisgICAgaWYgKHByaXYtPnNldHRpbmdzLmFsbG93QW5pbWF0ZWRJbWFnZXMgIT0g
YWxsb3cpIHsKKyAgICAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1h
Z2VzKGFsbG93KTsKKyAgICAgICAgcHJpdi0+c2V0dGluZ3MuYWxsb3dBbmltYXRlZEltYWdlcyA9
IGFsbG93OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogRWluYV9Cb29sIGV3a192aWV3
X3NldHRpbmdfYXV0b19zaHJpbmtfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCA3ZGUwZTQ2MmYxN2M1YWFhMzQy
ODc2MzJjMmQzNGVmMTU0N2E3MzdhLi4yZmEwYWQ5ZmI3NjNjYjcxODEyNTljMDhjMzFiZWU5Mzc0
MjNlNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMTM1Miw2ICsxMzUyLDI3IEBA
IEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2FkX2ltYWdlc19nZXQo
Y29uc3QgRXZhc19PYmplY3QgKm8pOwogRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGlu
Z19hdXRvX2xvYWRfaW1hZ2VzX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGF1dG9tYXRp
Yyk7CiAKIC8qKgorICogUXVlcmllcyBpZiBhbmltYXRlZCBpbWFnZXMgYXJlIGFsbG93ZWQgdG8g
YW5pbWF0ZS4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBxdWVyeSBpZiB0aGUgaW1h
Z2VzIGFyZSBhbGxvd2VkIHRvIGFuaW1hdGUKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBp
ZiB0aGUgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGFuaW1hdGUsCisgKiAgICAgICAgIEBjIEVJTkFf
RkFMU0UgaWYgbm90IG9yIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3Zp
ZXdfc2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpv
KTsKKworLyoqCisgKiBBbGxvdy9kaXNhbGxvdyBhbmltYXRpb24gb2YgaW1hZ2VzLgorICoKKyAq
IEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIHNldCB3aGV0aGVyIGltYWdlcyBjYW4gYmUgYW5pbWF0
ZWQgb3Igbm90CisgKiBAcGFyYW0gYXV0b21hdGljIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgYW5p
bWF0aW9uIG9mIGltYWdlcywKKyAqICAgICAgICBAYyBFSU5BX0ZBTFNFIHRvIGRpc2FibGUKKyAq
CisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24g
ZmFpbHVyZQorICovCitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2FsbG93X2Fu
aW1hdGVkX2ltYWdlc19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBhbGxvdyk7CisKKy8q
KgogICogUXVlcmllcyBpZiB0aGUgaW1hZ2VzIGFyZSBzaHJpbmtlZCBhdXRvbWF0aWNhbGx5CiAg
KgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIGltYWdlcyBhcmUgc2hy
aW5rZWQgYXV0b21hdGljYWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJzZXR0aW5ncy5jcHAKaW5kZXggZDkxYzNiYmYzNTIxYzI1NmM0OWQyODZlMjQxZWQ5ZTc1MDA1
OGMzZC4uNzcyOTc2ZDcwM2RiYTkxNWJiNjJlZmQxZmU0Y2VjZDJjMTIxZmU1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCkBAIC04Myw2ICs4
Myw3IEBAIGVudW0gewogICAgIFBST1BfTUlOSU1VTV9MT0dJQ0FMX0ZPTlRfU0laRSwKICAgICBQ
Uk9QX0VORk9SQ0VfOTZfRFBJLAogICAgIFBST1BfQVVUT19MT0FEX0lNQUdFUywKKyAgICBQUk9Q
X0FMTE9XX0FOSU1BVEVEX0lNQUdFUywKICAgICBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUywKICAg
ICBQUk9QX1BSSU5UX0JBQ0tHUk9VTkRTLAogICAgIFBST1BfRU5BQkxFX1NDUklQVFMsCkBAIC0z
MzQsNiArMzM1LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5p
dChXZWJLaXRXZWJTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7CiAKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImFsbG93LWFuaW1hdGVkLWltYWdlcyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJBbGxvdyBhbmltYXRlZCBpbWFnZXMiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkFsbG93IGltYWdlcyB0byBiZSBhbmltYXRlZC4iKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BVVRPX1NIUklOS19JTUFHRVMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhdXRvLXNocmluay1pbWFnZXMiLApAQCAtMTAxMSw2ICsxMDIxLDkg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkoR09iamVjdCog
b2JqZWN0LCBndWludCBwcm9wX2lkLCBjb24KICAgICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdF
UzoKICAgICAgICAgcHJpdi0+YXV0b0xvYWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZh
bHVlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdF
UzoKKyAgICAgICAgcHJpdi0+YWxsb3dBbmltYXRlZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfQVVUT19TSFJJTktfSU1B
R0VTOgogICAgICAgICBwcml2LT5hdXRvU2hyaW5rSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVh
bih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTE3OSw2ICsxMTkyLDkgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLCBHVmEKICAgICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b0xvYWRJbWFnZXMpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBST1BfQUxMT1dfQU5JTUFURURfSU1BR0VTOgorICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5hbGxvd0FuaW1hdGVkSW1hZ2VzKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+YXV0b1Nocmlua0ltYWdlcyk7CiAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzcHJpdmF0ZS5oCmluZGV4IGQ3ZDA4MmU1YmIzZmZhYmJlZjRkZWJjNmE4ZTEyNWFmYzdj
NzI2MzEuLjNhY2E2MWQyNTRlMjllYjEyYWVmOWRmOTRhZGQzZWEyNmJkYjM2NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgK
QEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAg
IGd1aW50IG1pbmltdW1Mb2dpY2FsRm9udFNpemU7CiAgICAgZ2Jvb2xlYW4gZW5mb3JjZTk2RFBJ
OwogICAgIGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzOworICAgIGdib29sZWFuIGFsbG93QW5pbWF0
ZWRJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gYXV0b1Nocmlua0ltYWdlczsKICAgICBnYm9vbGVhbiBw
cmludEJhY2tncm91bmRzOwogICAgIGdib29sZWFuIGVuYWJsZVNjcmlwdHM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggMzhkOTQwMTNmMDhmMWY3ZWY5
NTc1NzYwOTY4ZDcxZjU3ZTJjMzUzZS4uNjVhNWY5NWIyYTdjMGE1NzNlMGZmMzcwNDAxYzcxZWU2
MGI4ZDYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApA
QCAtMzIyNyw2ICszMjI3LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9z
ZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2Fu
c1NlcmlmRm9udEZhbWlseShzZXR0aW5nc1ByaXZhdGUtPnNhbnNTZXJpZkZvbnRGYW1pbHkuZGF0
YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShzZXR0aW5nc1ByaXZh
dGUtPnNlcmlmRm9udEZhbWlseS5kYXRhKCkpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KHNldHRpbmdzUHJpdmF0ZS0+YXV0b0xvYWRJbWFnZXMpOworICAg
IGNvcmVTZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhzZXR0aW5nc1ByaXZhdGUtPmFs
bG93QW5pbWF0ZWRJbWFnZXMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxv
bmVJbWFnZXNUb0ZpdChzZXR0aW5nc1ByaXZhdGUtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgIGNv
cmVTZXR0aW5ncy0+c2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzZXR0aW5nc1ByaXZhdGUtPnBy
aW50QmFja2dyb3VuZHMpOwogICAgIGNvcmVTZXR0aW5ncy0+c2V0U2NyaXB0RW5hYmxlZChzZXR0
aW5nc1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IDRkZjc3NThkMDJlMTZiY2E4YzVjNWNkODUzM2IxMGUwNzRjYTE4MzUuLmE5ZmQ1
YjE5NmY1YjIwNjRjNmU1M2IzY2Y4NDAwY2VkOWFmZDM1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTE0MjEsNiArMTQyMSw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2Vs
ZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy0+c2V0U2VyaWZGb250RmFt
aWx5KFtwcmVmZXJlbmNlcyBzZXJpZkZvbnRGYW1pbHldKTsKICAgICBzZXR0aW5ncy0+c2V0U3Rh
bmRhcmRGb250RmFtaWx5KFtwcmVmZXJlbmNlcyBzdGFuZGFyZEZvbnRGYW1pbHldKTsKICAgICBz
ZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFtwcmVmZXJlbmNlcyBsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHldKTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdl
cyhbcHJlZmVyZW5jZXMgYWxsb3dzQW5pbWF0ZWRJbWFnZXNdKTsKICAgICBzZXR0aW5ncy0+c2V0
TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoW3ByZWZlcmVuY2VzIGxv
YWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlXSk7CiAgICAgc2V0dGlu
Z3MtPnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoW3ByZWZlcmVuY2VzIHNob3VsZFByaW50QmFj
a2dyb3VuZHNdKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVm
ZXJlbmNlcyB0ZXh0QXJlYXNBcmVSZXNpemFibGVdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuY3BwCmluZGV4IDg5ZTk4MjE0MDRhMTNkNTk4ODdhNjlmZjdhOGMxYWNlOTU2NzljZDAu
LmI5ODY5NGJkNzQ5ZjM4MWIzNmFiMjBmOTkzODA3MWZlYmJmOGZjYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtMTQyLDYgKzE0MiwxMCBAQCB2b2lkIFFXZWJTZXR0
aW5nc1ByaXZhdGU6OmFwcGx5KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMp
KTsKICAgICAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh2YWx1ZSk7
CiAKKyAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dB
bmltYXRlZEltYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcykp
OworICAgICAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyh2YWx1ZSk7CisKICAg
ICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hF
bmFibGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1
dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6RG5zUHJlZmV0Y2hFbmFibGVkKSk7CiAgICAgICAgIHNl
dHRpbmdzLT5zZXRETlNQcmVmZXRjaGluZ0VuYWJsZWQodmFsdWUpOwpAQCAtNTAyLDYgKzUwNiw3
IEBAIFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5mb250RmFtaWxpZXMuaW5z
ZXJ0KFFXZWJTZXR0aW5nczo6Rml4ZWRGb250LCBkZWZhdWx0Rm9udC5kZWZhdWx0RmFtaWx5KCkp
OwogCiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBdXRvTG9hZEltYWdl
cywgdHJ1ZSk7CisgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpBbGxvd0Fu
aW1hdGVkSW1hZ2VzLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGlu
Z3M6OkRuc1ByZWZldGNoRW5hYmxlZCwgZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0
KFFXZWJTZXR0aW5nczo6SmF2YXNjcmlwdEVuYWJsZWQsIHRydWUpOwogICAgIGQtPmF0dHJpYnV0
ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBmYWxzZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaCBiL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCmluZGV4IDQwZjdmNzNmOTRkMTk4YmYxZGYz
NmEyOGM2YWMwYTczNTU2M2Y5OGYuLjJiYTk4Yzg0NjE0YzkwZjViNjI3NGMyZTc4OGY2OTAxZjhi
ZmUwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCkBAIC01NCw2ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB9OwogICAgIGVudW0gV2ViQXR0cmlidXRlIHsKICAgICAgICAgQXV0b0xv
YWRJbWFnZXMsCisgICAgICAgIEFsbG93QW5pbWF0ZWRJbWFnZXMsCiAgICAgICAgIEphdmFzY3Jp
cHRFbmFibGVkLAogICAgICAgICBKYXZhRW5hYmxlZCwKICAgICAgICAgUGx1Z2luc0VuYWJsZWQs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdl
YnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2
aWV3LmNwcAppbmRleCBhYmY5YmIyMThhMzYxYjFhNDQ3YWM5OTQxYzIwM2UzZmRmMjdmNzNjLi43
MzRhMzdmMjU1OWRhYTI3MmZmMjA4N2ZmNjU5ZDhmYWM5YmJlOTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKQEAgLTcy
Nyw2ICs3MjcsNyBAQCBRV2ViUGFnZSogUURlY2xhcmF0aXZlV2ViVmlldzo6cGFnZSgpIGNvbnN0
CiAgICAgXHFtbHByb3BlcnR5IGludCBXZWJWaWV3OjpzZXR0aW5ncy5kZWZhdWx0Rml4ZWRGb250
U2l6ZQogCiAgICAgXHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuYXV0b0xvYWRJ
bWFnZXMKKyAgICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5hbGxvd0FuaW1h
dGVkSW1hZ2VzCiAgICAgXHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YXNj
cmlwdEVuYWJsZWQKICAgICBccW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5qYXZh
RW5hYmxlZAogICAgIFxxbWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLnBsdWdpbnNF
bmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJh
dGl2ZXdlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRp
dmV3ZWJ2aWV3X3AuaAppbmRleCAwODhmMjNiYzg2ZmY1NWMyY2E0N2IzNGU0NTQzNmU0YjQ0NDk1
OTRjLi44N2RkY2JkMzcyYzc4YTdiNDEyY2QzODY4ODA1OTVhMjVhYmQ0NDQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgK
QEAgLTI5OSw2ICsyOTksNyBAQCBjbGFzcyBRRGVjbGFyYXRpdmVXZWJTZXR0aW5ncyA6IHB1Ymxp
YyBRT2JqZWN0IHsKICAgICBRX1BST1BFUlRZKGludCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBSRUFE
IGRlZmF1bHRGaXhlZEZvbnRTaXplIFdSSVRFIHNldERlZmF1bHRGaXhlZEZvbnRTaXplKQogCiAg
ICAgUV9QUk9QRVJUWShib29sIGF1dG9Mb2FkSW1hZ2VzIFJFQUQgYXV0b0xvYWRJbWFnZXMgV1JJ
VEUgc2V0QXV0b0xvYWRJbWFnZXMpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93QW5pbWF0ZWRJ
bWFnZXMgUkVBRCBhbGxvd0FuaW1hdGVkSW1hZ2VzIFdSSVRFIHNldEFsbG93QW5pbWF0ZWRJbWFn
ZXMpCiAgICAgUV9QUk9QRVJUWShib29sIGphdmFzY3JpcHRFbmFibGVkIFJFQUQgamF2YXNjcmlw
dEVuYWJsZWQgV1JJVEUgc2V0SmF2YXNjcmlwdEVuYWJsZWQpCiAgICAgUV9QUk9QRVJUWShib29s
IGphdmFFbmFibGVkIFJFQUQgamF2YUVuYWJsZWQgV1JJVEUgc2V0SmF2YUVuYWJsZWQpCiAgICAg
UV9QUk9QRVJUWShib29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUg
c2V0UGx1Z2luc0VuYWJsZWQpCkBAIC0zNDEsNiArMzQyLDggQEAgcHVibGljOgogCiAgICAgYm9v
bCBhdXRvTG9hZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNl
dHRpbmdzOjpBdXRvTG9hZEltYWdlcyk7IH0KICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJv
b2wgb24pIHsgcy0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIG9u
KTsgfQorICAgIGJvb2wgYWxsb3dBbmltYXRlZEltYWdlcygpIGNvbnN0IHsgcmV0dXJuIHMtPnRl
c3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBbGxvd0FuaW1hdGVkSW1hZ2VzKTsgfQorICAgIHZv
aWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2Vi
U2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMsIG9uKTsgfQogICAgIGJvb2wgamF2YXNjcmlw
dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6
SmF2YXNjcmlwdEVuYWJsZWQpOyB9CiAgICAgdm9pZCBzZXRKYXZhc2NyaXB0RW5hYmxlZChib29s
IG9uKSB7IHMtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkLCBv
bik7IH0KICAgICBib29sIGphdmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gcy0+dGVzdEF0dHJp
YnV0ZShRV2ViU2V0dGluZ3M6OkphdmFFbmFibGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRl
Y2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXggMWY5YTJmZjg0ZGNlNTU5ZjA4NDI3M2MyMDI1OGNh
ZmI5ZmE1ZGNkNi4uYWU4NDUyZTU0MDJmZGZjMmU2YjdmOTBmZTA5NGM1YWE1MmE3ZDAxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9x
ZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FkZWNs
YXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCkBAIC00NzgsNiArNDc4
LDcgQEAgdm9pZCB0c3RfUURlY2xhcmF0aXZlV2ViVmlldzo6c2V0dGluZ3MoKQogCiAgICAgUVN0
cmluZ0xpc3Qgc2V0dGluZ3NMaXN0OwogICAgIHNldHRpbmdzTGlzdCA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImF1dG9Mb2FkSW1hZ2VzIikKKyAgICAgICAgICAgICAgICAgPDwgUVN0cmluZzo6ZnJv
bUFzY2lpKCJhbGxvd0FuaW1hdGVkSW1hZ2VzIikKICAgICAgICAgICAgICAgICAgPDwgUVN0cmlu
Zzo6ZnJvbUFzY2lpKCJkZXZlbG9wZXJFeHRyYXNFbmFibGVkIikKICAgICAgICAgICAgICAgICAg
PDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJqYXZhRW5hYmxlZCIpCiAgICAgICAgICAgICAgICAgIDw8
IFFTdHJpbmc6OmZyb21Bc2NpaSgiamF2YXNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ2ODk0NDY1
NzA4YzA2OTQwZTNiM2JjMGE0YzYwMTYyNTc4NTA4YmIuLjVkYjY5ZTY5OTY5OThlMDE3NWFhZTMx
MjBiMzBjNDAxMjZiNDJjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCkBAIC01OSw2ICs1OSw3IEBACiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0
ZWRJbWFnZXNQcmVmZXJlbmNlS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5j
ZUtleSIKICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VL
ZXkgIldlYktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmlu
ZSBXZWJLaXREaXNwbGF5SW1hZ2VzS2V5ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgorI2RlZmlu
ZSBXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2Vz
S2V5IgogI2RlZmluZSBXZWJLaXRMb2FkU2l0ZUljb25zS2V5ICJXZWJLaXRMb2FkU2l0ZUljb25z
S2V5IgogI2RlZmluZSBXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5
ICJXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5IgogI2RlZmluZSBX
ZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSAiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VL
ZXkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDU5MjdjOTY2NDJhYmUxYTEyM2QzZmM3NjBkOTQ0
ZGJhZjg0YWJiMmMuLmNiY2NkNTg3NjM0NDU0Y2UxYWQzMGVjNzNiNzFiYTI5ZjVlNDc0MzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC00NjkyLDYgKzQ2OTIsMTEgQEAgSFJFU1VMVCBXZWJWaWV3
Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmZXJlbmNlcy0+YWxsb3dBbmltYXRl
ZEltYWdlcygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBo
cjsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyghIWVuYWJsZWQpOworCiAg
ICAgaHIgPSBwcmVmZXJlbmNlcy0+dXNlclN0eWxlU2hlZXRFbmFibGVkKCZlbmFibGVkKTsKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5j
cHAKaW5kZXggZGRlMzc4ZjAyYmZiY2U2OWE5OGUxYWZmYmU1YjU0MDgxZTIxODRmZS4uMDY3ODM5
OTRiMTYwNjA2ODAzMjUwMWNlM2M2ZWZjN2MxNzU4YWUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcu
Y3BwCkBAIC0xMDMsNiArMTAzLDcgQEAgV2ViVmlldzo6V2ViVmlldyhIV05EIGh3bmQsIHVuc2ln
bmVkIGZlYXR1cmVzKQogICAgIHNldHRpbmdzLT5zZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKDgp
OwogICAgIHNldHRpbmdzLT5zZXRTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93
QW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAKICAgICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0UqIGxvYWRlckNsaWVudCA9IG5ldyBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UodGhp
cyk7CiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLCAwLCBs
b2FkZXJDbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcAppbmRleCA4OTFhODY3YThlYTIy
OTA5NDhiNTM4YjZlOTk0YzI0ZGNjNTQyNzg1Li5lYTRhZGI5OWQ3NWUzYjczNmY1MzNiYjU1NGQ1
NjY5YmYwNzAxZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcApAQCAtODgsNiArODgsMjAg
QEAgYm9vbCB3eFdlYlNldHRpbmdzOjpMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25zdAog
ICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKK3ZvaWQgd3hXZWJTZXR0aW5nczo6U2V0QWxsb3dB
bmltYXRlZEltYWdlcyhib29sIGFsbG93QW5pbWF0ZWRJbWFnZXMpCit7CisgICAgaWYgKG1fc2V0
dGluZ3MpCisgICAgICAgIG1fc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYWxsb3dB
bmltYXRlZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZElt
YWdlcygpIGNvbnN0Cit7CisgICAgaWYgKG1fc2V0dGluZ3MpCisgICAgICAgIHJldHVybiBtX3Nl
dHRpbmdzLT5hbGxvd0FuaW1hdGVkSW1hZ2VzKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IHZvaWQgd3hXZWJTZXR0aW5nczo6U2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ewogICAgIGlmIChtX3NldHRpbmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJT
ZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5oCmluZGV4IGI3MGRkZTVh
M2U1Y2YyZTMzMDJmMTRlYmI1MzY4OThhNDUyNWFiMzIuLmUxMjhhYWU3OTQ3OWM2ZWY4NTYzNTBh
YmIzNDAwNjM3OGNkMGE4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKQEAgLTExMSw2ICsxMTEs
MTYgQEAgcHVibGljOgogICAgIGJvb2wgTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkgY29uc3Q7
CiAgICAgCiAgICAgLyoqCisgICAgICAgIFNldHMgd2hldGhlciBvciBub3QgaW1hZ2VzIGFyZSBh
bGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgdm9pZCBTZXRBbGxvd0FuaW1hdGVk
SW1hZ2VzKGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBub3Qg
aW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBBbGxv
d0FuaW1hdGVkSW1hZ2VzKCkgY29uc3Q7CisKKyAgICAvKioKICAgICAgICAgU2V0cyB3aGV0aGVy
IG9yIG5vdCB0aGUgV2ViVmlldyBydW5zIEphdmFTY3JpcHQgY29kZS4KICAgICAqLwogICAgIHZv
aWQgU2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3d4L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcAppbmRleCA5MTE3
Yzk2YjBiNTk2ZmRhMTQ2YjM0MTJjNTBjMTZjZjhlZDg3OGE3Li45M2NlNDc1MThmZjg2OTNmOGVl
ZGZlODgxN2YzMmYzOTA3N2FhY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKQEAgLTQwNyw2ICs0MDcs
NyBAQCBib29sIHd4V2ViVmlldzo6Q3JlYXRlKHd4V2luZG93KiBwYXJlbnQsIGNvbnN0IHd4U3Ry
aW5nJiB1cmwsIGludCBpZCwgY29uc3Qgd3hQbwogICAgIC8vIGV2ZW50dWFsbHkKICAgICBXZWJD
b3JlOjpTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ltcGwtPnBhZ2UtPnNldHRpbmdzKCk7CiAgICAg
c2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKKyAgICBzZXR0aW5n
cy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVs
dEZpeGVkRm9udFNpemUoMTMpOwogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rm9udFNpemUoMTYp
OwogICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIE5ldyBSb21hbiIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggZWJhNDQ3
ZmJiNWRiMWJkOGY3YTk4MjdmMTk2ODY4Y2JlMWM5ZGNhZC4uNjk5MDE1NmQ0NjkzOGZhYTUwOTUw
MTNiYTM1ODFkZmZlNWIwNzMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oCkBAIC01MSw2ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2RlZmlu
ZSBGT1JfRUFDSF9XRUJLSVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oSmF2
YVNjcmlwdEVuYWJsZWQsIGphdmFTY3JpcHRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAg
ICAgbWFjcm8oTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHksIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhBbGxvd0FuaW1hdGVkSW1hZ2VzLCBh
bGxvd0FuaW1hdGVkSW1hZ2VzLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UsIGxvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1h
Y3JvKFBsdWdpbnNFbmFibGVkLCBwbHVnaW5zRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAog
ICAgIG1hY3JvKEphdmFFbmFibGVkLCBqYXZhRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDUyMWU2ZDRhMDVjY2RmMWNhNmYxY2Y0ZmU2NmRmNDk5OWViYmU5NWEuLjVjNjFiNDlhMzM1
YzJjZTJjN2I5ODMyMmFmNTNiZGI1ZjRhZmVjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTc4LDYgKzc4LDE2IEBAIGJvb2wg
V0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5sb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0QWxsb3dB
bmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGFsbG93
QW5pbWF0ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0QWxsb3dB
bmltYXRlZEltYWdlcyhhbGxvd0FuaW1hdGVkSW1hZ2VzKTsKK30KKworYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
KQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxvd0FuaW1hdGVkSW1h
Z2VzKCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpCiB7CiAgICAg
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9h
ZGluZ1ByZWZlcmVuY2UobG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVu
Y2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgK
aW5kZXggZjEzNTU5YWNiODJlMTNhYWIyMDQ2ZDEwMjFhN2RkODc5NzkwNDkyNS4uYTQ5OTVjYTRm
MGI1OGM5ZTBmMzEyMGQ1NmZkOTgzNGI0YTdhZDJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC00OSw2ICs0OSwxMCBAQCBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlcyk7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CiAKKy8v
IERlZmF1bHRzIHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0QWxsb3dB
bmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGFsbG93QW5p
bWF0ZWRJbWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEFsbG93QW5pbWF0
ZWRJbWFnZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisKIC8vIERlZmF1bHRzIHRv
IGZhbHNlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpOwogV0tf
RVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4
IDc3NGYxNzE5MGM5ODk5NGE0Y2E5ZThhMjA5MTIyZDNmMzJlNDVjNTMuLmY2OTcxMGIxOTU3YTU5
NTRmMDIzY2UzZTU4MDgzNWMzOTY0MjZiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTczLDYgKzczLDcgQEAgZW51
bSB7CiAKICAgICBQUk9QX0VOQUJMRV9KQVZBU0NSSVBULAogICAgIFBST1BfQVVUT19MT0FEX0lN
QUdFUywKKyAgICBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUywKICAgICBQUk9QX0xPQURfSUNP
TlNfSUdOT1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HLAogICAgIFBST1BfRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OX0NBQ0hFLAogICAgIFBST1BfRU5BQkxFX0hUTUw1X0xPQ0FMX1NUT1JB
R0UsCkBAIC0xMTYsNiArMTE3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAgICBjYXNl
IFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRv
X2xvYWRfaW1hZ2VzKHNldHRpbmdzLCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVM6CisgICAgICAg
IHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzKHNldHRpbmdzLCBnX3Zh
bHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9M
T0FEX0lDT05TX0lHTk9SSU5HX0lNQUdFX0xPQURfU0VUVElORzoKICAgICAgICAgd2Via2l0X3Nl
dHRpbmdzX3NldF9sb2FkX2ljb25zX2lnbm9yaW5nX2ltYWdlX2xvYWRfc2V0dGluZyhzZXR0aW5n
cywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKQEAgLTIyMyw2
ICsyMjcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3Qq
IG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbAogICAgIGNhc2UgUFJPUF9BVVRPX0xP
QURfSU1BR0VTOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0
dGluZ3NfZ2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MpKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMo
c2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0xPQURfSUNPTlNfSUdO
T1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZh
bHVlLCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9z
ZXR0aW5nKHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzYzLDYgKzM3MCwxOSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNz
KiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKIAogICAgIC8qKgorICAg
ICAqIFdlYktpdFNldHRpbmdzOmFsbG93LWFuaW1hdGVkLWltYWdlczoKKyAgICAgKgorICAgICAq
IENvbnRyb2xzIHdoZXRoZXIgYW5pbWF0ZWQgaW1hZ2VzIHNob3VsZCBiZSBhbmltYXRlZCBvciBu
b3QuCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0
Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0FMTE9XX0FO
SU1BVEVEX0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKCJhbGxvdy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgYW5pbWF0
ZWQgaW1hZ2VzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJBbGxvdyBpbWFnZXMgdG8gYmUgYW5pbWF0ZWQuIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0
U2V0dGluZ3M6bG9hZC1pY29ucy1pZ25vcmluZy1pbWFnZS1sb2FkLXNldHRpbmc6CiAgICAgICoK
ICAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzaXRlIGNhbiBsb2FkIGZhdmljb25zIGlycmVz
cGVjdGl2ZQpAQCAtOTQwLDYgKzk2MCw0MSBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYXV0
b19sb2FkX2ltYWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuYQogfQog
CiAvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzOgorICog
QHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICoKKyAqIEdldCB0aGUgI1dlYktpdFNldHRp
bmdzOmFsbG93LWFuaW1hdGVkLWltYWdlcyBwcm9wZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJV
RSBJZiBhbmltYXRpb24gb2YgaW1hZ2VzIGlzIGFsbG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4K
KyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMo
V2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncyksIEZBTFNFKTsKKworICAgIHJldHVybiBXS1ByZWZl
cmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMu
Z2V0KCkpOworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfYW5pbWF0ZWRf
aW1hZ2VzOgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1
ZSB0byBiZSBzZXQKKyAqCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczphbGxvdy1hbmltYXRl
ZC1pbWFnZXMgcHJvcGVydHkuCisgKi8KK3ZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19h
bmltYXRlZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBhbGxvdykK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncykpOwor
CisgICAgV2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7CisgICAg
Ym9vbCBjdXJyZW50VmFsdWUgPSBXS1ByZWZlcmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhw
cml2LT5wcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykK
KyAgICAgICAgcmV0dXJuOworCisgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93QW5pbWF0ZWRJbWFn
ZXMocHJpdi0+cHJlZmVyZW5jZXMuZ2V0KCksIGFsbG93KTsKKyAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1Qoc2V0dGluZ3MpLCAiYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzIik7Cit9CisKKy8qKgog
ICogd2Via2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5nX2ltYWdlX2xvYWRfc2V0
dGluZzoKICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKICAqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCAyN2NiN2M3
NWExOTFkYmQzZTRhMjQ4ZjMyZTgyYzkwZGQ1YjU1YzMwLi5mMGEwOWI3Nzk1NmIyNjEzNmM0NTFj
MDJiYTUxYjZkMDk0MWVjNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKQEAgLTkyLDYgKzkyLDEzIEBAIHdlYmtpdF9zZXR0aW5n
c19zZXRfYXV0b19sb2FkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRT
ZXR0aW5ncyAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCiBXRUJLSVRfQVBJ
IGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlcyAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlcyAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
ICAgICAgICBhbGxvdyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF9zZXR0aW5nc19n
ZXRfbG9hZF9pY29uc19pZ25vcmluZ19pbWFnZV9sb2FkX3NldHRpbmcgICAgIChXZWJLaXRTZXR0
aW5ncyAqc2V0dGluZ3MpOwogCiBXRUJLSVRfQVBJIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CmluZGV4IDA0MjY0NWQ5ODdkZTA1MWMxYWE5YTdmMDJkZWE1MTJhNmI3ODFmNWEuLmQ1OTkz
NGJkZDY0MzYwNTc3YjNlYTI4N2Q2YmE1MjcwNGQ0NzBhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtMTU2LDYgKzE1Niw4IEBAIHdlYmtpdF9zZXR0aW5nc19uZXcKIHdlYmtpdF9z
ZXR0aW5nc19uZXdfd2l0aF9zZXR0aW5ncwogd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRf
aW1hZ2VzCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMKK3dlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93
X2FuaW1hdGVkX2ltYWdlcwogd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfZnJhbWVfZmxhdHRl
bmluZwogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZwogd2Via2l0
X3NldHRpbmdzX2dldF9lbmFibGVfaHRtbDVfZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3MWMxMWFmZTU3
NjRmOWQwZTYxZTU2NWYyZWQzZTNjOGY5OGRlZTI1Li4xOTNiMmI2NzJiMDNiODVmMjE1ZjlhMmUy
MWRmOWEyNDQ4NGQ5N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCkBAIC00MCw2ICs0MCw4IEBAIGJvb2wgUVdlYlByZWZl
cmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJB
dHRyaWJ1dGUKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgog
ICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShw
cmVmZXJlbmNlc1JlZigpKTsKKyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJbWFnZXM6CisgICAgICAg
IHJldHVybiBXS1ByZWZlcmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhwcmVmZXJlbmNlc1Jl
ZigpKTsKICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgogICAgICAgICByZXR1cm4gV0tQcmVm
ZXJlbmNlc0dldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2Ug
UGx1Z2luc0VuYWJsZWQ6CkBAIC02Niw2ICs2OCw5IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBh
CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRz
SW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJbWFnZXM6CisgICAgICAgIFdLUHJlZmVyZW5j
ZXNTZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVy
ZW5jZXNTZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCA2MTlkMWEyNGFlMDczNDhmNGMzNTVhZDM2MWY2NzZkY2M0NDExMGFkLi43ZTBm
NzU5OWI4MDIxZGEzODgzNzdlNDJiZGI1NTAyNWVhNzMzMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2
b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
IHN0b3JlKQogCiAgICAgc2V0dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAg
ICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgp
KSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd0FuaW1hdGVkSW1hZ2VzS2V5KCkpKTsK
ICAgICBzZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRp
bmcoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2Fkc1NpdGVJ
Y29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZUtleSgpKSk7CiAgICAgc2V0dGluZ3Mt
PnNldFBsdWdpbnNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVk
S2V5KCkpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA0N2JlNjhiNWY4NTFiMmVhYmU1M2M1NmU0NjgxOWUwY2UxNDQxMzkxLi5jODFmMDgzMzli
MjU2OGY0NDhlMmE5ODJjODU3ZDMzYjcxNDI1YmVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDItMTYgIFBh
YmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd0Fu
aW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJl
ZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZl
cmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW06CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlBhZ2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25z
aXN0ZW50VmFsdWVzKToKKwogMjAxMi0wMi0xNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBuZXcgUXQgcGVyZm9ybWFuY2UgdGVzdGVyIGJvdCB0
byBidWlsZC53ZWJraXQub3JnCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFj
a2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGZiNTJjZmRlOTM0YmE4NTBkODVjMjg4OTMwYWQ2
NWRmMDhlOTZiYmYuLjA3MWY4NWI2Njk0ZmRmMzk4OTVhN2YxZTE2YjJkZGMzMDgzOGEzYzkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUu
Y3BwCkBAIC0yMzksNiArMjM5LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIHNldHRpbmdzLT5zZXRUZXh0UmVmbG93TW9k
ZShXZWJTZXR0aW5nczo6VGV4dFJlZmxvd0Rpc2FibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2
YVNjcmlwdEVuYWJsZWQodHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyh0cnVl
KTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9wZW5XaW5kb3dzQXV0b21hdGljYWxseSh0
cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0
aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA1NDI4ZWZjOTFm
Y2ZiZjQ0MWQ1MmNhNWM1ZDMzY2QwYmY1ZDg3ZmE5Li43NzEzODM4OTQ0MzFjMGMwZWIxZDQwZDI3
MDg4ZTAxMzNhNTE3NDgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDkzLDYgKzE0OTMsOCBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZzLT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAo
a2V5ID09ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikKICAgICAgICAgcHJlZnMtPmxvYWRzSW1h
Z2VzQXV0b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOworICAgIGVsc2UgaWYg
KGtleSA9PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkiKQorICAgICAg
ICBwcmVmcy0+YWxsb3dBbmltYXRlZEltYWdlcyA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwog
ICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0UGx1Z2luc0VuYWJsZWQiKQogICAgICAgICBwcmVm
cy0+cGx1Z2luc0VuYWJsZWQgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlm
IChrZXkgPT0gIldlYktpdERPTVBhc3RlQWxsb3dlZFByZWZlcmVuY2VLZXkiKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDM2NTFm
ODg4MzExZjU1NTE2MDhhNmYwYjM0ZjUwYTg4ODg4N2VjM2EuLjE0ZDY2NzA1NWNkZjkzNjk5Zjk3
ZWY5ZjQyOGZkYzlhZTg0Y2UxZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBXZWJQcmVmZXJl
bmNlczo6cmVzZXQoKQogICAgIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkg
PSB0cnVlOwogICAgIGphdmFTY3JpcHRFbmFibGVkID0gdHJ1ZTsKICAgICBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkgPSB0cnVlOworICAgIGFsbG93QW5pbWF0ZWRJbWFnZXMgPSB0cnVlOwogICAg
IGxvY2FsU3RvcmFnZUVuYWJsZWQgPSB0cnVlOwogICAgIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCA9IHRydWU7CiAgICAgcGx1Z2luc0VuYWJsZWQgPSB0cnVlOwpAQCAtMTk4LDYg
KzE5OSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykK
ICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShq
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKICAgICBzZXR0aW5ncy0+c2V0
SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKKyAgICBz
ZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhhbGxvd0FuaW1hdGVkSW1hZ2VzKTsKICAg
ICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChsb2NhbFN0b3JhZ2VFbmFibGVkKTsK
ICAgICBzZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKG9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNF
bmFibGVkKHBsdWdpbnNFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDEzOTA4ZWM3OTY0ZjkwNzliZTc1ZjdjMjBkNjIzZWI5
ZTA5NDhmNTUuLmJjNDRlYzJjZGQ0Y2QyMDliYWY0YzNiNzI2NGJkMTFmZjE4ZDQzYWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtODcs
NiArODcsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsKICAgICBib29sIGphdmFTY3JpcHRFbmFibGVkOwog
ICAgIGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OworICAgIGJvb2wgYWxsb3dBbmltYXRl
ZEltYWdlczsKICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQ7CiAgICAgYm9vbCBvZmZsaW5l
V2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ7CiAgICAgYm9vbCBwbHVnaW5zRW5hYmxlZDsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA0Nzg3YWE1M2Jm
OGNjMmMwNTcxMmVlYzk4NjJiZmJjOTBiMjY2N2UyLi5mMDBiZTk3YWIyNmQ1MWFmMDgzYmJkOWNi
MzU3NTIzM2EzNzI5MDU3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCkBAIC02MjksNiArNjI5LDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29u
c2lzdGVudFZhbHVlcygpCiAgICAgW3ByZWZlcmVuY2VzIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXREZXZlbG9wZXJFeHRyYXNF
bmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
OllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOllFU107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVm
ZXJlbmNlOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZDpO
T107CiAgICAgW3ByZWZlcmVuY2VzIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDpOT107CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IGQ1NDYz
ODY3YTJjYzZkMjY3MWY5NDI1OGEzOWVkYmI2Zjk2ZTE4NWUuLjEwYjhiZGVjNzZhZmYwMjQxOGU0
OGQ5Y2I4YjgxOGM3NzQ3ZDNkZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwCkBAIC0xODksNiArMTg5LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNl
dHRpbmdzKCkKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBs
dWdpbnNFbmFibGVkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGlu
Z3M6OkphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpOwogICAgIHNldHRpbmdzKCktPnJlc2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpOworICAgIHNldHRpbmdzKCkt
PnJlc2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcyk7CiAgICAg
c2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHkpOwog
CiAgICAgbV9kcnQtPmxheW91dFRlc3RDb250cm9sbGVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFi
bGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
CmluZGV4IDJiNTY4OTUyNTEzYTkxODQ1MDUzMjM2MWFjYWVlMDRjMGU1ZmEzZjUuLjZiYTEzZDlj
YmVkOGNmODA1MTM0YWVmMmQzOWY5ZThhYWMzMDQ2MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODU1LDYgKzg1NSw3IEBAIHN0YXRpYyB2b2lk
IHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcykKICAgICBwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlua3MoRkFMU0UpOwogICAgIHByZWZl
cmVuY2VzLT5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKFRSVUUpOwogICAgIHByZWZlcmVuY2Vz
LT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoVFJVRSk7CisgICAgcHJlZmVyZW5jZXMtPnNl
dEFsbG93QW5pbWF0ZWRJbWFnZXMoVFJVRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdC
ZWhhdmlvcihXZWJLaXRFZGl0aW5nV2luQmVoYXZpb3IpOwogCiAgICAgaWYgKHBlcnNpc3RlbnRV
c2VyU3R5bGVTaGVldExvY2F0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjE3ODdlODc2OTI2MDAyMjE2OTQyZWJm
NGM1M2I5YmQzNWQwNzZmNy4uZjk1MDVhODAyZTEzNTRlMjhmMzZiYzYwMjUyOTMxYWI5NTFjYzI4
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFi
bG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVm
ZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1h
bmltYXRlZC5naWY6IEFkZGVkLgorCiAyMDEyLTAyLTE2ICBSYXVsIEh1ZGVhICA8cmh1ZGVhQGFk
b2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc11vdmVyZmxvd1JlZ2lvbiB0ZXN0cyBhcmUg
Zmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1h
dGVkLWltYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxv
dy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyODYwODk4OGQ1MDlh
OGRiMjJmMmJiYzUzZTk1MDJmZDEwMDI5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJlIGRpc2FibGVkLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZ2JhU3RyaW5nKGdpZkZyYW1l
KSBpcyAnMTM3MTAwZmYnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93
LWFuaW1hdGVkLWltYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ct
YW5pbWF0ZWQtaW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNzEzYzc4NWViODFmYzQ2ZTE1ZDQz
N2UxOGRmN2NjOTMzOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBz
dHlsZT0idmlzaWJpbGl0eTogaGlkZGVuIj5GQUlMPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4iKTsK
KworICAgIGZ1bmN0aW9uIHJnYmFTdHJpbmcgKGEpIHsKKyAgICAgICAgcmV0dXJuIEFycmF5LnBy
b3RvdHlwZS5tYXAuY2FsbChhLCAoZnVuY3Rpb24gKG4pIHsgcmV0dXJuICgiMDAiK24udG9TdHJp
bmcoMTYpKS5zbGljZSgtMik7IH0pKS5qb2luKCIiKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5j
ZUtleSIsIDApOworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFy
IGltYWdlID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVlbi1y
ZWQtYW5pbWF0ZWQuZ2lmPyIgKyBNYXRoLnJhbmRvbSgpOworICAgIGltYWdlLm9ubG9hZCA9IGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJjYW52YXMiKS5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIC8vIFRoZSBnaWYgaXMgb25l
IGZyYW1lIG9mIGdyZWVuIGFuZCBzZXZlcmFsIGZyYW1lcyBvZiByZWQuCisgICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgICAg
ICAgICAgIGdpZkZyYW1lID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSkuZGF0YTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJyZ2JhU3RyaW5nKGdpZkZyYW1lKSIsICInMTM3MTAwZmYn
Iik7IC8vIEdyZWVuLgorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
MTUwKTsgLy8gR3JlZW4gZnJhbWUgb2YgR0lGIGhhcyAxMDBtcyBkdXJhdGlvbgorICAgIH0KKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dy
ZWVuLXJlZC1hbmltYXRlZC5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMv
Z3JlZW4tcmVkLWFuaW1hdGVkLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmM0NThhZmM4MzgyODUyYzJkODE2
OTA5MDQ0YWMzZmI1N2RhNmY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4NjcKemNtWj93YmhF
SGJHLTVEZl9gdHYqVCp2P2ZpYSVLeHhJcHdqT1huYjAjfU5NQER+MHFGLUs+SnRiY0hmUUpwJT1l
CnooJkVnI2JPbGNAY0xsRWlTOWdVbjNqPDlaZ35IT3JvWG5DKzF6UUQ2MTE8KXx8Sjs3QUE7SGQk
MGpAQFIyRiMyPQp6Xks/TGxnS1QxOEdIJlQjZEhPQj87eUdKeGIjSzE2PVFuQGJCYWRtJUkrd2pW
d2UyMUVAbFFWMnp4Nik8Yj8qQj0Kb2VqY3YmQmExJEVfLUx1S1FwYTZ6TT5QQlpJY0wtPDtNZmBz
Nj5NcGtJLXowPjBRQDtXSnBjZHoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128248</attachid>
            <date>2012-02-22 10:57:57 -0800</date>
            <delta_ts>2012-03-07 15:07:05 -0800</delta_ts>
            <desc>Win build fix</desc>
            <filename>bug-9767-20120222105755.patch</filename>
            <type>text/plain</type>
            <size>56127</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxNWQzOTMwYjkxMjZh
MjFiMzI0YzVmZTk4MmQ1MjI3Y2RiN2I4ZC4uZGM0OTMxYTNlOGFjOTMyNjc0NTJlMjY0ZGQ3Nzc2
ZjU2Y2ZkZTRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTE2ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmlt
YXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQt
aW1hZ2VzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjphbGxvd0FuaW1hdGVkSW1hZ2VzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xNiAgUmF1bCBIdWRlYSAgPHJodWRl
YUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdb3ZlcmZsb3dSZWdpb24gdGVzdHMg
YXJlIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjYTJiOGVmZGQ2MTY5NThh
ZDU1MmM3YjYwOGIxNjVjMWE2MTk3YTkuLjFlYmI3MzhjN2MzYmUxNjMzZGZmZWNiNGY4MmRiOWJj
NGYxN2VlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDItMTYgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAg
IEFkZCBBbGxvd0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5o
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5n
c0ltcGwpOgorCiAyMDEyLTAyLTE2ICBWaWV0LVRydW5nIEx1dSAgPHZpZXR0cnVuZ2x1dUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgbWV0aG9kIHRvIFdlYlBsdWdpbkNv
bnRhaW5lciB0byBjaGVjayBpZiBhIHJlY3RhbmdsZSBpcyB0b3Btb3N0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggZTU3OGQzYjAzZjczOTAwNzRkMGE0Y2M0YTIyOWI1ZjVmOGI5MmZkNi4uNDY2YTRmMDBh
MWQ0NWI4MjcyMzVmYmFkMTc0OTdmN2E0NDE2YWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNv
bT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdr
X3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChf
ZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmlt
YXRlZF9pbWFnZXNfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3dfYW5pbWF0
ZWRfaW1hZ2VzX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDEtMzEg
IFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAg
W3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggNGYwMTc5YzkwZTFjOWU0MzM3M2YzYWMzMGI5YzhlMDRkZDVlNzg0Zi4uMjA2Mzk0
YWJkZWE3ZWI5ZDc2ZjhjYjVkMzgxMjliNjdiNzc0NTEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRp
bmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6
CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNzaW9uIGZlYXR1cmUgaW5p
dGlhbGl6YXRpb24gdG8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNWQ4MjdiMWU3ZGNi
ZTZjOWJjOWU0NmM0NTAxYmQ4NGQ0MDM5MmEuLjgwZTJlNzM1NWEyN2I5NmI4OTI3ZmE2M2Y3NGU4
ZWY1YjRlOGVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0x
NiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFs
bG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTItMDItMTUgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBDbGlwYm9h
cmRNYWMgY2xhc3MgdG8gdXNlIFBsYXRmb3JtU3RyYXRlZ2llcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
NDY3MjEzMGQ2Y2M5MTRhZmE3ZDhmNDFjMjUzZDIxNWNhOWU3OWFhNi4uYWZlNjhiZDJlNzAwNmQ4
ZTNmNDViYTU2M2U3N2I1OTc2OWZmMGNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMi0wMi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5n
cy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChR
V2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5o
OgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAg
ICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xh
cmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFs
bG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OnNl
dEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAqIHRlc3RzL3FkZWNsYXJhdGl2ZXdlYnZp
ZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2
ZVdlYlZpZXc6OnNldHRpbmdzKToKKwogMjAxMi0wMi0xNiAgU2ltb24gSGF1c21hbm4gIDxzaW1v
bi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBicm93bi1wYXBlciBi
YWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDE2OWU5OGI3Mjc1ZTMxYzgxYjQ4MzAx
NTI1ZTk2NGE0MWRjZGEyODEuLmNjNDQ0YTY0OTQ2YmUyMDRiYzcxODIwYzljMjA1MDBjZmY3MGRm
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0xNiAgUGFibG8g
RmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93QW5pbWF0
ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsOgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcuY3Bw
OgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMi0w
Mi0xNSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTm90aWZ5IENocm9tZUNsaWVudCB3aGVuIHRvdWNoLWV2ZW50IGhhbmRsZXJzIGFyZSBp
bnN0YWxsZWQvcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggMWM4YjAxNTJhODA1ZTNm
MmEwYThhOTc4MjM5ZmYyZTM1MTk3ZTIzYy4uZjVkOTdkMGQyMjhlNzIwZGM5NjBhYjhmODY2NzI1
YmE4MGJjNTNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Mi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRk
IEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChX
ZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJv
Z2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNFIGJ1aWxkIGZpeCBhZnRl
ciByMTA3NjA2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAwNWJlODRiNzE4ZGY3ZTQ3MWU4MWJhYTczNWYw
NWU0MzEwM2MwNTM3Li5mMDA4NjBkZjI1YjI3YjkxYzNjNGFiYzdkMjU3NDU3YzEzNTllYTdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0
ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdl
cyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3eFdlYlNldHRpbmdzOjpT
ZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKHd4V2ViU2V0dGluZ3M6OkFsbG93QW5p
bWF0ZWRJbWFnZXMpOgorICAgICAgICAqIFdlYlNldHRpbmdzLmg6CisgICAgICAgICogV2ViVmll
dy5jcHA6CisgICAgICAgICh3eFdlYlZpZXc6OkNyZWF0ZSk6CisKIDIwMTItMDItMTUgIFNhZHJ1
bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdGlm
eSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVycyBhcmUgaW5zdGFsbGVkL3Jl
bW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggODc3ZTczNTI0MWU1NzNlOWNiM2E1MTMzNTFmMGY1MGUxOTgw
NTRhMS4uM2U3NTNiYWQzMTA0Mzk1ZjFmZWFlMWNmMWZjODlhMDdkNzg0Mjk0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNl
L3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZl
cmVuY2VzU2V0QWxsb3dBbmltYXRlZEltYWdlcyk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0
QWxsb3dBbmltYXRlZEltYWdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHA6
CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYktpdFNl
dHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2NsYXNzX2luaXQp
OgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMpOgor
ICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19hbmltYXRlZF9pbWFnZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKFFXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisK
IDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4K
IAogICAgICAgICBbVGV4bWFwXSBJbXByb3ZlIHRoZSB3YXkgd2UgZGVhbCB3aXRoIEJHUkEgZXh0
ZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY1YjhjNTYyNzFjZDFhYzY4NTA5ZmFhYTgw
MzkxYjZlMmU1MDI0ODguLmM2NjBiY2RmZDRkMWExNTljYzQwOGUyYWIyMzFjMTk1ZDdhYjNhY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NzksNiArOTc5LDcgQEAgX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjFtb2NrU2Nyb2xsYmFyc0VuYWJsZWRFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFz
ZXRTaG93UmVwYWludENvdW50ZXJFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFy
ZEZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczIxc2V0V2ViU2VjdXJpdHlFbmFibGVkRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIyc2V0QWxsb3dBbmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dExvY2FsU3RvcmFnZUVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5ET01U
aW1lckludGVydmFsRWQKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZh
bWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAppbmRleCBiNWNiOTYzYmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi4z
MDdkZTc1NWM5ZGY3NDFhNTgxYzBmMjI3YjkzMzRkNzZmMmI0NjY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBw
YWdlKQogICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
aXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZh
bHNlKQorICAgICwgbV9hbGxvd0FuaW1hdGVkSW1hZ2VzKHRydWUpCiAgICAgLCBtX2xvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGZhbHNlKQogICAgICwgbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9jYXJldEJyb3dzaW5nRW5hYmxlZChmYWxz
ZSkKQEAgLTM4MSw2ICszODIsMTEgQEAgdm9pZCBTZXR0aW5nczo6bG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5VGltZXJGaXJlZChUaW1lcjxTZXR0aW5ncz4qKQogICAgIHNldExvYWRzSW1hZ2VzQXV0
b21hdGljYWxseUluQWxsRnJhbWVzKG1fcGFnZSk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldEFs
bG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQoreworICAgIG1fYWxs
b3dBbmltYXRlZEltYWdlcyA9IGFsbG93QW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGlu
Z3M6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9h
ZHNTaXRlSWNvbnMpCiB7CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5n
U2V0dGluZyA9IGxvYWRzU2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQw
NjYwMTZlYWYzZGJlYWVmOTI2MWE3NDdlMzljZjcwOTc3NjguLjBkZTIyNjc2MWQyZTgzZWUxMjkw
ZDQ5ZmIxZTAyODgzNDNiMmVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsx
MDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KGJvb2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAg
ICAgdm9pZCBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wpOworICAgICAgICBib29sIGFsbG93
QW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93QW5pbWF0ZWRJbWFnZXM7IH0K
KwogICAgICAgICAvLyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBs
b2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0
aGlzIHNldHRpbmcgaXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBz
dGlsbCBoZWVkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lk
IHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAt
NTY3LDYgKzU3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQg
OiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAg
ICAgYm9vbCBtX2FsbG93QW5pbWF0ZWRJbWFnZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNT
aXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgOiAxOwogICAgICAgICBib29sIG1f
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jYXJldEJyb3dzaW5n
RW5hYmxlZCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKaW5kZXggYTg5NTc2MDFmNjIxZjA1M2E2MDdmNzY0NjdmZGQ4ZjE5ODM2ZmI3
My4uNWFlZjBiMjNhZDQ0NDczMmI4MGQ4ZGU3M2M1N2VjZDBjOGQ2NDg3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNDUxLDcg
KzQ1MSw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbihib29s
IHNraXBwaW5nRnJhbWVzKQogICAgIAogICAgIC8vIFNlZSBpZiBhbnlvbmUgaXMgc3RpbGwgcGF5
aW5nIGF0dGVudGlvbiB0byB0aGlzIGFuaW1hdGlvbi4gIElmIG5vdCwgd2UgZG9uJ3QKICAgICAv
LyBhZHZhbmNlIGFuZCB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgYXQgdGhlIGN1cnJlbnQgZnJhbWUg
dW50aWwgdGhlIGFuaW1hdGlvbiBpcyByZXN1bWVkLgotICAgIGlmICghc2tpcHBpbmdGcmFtZXMg
JiYgaW1hZ2VPYnNlcnZlcigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKKyAgICBpZiAo
aW1hZ2VPYnNlcnZlcigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgKyttX2N1cnJlbnRGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNmNhNzE5MjM5MTI0MmEyN2ZiNmMwNDkyNzgzNTQ5
MTRiNzRjNGM2My4uNTJlYmI1NjhhNWQzNDNhMzJjN2E1MjY0NGYwYzQ2ODVkNDU2NWIwYiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYxLDYgKzYxLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KQEAgLTI1ODUsOSArMjU4NiwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6d2ls
bFJlbmRlckltYWdlKENhY2hlZEltYWdlKikKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgp
ICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIFNldHRpbmdzKiBzZXR0
aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7CisKICAgICAvLyBJZiB3ZSdyZSBub3QgaW4g
YSB3aW5kb3cgKGkuZS4sIHdlJ3JlIGRvcm1hbnQgZnJvbSBiZWluZyBwdXQgaW4gdGhlIGIvZiBj
YWNoZSBvciBpbiBhIGJhY2tncm91bmQgdGFiKQogICAgIC8vIHRoZW4gd2UgZG9uJ3Qgd2FudCB0
byByZW5kZXIgZWl0aGVyLgotICAgIHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSAm
JiAhZG9jdW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigpOworICAgIHJldHVybiAhZG9jdW1l
bnQoKS0+aW5QYWdlQ2FjaGUoKSAmJiAhZG9jdW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigp
ICYmIHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd0FuaW1hdGVkSW1hZ2VzKCk7CiB9CiAKIExh
eW91dFVuaXQgUmVuZGVyT2JqZWN0OjptYXhpbWFsT3V0bGluZVNpemUoUGFpbnRQaGFzZSBwKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGlu
Z3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXgg
YWEyNzgyNWI0ZjA2NjY1MTQyYmVmNjVhMWRlNjZkYjU1Y2U2YWJlMy4uMTY3OGZhNWE4YzFhYTEw
OWQ5NzE4OWUyZTA4Zjc5OWZmYmFjMjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRJbWFnZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UGx1Z2luc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRET01QYXN0ZUFs
bG93ZWQoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAKaW5kZXggZDk0NThjNGIzOWYzYzgxMGNiMWU2ZDc5OGZlMzYzNmNkYmJjMzMx
OC4uNjMxMGQ4YjIwNTg1MzY0ZDhmY2I3NDY0MDRiN2YwZGZkZjE3Yzg3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0xMzQsNiArMTM0
LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
Ym9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkpCiAgICAgbV9zZXR0aW5ncy0+c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiB9CiAKK3ZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wgYWxsb3dBbmltYXRl
ZEltYWdlcykKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGFsbG93
QW5pbWF0ZWRJbWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChl
bmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
aW5kZXggNmQxZWRiNjc3NzAxYmU5NzQ0MmFlNjA1YmM4MjQ5MGMyODEyMWJiMi4uZmM0MzU0MWQ5
N2FlNGMxNjU2MjVhNTRjODk5ODQ3NWI3MmYxMTIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW1hZ2VzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IGFhZTk1NTFlZjg4MDY2MzQ5YWNjOGI3NTky
ZTI2MzA4YmIwYTRjYzUuLjMwNmNlZjQ2NWUzMTIwOWJiNDM3ZjJhODhkNDM2NWZiM2JiMWU1NGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTczLDYgKzE3Myw3IEBAIHN0cnVj
dCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlm
OwogICAgICAgICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9M
b2FkSW1hZ2VzIDogMTsKKyAgICAgICAgYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzOiAxOwogICAg
ICAgICBib29sIGF1dG9TaHJpbmtJbWFnZXMgOiAxOwogICAgICAgICBib29sIGVuYWJsZUF1dG9S
ZXNpemVXaW5kb3cgOiAxOwogICAgICAgICBib29sIGVuYWJsZURldmVsb3BlckV4dHJhcyA6IDE7
CkBAIC02MzIsNiArNjMzLDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192
aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT52
aWV3cG9ydEFyZ3VtZW50cy51c2VyU2NhbGFibGUgPSB0cnVlOwogCiAgICAgcHJpdi0+cGFnZVNl
dHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgcHJpdi0+cGFn
ZVNldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHByaXYtPnBhZ2VT
ZXR0aW5ncy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoImlzby04ODU5LTEiKTsKICAgICBw
cml2LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEyKTsKICAgICBwcml2
LT5wYWdlU2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6ZSgxNik7CkBAIC02NzYsNiArNjc4LDcg
QEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT5zZXR0aW5ncy5mb250U2Fuc1Nl
cmlmID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgcHJpdi0+c2V0dGluZ3MuYXV0b0xvYWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGlu
Z3MtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHByaXYtPnNldHRpbmdzLmFsbG93
QW5pbWF0ZWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93QW5pbWF0ZWRJbWFnZXMo
KTsKICAgICBwcml2LT5zZXR0aW5ncy5hdXRvU2hyaW5rSW1hZ2VzID0gcHJpdi0+cGFnZVNldHRp
bmdzLT5zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KCk7CiAgICAgcHJpdi0+c2V0dGluZ3Mu
ZW5hYmxlQXV0b1Jlc2l6ZVdpbmRvdyA9IHRydWU7CiAgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxl
RGV2ZWxvcGVyRXh0cmFzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5kZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKCk7CkBAIC0xOTMzLDYgKzE5MzYsMjUgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdf
YXV0b19sb2FkX2ltYWdlc19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbAogICAg
IHJldHVybiB0cnVlOwogfQogCitFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmlt
YXRlZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19W
SUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIHJl
dHVybiBwcml2LT5zZXR0aW5ncy5hbGxvd0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wg
ZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFaW5hX0Jvb2wgYWxsb3cpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9S
RVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgYWxsb3cgPSAhIWFsbG93OworICAg
IGlmIChwcml2LT5zZXR0aW5ncy5hbGxvd0FuaW1hdGVkSW1hZ2VzICE9IGFsbG93KSB7CisgICAg
ICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhhbGxvdyk7Cisg
ICAgICAgIHByaXYtPnNldHRpbmdzLmFsbG93QW5pbWF0ZWRJbWFnZXMgPSBhbGxvdzsKKyAgICB9
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9f
c2hyaW5rX2ltYWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmgKaW5kZXggN2RlMGU0NjJmMTdjNWFhYTM0Mjg3NjMyYzJkMzRlZjE1
NDdhNzM3YS4uMmZhMGFkOWZiNzYzY2I3MTgxMjU5YzA4YzMxYmVlOTM3NDIzZTRmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTEzNTIsNiArMTM1MiwyNyBAQCBFQVBJIEVpbmFfQm9v
bCAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2FkX2lt
YWdlc19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBhdXRvbWF0aWMpOwogCiAvKioKKyAq
IFF1ZXJpZXMgaWYgYW5pbWF0ZWQgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGFuaW1hdGUuCisgKgor
ICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIGltYWdlcyBhcmUgYWxsb3dl
ZCB0byBhbmltYXRlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGltYWdlcyBh
cmUgYWxsb3dlZCB0byBhbmltYXRlLAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBv
ciBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYWxs
b3dfYW5pbWF0ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICog
QWxsb3cvZGlzYWxsb3cgYW5pbWF0aW9uIG9mIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gbyB2aWV3
IG9iamVjdCB0byBzZXQgd2hldGhlciBpbWFnZXMgY2FuIGJlIGFuaW1hdGVkIG9yIG5vdAorICog
QHBhcmFtIGF1dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGFuaW1hdGlvbiBvZiBpbWFn
ZXMsCisgKiAgICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBA
YyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLwor
RUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFnZXNf
c2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMg
aWYgdGhlIGltYWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBv
IHZpZXcgb2JqZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRp
Y2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CmluZGV4IGQ5MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc3Mjk3NmQ3
MDNkYmE5MTViYjYyZWZkMWZlNGNlY2QyYzEyMWZlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsK
ICAgICBQUk9QX01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2
X0RQSSwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV19BTklNQVRF
RF9JTUFHRVMsCiAgICAgUFJPUF9BVVRPX1NIUklOS19JTUFHRVMsCiAgICAgUFJPUF9QUklOVF9C
QUNLR1JPVU5EUywKICAgICBQUk9QX0VOQUJMRV9TQ1JJUFRTLApAQCAtMzM0LDYgKzMzNSwxNSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0V2ViU2V0
dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bGFncykpOwogCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2Ns
YXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BTExPV19BTklN
QVRFRF9JTUFHRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxv
dy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiQWxsb3cgYW5pbWF0ZWQgaW1hZ2VzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJBbGxvdyBpbWFnZXMgdG8gYmUgYW5pbWF0ZWQuIiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ3MpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z29iamVjdF9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
QVVUT19TSFJJTktfSU1BR0VTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYXV0by1zaHJpbmstaW1hZ2VzIiwKQEAgLTEwMTEsNiArMTAyMSw5IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgY29uCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIHBy
aXYtPmF1dG9Mb2FkSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIHBy
aXYtPmFsbG93QW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAg
cHJpdi0+YXV0b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAg
ICAgICBicmVhazsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
c2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1Zh
CiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9v
bGVhbih2YWx1ZSwgcHJpdi0+YWxsb3dBbmltYXRlZEltYWdlcyk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgUFJPUF9BVVRPX1NIUklOS19JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHByaXYtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUu
aAppbmRleCBkN2QwODJlNWJiM2ZmYWJiZWY0ZGViYzZhOGUxMjVhZmM3YzcyNjMxLi4zYWNhNjFk
MjU0ZTI5ZWIxMmFlZjlkZjk0YWRkM2VhMjZiZGIzNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCkBAIC00Miw2ICs0Miw3
IEBAIHN0cnVjdCBfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlIHsKICAgICBndWludCBtaW5pbXVt
TG9naWNhbEZvbnRTaXplOwogICAgIGdib29sZWFuIGVuZm9yY2U5NkRQSTsKICAgICBnYm9vbGVh
biBhdXRvTG9hZEltYWdlczsKKyAgICBnYm9vbGVhbiBhbGxvd0FuaW1hdGVkSW1hZ2VzOwogICAg
IGdib29sZWFuIGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRCYWNrZ3JvdW5k
czsKICAgICBnYm9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDM4ZDk0MDEzZjA4ZjFmN2VmOTU3NTc2MDk2OGQ3MWY1
N2UyYzM1M2UuLjY1YTVmOTViMmE3YzBhNTczZTBmZjM3MDQwMWM3MWVlNjBiOGQ2MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMyMjcsNiArMzIy
Nyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1p
bHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7CiAgICAgY29y
ZVNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zZXJpZkZvbnRG
YW1pbHkuZGF0YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseShzZXR0aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3JlU2V0dGluZ3Mt
PnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoc2V0dGluZ3NQcml2YXRlLT5hbGxvd0FuaW1hdGVkSW1h
Z2VzKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQo
c2V0dGluZ3NQcml2YXRlLT5hdXRvU2hyaW5rSW1hZ2VzKTsKICAgICBjb3JlU2V0dGluZ3MtPnNl
dFNob3VsZFByaW50QmFja2dyb3VuZHMoc2V0dGluZ3NQcml2YXRlLT5wcmludEJhY2tncm91bmRz
KTsKICAgICBjb3JlU2V0dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc2V0dGluZ3NQcml2YXRlLT5l
bmFibGVTY3JpcHRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0ZGY3
NzU4ZDAyZTE2YmNhOGM1YzVjZDg1MzNiMTBlMDc0Y2ExODM1Li5hOWZkNWIxOTZmNWIyMDY0YzZl
NTNiM2NmODQwMGNlZDlhZmQzNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0xNDIxLDYgKzE0MjEsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxv
YWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5j
ZXMgc2VyaWZGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldFN0YW5kYXJkRm9udEZhbWls
eShbcHJlZmVyZW5jZXMgc3RhbmRhcmRGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShbcHJlZmVyZW5jZXMgbG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5XSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoW3ByZWZlcmVuY2Vz
IGFsbG93c0FuaW1hdGVkSW1hZ2VzXSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzU2l0ZUljb25z
SWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKFtwcmVmZXJlbmNlcyBsb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZV0pOwogICAgIHNldHRpbmdzLT5zZXRTaG91bGRQ
cmludEJhY2tncm91bmRzKFtwcmVmZXJlbmNlcyBzaG91bGRQcmludEJhY2tncm91bmRzXSk7CiAg
ICAgc2V0dGluZ3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFy
ZWFzQXJlUmVzaXphYmxlXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRl
eCA4OWU5ODIxNDA0YTEzZDU5ODg3YTY5ZmY3YThjMWFjZTk1Njc5Y2QwLi5iOTg2OTRiZDc0OWYz
ODFiMzZhYjIwZjk5MzgwNzFmZWJiZjhmY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0
aW5ncy5jcHAKQEAgLTE0Miw2ICsxNDIsMTAgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjph
cHBseSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0
cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzKSk7CiAgICAgICAgIHNl
dHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodmFsdWUpOwogCisgICAgICAgIHZh
bHVlID0gYXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRl
cy52YWx1ZShRV2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMpKTsKKyAgICAgICAgc2V0
dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXModmFsdWUpOworCiAgICAgICAgIHZhbHVlID0g
YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OkRuc1ByZWZldGNoRW5hYmxlZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2Vi
U2V0dGluZ3M6OkRuc1ByZWZldGNoRW5hYmxlZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0RE5T
UHJlZmV0Y2hpbmdFbmFibGVkKHZhbHVlKTsKQEAgLTUwMiw2ICs1MDYsNyBAQCBRV2ViU2V0dGlu
Z3M6OlFXZWJTZXR0aW5ncygpCiAgICAgZC0+Zm9udEZhbWlsaWVzLmluc2VydChRV2ViU2V0dGlu
Z3M6OkZpeGVkRm9udCwgZGVmYXVsdEZvbnQuZGVmYXVsdEZhbWlseSgpKTsKIAogICAgIGQtPmF0
dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIHRydWUpOworICAg
IGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcywg
dHJ1ZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRj
aEVuYWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
OkphdmFzY3JpcHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2Vi
U2V0dGluZ3M6OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2Vic2V0dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1
NjNmOThmLi4yYmE5OGM4NDYxNGM5MGY1YjYyNzRjMmU3ODhmNjkwMWY4YmZlMDUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICBlbnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAg
ICAgICBBbGxvd0FuaW1hdGVkSW1hZ2VzLAogICAgICAgICBKYXZhc2NyaXB0RW5hYmxlZCwKICAg
ICAgICAgSmF2YUVuYWJsZWQsCiAgICAgICAgIFBsdWdpbnNFbmFibGVkLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXgg
YWJmOWJiMjE4YTM2MWIxYTQ0N2FjOTk0MWMyMDNlM2ZkZjI3ZjczYy4uNzM0YTM3ZjI1NTlkYWEy
NzJmZjIwODdmZjY1OWQ4ZmFjOWJiZTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9k
ZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCkBAIC03MjcsNiArNzI3LDcgQEAg
UVdlYlBhZ2UqIFFEZWNsYXJhdGl2ZVdlYlZpZXc6OnBhZ2UoKSBjb25zdAogICAgIFxxbWxwcm9w
ZXJ0eSBpbnQgV2ViVmlldzo6c2V0dGluZ3MuZGVmYXVsdEZpeGVkRm9udFNpemUKIAogICAgIFxx
bWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmF1dG9Mb2FkSW1hZ2VzCisgICAgXHFt
bHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuYWxsb3dBbmltYXRlZEltYWdlcwogICAg
IFxxbWxwcm9wZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmphdmFzY3JpcHRFbmFibGVkCiAg
ICAgXHFtbHByb3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YUVuYWJsZWQKICAgICBc
cW1scHJvcGVydHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5wbHVnaW5zRW5hYmxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3Au
aCBiL1NvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgK
aW5kZXggMDg4ZjIzYmM4NmZmNTVjMmNhNDdiMzRlNDU0MzZlNGI0NDQ5NTk0Yy4uODdkZGNiZDM3
MmM3OGE3YjQxMmNkMzg2ODgwNTk1YTI1YWJkNDQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCkBAIC0yOTksNiArMjk5
LDcgQEAgY2xhc3MgUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MgOiBwdWJsaWMgUU9iamVjdCB7CiAg
ICAgUV9QUk9QRVJUWShpbnQgZGVmYXVsdEZpeGVkRm9udFNpemUgUkVBRCBkZWZhdWx0Rml4ZWRG
b250U2l6ZSBXUklURSBzZXREZWZhdWx0Rml4ZWRGb250U2l6ZSkKIAogICAgIFFfUFJPUEVSVFko
Ym9vbCBhdXRvTG9hZEltYWdlcyBSRUFEIGF1dG9Mb2FkSW1hZ2VzIFdSSVRFIHNldEF1dG9Mb2Fk
SW1hZ2VzKQorICAgIFFfUFJPUEVSVFkoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxs
b3dBbmltYXRlZEltYWdlcyBXUklURSBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKQogICAgIFFfUFJP
UEVSVFkoYm9vbCBqYXZhc2NyaXB0RW5hYmxlZCBSRUFEIGphdmFzY3JpcHRFbmFibGVkIFdSSVRF
IHNldEphdmFzY3JpcHRFbmFibGVkKQogICAgIFFfUFJPUEVSVFkoYm9vbCBqYXZhRW5hYmxlZCBS
RUFEIGphdmFFbmFibGVkIFdSSVRFIHNldEphdmFFbmFibGVkKQogICAgIFFfUFJPUEVSVFkoYm9v
bCBwbHVnaW5zRW5hYmxlZCBSRUFEIHBsdWdpbnNFbmFibGVkIFdSSVRFIHNldFBsdWdpbnNFbmFi
bGVkKQpAQCAtMzQxLDYgKzM0Miw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYXV0b0xvYWRJbWFn
ZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xv
YWRJbWFnZXMpOyB9CiAgICAgdm9pZCBzZXRBdXRvTG9hZEltYWdlcyhib29sIG9uKSB7IHMtPnNl
dEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzLCBvbik7IH0KKyAgICBib29s
IGFsbG93QW5pbWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFX
ZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcyk7IH0KKyAgICB2b2lkIHNldEFsbG93QW5p
bWF0ZWRJbWFnZXMoYm9vbCBvbikgeyBzLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBbGxv
d0FuaW1hdGVkSW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFi
bGVkKTsgfQogICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBzLT5zZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAgICAgYm9v
bCBqYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRp
bmdzOjpKYXZhRW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZp
ZXcuY3BwCmluZGV4IDFmOWEyZmY4NGRjZTU1OWYwODQyNzNjMjAyNThjYWZiOWZhNWRjZDYuLmFl
ODQ1MmU1NDAyZmRmYzJlNmI3ZjkwZmUwOTRjNWFhNTJhN2QwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vi
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3
L3RzdF9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDc4LDYgKzQ3OCw3IEBAIHZvaWQgdHN0
X1FEZWNsYXJhdGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0IHNldHRp
bmdzTGlzdDsKICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJhdXRvTG9h
ZEltYWdlcyIpCisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiYWxsb3dB
bmltYXRlZEltYWdlcyIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZy
b21Bc2NpaSgiamF2YUVuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9t
QXNjaWkoImphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsIGIvU291cmNlL1dlYktp
dC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDA3OTEzZWM3ODUyNDZi
YTkxM2ViOGZkZGFjZGJkYzA5ZDUwNzQzMTMuLmY5NDRiMzJlOGI5NTk5OGRiNmIzOGQ1NmQwYjI3
MmJlMDM3N2VjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdl
YlByZWZlcmVuY2VzLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlcy5pZGwKQEAgLTEzMSw4ICsxMzEsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVu
Y2VzIDogSVVua25vd24KICAgICBIUkVTVUxUIGFyZVBsdWdJbnNFbmFibGVkKFtvdXQsIHJldHZh
bF0gQk9PTCogZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRQbHVnSW5zRW5hYmxlZChbaW5dIEJP
T0wgZW5hYmxlZCk7CiAKLSAgICBIUkVTVUxUIGFsbG93c0FuaW1hdGVkSW1hZ2VzKFtvdXQsIHJl
dHZhbF0gQk9PTCogZW5hYmxlZCk7Ci0gICAgSFJFU1VMVCBzZXRBbGxvd3NBbmltYXRlZEltYWdl
cyhbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBhbGxvd0FuaW1hdGVkSW1hZ2VzKFtv
dXQsIHJldHZhbF0gQk9PTCogZW5hYmxlZCk7CisgICAgSFJFU1VMVCBzZXRBbGxvd0FuaW1hdGVk
SW1hZ2VzKFtpbl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGFsbG93QW5pbWF0ZWRJbWFn
ZUxvb3BpbmcoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldEFs
bG93QW5pbWF0ZWRJbWFnZUxvb3BpbmcoW2luXSBCT09MIGVuYWJsZWQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ2ODk0NDY1NzA4YzA2
OTQwZTNiM2JjMGE0YzYwMTYyNTc4NTA4YmIuLjVkYjY5ZTY5OTY5OThlMDE3NWFhZTMxMjBiMzBj
NDAxMjZiNDJjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCkBAIC01OSw2ICs1OSw3IEBACiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFn
ZXNQcmVmZXJlbmNlS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIK
ICNkZWZpbmUgV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgIldl
YktpdEFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJL
aXREaXNwbGF5SW1hZ2VzS2V5ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgorI2RlZmluZSBXZWJL
aXRBbGxvd0FuaW1hdGVkSW1hZ2VzS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzS2V5Igog
I2RlZmluZSBXZWJLaXRMb2FkU2l0ZUljb25zS2V5ICJXZWJLaXRMb2FkU2l0ZUljb25zS2V5Igog
I2RlZmluZSBXZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5ICJXZWJL
aXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5IgogI2RlZmluZSBXZWJLaXRU
YWJUb0xpbmtzUHJlZmVyZW5jZUtleSAiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDU5MjdjOTY2NDJhYmUxYTEyM2QzZmM3NjBkOTQ0ZGJhZjg0
YWJiMmMuLmNiY2NkNTg3NjM0NDU0Y2UxYWQzMGVjNzNiNzFiYTI5ZjVlNDc0MzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC00NjkyLDYgKzQ2OTIsMTEgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAg
ICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSghIWVuYWJsZWQpOwogCisgICAgaHIgPSBwcmVmZXJlbmNlcy0+YWxsb3dBbmltYXRlZEltYWdl
cygmZW5hYmxlZCk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAg
ICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyghIWVuYWJsZWQpOworCiAgICAgaHIg
PSBwcmVmZXJlbmNlcy0+dXNlclN0eWxlU2hlZXRFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAo
RkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKaW5k
ZXggZGRlMzc4ZjAyYmZiY2U2OWE5OGUxYWZmYmU1YjU0MDgxZTIxODRmZS4uMDY3ODM5OTRiMTYw
NjA2ODAzMjUwMWNlM2M2ZWZjN2MxNzU4YWUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBA
IC0xMDMsNiArMTAzLDcgQEAgV2ViVmlldzo6V2ViVmlldyhIV05EIGh3bmQsIHVuc2lnbmVkIGZl
YXR1cmVzKQogICAgIHNldHRpbmdzLT5zZXRNaW5pbXVtTG9naWNhbEZvbnRTaXplKDgpOwogICAg
IHNldHRpbmdzLT5zZXRTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0
ZWRJbWFnZXModHJ1ZSk7CiAKICAgICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UqIGxv
YWRlckNsaWVudCA9IG5ldyBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UodGhpcyk7CiAg
ICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLCAwLCBsb2FkZXJD
bGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcAppbmRleCA4OTFhODY3YThlYTIyOTA5NDhi
NTM4YjZlOTk0YzI0ZGNjNTQyNzg1Li5lYTRhZGI5OWQ3NWUzYjczNmY1MzNiYjU1NGQ1NjY5YmYw
NzAxZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmNwcApAQCAtODgsNiArODgsMjAgQEAgYm9v
bCB3eFdlYlNldHRpbmdzOjpMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KICAgICAKK3ZvaWQgd3hXZWJTZXR0aW5nczo6U2V0QWxsb3dBbmltYXRl
ZEltYWdlcyhib29sIGFsbG93QW5pbWF0ZWRJbWFnZXMpCit7CisgICAgaWYgKG1fc2V0dGluZ3Mp
CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYWxsb3dBbmltYXRl
ZEltYWdlcyk7Cit9CisKK2Jvb2wgd3hXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcygp
IGNvbnN0Cit7CisgICAgaWYgKG1fc2V0dGluZ3MpCisgICAgICAgIHJldHVybiBtX3NldHRpbmdz
LT5hbGxvd0FuaW1hdGVkSW1hZ2VzKCk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
d3hXZWJTZXR0aW5nczo6U2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAg
IGlmIChtX3NldHRpbmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5n
cy5oIGIvU291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5oCmluZGV4IGI3MGRkZTVhM2U1Y2Yy
ZTMzMDJmMTRlYmI1MzY4OThhNDUyNWFiMzIuLmUxMjhhYWU3OTQ3OWM2ZWY4NTYzNTBhYmIzNDAw
NjM3OGNkMGE4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKQEAgLTExMSw2ICsxMTEsMTYgQEAg
cHVibGljOgogICAgIGJvb2wgTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkgY29uc3Q7CiAgICAg
CiAgICAgLyoqCisgICAgICAgIFNldHMgd2hldGhlciBvciBub3QgaW1hZ2VzIGFyZSBhbGxvd2Vk
IHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgdm9pZCBTZXRBbGxvd0FuaW1hdGVkSW1hZ2Vz
KGJvb2wpOworCisgICAgLyoqCisgICAgICAgIFJldHVybnMgd2hldGhlciBvciBub3QgaW1hZ2Vz
IGFyZSBhbGxvd2VkIHRvIGJlIGFuaW1hdGVkLgorICAgICovCisgICAgYm9vbCBBbGxvd0FuaW1h
dGVkSW1hZ2VzKCkgY29uc3Q7CisKKyAgICAvKioKICAgICAgICAgU2V0cyB3aGV0aGVyIG9yIG5v
dCB0aGUgV2ViVmlldyBydW5zIEphdmFTY3JpcHQgY29kZS4KICAgICAqLwogICAgIHZvaWQgU2V0
SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcAppbmRleCA5MTE3Yzk2YjBi
NTk2ZmRhMTQ2YjM0MTJjNTBjMTZjZjhlZDg3OGE3Li45M2NlNDc1MThmZjg2OTNmOGVlZGZlODgx
N2YzMmYzOTA3N2FhY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViVmlldy5jcHAKQEAgLTQwNyw2ICs0MDcsNyBAQCBi
b29sIHd4V2ViVmlldzo6Q3JlYXRlKHd4V2luZG93KiBwYXJlbnQsIGNvbnN0IHd4U3RyaW5nJiB1
cmwsIGludCBpZCwgY29uc3Qgd3hQbwogICAgIC8vIGV2ZW50dWFsbHkKICAgICBXZWJDb3JlOjpT
ZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ltcGwtPnBhZ2UtPnNldHRpbmdzKCk7CiAgICAgc2V0dGlu
Z3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0
QWxsb3dBbmltYXRlZEltYWdlcyh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZpeGVk
Rm9udFNpemUoMTMpOwogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rm9udFNpemUoMTYpOwogICAg
IHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIE5ldyBSb21hbiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggZWJhNDQ3ZmJiNWRi
MWJkOGY3YTk4MjdmMTk2ODY4Y2JlMWM5ZGNhZC4uNjk5MDE1NmQ0NjkzOGZhYTUwOTUwMTNiYTM1
ODFkZmZlNWIwNzMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCkBAIC01MSw2ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2RlZmluZSBGT1Jf
RUFDSF9XRUJLSVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlw
dEVuYWJsZWQsIGphdmFTY3JpcHRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFj
cm8oTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIEJv
b2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhBbGxvd0FuaW1hdGVkSW1hZ2VzLCBhbGxvd0Fu
aW1hdGVkSW1hZ2VzLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9hZHNTaXRlSWNv
bnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UsIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFBs
dWdpbnNFbmFibGVkLCBwbHVnaW5zRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1h
Y3JvKEphdmFFbmFibGVkLCBqYXZhRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDUy
MWU2ZDRhMDVjY2RmMWNhNmYxY2Y0ZmU2NmRmNDk5OWViYmU5NWEuLjVjNjFiNDlhMzM1YzJjZTJj
N2I5ODMyMmFmNTNiZGI1ZjRhZmVjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTc4LDYgKzc4LDE2IEBAIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5sb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0QWxsb3dBbmltYXRl
ZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGFsbG93QW5pbWF0
ZWRJbWFnZXMpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0QWxsb3dBbmltYXRl
ZEltYWdlcyhhbGxvd0FuaW1hdGVkSW1hZ2VzKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0
QWxsb3dBbmltYXRlZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5hbGxvd0FuaW1hdGVkSW1hZ2VzKCk7
Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxv
YWRpbmdQcmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgbG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpCiB7CiAgICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1By
ZWZlcmVuY2UobG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKaW5kZXgg
ZjEzNTU5YWNiODJlMTNhYWIyMDQ2ZDEwMjFhN2RkODc5NzkwNDkyNS4uYTQ5OTVjYTRmMGI1OGM5
ZTBmMzEyMGQ1NmZkOTgzNGI0YTdhZDJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCkBAIC00OSw2ICs0OSwxMCBAQCBXS19FWFBPUlQgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0SmF2YVNjcmlwdEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyk7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgbG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CiAKKy8vIERlZmF1
bHRzIHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0QWxsb3dBbmltYXRl
ZEltYWdlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEFsbG93QW5pbWF0ZWRJbWFn
ZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisKIC8vIERlZmF1bHRzIHRvIGZhbHNl
LgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wg
bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpOwogV0tfRVhQT1JU
IGJvb2wgV0tQcmVmZXJlbmNlc0dldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQ
cmVmZXJlbmNlKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDc3NGYx
NzE5MGM5ODk5NGE0Y2E5ZThhMjA5MTIyZDNmMzJlNDVjNTMuLmY2OTcxMGIxOTU3YTU5NTRmMDIz
Y2UzZTU4MDgzNWMzOTY0MjZiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTczLDYgKzczLDcgQEAgZW51bSB7CiAK
ICAgICBQUk9QX0VOQUJMRV9KQVZBU0NSSVBULAogICAgIFBST1BfQVVUT19MT0FEX0lNQUdFUywK
KyAgICBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUywKICAgICBQUk9QX0xPQURfSUNPTlNfSUdO
T1JJTkdfSU1BR0VfTE9BRF9TRVRUSU5HLAogICAgIFBST1BfRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OX0NBQ0hFLAogICAgIFBST1BfRU5BQkxFX0hUTUw1X0xPQ0FMX1NUT1JBR0UsCkBA
IC0xMTYsNiArMTE3LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAgICBjYXNlIFBST1Bf
QVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9hdXRvX2xvYWRf
aW1hZ2VzKHNldHRpbmdzLCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIHdlYmtp
dF9zZXR0aW5nc19zZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzKHNldHRpbmdzLCBnX3ZhbHVlX2dl
dF9ib29sZWFuKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9MT0FEX0lD
T05TX0lHTk9SSU5HX0lNQUdFX0xPQURfU0VUVElORzoKICAgICAgICAgd2Via2l0X3NldHRpbmdz
X3NldF9sb2FkX2ljb25zX2lnbm9yaW5nX2ltYWdlX2xvYWRfc2V0dGluZyhzZXR0aW5ncywgZ192
YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKQEAgLTIyMyw2ICsyMjcs
OSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbAogICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1B
R0VTOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2F1dG9fbG9hZF9pbWFnZXMoc2V0dGluZ3MpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQUk9QX0FMTE9XX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMoc2V0dGlu
Z3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0xPQURfSUNPTlNfSUdOT1JJTkdf
SU1BR0VfTE9BRF9TRVRUSU5HOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3
ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1hZ2VfbG9hZF9zZXR0aW5n
KHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzYzLDYgKzM3MCwxOSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFz
cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKIAogICAgIC8qKgorICAgICAqIFdl
YktpdFNldHRpbmdzOmFsbG93LWFuaW1hdGVkLWltYWdlczoKKyAgICAgKgorICAgICAqIENvbnRy
b2xzIHdoZXRoZXIgYW5pbWF0ZWQgaW1hZ2VzIHNob3VsZCBiZSBhbmltYXRlZCBvciBub3QuCisg
ICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0FMTE9XX0FOSU1BVEVE
X0lNQUdFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuKCJhbGxvdy1hbmltYXRlZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgYW5pbWF0ZWQgaW1h
Z2VzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJBbGxvdyBpbWFnZXMgdG8gYmUgYW5pbWF0ZWQuIiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFdy
aXRlQ29uc3RydWN0UGFyYW1GbGFncykpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0U2V0dGlu
Z3M6bG9hZC1pY29ucy1pZ25vcmluZy1pbWFnZS1sb2FkLXNldHRpbmc6CiAgICAgICoKICAgICAg
KiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzaXRlIGNhbiBsb2FkIGZhdmljb25zIGlycmVzcGVjdGl2
ZQpAQCAtOTQwLDYgKzk2MCw0MSBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYXV0b19sb2Fk
X2ltYWdlcyhXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuIGVuYQogfQogCiAvKioK
KyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzOgorICogQHNldHRp
bmdzOiBhICNXZWJLaXRTZXR0aW5ncworICoKKyAqIEdldCB0aGUgI1dlYktpdFNldHRpbmdzOmFs
bG93LWFuaW1hdGVkLWltYWdlcyBwcm9wZXJ0eS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBJZiBh
bmltYXRpb24gb2YgaW1hZ2VzIGlzIGFsbG93ZWQgb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqLwor
Z2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMoV2ViS2l0
U2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19TRVRUSU5HUyhzZXR0aW5ncyksIEZBTFNFKTsKKworICAgIHJldHVybiBXS1ByZWZlcmVuY2Vz
R2V0QWxsb3dBbmltYXRlZEltYWdlcyhzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMuZ2V0KCkp
OworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2Vz
OgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5ncworICogQGFsbG93OiBWYWx1ZSB0byBi
ZSBzZXQKKyAqCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczphbGxvdy1hbmltYXRlZC1pbWFn
ZXMgcHJvcGVydHkuCisgKi8KK3ZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19hbmltYXRl
ZF9pbWFnZXMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBhbGxvdykKK3sKKyAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncykpOworCisgICAg
V2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7CisgICAgYm9vbCBj
dXJyZW50VmFsdWUgPSBXS1ByZWZlcmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhwcml2LT5w
cmVmZXJlbmNlcy5nZXQoKSk7CisgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBhbGxvdykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93QW5pbWF0ZWRJbWFnZXMocHJp
di0+cHJlZmVyZW5jZXMuZ2V0KCksIGFsbG93KTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpF
Q1Qoc2V0dGluZ3MpLCAiYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzIik7Cit9CisKKy8qKgogICogd2Vi
a2l0X3NldHRpbmdzX2dldF9sb2FkX2ljb25zX2lnbm9yaW5nX2ltYWdlX2xvYWRfc2V0dGluZzoK
ICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCAyN2NiN2M3NWExOTFk
YmQzZTRhMjQ4ZjMyZTgyYzkwZGQ1YjU1YzMwLi5mMGEwOWI3Nzk1NmIyNjEzNmM0NTFjMDJiYTUx
YjZkMDk0MWVjNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmgKQEAgLTkyLDYgKzkyLDEzIEBAIHdlYmtpdF9zZXR0aW5nc19zZXRf
YXV0b19sb2FkX2ltYWdlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCiBXRUJLSVRfQVBJIGdib29s
ZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlcyAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAg
ICBhbGxvdyk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF9zZXR0aW5nc19nZXRfbG9h
ZF9pY29uc19pZ25vcmluZ19pbWFnZV9sb2FkX3NldHRpbmcgICAgIChXZWJLaXRTZXR0aW5ncyAq
c2V0dGluZ3MpOwogCiBXRUJLSVRfQVBJIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0Cmlu
ZGV4IDA0MjY0NWQ5ODdkZTA1MWMxYWE5YTdmMDJkZWE1MTJhNmI3ODFmNWEuLmQ1OTkzNGJkZDY0
MzYwNTc3YjNlYTI4N2Q2YmE1MjcwNGQ0NzBhMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dApAQCAtMTU2LDYgKzE1Niw4IEBAIHdlYmtpdF9zZXR0aW5nc19uZXcKIHdlYmtpdF9zZXR0aW5n
c19uZXdfd2l0aF9zZXR0aW5ncwogd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2Vz
CiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMKK3dlYmtpdF9zZXR0aW5nc19n
ZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93X2FuaW1h
dGVkX2ltYWdlcwogd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZwog
d2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZwogd2Via2l0X3NldHRp
bmdzX2dldF9lbmFibGVfaHRtbDVfZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3MWMxMWFmZTU3NjRmOWQw
ZTYxZTU2NWYyZWQzZTNjOGY5OGRlZTI1Li4xOTNiMmI2NzJiMDNiODVmMjE1ZjlhMmUyMWRmOWEy
NDQ4NGQ5N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXMuY3BwCkBAIC00MCw2ICs0MCw4IEBAIGJvb2wgUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1
dGUKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1hZ2VzOgogICAgICAg
ICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShwcmVmZXJl
bmNlc1JlZigpKTsKKyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJbWFnZXM6CisgICAgICAgIHJldHVy
biBXS1ByZWZlcmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyhwcmVmZXJlbmNlc1JlZigpKTsK
ICAgICBjYXNlIEphdmFzY3JpcHRFbmFibGVkOgogICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNl
c0dldEphdmFTY3JpcHRFbmFibGVkKHByZWZlcmVuY2VzUmVmKCkpOwogICAgIGNhc2UgUGx1Z2lu
c0VuYWJsZWQ6CkBAIC02Niw2ICs2OCw5IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6
c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBhCiAgICAg
Y2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFsbG93QW5pbWF0ZWRJbWFnZXM6CisgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRB
bGxvd0FuaW1hdGVkSW1hZ2VzKHByZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSmF2YXNjcmlwdEVuYWJsZWQ6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNT
ZXRKYXZhU2NyaXB0RW5hYmxlZChwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA2MTlkMWEyNGFlMDczNDhmNGMzNTVhZDM2MWY2NzZkY2M0NDExMGFkLi43ZTBmNzU5OWI4
MDIxZGEzODgzNzdlNDJiZGI1NTAyNWVhNzMzMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xODQwLDYgKzE4NDAsNyBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogCiAgICAgc2V0dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0
dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseUtleSgpKSk7Cisg
ICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd0FuaW1hdGVkSW1hZ2VzS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy0+c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpsb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZUtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldFBs
dWdpbnNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
cGx1Z2luc0VuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVkS2V5KCkp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
N2JlNjhiNWY4NTFiMmVhYmU1M2M1NmU0NjgxOWUwY2UxNDQxMzkxLi5jODFmMDgzMzliMjU2OGY0
NDhlMmE5ODJjODU3ZDMzYjcxNDI1YmVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDItMTYgIFBhYmxvIEZs
b3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAgIEFkZCBBbGxvd0FuaW1hdGVk
SW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRy
ZWUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
OjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlBhZ2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWVzKToKKwogMjAxMi0wMi0xNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBuZXcgUXQgcGVyZm9ybWFuY2UgdGVzdGVyIGJvdCB0byBidWls
ZC53ZWJraXQub3JnCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVt
cFJlbmRlclRyZWUuY3BwCmluZGV4IGZiNTJjZmRlOTM0YmE4NTBkODVjMjg4OTMwYWQ2NWRmMDhl
OTZiYmYuLjA3MWY4NWI2Njk0ZmRmMzk4OTVhN2YxZTE2YjJkZGMzMDgzOGEzYzkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC0yMzksNiArMjM5LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIHNldHRpbmdzLT5zZXRUZXh0UmVmbG93TW9kZShXZWJT
ZXR0aW5nczo6VGV4dFJlZmxvd0Rpc2FibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlw
dEVuYWJsZWQodHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyh0cnVlKTsKICAg
ICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdE9wZW5XaW5kb3dzQXV0b21hdGljYWxseSh0cnVlKTsK
ICAgICBzZXR0aW5ncy0+c2V0Wm9vbVRvRml0T25Mb2FkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+
c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA1NDI4ZWZjOTFmY2ZiZjQ0
MWQ1MmNhNWM1ZDMzY2QwYmY1ZDg3ZmE5Li43NzEzODM4OTQ0MzFjMGMwZWIxZDQwZDI3MDg4ZTAx
MzNhNTE3NDgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDkzLDYgKzE0OTMsOCBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsCiAgICAgICAgIHByZWZzLT5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09
ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IikKICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0
b21hdGljYWxseSA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9
PSAiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkiKQorICAgICAgICBwcmVm
cy0+YWxsb3dBbmltYXRlZEltYWdlcyA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVs
c2UgaWYgKGtleSA9PSAiV2ViS2l0UGx1Z2luc0VuYWJsZWQiKQogICAgICAgICBwcmVmcy0+cGx1
Z2luc0VuYWJsZWQgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkg
PT0gIldlYktpdERPTVBhc3RlQWxsb3dlZFByZWZlcmVuY2VLZXkiKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDM2NTFmODg4MzEx
ZjU1NTE2MDhhNmYwYjM0ZjUwYTg4ODg4N2VjM2EuLjE0ZDY2NzA1NWNkZjkzNjk5Zjk3ZWY5ZjQy
OGZkYzlhZTg0Y2UxZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6
cmVzZXQoKQogICAgIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSB0cnVl
OwogICAgIGphdmFTY3JpcHRFbmFibGVkID0gdHJ1ZTsKICAgICBsb2Fkc0ltYWdlc0F1dG9tYXRp
Y2FsbHkgPSB0cnVlOworICAgIGFsbG93QW5pbWF0ZWRJbWFnZXMgPSB0cnVlOwogICAgIGxvY2Fs
U3RvcmFnZUVuYWJsZWQgPSB0cnVlOwogICAgIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZCA9IHRydWU7CiAgICAgcGx1Z2luc0VuYWJsZWQgPSB0cnVlOwpAQCAtMTk4LDYgKzE5OSw3
IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICBz
ZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShqYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNj
cmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkobG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKKyAgICBzZXR0aW5n
cy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhhbGxvd0FuaW1hdGVkSW1hZ2VzKTsKICAgICBzZXR0
aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChsb2NhbFN0b3JhZ2VFbmFibGVkKTsKICAgICBz
ZXR0aW5ncy0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKG9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbnNFbmFibGVk
KHBsdWdpbnNFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IDEzOTA4ZWM3OTY0ZjkwNzliZTc1ZjdjMjBkNjIzZWI5ZTA5NDhm
NTUuLmJjNDRlYzJjZGQ0Y2QyMDliYWY0YzNiNzI2NGJkMTFmZjE4ZDQzYWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtODcsNiArODcs
NyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseTsKICAgICBib29sIGphdmFTY3JpcHRFbmFibGVkOwogICAgIGJv
b2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OworICAgIGJvb2wgYWxsb3dBbmltYXRlZEltYWdl
czsKICAgICBib29sIGxvY2FsU3RvcmFnZUVuYWJsZWQ7CiAgICAgYm9vbCBvZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQ7CiAgICAgYm9vbCBwbHVnaW5zRW5hYmxlZDsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA0Nzg3YWE1M2JmOGNjMmMw
NTcxMmVlYzk4NjJiZmJjOTBiMjY2N2UyLi5mMDBiZTk3YWIyNmQ1MWFmMDgzYmJkOWNiMzU3NTIz
M2EzNzI5MDU3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC02MjksNiArNjI5LDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbHVlcygpCiAgICAgW3ByZWZlcmVuY2VzIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
Ok5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OllFU107
CisgICAgW3ByZWZlcmVuY2VzIHNldEFsbG93c0FuaW1hdGVkSW1hZ2VzOllFU107CiAgICAgW3By
ZWZlcmVuY2VzIHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNl
Ok5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZDpOT107CiAg
ICAgW3ByZWZlcmVuY2VzIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDpOT107CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IGQ1NDYzODY3YTJj
YzZkMjY3MWY5NDI1OGEzOWVkYmI2Zjk2ZTE4NWUuLjEwYjhiZGVjNzZhZmYwMjQxOGU0OGQ5Y2I4
YjgxOGM3NzQ3ZDNkZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCkBAIC0xODksNiArMTg5LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdz
KCkKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNF
bmFibGVkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6Okph
dmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpOwogICAgIHNldHRpbmdzKCktPnJlc2V0QXR0cmli
dXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMpOworICAgIHNldHRpbmdzKCktPnJlc2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcyk7CiAgICAgc2V0dGlu
Z3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHkpOwogCiAgICAg
bV9kcnQtPmxheW91dFRlc3RDb250cm9sbGVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZh
bHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4
IDJiNTY4OTUyNTEzYTkxODQ1MDUzMjM2MWFjYWVlMDRjMGU1ZmEzZjUuLjZiYTEzZDljYmVkOGNm
ODA1MTM0YWVmMmQzOWY5ZThhYWMzMDQ2MTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODU1LDYgKzg1NSw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0
RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykK
ICAgICBwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlua3MoRkFMU0UpOwogICAgIHByZWZlcmVuY2Vz
LT5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5zZXRM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoVFJVRSk7CisgICAgcHJlZmVyZW5jZXMtPnNldEFsbG93
QW5pbWF0ZWRJbWFnZXMoVFJVRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhhdmlv
cihXZWJLaXRFZGl0aW5nV2luQmVoYXZpb3IpOwogCiAgICAgaWYgKHBlcnNpc3RlbnRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjE3ODdlODc2OTI2MDAyMjE2OTQyZWJmNGM1M2I5
YmQzNWQwNzZmNy4uZjk1MDVhODAyZTEzNTRlMjhmMzZiYzYwMjUyOTMxYWI5NTFjYzI4OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNl
L3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRl
ZC5naWY6IEFkZGVkLgorCiAyMDEyLTAyLTE2ICBSYXVsIEh1ZGVhICA8cmh1ZGVhQGFkb2JlLmNv
bT4KIAogICAgICAgICBbQ1NTUmVnaW9uc11vdmVyZmxvd1JlZ2lvbiB0ZXN0cyBhcmUgZmxha3kK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWlt
YWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmlt
YXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyODYwODk4OGQ1MDlhOGRiMjJm
MmJiYzUzZTk1MDJmZDEwMDI5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3QgdGhhdCBpbWFnZSBhbmltYXRpb24gY2FuIGJlIGRpc2FibGVkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZ2JhU3RyaW5nKGdpZkZyYW1lKSBpcyAn
MTM3MTAwZmYnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1h
dGVkLWltYWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0
ZWQtaW1hZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNzEzYzc4NWViODFmYzQ2ZTE1ZDQzN2UxOGRm
N2NjOTMzOWYzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rp
c2FsbG93LWFuaW1hdGVkLWltYWdlcy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBzdHlsZT0i
dmlzaWJpbGl0eTogaGlkZGVuIj5GQUlMPC9jYW52YXM+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4iKTsKKworICAg
IGZ1bmN0aW9uIHJnYmFTdHJpbmcgKGEpIHsKKyAgICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlw
ZS5tYXAuY2FsbChhLCAoZnVuY3Rpb24gKG4pIHsgcmV0dXJuICgiMDAiK24udG9TdHJpbmcoMTYp
KS5zbGljZSgtMik7IH0pKS5qb2luKCIiKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIs
IDApOworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIGltYWdl
ID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVlbi1yZWQtYW5p
bWF0ZWQuZ2lmPyIgKyBNYXRoLnJhbmRvbSgpOworICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgdmFyIGNvbnRleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJjYW52
YXMiKS5nZXRDb250ZXh0KCIyZCIpOworCisgICAgICAgIC8vIFRoZSBnaWYgaXMgb25lIGZyYW1l
IG9mIGdyZWVuIGFuZCBzZXZlcmFsIGZyYW1lcyBvZiByZWQuCisgICAgICAgIGNvbnRleHQuZHJh
d0ltYWdlKGltYWdlLCAwLCAwKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKKyAgICAgICAgICAg
IGdpZkZyYW1lID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSkuZGF0YTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJyZ2JhU3RyaW5nKGdpZkZyYW1lKSIsICInMTM3MTAwZmYnIik7IC8v
IEdyZWVuLgorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMTUwKTsg
Ly8gR3JlZW4gZnJhbWUgb2YgR0lGIGhhcyAxMDBtcyBkdXJhdGlvbgorICAgIH0KKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJl
ZC1hbmltYXRlZC5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4t
cmVkLWFuaW1hdGVkLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmM0NThhZmM4MzgyODUyYzJkODE2OTA5MDQ0
YWMzZmI1N2RhNmY2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4NjcKemNtWj93YmhFSGJHLTVE
Zl9gdHYqVCp2P2ZpYSVLeHhJcHdqT1huYjAjfU5NQER+MHFGLUs+SnRiY0hmUUpwJT1lCnooJkVn
I2JPbGNAY0xsRWlTOWdVbjNqPDlaZ35IT3JvWG5DKzF6UUQ2MTE8KXx8Sjs3QUE7SGQkMGpAQFIy
RiMyPQp6Xks/TGxnS1QxOEdIJlQjZEhPQj87eUdKeGIjSzE2PVFuQGJCYWRtJUkrd2pWd2UyMUVA
bFFWMnp4Nik8Yj8qQj0Kb2VqY3YmQmExJEVfLUx1S1FwYTZ6TT5QQlpJY0wtPDtNZmBzNj5NcGtJ
LXowPjBRQDtXSnBjZHoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130705</attachid>
            <date>2012-03-07 15:07:14 -0800</date>
            <delta_ts>2012-04-19 14:48:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-9767-20120307150711.patch</filename>
            <type>text/plain</type>
            <size>60904</size>
            <attacher name="Pablo Flouret">pf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMxNWQzOTMwYjkxMjZh
MjFiMzI0YzVmZTk4MmQ1MjI3Y2RiN2I4ZC4uZGM0OTMxYTNlOGFjOTMyNjc0NTJlMjY0ZGQ3Nzc2
ZjU2Y2ZkZTRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTE2ICBQYWJs
byBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmlt
YXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQt
aW1hZ2VzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjphbGxvd0FuaW1hdGVkSW1hZ2VzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6d2lsbFJlbmRlckltYWdlKToKKwogMjAxMi0wMi0xNiAgUmF1bCBIdWRlYSAgPHJodWRl
YUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTU1JlZ2lvbnNdb3ZlcmZsb3dSZWdpb24gdGVzdHMg
YXJlIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjYTJiOGVmZGQ2MTY5NThh
ZDU1MmM3YjYwOGIxNjVjMWE2MTk3YTkuLjFlYmI3MzhjN2MzYmUxNjMzZGZmZWNiNGY4MmRiOWJj
NGYxN2VlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDItMTYgIFBhYmxvIEZsb3VyZXQgIDxwYWJsb2ZAbW90b3JvbGEuY29tPgorCisgICAgICAg
IEFkZCBBbGxvd0FuaW1hdGVkSW1hZ2VzIHByZWZlcmVuY2Uvc2V0dGluZy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5o
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nc0ltcGw6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5n
c0ltcGwpOgorCiAyMDEyLTAyLTE2ICBWaWV0LVRydW5nIEx1dSAgPHZpZXR0cnVuZ2x1dUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBBZGQgbWV0aG9kIHRvIFdlYlBsdWdpbkNv
bnRhaW5lciB0byBjaGVjayBpZiBhIHJlY3RhbmdsZSBpcyB0b3Btb3N0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggZTU3OGQzYjAzZjczOTAwNzRkMGE0Y2M0YTIyOWI1ZjVmOGI5MmZkNi4uNDY2YTRmMDBh
MWQ0NWI4MjcyMzVmYmFkMTc0OTdmN2E0NDE2YWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNv
bT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdr
X3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChf
ZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmlt
YXRlZF9pbWFnZXNfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYWxsb3dfYW5pbWF0
ZWRfaW1hZ2VzX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDEtMzEg
IFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAg
W3NvdXBdIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBTb3VwU2Vzc2lvbnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggNGYwMTc5YzkwZTFjOWU0MzM3M2YzYWMzMGI5YzhlMDRkZDVlNzg0Zi4uMjA2Mzk0
YWJkZWE3ZWI5ZDc2ZjhjYjVkMzgxMjliNjdiNzc0NTEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRp
bmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6
CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNzaW9uIGZlYXR1cmUgaW5p
dGlhbGl6YXRpb24gdG8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhmNWQ4MjdiMWU3ZGNi
ZTZjOWJjOWU0NmM0NTAxYmQ4NGQ0MDM5MmEuLjgwZTJlNzM1NWEyN2I5NmI4OTI3ZmE2M2Y3NGU4
ZWY1YjRlOGVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0x
NiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFs
bG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTItMDItMTUgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBDbGlwYm9h
cmRNYWMgY2xhc3MgdG8gdXNlIFBsYXRmb3JtU3RyYXRlZ2llcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
NDY3MjEzMGQ2Y2M5MTRhZmE3ZDhmNDFjMjUzZDIxNWNhOWU3OWFhNi4uYWZlNjhiZDJlNzAwNmQ4
ZTNmNDViYTU2M2U3N2I1OTc2OWZmMGNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMi0wMi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAg
ICAgICAgQWRkIEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5n
cy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSk6CisgICAgICAgIChR
V2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncyk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5o
OgorICAgICAgICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAg
ICAqIGRlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oOgorICAgICAgICAoUURlY2xh
cmF0aXZlV2ViU2V0dGluZ3MpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OmFs
bG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoUURlY2xhcmF0aXZlV2ViU2V0dGluZ3M6OnNl
dEFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAqIHRlc3RzL3FkZWNsYXJhdGl2ZXdlYnZp
ZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwOgorICAgICAgICAodHN0X1FEZWNsYXJhdGl2
ZVdlYlZpZXc6OnNldHRpbmdzKToKKwogMjAxMi0wMi0xNiAgU2ltb24gSGF1c21hbm4gIDxzaW1v
bi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBicm93bi1wYXBlciBi
YWcgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDE2OWU5OGI3Mjc1ZTMxYzgxYjQ4MzAx
NTI1ZTk2NGE0MWRjZGEyODEuLjJkZGRjZjdjNTM2NGI2MjMwZjI0Njc0ZTZiZmJhOGQ4ZmZlMGVm
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wMi0xNiAgUGFibG8g
RmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgQWRkIEFsbG93QW5pbWF0
ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsOgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVu
Y2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphbGxvd0FuaW1hdGVkSW1hZ2VzKToK
KyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAg
ICAgKiBXZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXMpOgorICAgICAg
ICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKToKKwogMjAxMi0wMi0xNSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTm90aWZ5IENocm9tZUNsaWVudCB3aGVuIHRvdWNoLWV2ZW50
IGhhbmRsZXJzIGFyZSBpbnN0YWxsZWQvcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
MWM4YjAxNTJhODA1ZTNmMmEwYThhOTc4MjM5ZmYyZTM1MTk3ZTIzYy4uZjVkOTdkMGQyMjhlNzIw
ZGM5NjBhYjhmODY2NzI1YmE4MGJjNTNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wMi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+
CisKKyAgICAgICAgQWRkIEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBH
YW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNF
IGJ1aWxkIGZpeCBhZnRlciByMTA3NjA2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAwNWJlODRiNzE4ZGY3
ZTQ3MWU4MWJhYTczNWYwNWU0MzEwM2MwNTM3Li5mMDA4NjBkZjI1YjI3YjkxYzNjNGFiYzdkMjU3
NDU3YzEzNTllYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTE2
ICBQYWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxs
b3dBbmltYXRlZEltYWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJTZXR0aW5ncy5jcHA6CisgICAgICAgICh3
eFdlYlNldHRpbmdzOjpTZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKHd4V2ViU2V0
dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAqIFdlYlNldHRpbmdzLmg6Cisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgICh3eFdlYlZpZXc6OkNyZWF0ZSk6CisKIDIw
MTItMDItMTUgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIE5vdGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVycyBh
cmUgaW5zdGFsbGVkL3JlbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODc3ZTczNTI0MWU1NzNlOWNiM2E1
MTMzNTFmMGY1MGUxOTgwNTRhMS4uMDcyZTcxYjU0MmUzMjg3NWJmYjBhNDRlMjMzOGYxMjU4Yzkw
MzZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91
cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZElt
YWdlcyBwcmVmZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0QWxsb3dBbmltYXRlZEltYWdlcyk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0QWxsb3dBbmltYXRlZEltYWdlcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KToKKyAg
ICAgICAgKHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0X3NldHRp
bmdzX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19hbmlt
YXRlZF9pbWFnZXMpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19hbmltYXRl
ZF9pbWFnZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChRV2ViUHJlZmVyZW5jZXM6OmFsbG93QW5pbWF0ZWRJbWFnZXMpOgorICAgICAgICAoUVdl
YlByZWZlcmVuY2VzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKToKKyAgICAgICAgKFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6c2V0QXR0cmlidXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlc19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXNfcF9wLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTItMDItMTYg
IE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBb
VGV4bWFwXSBJbXByb3ZlIHRoZSB3YXkgd2UgZGVhbCB3aXRoIEJHUkEgZXh0ZW5zaW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDY1YjhjNTYyNzFjZDFhYzY4NTA5ZmFhYTgwMzkxYjZlMmU1MDI0
ODguLmM2NjBiY2RmZDRkMWExNTljYzQwOGUyYWIyMzFjMTk1ZDdhYjNhY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC05NzksNiArOTc5LDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjFtb2Nr
U2Nyb2xsYmFyc0VuYWJsZWRFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTaG93UmVwYWlu
dENvdW50ZXJFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZvbnRGYW1pbHlF
UktOM1dURjEyQXRvbWljU3RyaW5nRTExVVNjcmlwdENvZGUKIF9fWk43V2ViQ29yZThTZXR0aW5n
czIxc2V0V2ViU2VjdXJpdHlFbmFibGVkRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0QWxs
b3dBbmltYXRlZEltYWdlc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3RvcmFn
ZUVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5ET01UaW1lckludGVydmFs
RWQKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZhbWlseUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRl
eCBiNWNiOTYzYmJmNDEzOTU3NGU1NGY0Y2ZmYzZlZmVjZGU2MmZkNTVjLi4zMDdkZTc1NWM5ZGY3
NDFhNTgxYzBmMjI3YjkzMzRkNzZmMmI0NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApA
QCAtMTI4LDYgKzEyOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxl
ZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQorICAgICwg
bV9hbGxvd0FuaW1hdGVkSW1hZ2VzKHRydWUpCiAgICAgLCBtX2xvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKGZhbHNlKQogICAgICwgbV9jYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSkKQEAgLTM4MSw2
ICszODIsMTEgQEAgdm9pZCBTZXR0aW5nczo6bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJG
aXJlZChUaW1lcjxTZXR0aW5ncz4qKQogICAgIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseUlu
QWxsRnJhbWVzKG1fcGFnZSk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldEFsbG93QW5pbWF0ZWRJ
bWFnZXMoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQoreworICAgIG1fYWxsb3dBbmltYXRlZElt
YWdlcyA9IGFsbG93QW5pbWF0ZWRJbWFnZXM7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRz
U2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wgbG9hZHNTaXRlSWNvbnMp
CiB7CiAgICAgbV9sb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyA9IGxv
YWRzU2l0ZUljb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDNhMTQwNjYwMTZlYWYzZGJl
YWVmOTI2MWE3NDdlMzljZjcwOTc3NjguLjBkZTIyNjc2MWQyZTgzZWUxMjkwZDQ5ZmIxZTAyODgz
NDNiMmVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KGJvb2wpOwogICAgICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRB
bGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wpOworICAgICAgICBib29sIGFsbG93QW5pbWF0ZWRJbWFn
ZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93QW5pbWF0ZWRJbWFnZXM7IH0KKwogICAgICAgICAv
LyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFnZSBsb2FkaW5nIGlmIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFuZCB0aGlzIHNldHRpbmcg
aXMgdHJ1ZS4KICAgICAgICAgLy8gQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBoZWVkIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgogICAgICAgICB2b2lkIHNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGJvb2wpOwpAQCAtNTY3LDYgKzU3MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKKyAgICAgICAgYm9vbCBtX2Fs
bG93QW5pbWF0ZWRJbWFnZXMgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNTaXRlSWNvbnNJZ25v
cmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgOiAxOwogICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9jYXJldEJyb3dzaW5nRW5hYmxlZCA6IDE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
aW5kZXggYTg5NTc2MDFmNjIxZjA1M2E2MDdmNzY0NjdmZGQ4ZjE5ODM2ZmI3My4uNWFlZjBiMjNh
ZDQ0NDczMmI4MGQ4ZGU3M2M1N2VjZDBjOGQ2NDg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNDUxLDcgKzQ1MSw3IEBAIGJv
b2wgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbihib29sIHNraXBwaW5nRnJh
bWVzKQogICAgIAogICAgIC8vIFNlZSBpZiBhbnlvbmUgaXMgc3RpbGwgcGF5aW5nIGF0dGVudGlv
biB0byB0aGlzIGFuaW1hdGlvbi4gIElmIG5vdCwgd2UgZG9uJ3QKICAgICAvLyBhZHZhbmNlIGFu
ZCB3aWxsIHJlbWFpbiBzdXNwZW5kZWQgYXQgdGhlIGN1cnJlbnQgZnJhbWUgdW50aWwgdGhlIGFu
aW1hdGlvbiBpcyByZXN1bWVkLgotICAgIGlmICghc2tpcHBpbmdGcmFtZXMgJiYgaW1hZ2VPYnNl
cnZlcigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKKyAgICBpZiAoaW1hZ2VPYnNlcnZl
cigpLT5zaG91bGRQYXVzZUFuaW1hdGlvbih0aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgKyttX2N1cnJlbnRGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKaW5kZXggNmNhNzE5MjM5MTI0MmEyN2ZiNmMwNDkyNzgzNTQ5MTRiNzRjNGM2My4u
MDQzM2QxZTBjMmQ2ZjQ0ZjI4MGM5YWJkM2QyYTdjNWM2MjVlOTRlNSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJUYWJsZVJvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U3RhdGUuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4K
QEAgLTI1ODUsOSArMjU4NiwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6d2lsbFJlbmRlckltYWdl
KENhY2hlZEltYWdlKikKICAgICBpZiAoc3R5bGUoKS0+dmlzaWJpbGl0eSgpICE9IFZJU0lCTEUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3Vt
ZW50KCktPnNldHRpbmdzKCk7CisKICAgICAvLyBJZiB3ZSdyZSBub3QgaW4gYSB3aW5kb3cgKGku
ZS4sIHdlJ3JlIGRvcm1hbnQgZnJvbSBiZWluZyBwdXQgaW4gdGhlIGIvZiBjYWNoZSBvciBpbiBh
IGJhY2tncm91bmQgdGFiKQogICAgIC8vIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byByZW5kZXIgZWl0
aGVyLgotICAgIHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSAmJiAhZG9jdW1lbnQo
KS0+dmlldygpLT5pc09mZnNjcmVlbigpOworICAgIHJldHVybiAhZG9jdW1lbnQoKS0+aW5QYWdl
Q2FjaGUoKSAmJiAhZG9jdW1lbnQoKS0+dmlldygpLT5pc09mZnNjcmVlbigpICYmICghc2V0dGlu
Z3MgfHwgc2V0dGluZ3MtPmFsbG93QW5pbWF0ZWRJbWFnZXMoKSk7CiB9CiAKIExheW91dFVuaXQg
UmVuZGVyT2JqZWN0OjptYXhpbWFsT3V0bGluZVNpemUoUGFpbnRQaGFzZSBwKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggYWEyNzgyNWI0
ZjA2NjY1MTQyYmVmNjVhMWRlNjZkYjU1Y2U2YWJlMy4uMTY3OGZhNWE4YzFhYTEwOWQ5NzE4OWUy
ZTA4Zjc5OWZmYmFjMjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
V2ViU2VjdXJpdHlFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbWFnZXNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0Vu
YWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRET01QYXN0ZUFsbG93ZWQoYm9v
bCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKaW5kZXggZDk0NThjNGIzOWYzYzgxMGNiMWU2ZDc5OGZlMzYzNmNkYmJjMzMxOC4uNjMxMGQ4
YjIwNTg1MzY0ZDhmY2I3NDY0MDRiN2YwZGZkZjE3Yzg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0xMzQsNiArMTM0LDExIEBAIHZv
aWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkpCiAgICAgbV9zZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRv
bWF0aWNhbGx5KGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiB9CiAKK3ZvaWQgV2ViU2V0dGlu
Z3NJbXBsOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wgYWxsb3dBbmltYXRlZEltYWdlcykK
K3sKKyAgICBtX3NldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJ
bWFnZXMpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0SW1hZ2VzRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0SW1hZ2VzRW5hYmxlZChlbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNmQx
ZWRiNjc3NzAxYmU5NzQ0MmFlNjA1YmM4MjQ5MGMyODEyMWJiMi4uZmM0MzU0MWQ5N2FlNGMxNjU2
MjVhNTRjODk5ODQ3NWI3MmYxMTIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2Vz
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERPTVBhc3RlQWxsb3dlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCmluZGV4IGFhZTk1NTFlZjg4MDY2MzQ5YWNjOGI3NTkyZTI2MzA4YmIw
YTRjYzUuLjMwNmNlZjQ2NWUzMTIwOWJiNDM3ZjJhODhkNDM2NWZiM2JiMWU1NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMTczLDYgKzE3Myw3IEBAIHN0cnVjdCBfRXdrX1Zp
ZXdfUHJpdmF0ZV9EYXRhIHsKICAgICAgICAgY29uc3QgY2hhciogZm9udFNlcmlmOwogICAgICAg
ICBjb25zdCBjaGFyKiBmb250U2Fuc1NlcmlmOwogICAgICAgICBib29sIGF1dG9Mb2FkSW1hZ2Vz
IDogMTsKKyAgICAgICAgYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzOiAxOwogICAgICAgICBib29s
IGF1dG9TaHJpbmtJbWFnZXMgOiAxOwogICAgICAgICBib29sIGVuYWJsZUF1dG9SZXNpemVXaW5k
b3cgOiAxOwogICAgICAgICBib29sIGVuYWJsZURldmVsb3BlckV4dHJhcyA6IDE7CkBAIC02MzIs
NiArNjMzLDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZf
bmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT52aWV3cG9ydEFy
Z3VtZW50cy51c2VyU2NhbGFibGUgPSB0cnVlOwogCiAgICAgcHJpdi0+cGFnZVNldHRpbmdzLT5z
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgcHJpdi0+cGFnZVNldHRpbmdz
LT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogICAgIHByaXYtPnBhZ2VTZXR0aW5ncy0+
c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoImlzby04ODU5LTEiKTsKICAgICBwcml2LT5wYWdl
U2V0dGluZ3MtPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEyKTsKICAgICBwcml2LT5wYWdlU2V0
dGluZ3MtPnNldERlZmF1bHRGb250U2l6ZSgxNik7CkBAIC02NzYsNiArNjc4LDcgQEAgc3RhdGlj
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwcml2LT5zZXR0aW5ncy5mb250U2Fuc1NlcmlmID0gZWlu
YV9zdHJpbmdzaGFyZV9hZGQoc3RyaW5nLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAg
cHJpdi0+c2V0dGluZ3MuYXV0b0xvYWRJbWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSgpOworICAgIHByaXYtPnNldHRpbmdzLmFsbG93QW5pbWF0ZWRJ
bWFnZXMgPSBwcml2LT5wYWdlU2V0dGluZ3MtPmFsbG93QW5pbWF0ZWRJbWFnZXMoKTsKICAgICBw
cml2LT5zZXR0aW5ncy5hdXRvU2hyaW5rSW1hZ2VzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5zaHJp
bmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KCk7CiAgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlQXV0
b1Jlc2l6ZVdpbmRvdyA9IHRydWU7CiAgICAgcHJpdi0+c2V0dGluZ3MuZW5hYmxlRGV2ZWxvcGVy
RXh0cmFzID0gcHJpdi0+cGFnZVNldHRpbmdzLT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CkBA
IC0xOTMzLDYgKzE5MzYsMjUgQEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2Fk
X2ltYWdlc19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbAogICAgIHJldHVybiB0
cnVlOwogfQogCitFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFn
ZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJ
Vl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOworICAgIHJldHVybiBwcml2
LT5zZXR0aW5ncy5hbGxvd0FuaW1hdGVkSW1hZ2VzOworfQorCitFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFnZXNfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
aW5hX0Jvb2wgYWxsb3cpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEsIGZhbHNlKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCBmYWxzZSk7CisgICAgYWxsb3cgPSAhIWFsbG93OworICAgIGlmIChwcml2
LT5zZXR0aW5ncy5hbGxvd0FuaW1hdGVkSW1hZ2VzICE9IGFsbG93KSB7CisgICAgICAgIHByaXYt
PnBhZ2VTZXR0aW5ncy0+c2V0QWxsb3dBbmltYXRlZEltYWdlcyhhbGxvdyk7CisgICAgICAgIHBy
aXYtPnNldHRpbmdzLmFsbG93QW5pbWF0ZWRJbWFnZXMgPSBhbGxvdzsKKyAgICB9CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2F1dG9fc2hyaW5rX2lt
YWdlc19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmgKaW5kZXggN2RlMGU0NjJmMTdjNWFhYTM0Mjg3NjMyYzJkMzRlZjE1NDdhNzM3YS4u
MmZhMGFkOWZiNzYzY2I3MTgxMjU5YzA4YzMxYmVlOTM3NDIzZTRmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmgKQEAgLTEzNTIsNiArMTM1MiwyNyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX2F1dG9fbG9hZF9pbWFnZXNfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsK
IEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYXV0b19sb2FkX2ltYWdlc19zZXQo
RXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBhdXRvbWF0aWMpOwogCiAvKioKKyAqIFF1ZXJpZXMg
aWYgYW5pbWF0ZWQgaW1hZ2VzIGFyZSBhbGxvd2VkIHRvIGFuaW1hdGUuCisgKgorICogQHBhcmFt
IG8gdmlldyBvYmplY3QgdG8gcXVlcnkgaWYgdGhlIGltYWdlcyBhcmUgYWxsb3dlZCB0byBhbmlt
YXRlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGltYWdlcyBhcmUgYWxsb3dl
ZCB0byBhbmltYXRlLAorICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWls
dXJlCisgKi8KK0VBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfYWxsb3dfYW5pbWF0
ZWRfaW1hZ2VzX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQWxsb3cvZGlz
YWxsb3cgYW5pbWF0aW9uIG9mIGltYWdlcy4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0
byBzZXQgd2hldGhlciBpbWFnZXMgY2FuIGJlIGFuaW1hdGVkIG9yIG5vdAorICogQHBhcmFtIGF1
dG9tYXRpYyBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIGFuaW1hdGlvbiBvZiBpbWFnZXMsCisgKiAg
ICAgICAgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKgorICogQHJldHVybiBAYyBFSU5BX1RS
VUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFaW5h
X0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd19hbmltYXRlZF9pbWFnZXNfc2V0KEV2YXNf
T2JqZWN0ICpvLCBFaW5hX0Jvb2wgYWxsb3cpOworCisvKioKICAqIFF1ZXJpZXMgaWYgdGhlIGlt
YWdlcyBhcmUgc2hyaW5rZWQgYXV0b21hdGljYWxseQogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIHF1ZXJ5IGlmIHRoZSBpbWFnZXMgYXJlIHNocmlua2VkIGF1dG9tYXRpY2FsbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCmluZGV4IGQ5
MWMzYmJmMzUyMWMyNTZjNDlkMjg2ZTI0MWVkOWU3NTAwNThjM2QuLjc3Mjk3NmQ3MDNkYmE5MTVi
YjYyZWZkMWZlNGNlY2QyYzEyMWZlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtODMsNiArODMsNyBAQCBlbnVtIHsKICAgICBQUk9Q
X01JTklNVU1fTE9HSUNBTF9GT05UX1NJWkUsCiAgICAgUFJPUF9FTkZPUkNFXzk2X0RQSSwKICAg
ICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVMs
CiAgICAgUFJPUF9BVVRPX1NIUklOS19JTUFHRVMsCiAgICAgUFJPUF9QUklOVF9CQUNLR1JPVU5E
UywKICAgICBQUk9QX0VOQUJMRV9TQ1JJUFRTLApAQCAtMzM0LDYgKzMzNSwxNSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQoV2ViS2l0V2ViU2V0dGluZ3NDbGFz
cyoga2xhc3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwog
CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BTExPV19BTklNQVRFRF9JTUFH
RVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvdy1hbmltYXRl
ZC1pbWFnZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cg
YW5pbWF0ZWQgaW1hZ2VzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJBbGxvdyBpbWFnZXMgdG8gYmUgYW5pbWF0ZWQuIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUUlVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQVVUT19TSFJJ
TktfSU1BR0VTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX2Jvb2xlYW4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0by1z
aHJpbmstaW1hZ2VzIiwKQEAgLTEwMTEsNiArMTAyMSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwg
Y29uCiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIHByaXYtPmF1dG9M
b2FkSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVM6CisgICAgICAgIHByaXYtPmFsbG93
QW5pbWF0ZWRJbWFnZXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBQUk9QX0FVVE9fU0hSSU5LX0lNQUdFUzoKICAgICAgICAgcHJpdi0+YXV0
b1Nocmlua0ltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVh
azsKQEAgLTExNzksNiArMTE5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Z2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgY2Fz
ZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFs
dWUsIHByaXYtPmF1dG9Mb2FkSW1hZ2VzKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9Q
X0FMTE9XX0FOSU1BVEVEX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1
ZSwgcHJpdi0+YWxsb3dBbmltYXRlZEltYWdlcyk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
UFJPUF9BVVRPX1NIUklOS19JTUFHRVM6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFs
dWUsIHByaXYtPmF1dG9TaHJpbmtJbWFnZXMpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaAppbmRleCBk
N2QwODJlNWJiM2ZmYWJiZWY0ZGViYzZhOGUxMjVhZmM3YzcyNjMxLi4zYWNhNjFkMjU0ZTI5ZWIx
MmFlZjlkZjk0YWRkM2VhMjZiZGIzNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCkBAIC00Miw2ICs0Miw3IEBAIHN0cnVj
dCBfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlIHsKICAgICBndWludCBtaW5pbXVtTG9naWNhbEZv
bnRTaXplOwogICAgIGdib29sZWFuIGVuZm9yY2U5NkRQSTsKICAgICBnYm9vbGVhbiBhdXRvTG9h
ZEltYWdlczsKKyAgICBnYm9vbGVhbiBhbGxvd0FuaW1hdGVkSW1hZ2VzOwogICAgIGdib29sZWFu
IGF1dG9TaHJpbmtJbWFnZXM7CiAgICAgZ2Jvb2xlYW4gcHJpbnRCYWNrZ3JvdW5kczsKICAgICBn
Ym9vbGVhbiBlbmFibGVTY3JpcHRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDM4ZDk0MDEzZjA4ZjFmN2VmOTU3NTc2MDk2OGQ3MWY1N2UyYzM1M2Uu
LjY1YTVmOTViMmE3YzBhNTczZTBmZjM3MDQwMWM3MWVlNjBiOGQ2MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTMyMjcsNiArMzIyNyw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKICAgICBjb3JlU2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2V0dGlu
Z3NQcml2YXRlLT5zYW5zU2VyaWZGb250RmFtaWx5LmRhdGEoKSk7CiAgICAgY29yZVNldHRpbmdz
LT5zZXRTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zZXJpZkZvbnRGYW1pbHkuZGF0
YSgpKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShzZXR0
aW5nc1ByaXZhdGUtPmF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBjb3JlU2V0dGluZ3MtPnNldEFsbG93
QW5pbWF0ZWRJbWFnZXMoc2V0dGluZ3NQcml2YXRlLT5hbGxvd0FuaW1hdGVkSW1hZ2VzKTsKICAg
ICBjb3JlU2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoc2V0dGluZ3NQ
cml2YXRlLT5hdXRvU2hyaW5rSW1hZ2VzKTsKICAgICBjb3JlU2V0dGluZ3MtPnNldFNob3VsZFBy
aW50QmFja2dyb3VuZHMoc2V0dGluZ3NQcml2YXRlLT5wcmludEJhY2tncm91bmRzKTsKICAgICBj
b3JlU2V0dGluZ3MtPnNldFNjcmlwdEVuYWJsZWQoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVTY3Jp
cHRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0ZGY3NzU4ZDAyZTE2
YmNhOGM1YzVjZDg1MzNiMTBlMDc0Y2ExODM1Li5hOWZkNWIxOTZmNWIyMDY0YzZlNTNiM2NmODQw
MGNlZDlhZmQzNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDIx
LDYgKzE0MjEsNyBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWly
aygpCiAgICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseShbcHJlZmVyZW5jZXMgc2VyaWZG
b250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldFN0YW5kYXJkRm9udEZhbWlseShbcHJlZmVy
ZW5jZXMgc3RhbmRhcmRGb250RmFtaWx5XSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShbcHJlZmVyZW5jZXMgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5XSk7Cisg
ICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoW3ByZWZlcmVuY2VzIGFsbG93c0Fu
aW1hdGVkSW1hZ2VzXSk7CiAgICAgc2V0dGluZ3MtPnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nKFtwcmVmZXJlbmNlcyBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1h
Z2VMb2FkaW5nUHJlZmVyZW5jZV0pOwogICAgIHNldHRpbmdzLT5zZXRTaG91bGRQcmludEJhY2tn
cm91bmRzKFtwcmVmZXJlbmNlcyBzaG91bGRQcmludEJhY2tncm91bmRzXSk7CiAgICAgc2V0dGlu
Z3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJlUmVz
aXphYmxlXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCA4OWU5ODIx
NDA0YTEzZDU5ODg3YTY5ZmY3YThjMWFjZTk1Njc5Y2QwLi5iOTg2OTRiZDc0OWYzODFiMzZhYjIw
Zjk5MzgwNzFmZWJiZjhmY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAK
QEAgLTE0Miw2ICsxNDIsMTAgQEAgdm9pZCBRV2ViU2V0dGluZ3NQcml2YXRlOjphcHBseSgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52
YWx1ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzKSk7CiAgICAgICAgIHNldHRpbmdzLT5z
ZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodmFsdWUpOwogCisgICAgICAgIHZhbHVlID0gYXR0
cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShR
V2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMpKTsKKyAgICAgICAgc2V0dGluZ3MtPnNl
dEFsbG93QW5pbWF0ZWRJbWFnZXModmFsdWUpOworCiAgICAgICAgIHZhbHVlID0gYXR0cmlidXRl
cy52YWx1ZShRV2ViU2V0dGluZ3M6OkRuc1ByZWZldGNoRW5hYmxlZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+YXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6
OkRuc1ByZWZldGNoRW5hYmxlZCkpOwogICAgICAgICBzZXR0aW5ncy0+c2V0RE5TUHJlZmV0Y2hp
bmdFbmFibGVkKHZhbHVlKTsKQEAgLTUwMiw2ICs1MDYsNyBAQCBRV2ViU2V0dGluZ3M6OlFXZWJT
ZXR0aW5ncygpCiAgICAgZC0+Zm9udEZhbWlsaWVzLmluc2VydChRV2ViU2V0dGluZ3M6OkZpeGVk
Rm9udCwgZGVmYXVsdEZvbnQuZGVmYXVsdEZhbWlseSgpKTsKIAogICAgIGQtPmF0dHJpYnV0ZXMu
aW5zZXJ0KFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIHRydWUpOworICAgIGQtPmF0dHJp
YnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6QWxsb3dBbmltYXRlZEltYWdlcywgdHJ1ZSk7CiAg
ICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpEbnNQcmVmZXRjaEVuYWJsZWQs
IGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkphdmFzY3Jp
cHRFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
OlNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuaAppbmRleCA0MGY3ZjczZjk0ZDE5OGJmMWRmMzZhMjhjNmFjMGE3MzU1NjNmOThmLi4y
YmE5OGM4NDYxNGM5MGY1YjYyNzRjMmU3ODhmNjkwMWY4YmZlMDUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2Vic2V0dGluZ3MuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBl
bnVtIFdlYkF0dHJpYnV0ZSB7CiAgICAgICAgIEF1dG9Mb2FkSW1hZ2VzLAorICAgICAgICBBbGxv
d0FuaW1hdGVkSW1hZ2VzLAogICAgICAgICBKYXZhc2NyaXB0RW5hYmxlZCwKICAgICAgICAgSmF2
YUVuYWJsZWQsCiAgICAgICAgIFBsdWdpbnNFbmFibGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAKaW5kZXggYWJmOWJiMjE4
YTM2MWIxYTQ0N2FjOTk0MWMyMDNlM2ZkZjI3ZjczYy4uNzM0YTM3ZjI1NTlkYWEyNzJmZjIwODdm
ZjY1OWQ4ZmFjOWJiZTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2
ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0
aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCkBAIC03MjcsNiArNzI3LDcgQEAgUVdlYlBhZ2Uq
IFFEZWNsYXJhdGl2ZVdlYlZpZXc6OnBhZ2UoKSBjb25zdAogICAgIFxxbWxwcm9wZXJ0eSBpbnQg
V2ViVmlldzo6c2V0dGluZ3MuZGVmYXVsdEZpeGVkRm9udFNpemUKIAogICAgIFxxbWxwcm9wZXJ0
eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmF1dG9Mb2FkSW1hZ2VzCisgICAgXHFtbHByb3BlcnR5
IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuYWxsb3dBbmltYXRlZEltYWdlcwogICAgIFxxbWxwcm9w
ZXJ0eSBib29sIFdlYlZpZXc6OnNldHRpbmdzLmphdmFzY3JpcHRFbmFibGVkCiAgICAgXHFtbHBy
b3BlcnR5IGJvb2wgV2ViVmlldzo6c2V0dGluZ3MuamF2YUVuYWJsZWQKICAgICBccW1scHJvcGVy
dHkgYm9vbCBXZWJWaWV3OjpzZXR0aW5ncy5wbHVnaW5zRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaCBiL1NvdXJj
ZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKaW5kZXggMDg4
ZjIzYmM4NmZmNTVjMmNhNDdiMzRlNDU0MzZlNGI0NDQ5NTk0Yy4uODdkZGNiZDM3MmM3OGE3YjQx
MmNkMzg2ODgwNTk1YTI1YWJkNDQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L2Rl
Y2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCkBAIC0yOTksNiArMjk5LDcgQEAgY2xh
c3MgUURlY2xhcmF0aXZlV2ViU2V0dGluZ3MgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9QUk9Q
RVJUWShpbnQgZGVmYXVsdEZpeGVkRm9udFNpemUgUkVBRCBkZWZhdWx0Rml4ZWRGb250U2l6ZSBX
UklURSBzZXREZWZhdWx0Rml4ZWRGb250U2l6ZSkKIAogICAgIFFfUFJPUEVSVFkoYm9vbCBhdXRv
TG9hZEltYWdlcyBSRUFEIGF1dG9Mb2FkSW1hZ2VzIFdSSVRFIHNldEF1dG9Mb2FkSW1hZ2VzKQor
ICAgIFFfUFJPUEVSVFkoYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzIFJFQUQgYWxsb3dBbmltYXRl
ZEltYWdlcyBXUklURSBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKQogICAgIFFfUFJPUEVSVFkoYm9v
bCBqYXZhc2NyaXB0RW5hYmxlZCBSRUFEIGphdmFzY3JpcHRFbmFibGVkIFdSSVRFIHNldEphdmFz
Y3JpcHRFbmFibGVkKQogICAgIFFfUFJPUEVSVFkoYm9vbCBqYXZhRW5hYmxlZCBSRUFEIGphdmFF
bmFibGVkIFdSSVRFIHNldEphdmFFbmFibGVkKQogICAgIFFfUFJPUEVSVFkoYm9vbCBwbHVnaW5z
RW5hYmxlZCBSRUFEIHBsdWdpbnNFbmFibGVkIFdSSVRFIHNldFBsdWdpbnNFbmFibGVkKQpAQCAt
MzQxLDYgKzM0Miw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYXV0b0xvYWRJbWFnZXMoKSBjb25z
dCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMp
OyB9CiAgICAgdm9pZCBzZXRBdXRvTG9hZEltYWdlcyhib29sIG9uKSB7IHMtPnNldEF0dHJpYnV0
ZShRV2ViU2V0dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzLCBvbik7IH0KKyAgICBib29sIGFsbG93QW5p
bWF0ZWRJbWFnZXMoKSBjb25zdCB7IHJldHVybiBzLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5n
czo6QWxsb3dBbmltYXRlZEltYWdlcyk7IH0KKyAgICB2b2lkIHNldEFsbG93QW5pbWF0ZWRJbWFn
ZXMoYm9vbCBvbikgeyBzLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBbGxvd0FuaW1hdGVk
SW1hZ2VzLCBvbik7IH0KICAgICBib29sIGphdmFzY3JpcHRFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gcy0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkKTsgfQog
ICAgIHZvaWQgc2V0SmF2YXNjcmlwdEVuYWJsZWQoYm9vbCBvbikgeyBzLT5zZXRBdHRyaWJ1dGUo
UVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0RW5hYmxlZCwgb24pOyB9CiAgICAgYm9vbCBqYXZhRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIHMtPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZh
RW5hYmxlZCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWRlY2xhcmF0
aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3FkZWNsYXJhdGl2ZXdlYnZpZXcvdHN0X3FkZWNsYXJhdGl2ZXdlYnZpZXcuY3BwCmlu
ZGV4IDFmOWEyZmY4NGRjZTU1OWYwODQyNzNjMjAyNThjYWZiOWZhNWRjZDYuLmFlODQ1MmU1NDAy
ZmRmYzJlNmI3ZjkwZmUwOTRjNWFhNTJhN2QwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvdGVzdHMvcWRlY2xhcmF0aXZld2Vidmlldy90c3RfcWRlY2xhcmF0aXZld2Vidmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZGVjbGFyYXRpdmV3ZWJ2aWV3L3RzdF9xZGVj
bGFyYXRpdmV3ZWJ2aWV3LmNwcApAQCAtNDc4LDYgKzQ3OCw3IEBAIHZvaWQgdHN0X1FEZWNsYXJh
dGl2ZVdlYlZpZXc6OnNldHRpbmdzKCkKIAogICAgIFFTdHJpbmdMaXN0IHNldHRpbmdzTGlzdDsK
ICAgICBzZXR0aW5nc0xpc3QgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJhdXRvTG9hZEltYWdlcyIp
CisgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiYWxsb3dBbmltYXRlZElt
YWdlcyIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiZGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZCIpCiAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgi
amF2YUVuYWJsZWQiKQogICAgICAgICAgICAgICAgICA8PCBRU3RyaW5nOjpmcm9tQXNjaWkoImph
dmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDA3OTEzZWM3ODUyNDZiYTkxM2ViOGZk
ZGFjZGJkYzA5ZDUwNzQzMTMuLmY5NDRiMzJlOGI5NTk5OGRiNmIzOGQ1NmQwYjI3MmJlMDM3N2Vj
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
cy5pZGwKQEAgLTEzMSw4ICsxMzEsOCBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzIDogSVVu
a25vd24KICAgICBIUkVTVUxUIGFyZVBsdWdJbnNFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCog
ZW5hYmxlZCk7CiAgICAgSFJFU1VMVCBzZXRQbHVnSW5zRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxl
ZCk7CiAKLSAgICBIUkVTVUxUIGFsbG93c0FuaW1hdGVkSW1hZ2VzKFtvdXQsIHJldHZhbF0gQk9P
TCogZW5hYmxlZCk7Ci0gICAgSFJFU1VMVCBzZXRBbGxvd3NBbmltYXRlZEltYWdlcyhbaW5dIEJP
T0wgZW5hYmxlZCk7CisgICAgSFJFU1VMVCBhbGxvd0FuaW1hdGVkSW1hZ2VzKFtvdXQsIHJldHZh
bF0gQk9PTCogZW5hYmxlZCk7CisgICAgSFJFU1VMVCBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKFtp
bl0gQk9PTCBlbmFibGVkKTsKICAgICBIUkVTVUxUIGFsbG93QW5pbWF0ZWRJbWFnZUxvb3Bpbmco
W291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldEFsbG93QW5pbWF0
ZWRJbWFnZUxvb3BpbmcoW2luXSBCT09MIGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDQ2ODk0NDY1NzA4YzA2OTQwZTNiM2Jj
MGE0YzYwMTYyNTc4NTA4YmIuLjVkYjY5ZTY5OTY5OThlMDE3NWFhZTMxMjBiMzBjNDAxMjZiNDJj
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBA
IC01OSw2ICs1OSw3IEBACiAjZGVmaW5lIFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJl
bmNlS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0QWxsb3dBbmltYXRlZEltYWdlTG9vcGluZ1ByZWZlcmVuY2VLZXkgIldlYktpdEFsbG93
QW5pbWF0ZWRJbWFnZUxvb3BpbmdQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXREaXNwbGF5
SW1hZ2VzS2V5ICJXZWJLaXREaXNwbGF5SW1hZ2VzS2V5IgorI2RlZmluZSBXZWJLaXRBbGxvd0Fu
aW1hdGVkSW1hZ2VzS2V5ICJXZWJLaXRBbGxvd0FuaW1hdGVkSW1hZ2VzS2V5IgogI2RlZmluZSBX
ZWJLaXRMb2FkU2l0ZUljb25zS2V5ICJXZWJLaXRMb2FkU2l0ZUljb25zS2V5IgogI2RlZmluZSBX
ZWJLaXRCYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5ICJXZWJLaXRCYWNrRm9y
d2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsS2V5IgogI2RlZmluZSBXZWJLaXRUYWJUb0xpbmtz
UHJlZmVyZW5jZUtleSAiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNmY1ZWQ4ZTdlOTU5MTI1ZGNhMWI3NDMyNDdkMGQ0
OTI5MWZlNmU1ZS4uNjBjMzE5YjQ4OGYxMjhkOTg3MzEzYTdmYTUwZDQ2ZDNlMjFjMTAyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtOTA2LDE0ICs5MDYsMTQgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0UGx1Z0luc0VuYWJsZWQo
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJl
ZmVyZW5jZXM6OmFsbG93c0FuaW1hdGVkSW1hZ2VzKCAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViUHJlZmVyZW5jZXM6OmFsbG93QW5pbWF0ZWRJbWFnZXMoCiAgICAgLyogW3JldHZhbF1b
b3V0XSAqLyBCT09MKiBlbmFibGVkKQogewogICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5
KENGU1RSKFdlYktpdEFsbG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5KSk7CiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6
OnNldEFsbG93c0FuaW1hdGVkSW1hZ2VzKCAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
UHJlZmVyZW5jZXM6OnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoCiAgICAgLyogW2luXSAqLyBCT09M
IGVuYWJsZWQpCiB7CiAgICAgc2V0Qm9vbFZhbHVlKENGU1RSKFdlYktpdEFsbG93QW5pbWF0ZWRJ
bWFnZXNQcmVmZXJlbmNlS2V5KSwgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMu
aAppbmRleCBiYWY1NmVjZDA0MTc5NjZlMTA2OWZiMTg5ZmIxNjQzYmVkNTU4NDllLi4xZTE4NTAz
MjJlMGI1YmE5MDQ5Yjc5NDZjMGU0YTMzZGNhOTQ0NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZl
cmVuY2VzLmgKQEAgLTE2MywxMCArMTYzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0UGx1Z0luc0VuYWJsZWQoIAogICAgICAgICAvKiBbaW5d
ICovIEJPT0wgZW5hYmxlZCk7CiAgICAgCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGFsbG93c0FuaW1hdGVkSW1hZ2VzKCAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgYWxsb3dBbmltYXRlZEltYWdlcygKICAgICAgICAgLyogW3JldHZhbF1bb3V0
XSAqLyBCT09MKiBlbmFibGVkKTsKICAgICAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc2V0QWxsb3dzQW5pbWF0ZWRJbWFnZXMoIAorICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKAogICAgICAgICAvKiBbaW5d
ICovIEJPT0wgZW5hYmxlZCk7CiAgICAgCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGFsbG93QW5pbWF0ZWRJbWFnZUxvb3BpbmcoIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRl
eCA1OTI3Yzk2NjQyYWJlMWExMjNkM2ZjNzYwZDk0NGRiYWY4NGFiYjJjLi5jYmNjZDU4NzYzNDQ1
NGNlMWFkMzBlYzczYjcxYmEyOWY1ZTQ3NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNDY5
Miw2ICs0NjkyLDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2Vk
KElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAg
IHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoISFlbmFibGVkKTsKIAorICAg
IGhyID0gcHJlZmVyZW5jZXMtPmFsbG93QW5pbWF0ZWRJbWFnZXMoJmVuYWJsZWQpOworICAgIGlm
IChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3MtPnNldEFsbG93
QW5pbWF0ZWRJbWFnZXMoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZmVyZW5jZXMtPnVzZXJT
dHlsZVNoZWV0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAg
IHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmluZGV4IGRkZTM3OGYwMmJmYmNlNjlh
OThlMWFmZmJlNWI1NDA4MWUyMTg0ZmUuLjA2NzgzOTk0YjE2MDYwNjgwMzI1MDFjZTNjNmVmYzdj
MTc1OGFlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApAQCAtMTAzLDYgKzEwMyw3IEBAIFdl
YlZpZXc6OldlYlZpZXcoSFdORCBod25kLCB1bnNpZ25lZCBmZWF0dXJlcykKICAgICBzZXR0aW5n
cy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKICAgICBzZXR0aW5ncy0+c2V0U2NyaXB0
RW5hYmxlZCh0cnVlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KHRydWUpOworICAgIHNldHRpbmdzLT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHRydWUpOwogCiAg
ICAgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFKiBsb2FkZXJDbGllbnQgPSBuZXcgV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFKHRoaXMpOwogICAgIFJlZlB0cjxGcmFtZT4gZnJh
bWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZSwgMCwgbG9hZGVyQ2xpZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJT
ZXR0aW5ncy5jcHAKaW5kZXggODkxYTg2N2E4ZWEyMjkwOTQ4YjUzOGI2ZTk5NGMyNGRjYzU0Mjc4
NS4uZWE0YWRiOTlkNzVlM2I3MzZmNTMzYmI1NTRkNTY2OWJmMDcwMWVmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93eC9XZWJTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9X
ZWJTZXR0aW5ncy5jcHAKQEAgLTg4LDYgKzg4LDIwIEBAIGJvb2wgd3hXZWJTZXR0aW5nczo6TG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAg
Cit2b2lkIHd4V2ViU2V0dGluZ3M6OlNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYm9vbCBhbGxvd0Fu
aW1hdGVkSW1hZ2VzKQoreworICAgIGlmIChtX3NldHRpbmdzKQorICAgICAgICBtX3NldHRpbmdz
LT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGFsbG93QW5pbWF0ZWRJbWFnZXMpOworfQorCitib29s
IHd4V2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMoKSBjb25zdAoreworICAgIGlmICht
X3NldHRpbmdzKQorICAgICAgICByZXR1cm4gbV9zZXR0aW5ncy0+YWxsb3dBbmltYXRlZEltYWdl
cygpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIHd4V2ViU2V0dGluZ3M6OlNldEph
dmFTY3JpcHRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9zZXR0aW5ncykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViU2V0dGluZ3MuaAppbmRleCBiNzBkZGU1YTNlNWNmMmUzMzAyZjE0ZWJiNTM2ODk4YTQ1
MjVhYjMyLi5lMTI4YWFlNzk0NzljNmVmODU2MzUwYWJiMzQwMDYzNzhjZDBhODUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC93
eC9XZWJTZXR0aW5ncy5oCkBAIC0xMTEsNiArMTExLDE2IEBAIHB1YmxpYzoKICAgICBib29sIExv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSgpIGNvbnN0OwogICAgIAogICAgIC8qKgorICAgICAgICBT
ZXRzIHdoZXRoZXIgb3Igbm90IGltYWdlcyBhcmUgYWxsb3dlZCB0byBiZSBhbmltYXRlZC4KKyAg
ICAqLworICAgIHZvaWQgU2V0QWxsb3dBbmltYXRlZEltYWdlcyhib29sKTsKKworICAgIC8qKgor
ICAgICAgICBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IGltYWdlcyBhcmUgYWxsb3dlZCB0byBiZSBh
bmltYXRlZC4KKyAgICAqLworICAgIGJvb2wgQWxsb3dBbmltYXRlZEltYWdlcygpIGNvbnN0Owor
CisgICAgLyoqCiAgICAgICAgIFNldHMgd2hldGhlciBvciBub3QgdGhlIFdlYlZpZXcgcnVucyBK
YXZhU2NyaXB0IGNvZGUuCiAgICAgKi8KICAgICB2b2lkIFNldEphdmFTY3JpcHRFbmFibGVkKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViVmlldy5jcHAKaW5kZXggOTExN2M5NmIwYjU5NmZkYTE0NmIzNDEyYzUwYzE2
Y2Y4ZWQ4NzhhNy4uOTNjZTQ3NTE4ZmY4NjkzZjhlZWRmZTg4MTdmMzJmMzkwNzdhYWNhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYlZpZXcuY3BwCkBAIC00MDcsNiArNDA3LDcgQEAgYm9vbCB3eFdlYlZpZXc6OkNyZWF0
ZSh3eFdpbmRvdyogcGFyZW50LCBjb25zdCB3eFN0cmluZyYgdXJsLCBpbnQgaWQsIGNvbnN0IHd4
UG8KICAgICAvLyBldmVudHVhbGx5CiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0g
bV9pbXBsLT5wYWdlLT5zZXR0aW5ncygpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMo
dHJ1ZSk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEzKTsKICAgICBz
ZXR0aW5ncy0+c2V0RGVmYXVsdEZvbnRTaXplKDE2KTsKICAgICBzZXR0aW5ncy0+c2V0U2VyaWZG
b250RmFtaWx5KCJUaW1lcyBOZXcgUm9tYW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IGViYTQ0N2ZiYjVkYjFiZDhmN2E5ODI3ZjE5Njg2OGNi
ZTFjOWRjYWQuLjY5OTAxNTZkNDY5MzhmYWE1MDk1MDEzYmEzNTgxZGZmZTViMDczMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtNTEsNiArNTEs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0JPT0xfUFJF
RkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKEphdmFTY3JpcHRFbmFibGVkLCBqYXZhU2NyaXB0
RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKExvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSwgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBCb29sLCBib29sLCB0cnVlKSBcCisg
ICAgbWFjcm8oQWxsb3dBbmltYXRlZEltYWdlcywgYWxsb3dBbmltYXRlZEltYWdlcywgQm9vbCwg
Ym9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRp
bmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5j
ZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2lu
c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2
YUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA1MjFlNmQ0YTA1Y2NkZjFjYTZmMWNm
NGZlNjZkZjQ5OTllYmJlOTVhLi41YzYxYjQ5YTMzNWMyY2UyYzdiOTgzMjJhZjUzYmRiNWY0YWZl
Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC03OCw2ICs3OCwxNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRMb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KCk7CiB9
CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEFsbG93QW5pbWF0ZWRJbWFnZXMoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKQoreworICAgIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFsbG93QW5pbWF0ZWRJbWFnZXMoYWxsb3dBbmltYXRl
ZEltYWdlcyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEFsbG93QW5pbWF0ZWRJbWFnZXMo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+YWxsb3dBbmltYXRlZEltYWdlcygpOworfQorCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKGxvYWRzU2l0ZUlj
b25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCmluZGV4IGYxMzU1OWFjYjgyZTEzYWFiMjA0
NmQxMDIxYTdkZDg3OTc5MDQ5MjUuLmE0OTk1Y2E0ZjBiNThjOWUwZjMxMjBkNTZmZDk4MzRiNGE3
YWQyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuaApAQCAtNDksNiArNDksMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEph
dmFTY3JpcHRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiBXS19F
WFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQ
T1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFsbG93QW5pbWF0ZWRJbWFnZXMoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcywgYm9vbCBhbGxvd0FuaW1hdGVkSW1hZ2VzKTsKK1dLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXMpOworCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5j
ZShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGxvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCA3NzRmMTcxOTBjOTg5OTRhNGNhOWU4YTIw
OTEyMmQzZjMyZTQ1YzUzLi5mNjk3MTBiMTk1N2E1OTU0ZjAyM2NlM2U1ODA4MzVjMzk2NDI2YmE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0
dGluZ3MuY3BwCkBAIC03Myw2ICs3Myw3IEBAIGVudW0gewogCiAgICAgUFJPUF9FTkFCTEVfSkFW
QVNDUklQVCwKICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCisgICAgUFJPUF9BTExPV19BTklN
QVRFRF9JTUFHRVMsCiAgICAgUFJPUF9MT0FEX0lDT05TX0lHTk9SSU5HX0lNQUdFX0xPQURfU0VU
VElORywKICAgICBQUk9QX0VOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTl9DQUNIRSwKICAg
ICBQUk9QX0VOQUJMRV9IVE1MNV9MT0NBTF9TVE9SQUdFLApAQCAtMTE2LDYgKzExNyw5IEBAIHN0
YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wSWQsIGNvbnN0IEdWYWx1CiAgICAgY2FzZSBQUk9QX0FVVE9fTE9BRF9JTUFHRVM6CiAg
ICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYXV0b19sb2FkX2ltYWdlcyhzZXR0aW5ncywgZ192
YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1Bf
QUxMT1dfQU5JTUFURURfSU1BR0VTOgorICAgICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2FsbG93
X2FuaW1hdGVkX2ltYWdlcyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfTE9BRF9JQ09OU19JR05PUklOR19JTUFHRV9M
T0FEX1NFVFRJTkc6CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbG9hZF9pY29uc19pZ25v
cmluZ19pbWFnZV9sb2FkX3NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpKTsKICAgICAgICAgYnJlYWs7CkBAIC0yMjMsNiArMjI3LDkgQEAgc3RhdGljIHZvaWQgd2Vi
S2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1Zh
bHVlKiB2YWwKICAgICBjYXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9hdXRvX2xvYWRfaW1hZ2Vz
KHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BTExPV19BTklNQVRF
RF9JTUFHRVM6CisgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzKHNldHRpbmdzKSk7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUFJPUF9MT0FEX0lDT05TX0lHTk9SSU5HX0lNQUdFX0xPQURfU0VUVElORzoK
ICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9s
b2FkX2ljb25zX2lnbm9yaW5nX2ltYWdlX2xvYWRfc2V0dGluZyhzZXR0aW5ncykpOwogICAgICAg
ICBicmVhazsKQEAgLTM2Myw2ICszNzAsMTkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NldHRpbmdz
X2NsYXNzX2luaXQoV2ViS2l0U2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1
Y3RQYXJhbUZsYWdzKSk7CiAKICAgICAvKioKKyAgICAgKiBXZWJLaXRTZXR0aW5nczphbGxvdy1h
bmltYXRlZC1pbWFnZXM6CisgICAgICoKKyAgICAgKiBDb250cm9scyB3aGV0aGVyIGFuaW1hdGVk
IGltYWdlcyBzaG91bGQgYmUgYW5pbWF0ZWQgb3Igbm90LgorICAgICAqLworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJPUF9BTExPV19BTklNQVRFRF9JTUFHRVMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiYWxsb3ctYW5p
bWF0ZWQtaW1hZ2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkFsbG93IGFuaW1hdGVkIGltYWdlcyIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxsb3cgaW1h
Z2VzIHRvIGJlIGFuaW1hdGVkLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFNldHRpbmdzOmxvYWQtaWNvbnMtaWdub3Jp
bmctaW1hZ2UtbG9hZC1zZXR0aW5nOgogICAgICAqCiAgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVy
IGEgc2l0ZSBjYW4gbG9hZCBmYXZpY29ucyBpcnJlc3BlY3RpdmUKQEAgLTk0MCw2ICs5NjAsNDEg
QEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMoV2ViS2l0U2V0dGlu
Z3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbmEKIH0KIAogLyoqCisgKiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlczoKKyAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGlu
Z3MKKyAqCisgKiBHZXQgdGhlICNXZWJLaXRTZXR0aW5nczphbGxvdy1hbmltYXRlZC1pbWFnZXMg
cHJvcGVydHkuCisgKgorICogUmV0dXJuczogJVRSVUUgSWYgYW5pbWF0aW9uIG9mIGltYWdlcyBp
cyBhbGxvd2VkIG9yICVGQUxTRSBvdGhlcndpc2UuCisgKi8KK2dib29sZWFuIHdlYmtpdF9zZXR0
aW5nc19nZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykK
K3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3Mp
LCBGQUxTRSk7CisKKyAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFsbG93QW5pbWF0ZWRJbWFn
ZXMoc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLmdldCgpKTsKK30KKworLyoqCisgKiB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2FsbG93X2FuaW1hdGVkX2ltYWdlczoKKyAqIEBzZXR0aW5nczogYSAj
V2ViS2l0U2V0dGluZ3MKKyAqIEBhbGxvdzogVmFsdWUgdG8gYmUgc2V0CisgKgorICogU2V0IHRo
ZSAjV2ViS2l0U2V0dGluZ3M6YWxsb3ctYW5pbWF0ZWQtaW1hZ2VzIHByb3BlcnR5LgorICovCit2
b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfYW5pbWF0ZWRfaW1hZ2VzKFdlYktpdFNldHRp
bmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gYWxsb3cpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKKworICAgIFdlYktpdFNldHRpbmdzUHJpdmF0
ZSogcHJpdiA9IHNldHRpbmdzLT5wcml2OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gV0tQcmVm
ZXJlbmNlc0dldEFsbG93QW5pbWF0ZWRJbWFnZXMocHJpdi0+cHJlZmVyZW5jZXMuZ2V0KCkpOwor
ICAgIGlmIChjdXJyZW50VmFsdWUgPT0gYWxsb3cpCisgICAgICAgIHJldHVybjsKKworICAgIFdL
UHJlZmVyZW5jZXNTZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHByaXYtPnByZWZlcmVuY2VzLmdldCgp
LCBhbGxvdyk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgImFsbG93
LWFuaW1hdGVkLWltYWdlcyIpOworfQorCisvKioKICAqIHdlYmtpdF9zZXR0aW5nc19nZXRfbG9h
ZF9pY29uc19pZ25vcmluZ19pbWFnZV9sb2FkX3NldHRpbmc6CiAgKiBAc2V0dGluZ3M6IGEgI1dl
YktpdFNldHRpbmdzCiAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmgKaW5kZXggMjdjYjdjNzVhMTkxZGJkM2U0YTI0OGYzMmU4MmM5MGRk
NWI1NWMzMC4uZjBhMDliNzc5NTZiMjYxMzZjNDUxYzAyYmE1MWI2ZDA5NDFlYzVmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCkBA
IC05Miw2ICs5MiwxMyBAQCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2F1dG9fbG9hZF9pbWFnZXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
ICAgICAgICBlbmFibGVkKTsKIAogV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdz
X2dldF9hbGxvd19hbmltYXRlZF9pbWFnZXMgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNl
dHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3Nl
dF9hbGxvd19hbmltYXRlZF9pbWFnZXMgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRp
bmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgYWxsb3cpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2xvYWRfaWNvbnNfaWdub3JpbmdfaW1h
Z2VfbG9hZF9zZXR0aW5nICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKIAogV0VCS0lU
X0FQSSB2b2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCAwNDI2NDVkOTg3ZGUwNTFj
MWFhOWE3ZjAyZGVhNTEyYTZiNzgxZjVhLi5kNTk5MzRiZGQ2NDM2MDU3N2IzZWEyODdkNmJhNTI3
MDRkNDcwYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTE1Niw2ICsxNTYsOCBA
QCB3ZWJraXRfc2V0dGluZ3NfbmV3CiB3ZWJraXRfc2V0dGluZ3NfbmV3X3dpdGhfc2V0dGluZ3MK
IHdlYmtpdF9zZXR0aW5nc19nZXRfYXV0b19sb2FkX2ltYWdlcwogd2Via2l0X3NldHRpbmdzX3Nl
dF9hdXRvX2xvYWRfaW1hZ2VzCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2FsbG93X2FuaW1hdGVkX2lt
YWdlcword2Via2l0X3NldHRpbmdzX3NldF9hbGxvd19hbmltYXRlZF9pbWFnZXMKIHdlYmtpdF9z
ZXR0aW5nc19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2h0bWw1
X2RhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZmU1NzY0ZjlkMGU2MWU1NjVmMmVkM2UzYzhmOThk
ZWUyNS4uNDIwNTllZWIwOTYxODFiOThmYjZjNDMzMTllNTNkZmM5ODg5NzM2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcApA
QCAtNDAsNiArNDAsOCBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1
dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAgICAgc3dpdGNoIChhdHRy
KSB7CiAgICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5j
ZXNHZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZXNSZWYoKSk7CisgICAgY2Fz
ZSBBbGxvd0FuaW1hdGVkSW1hZ2VzOgorICAgICAgICByZXR1cm4gV0tQcmVmZXJlbmNlc0dldEFs
bG93QW5pbWF0ZWRJbWFnZXMocHJlZmVyZW5jZXNSZWYoKSk7CiAgICAgY2FzZSBKYXZhc2NyaXB0
RW5hYmxlZDoKICAgICAgICAgcmV0dXJuIFdLUHJlZmVyZW5jZXNHZXRKYXZhU2NyaXB0RW5hYmxl
ZChwcmVmZXJlbmNlc1JlZigpKTsKICAgICBjYXNlIFBsdWdpbnNFbmFibGVkOgpAQCAtNjYsNiAr
NjgsOSBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYQogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6
CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVy
ZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbGxvd0FuaW1h
dGVkSW1hZ2VzOgorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dBbmltYXRlZEltYWdlcyhw
cmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEphdmFz
Y3JpcHRFbmFibGVkOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdEVuYWJsZWQo
cHJlZmVyZW5jZXNSZWYoKSwgZW5hYmxlKTsKICAgICAgICAgYnJlYWs7CkBAIC0yMDMsNiArMjA4
LDE3IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRBdXRvTG9hZEltYWdlcyhib29sIGVuYWJs
ZSkKICAgICBlbWl0IGF1dG9Mb2FkSW1hZ2VzQ2hhbmdlZCgpOwogfQogCitib29sIFFXZWJQcmVm
ZXJlbmNlczo6YWxsb3dBbmltYXRlZEltYWdlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPnRl
c3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6QWxsb3dBbmltYXRlZEltYWdlcyk7
Cit9CisKK3ZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKGJvb2wg
YWxsb3cpCit7CisgICAgZC0+c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OkFs
bG93QW5pbWF0ZWRJbWFnZXMsIGFsbG93KTsKKyAgICBlbWl0IGFsbG93QW5pbWF0ZWRJbWFnZXND
aGFuZ2VkKCk7Cit9CisKIGJvb2wgUVdlYlByZWZlcmVuY2VzOjpqYXZhc2NyaXB0RW5hYmxlZCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6SmF2YXNjcmlwdEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCmluZGV4IDI5ZGYwNGNlYTViNjA0ZWUyNmM4
NjY3NmNmZTgzNDY1YWI0MDFhZTcuLmNlMjI5MDc2Nzk4NTY0NDBiOTQyOTlmNjE1ZmY0MGVkNGQx
ODFmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlc19wLmgKQEAgLTMyLDYgKzMyLDcgQEAgcHVibGljOgogICAgIH5RV2ViUHJlZmVy
ZW5jZXMoKTsKIAogICAgIFFfUFJPUEVSVFkoYm9vbCBhdXRvTG9hZEltYWdlcyBSRUFEIGF1dG9M
b2FkSW1hZ2VzIFdSSVRFIHNldEF1dG9Mb2FkSW1hZ2VzIE5PVElGWSBhdXRvTG9hZEltYWdlc0No
YW5nZWQgRklOQUwpCisgICAgUV9QUk9QRVJUWShib29sIGFsbG93QW5pbWF0ZWRJbWFnZXMgUkVB
RCBhbGxvd0FuaW1hdGVkSW1hZ2VzIFdSSVRFIHNldEFsbG93QW5pbWF0ZWRJbWFnZXMgTk9USUZZ
IGFsbG93QW5pbWF0ZWRJbWFnZXNDaGFuZ2VkIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoYm9vbCBq
YXZhc2NyaXB0RW5hYmxlZCBSRUFEIGphdmFzY3JpcHRFbmFibGVkIFdSSVRFIHNldEphdmFzY3Jp
cHRFbmFibGVkIE5PVElGWSBqYXZhc2NyaXB0RW5hYmxlZENoYW5nZWQgRklOQUwpCiAgICAgUV9Q
Uk9QRVJUWShib29sIHBsdWdpbnNFbmFibGVkIFJFQUQgcGx1Z2luc0VuYWJsZWQgV1JJVEUgc2V0
UGx1Z2luc0VuYWJsZWQgTk9USUZZIHBsdWdpbnNFbmFibGVkQ2hhbmdlZCBGSU5BTCkKICAgICBR
X1BST1BFUlRZKGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIFJFQUQgb2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIFdSSVRFIHNldE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCBOT1RJRlkgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
Q2hhbmdlZCBGSU5BTCkKQEAgLTU1LDYgKzU2LDkgQEAgcHVibGljOgogICAgIGJvb2wgYXV0b0xv
YWRJbWFnZXMoKSBjb25zdDsKICAgICB2b2lkIHNldEF1dG9Mb2FkSW1hZ2VzKGJvb2wgZW5hYmxl
KTsKIAorICAgIGJvb2wgYWxsb3dBbmltYXRlZEltYWdlcygpIGNvbnN0OworICAgIHZvaWQgc2V0
QWxsb3dBbmltYXRlZEltYWdlcyhib29sIGFsbG93KTsKKwogICAgIGJvb2wgamF2YXNjcmlwdEVu
YWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEphdmFzY3JpcHRFbmFibGVkKGJvb2wgZW5hYmxl
KTsKIApAQCAtMTA4LDYgKzExMiw3IEBAIHB1YmxpYzoKIAogUV9TSUdOQUxTOgogICAgIHZvaWQg
YXV0b0xvYWRJbWFnZXNDaGFuZ2VkKCk7CisgICAgdm9pZCBhbGxvd0FuaW1hdGVkSW1hZ2VzQ2hh
bmdlZCgpOwogICAgIHZvaWQgcGx1Z2luc0VuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBqYXZh
c2NyaXB0RW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZENoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKaW5kZXggZjRlZjEzYzIxY2I4M2M1NDRhNTkx
OGZjNWZkNDliNTI0MjQ3OTEwMC4uM2NmNWM2MjQyNWFiYTQwYTdmNmY5ZTA1YTZmMmY0YTMyNjg1
YjkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcF9wLmgKQEAgLTI5LDYgKzI5LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBX
ZWJBdHRyaWJ1dGUgewogICAgICAgICBBdXRvTG9hZEltYWdlcywKKyAgICAgICAgQWxsb3dBbmlt
YXRlZEltYWdlcywKICAgICAgICAgSmF2YXNjcmlwdEVuYWJsZWQsCiAgICAgICAgIFBsdWdpbnNF
bmFibGVkLAogICAgICAgICBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNjE5ZDFh
MjRhZTA3MzQ4ZjRjMzU1YWQzNjFmNjc2ZGNjNDQxMTBhZC4uN2UwZjc1OTliODAyMWRhMzg4Mzc3
ZTQyYmRiNTUwMjVlYTczMzAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMTg0MCw2ICsxODQwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRh
dGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIAogICAgIHNl
dHRpbmdzLT5zZXRTY3JpcHRFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6amF2YVNjcmlwdEVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRM
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5Ojpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlLZXkoKSkpOworICAgIHNldHRpbmdz
LT5zZXRBbGxvd0FuaW1hdGVkSW1hZ2VzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6YWxsb3dBbmltYXRlZEltYWdlc0tleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNl
dExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1ByZWZlcmVuY2VLZXkoKSkpOwogICAgIHNldHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBsdWdpbnNFbmFi
bGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtleSgpKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDdiZTY4YjVmODUx
YjJlYWJlNTNjNTZlNDY4MTllMGNlMTQ0MTM5MS4uYzgxZjA4MzM5YjI1NjhmNDQ4ZTJhOTgyYzg1
N2QzM2I3MTQyNWJlZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTE2ICBQYWJsbyBGbG91cmV0ICA8cGFi
bG9mQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBBZGQgQWxsb3dBbmltYXRlZEltYWdlcyBwcmVm
ZXJlbmNlL3NldHRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6b3ZlcnJpZGVQcmVmZXJlbmNlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAg
ICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdl
OjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisK
IDIwMTItMDItMTYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgbmV3IFF0IHBlcmZvcm1hbmNlIHRlc3RlciBib3QgdG8gYnVpbGQud2Via2l0Lm9y
ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCBmYjUyY2ZkZTkzNGJhODUwZDg1YzI4ODkzMGFkNjVkZjA4ZTk2YmJmLi4wNzFm
ODViNjY5NGZkZjM5ODk1YTdmMWUxNmIyZGRjMzA4MzhhM2M5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMjM5LDYgKzIz
OSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVU
ZXN0aW5nKCkKICAgICBzZXR0aW5ncy0+c2V0VGV4dFJlZmxvd01vZGUoV2ViU2V0dGluZ3M6OlRl
eHRSZWZsb3dEaXNhYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKHRy
dWUpOwogICAgIHNldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7Cisg
ICAgc2V0dGluZ3MtPnNldEFsbG93QW5pbWF0ZWRJbWFnZXModHJ1ZSk7CiAgICAgc2V0dGluZ3Mt
PnNldEphdmFTY3JpcHRPcGVuV2luZG93c0F1dG9tYXRpY2FsbHkodHJ1ZSk7CiAgICAgc2V0dGlu
Z3MtPnNldFpvb21Ub0ZpdE9uTG9hZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldERlZmF1bHRG
b250U2l6ZSgxNik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNTQyOGVmYzkxZmNmYmY0NDFkNTJjYTVjNWQz
M2NkMGJmNWQ4N2ZhOS4uNzcxMzgzODk0NDMxYzBjMGViMWQ0MGQyNzA4OGUwMTMzYTUxNzQ4MSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcApAQCAtMTQ5Myw2ICsxNDkzLDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LAogICAgICAgICBwcmVmcy0+amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0RGlz
cGxheUltYWdlc0tleSIpCiAgICAgICAgIHByZWZzLT5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkg
PSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdEFs
bG93QW5pbWF0ZWRJbWFnZXNQcmVmZXJlbmNlS2V5IikKKyAgICAgICAgcHJlZnMtPmFsbG93QW5p
bWF0ZWRJbWFnZXMgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKICAgICBlbHNlIGlmIChrZXkg
PT0gIldlYktpdFBsdWdpbnNFbmFibGVkIikKICAgICAgICAgcHJlZnMtPnBsdWdpbnNFbmFibGVk
ID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRE
T01QYXN0ZUFsbG93ZWRQcmVmZXJlbmNlS2V5IikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAzNjUxZjg4ODMxMWY1NTUxNjA4YTZm
MGIzNGY1MGE4ODg4ODdlYzNhLi4xNGQ2NjcwNTVjZGY5MzY5OWY5N2VmOWY0MjhmZGM5YWU4NGNl
MWU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJl
bmNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5j
ZXMuY3BwCkBAIC04NSw2ICs4NSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkKICAg
ICBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKICAgICBqYXZh
U2NyaXB0RW5hYmxlZCA9IHRydWU7CiAgICAgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gdHJ1
ZTsKKyAgICBhbGxvd0FuaW1hdGVkSW1hZ2VzID0gdHJ1ZTsKICAgICBsb2NhbFN0b3JhZ2VFbmFi
bGVkID0gdHJ1ZTsKICAgICBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgPSB0cnVl
OwogICAgIHBsdWdpbnNFbmFibGVkID0gdHJ1ZTsKQEAgLTE5OCw2ICsxOTksNyBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3MtPnNl
dEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVk
KGphdmFTY3JpcHRFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CisgICAgc2V0dGluZ3MtPnNldEFsbG93
QW5pbWF0ZWRJbWFnZXMoYWxsb3dBbmltYXRlZEltYWdlcyk7CiAgICAgc2V0dGluZ3MtPnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQobG9jYWxTdG9yYWdlRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChvZmZsaW5lV2ViQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRQbHVnaW5zRW5hYmxlZChwbHVnaW5zRW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVm
ZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMu
aAppbmRleCAxMzkwOGVjNzk2NGY5MDc5YmU3NWY3YzIwZDYyM2ViOWUwOTQ4ZjU1Li5iYzQ0ZWMy
Y2RkNGNkMjA5YmFmNGMzYjcyNjRiZDExZmYxOGQ0M2FlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0
IFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHk7CiAgICAgYm9vbCBqYXZhU2NyaXB0RW5hYmxlZDsKICAgICBib29sIGxvYWRzSW1h
Z2VzQXV0b21hdGljYWxseTsKKyAgICBib29sIGFsbG93QW5pbWF0ZWRJbWFnZXM7CiAgICAgYm9v
bCBsb2NhbFN0b3JhZ2VFbmFibGVkOwogICAgIGJvb2wgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkOwogICAgIGJvb2wgcGx1Z2luc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggNDc4N2FhNTNiZjhjYzJjMDU3MTJlZWM5ODYy
YmZiYzkwYjI2NjdlMi4uZjAwYmU5N2FiMjZkNTFhZjA4M2JiZDljYjM1NzUyMzNhMzcyOTA1NyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNjI5LDYg
KzYyOSw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQog
ICAgIFtwcmVmZXJlbmNlcyBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQ6WUVT
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpOT107CiAgICAg
W3ByZWZlcmVuY2VzIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOworICAgIFtwcmVm
ZXJlbmNlcyBzZXRBbGxvd3NBbmltYXRlZEltYWdlczpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZTpOT107CiAgICAg
W3ByZWZlcmVuY2VzIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCBkNTQ2Mzg2N2EyY2M2ZDI2NzFmOTQy
NThhMzllZGJiNmY5NmUxODVlLi4xMGI4YmRlYzc2YWZmMDI0MThlNDhkOWNiOGI4MThjNzc0N2Qz
ZGU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApA
QCAtMTg5LDYgKzE4OSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0aW5ncygpCiAgICAgc2V0
dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCk7CiAg
ICAgc2V0dGluZ3MoKS0+cmVzZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKTsKICAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShRV2ViU2V0
dGluZ3M6OkF1dG9Mb2FkSW1hZ2VzKTsKKyAgICBzZXR0aW5ncygpLT5yZXNldEF0dHJpYnV0ZShR
V2ViU2V0dGluZ3M6OkFsbG93QW5pbWF0ZWRJbWFnZXMpOwogICAgIHNldHRpbmdzKCktPnJlc2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5KTsKIAogICAgIG1fZHJ0LT5sYXlv
dXRUZXN0Q29udHJvbGxlcigpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChmYWxzZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAyYjU2ODk1MjUx
M2E5MTg0NTA1MzIzNjFhY2FlZTA0YzBlNWZhM2Y1Li42YmExM2Q5Y2JlZDhjZjgwNTEzNGFlZjJk
MzlmOWU4YWFjMzA0NjE0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVy
VHJlZS5jcHAKQEAgLTg1NSw2ICs4NTUsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9D
b25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZmVy
ZW5jZXMtPnNldFRhYnNUb0xpbmtzKEZBTFNFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0U2hvdWxk
UHJpbnRCYWNrZ3JvdW5kcyhUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0TG9hZHNJbWFnZXNB
dXRvbWF0aWNhbGx5KFRSVUUpOworICAgIHByZWZlcmVuY2VzLT5zZXRBbGxvd0FuaW1hdGVkSW1h
Z2VzKFRSVUUpOwogICAgIHByZWZlcmVuY2VzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRp
dGluZ1dpbkJlaGF2aW9yKTsKIAogICAgIGlmIChwZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2Nh
dGlvbikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGYxNzg3ZTg3NjkyNjAwMjIxNjk0MmViZjRjNTNiOWJkMzVkMDc2Zjcu
LmY5NTA1YTgwMmUxMzU0ZTI4ZjM2YmM2MDI1MjkzMWFiOTUxY2MyODkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0wMi0xNiAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+
CisKKyAgICAgICAgQWRkIEFsbG93QW5pbWF0ZWRJbWFnZXMgcHJlZmVyZW5jZS9zZXR0aW5nLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9pbWFn
ZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1yZWQtYW5pbWF0ZWQuZ2lmOiBBZGRl
ZC4KKwogMjAxMi0wMi0xNiAgUmF1bCBIdWRlYSAgPHJodWRlYUBhZG9iZS5jb20+CiAKICAgICAg
ICAgW0NTU1JlZ2lvbnNdb3ZlcmZsb3dSZWdpb24gdGVzdHMgYXJlIGZsYWt5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlzYWxsb3ctYW5pbWF0ZWQtaW1hZ2Vz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjg2MDg5ODhkNTA5YThkYjIyZjJiYmM1M2U5NTAy
ZmQxMDAyOTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvZGlz
YWxsb3ctYW5pbWF0ZWQtaW1hZ2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0
IHRoYXQgaW1hZ2UgYW5pbWF0aW9uIGNhbiBiZSBkaXNhYmxlZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmdiYVN0cmluZyhnaWZGcmFtZSkgaXMgJzEzNzEwMGZmJwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmltYXRlZC1pbWFnZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Rpc2FsbG93LWFuaW1hdGVkLWltYWdlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRkMDcxM2M3ODVlYjgxZmM0NmUxNWQ0MzdlMThkZjdjYzkzMzlmM2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9kaXNhbGxvdy1hbmlt
YXRlZC1pbWFnZXMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgc3R5bGU9InZpc2liaWxpdHk6
IGhpZGRlbiI+RkFJTDwvY2FudmFzPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB0
aGF0IGltYWdlIGFuaW1hdGlvbiBjYW4gYmUgZGlzYWJsZWQuIik7CisKKyAgICBmdW5jdGlvbiBy
Z2JhU3RyaW5nIChhKSB7CisgICAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUubWFwLmNhbGwo
YSwgKGZ1bmN0aW9uIChuKSB7IHJldHVybiAoIjAwIituLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIp
OyB9KSkuam9pbigiIik7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0QWxsb3dBbmltYXRlZEltYWdlc1ByZWZlcmVuY2VLZXkiLCAwKTsKKworICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIHZhciBpbWFnZSA9IG5ldyBJbWFn
ZSgpOworICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4tcmVkLWFuaW1hdGVkLmdpZj8i
ICsgTWF0aC5yYW5kb20oKTsKKyAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAg
ICAgIHZhciBjb250ZXh0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIikuZ2V0Q29u
dGV4dCgiMmQiKTsKKworICAgICAgICAvLyBUaGUgZ2lmIGlzIG9uZSBmcmFtZSBvZiBncmVlbiBh
bmQgc2V2ZXJhbCBmcmFtZXMgb2YgcmVkLgorICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFn
ZSwgMCwgMCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgICAgICAgICBnaWZGcmFtZSA9
IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpLmRhdGE7CisgICAgICAgICAgICBzaG91
bGRCZSgicmdiYVN0cmluZyhnaWZGcmFtZSkiLCAiJzEzNzEwMGZmJyIpOyAvLyBHcmVlbi4KKwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIDE1MCk7IC8vIEdyZWVuIGZy
YW1lIG9mIEdJRiBoYXMgMTAwbXMgZHVyYXRpb24KKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWFnZSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi1yZWQtYW5pbWF0ZWQu
Z2lmIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLXJlZC1hbmltYXRl
ZC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjZjNDU4YWZjODM4Mjg1MmMyZDgxNjkwOTA0NGFjM2ZiNTdkYTZm
NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgODY3CnpjbVo/d2JoRUhiRy01RGZfYHR2KlQqdj9m
aWElS3h4SXB3ak9YbmIwI31OTUBEfjBxRi1LPkp0YmNIZlFKcCU9ZQp6KCZFZyNiT2xjQGNMbEVp
UzlnVW4zajw5Wmd+SE9yb1huQysxelFENjExPCl8fEo7N0FBO0hkJDBqQEBSMkYjMj0Kel5LP0xs
Z0tUMThHSCZUI2RIT0I/O3lHSnhiI0sxNj1RbkBiQmFkbSVJK3dqVndlMjFFQGxRVjJ6eDYpPGI/
KkI9Cm9lamN2JkJhMSRFXy1MdUtRcGE2ek0+UEJaSWNMLTw7TWZgczY+TXBrSS16MD4wUUA7V0pw
Y2R6CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>
<flag name="review"
          id="133789"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>