<?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>99081</bug_id>
          
          <creation_ts>2012-10-11 09:53:25 -0700</creation_ts>
          <short_desc>[GTK] Add methods to add a user stylesheet to the WebKit2 GTK+ API</short_desc>
          <delta_ts>2013-04-26 16:08:23 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>111265</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>740071</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-11 09:53:25 -0700</bug_when>
    <thetext>Add webkit_settings_get_user_style_sheet_uri() and webkit_settings_set_user_style_sheet_uri()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740079</commentid>
    <comment_count>1</comment_count>
      <attachid>168246</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-11 10:05:26 -0700</bug_when>
    <thetext>Created attachment 168246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740085</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 10:09:19 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740086</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 10:09:38 -0700</bug_when>
    <thetext>Attachment 168246 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h&quot;
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1077:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1079:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740090</commentid>
    <comment_count>4</comment_count>
      <attachid>168246</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-11 10:11:28 -0700</bug_when>
    <thetext>Comment on attachment 168246
Patch

Attachment 168246 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14245979</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740095</commentid>
    <comment_count>5</comment_count>
      <attachid>168246</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-11 10:17:51 -0700</bug_when>
    <thetext>Comment on attachment 168246
Patch

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

Seems reasonable. It&apos;d be nice to get the Apple guys to take a quick look at the new platform-independent WebKit2 parts.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1082
&gt; +    g_object_class_install_property(gObjectClass,
&gt; +                                    PROP_USER_STYLE_SHEET_URI,
&gt; +                                    g_param_spec_string(&quot;user-style-sheet-uri&quot;,
&gt; +                                                        _(&quot;User Style Sheet URI&quot;),
&gt; +                                                        _(&quot;The URI of a style sheet that is applied to every page.&quot;),
&gt; +                                                        0,
&gt; +                                                        readWriteConstructParamFlags));

This can be written as:

g_object_class_install_property(gObjectClass,PROP_USER_STYLE_SHEET_URI, g_param_spec_string(
        &quot;user-style-sheet-uri&quot;,
         _(&quot;User Style Sheet URI&quot;),
         _(&quot;The URI of a style sheet that is applied to every page.&quot;),
         0,
         readWriteConstructParamFlags));

and it&apos;s still fairly readable.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:2755
&gt; +    if (!g_strcmp0(priv-&gt;userStyleSheetURI.data(), uri))

Seems that you can just do:

if (priv-&gt;userStyleSheetURI.data() == uri)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740105</commentid>
    <comment_count>6</comment_count>
      <attachid>168249</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-11 10:26:19 -0700</bug_when>
    <thetext>Created attachment 168249
Try to fix mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740110</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 10:29:12 -0700</bug_when>
    <thetext>Attachment 168249 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h&quot;
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1077:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1079:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740111</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-11 10:29:30 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 168246 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168246&amp;action=review
&gt; 
&gt; Seems reasonable. It&apos;d be nice to get the Apple guys to take a quick look at the new platform-independent WebKit2 parts.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1082
&gt; &gt; +    g_object_class_install_property(gObjectClass,
&gt; &gt; +                                    PROP_USER_STYLE_SHEET_URI,
&gt; &gt; +                                    g_param_spec_string(&quot;user-style-sheet-uri&quot;,
&gt; &gt; +                                                        _(&quot;User Style Sheet URI&quot;),
&gt; &gt; +                                                        _(&quot;The URI of a style sheet that is applied to every page.&quot;),
&gt; &gt; +                                                        0,
&gt; &gt; +                                                        readWriteConstructParamFlags));
&gt; 
&gt; This can be written as:
&gt; 
&gt; g_object_class_install_property(gObjectClass,PROP_USER_STYLE_SHEET_URI, g_param_spec_string(
&gt;         &quot;user-style-sheet-uri&quot;,
&gt;          _(&quot;User Style Sheet URI&quot;),
&gt;          _(&quot;The URI of a style sheet that is applied to every page.&quot;),
&gt;          0,
&gt;          readWriteConstructParamFlags));
&gt; 
&gt; and it&apos;s still fairly readable.

And very inconsistent with the rest of the code in this file and all other files. We should add an exception to the style checker at least for GObject signal and properties declarations. 

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:2755
&gt; &gt; +    if (!g_strcmp0(priv-&gt;userStyleSheetURI.data(), uri))
&gt; 
&gt; Seems that you can just do:
&gt; 
&gt; if (priv-&gt;userStyleSheetURI.data() == uri)

We are using this in all other properties, but I don&apos;t remember why :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740119</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-11 10:37:12 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; And very inconsistent with the rest of the code in this file and all other files. We should add an exception to the style checker at least for GObject signal and properties declarations. 

It seems silly to make an exception for one function just because it takes  along argument string. I&apos;d rather that the rule was changed for everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740126</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-11 10:40:45 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; And very inconsistent with the rest of the code in this file and all other files. We should add an exception to the style checker at least for GObject signal and properties declarations. 
&gt; 
&gt; It seems silly to make an exception for one function just because it takes  along argument string. I&apos;d rather that the rule was changed for everything.

I think consistency in coding style is important, I wouldn&apos;t mind using the new style rule in new files, but I would rather keep the existing style in existing files instead of mixing coding styles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740132</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-10-11 10:48:19 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; I think consistency in coding style is important, I wouldn&apos;t mind using the new style rule in new files, but I would rather keep the existing style in existing files instead of mixing coding styles.

What we do in WebKit typically is that new code follows new style rules, so it&apos;s similar. Perhaps we can figure out a way to make it nicer to declare properties. We could potentially add some helper functions to make the declaration easier to read.

The other thing we could do is try to get the rule changed. I&apos;m not sure they realized how much code followed this style when they made the initial change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740165</commentid>
    <comment_count>12</comment_count>
      <attachid>168249</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-11 12:07:56 -0700</bug_when>
    <thetext>Comment on attachment 168249
Try to fix mac build

Attachment 168249 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14253700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740965</commentid>
    <comment_count>13</comment_count>
      <attachid>168435</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-10-12 09:21:27 -0700</bug_when>
    <thetext>Created attachment 168435
Try to fix win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740969</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 09:27:04 -0700</bug_when>
    <thetext>Attachment 168435 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h&quot;
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1077:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp:1079:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829862</commentid>
    <comment_count>15</comment_count>
      <attachid>168435</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2013-02-11 10:35:50 -0800</bug_when>
    <thetext>Comment on attachment 168435
Try to fix win build

This all looks pretty great to me. I&apos;m fine landing it as it is wrt the style issue, but we should fix it or figure out a way of making it shut up in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829871</commentid>
    <comment_count>16</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-11 10:42:39 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 168435 [details])
&gt; This all looks pretty great to me. I&apos;m fine landing it as it is wrt the style issue, but we should fix it or figure out a way of making it shut up in the future.

This code touches WebKit2 code and needs to be reviewed by a WebKit2 owner. Please don&apos;t r+ WebKit2 patches in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829876</commentid>
    <comment_count>17</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2013-02-11 10:49:23 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; This code touches WebKit2 code and needs to be reviewed by a WebKit2 owner. Please don&apos;t r+ WebKit2 patches in the future.

Ah, yes, forgot about that.

Either way change the r+ for &quot;The GTK+ bits look OK to me&quot;. A quick assessment of whether the core changes would be acceptable or not would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829883</commentid>
    <comment_count>18</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-11 10:53:56 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; This code touches WebKit2 code and needs to be reviewed by a WebKit2 owner. Please don&apos;t r+ WebKit2 patches in the future.

I think we first asked a review from an Apple team member exactly 4 months ago today. Do you mind review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829886</commentid>
    <comment_count>19</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-11 10:54:27 -0800</bug_when>
    <thetext>(In reply to comment #18)

&gt; I think we first asked a review from an Apple team member exactly 4 months ago today. Do you mind review it?

Sorry, do you mind _reviewing_ it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829889</commentid>
    <comment_count>20</comment_count>
      <attachid>168435</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-02-11 10:58:00 -0800</bug_when>
    <thetext>Comment on attachment 168435
Try to fix win build

We already support setting user style sheets via the WKPageGroupAddUserStyleSheet().  I don&apos;t see a reason to add another way in WebPreferencesStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856468</commentid>
    <comment_count>21</comment_count>
      <attachid>193413</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-15 18:49:16 -0700</bug_when>
    <thetext>Created attachment 193413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856552</commentid>
    <comment_count>22</comment_count>
      <attachid>193413</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-16 02:30:35 -0700</bug_when>
    <thetext>Comment on attachment 193413
Patch

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

Thanks! The patch looks good to me in general, I have a just a few questions, though.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:243
&gt; + * webkit_web_view_group_add_user_stylesheet:

I&apos;ve noticed that stylesheet is used as StyleSheet when camelized in many places, should we use style_sheet? I don&apos;t think it&apos;s really important, just wondering, I&apos;m fine with stylesheet.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:258
&gt; +void webkit_web_view_group_add_user_stylesheet(WebKitWebViewGroup* group, const char* source, const char* baseURI, GList* whitelist, GList* blacklist, WebKitInjectedContentFrames injectedFrames)

Can style sheets contain null characters? In such case a char * wouldn&apos;t be appropriate for this API. We could use a GString or even a GInputStream if that is the case. 
Since whitelist and blacklist are immutable and always contain char *, maybe it would be easier to use const GStrv (null-terminated array of strings) using const char * const *, and it would also be consistent with other APIs like webkit_file_chooser_request_select_files, webkit_web_context_set_preferred_languages, etc.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.h:56
&gt; + * @WEBKIT_INJECTED_CONTENT_FRAMES_ALL: Content will be injected all frames.

*into* all frames?

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:103
&gt; +    CString uri = kServer-&gt;getURIForPath(path);

This is unused.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:123
&gt; +        // We must use a wildcard for the host here until http://wkbug.com/112476 is fixed.

Should this be FIXME:?

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:164
&gt; +    g_assert(!stylesheetInjectedForPath(test, randomPath));

Here you could check also that for any other random path the stylesheet is applied.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:179
&gt; +    // It&apos;s important to clean up the environment before other tests.
&gt; +    prepareForNewStylesheetTest(group, &amp;whitelist, &amp;blacklist);

Maybe this should be renamed to something like clearUserStyleSheetData() or something similar, it&apos;s a bit weird that is called prepare for test and you don&apos;t run a test after it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856554</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-16 02:40:01 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Can style sheets contain null characters? In such case a char * wouldn&apos;t be appropriate for this API. We could use a GString or even a GInputStream if that is the case. 
&gt; Since whitelist and blacklist are immutable and always contain char *, maybe it would be easier to use const GStrv (null-terminated array of strings) using const char * const *, and it would also be consistent with other APIs like webkit_file_chooser_request_select_files, webkit_web_context_set_preferred_languages, etc.

Btw, another advantage of using GStrv is that it allows the user to pass a stack allocated array of static strings, without having to convert it into a GList.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856612</commentid>
    <comment_count>24</comment_count>
      <attachid>193445</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-16 13:26:12 -0700</bug_when>
    <thetext>Created attachment 193445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856613</commentid>
    <comment_count>25</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-16 13:30:00 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 193413 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193413&amp;action=review
&gt; 
&gt; Thanks! The patch looks good to me in general, I have a just a few questions, though.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:243
&gt; &gt; + * webkit_web_view_group_add_user_stylesheet:
&gt; 
&gt; I&apos;ve noticed that stylesheet is used as StyleSheet when camelized in many places, should we use style_sheet? I don&apos;t think it&apos;s really important, just wondering, I&apos;m fine with stylesheet.

Sure. Wikipedia seems to use both, but &quot;style sheet&quot; is more common.


&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:258
&gt; &gt; +void webkit_web_view_group_add_user_stylesheet(WebKitWebViewGroup* group, const char* source, const char* baseURI, GList* whitelist, GList* blacklist, WebKitInjectedContentFrames injectedFrames)
&gt; 
&gt; Can style sheets contain null characters? In such case a char * wouldn&apos;t be appropriate for this API. We could use a GString or even a GInputStream if that is the case. 

I&apos;m not entirely certain if style sheets can contain null characters, but the CSS spec allows for using Unicode character escapes, so clients can use them if they really need to include null characters. The WebCore and WebKit2 API all use strings, so char* is very natural.

&gt; Since whitelist and blacklist are immutable and always contain char *, maybe it would be easier to use const GStrv (null-terminated array of strings) using const char * const *, and it would also be consistent with other APIs like webkit_file_chooser_request_select_files, webkit_web_context_set_preferred_languages, etc.

Sure. I was debating using GStrv, but GList* seemed more common in our API. I&apos;ve switched to GStrv. I prefer it as well.
 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.h:56
&gt; &gt; + * @WEBKIT_INJECTED_CONTENT_FRAMES_ALL: Content will be injected all frames.
&gt; 
&gt; *into* all frames?

Fixed. :)
 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:103
&gt; &gt; +    CString uri = kServer-&gt;getURIForPath(path);
&gt; 
&gt; This is unused.

And now it is gone. It was left over from working around the URL pattern matching brokenness.
 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:123
&gt; &gt; +        // We must use a wildcard for the host here until http://wkbug.com/112476 is fixed.
&gt; 
&gt; Should this be FIXME:?

Sure.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:164
&gt; &gt; +    g_assert(!stylesheetInjectedForPath(test, randomPath));
&gt; 
&gt; Here you could check also that for any other random path the stylesheet is applied.

Good idea!
 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp:179
&gt; &gt; +    // It&apos;s important to clean up the environment before other tests.
&gt; &gt; +    prepareForNewStylesheetTest(group, &amp;whitelist, &amp;blacklist);
&gt; 
&gt; Maybe this should be renamed to something like clearUserStyleSheetData() or something similar, it&apos;s a bit weird that is called prepare for test and you don&apos;t run a test after it.

I renamed it to reflect what it does more literally. Should be an improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856690</commentid>
    <comment_count>26</comment_count>
      <attachid>193445</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-17 02:15:55 -0700</bug_when>
    <thetext>Comment on attachment 193445
Patch

Excellent!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856707</commentid>
    <comment_count>27</comment_count>
      <attachid>193445</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-03-17 07:57:33 -0700</bug_when>
    <thetext>Comment on attachment 193445
Patch

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

The API looks good to me!

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:252
&gt; + * Inject an external style sheet into pages. It is possible to only apply to the style sheet
&gt; + * to some URIs by passing non-null values for @whitelist or @blacklist. Passing a %NULL

s/to the style/the style/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859156</commentid>
    <comment_count>28</comment_count>
      <attachid>193445</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-03-20 01:34:31 -0700</bug_when>
    <thetext>Comment on attachment 193445
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewGroup.cpp:249
&gt; + * @injected_frames: a #WebKitInjectedFrames describing to which frames the style_sheet should apply

#WebKitInjectedFrames -&gt; #WebKitInjectedContentFrames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881740</commentid>
    <comment_count>29</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-26 00:50:36 -0700</bug_when>
    <thetext>Patches depending on this one landed already, it&apos;s been reviewed by Gustavo and me, could a WebKit2 owner review this, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881742</commentid>
    <comment_count>30</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-26 00:51:22 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Patches depending on this one landed already, it&apos;s been reviewed by Gustavo and me, could a WebKit2 owner review this, please?

Of course I meant patches blocking this one :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882011</commentid>
    <comment_count>31</comment_count>
      <attachid>193445</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-26 13:26:18 -0700</bug_when>
    <thetext>Comment on attachment 193445
Patch

Okay for WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882066</commentid>
    <comment_count>32</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-26 16:05:10 -0700</bug_when>
    <thetext>Committed r149219: &lt;http://trac.webkit.org/changeset/149219&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882067</commentid>
    <comment_count>33</comment_count>
      <attachid>193445</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-26 16:08:23 -0700</bug_when>
    <thetext>Comment on attachment 193445
Patch

Patch landed, clearing review flag to remove it from review list.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168246</attachid>
            <date>2012-10-11 10:05:26 -0700</date>
            <delta_ts>2012-10-11 10:26:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-user-style-sheet.diff</filename>
            <type>text/plain</type>
            <size>17164</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNjIyMDhjLi45OGM0MzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTItMTAtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCB1c2VyIHN0eWxlIHNoZWV0IHNldHRpbmcgdG8gV2ViS2l0
MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkwODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgdXNlci1zdHlsZS1zaGVldCBzZXR0aW5nIHRvIFdlYktpdFNldHRpbmdzLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRLVVJMVmFsdWVGb3JLZXkpOiBTZXQgS1VSTAorICAgICAg
ICBzZXR0aW5ncyBhcyBzdHJpbmdzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0
b3JlOjpnZXRLVVJMVmFsdWVGb3JLZXkpOiBHZXQgS1VSTAorICAgICAgICBzZXR0aW5ncyBmcm9t
IGEgVVJMIHN0cmluZy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgor
ICAgICAgICAoV2ViS2l0KTogQWRkIFVzZXJTdHlsZVNoZWV0TG9jYXRpb24gc2V0dGluZyBhcyBz
dHJpbmcgc2V0dGluZy4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzU3RvcmUpOiBBZGQgc2V0S1VS
TFZhbHVlRm9yS2V5KCkgYW5kCisgICAgICAgIGdldEtVUkxWYWx1ZUZvcktleSgpLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktp
dFNldHRpbmdzU2V0UHJvcGVydHkpOiBJbXBsZW1lbnQgc2V0dGVyIGZvciB1c2VyLXN0eWxlLXNo
ZWV0CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0
eSk6IEltcGxlbWVudCBnZXR0ZXIgZm9yIHVzZXItc3R5bGUtc2hlZXQKKyAgICAgICAgcHJvcGVy
dHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IEFkZCB1c2VyLXN0eWxl
LXNoZWV0IHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF91c2VyX3N0eWxl
X3NoZWV0X3VyaSk6IFB1YmxpYyBtZXRob2QgdG8gc2V0CisgICAgICAgIHVzZXItc3R5bGUtc2hl
ZXQgcHJvcGVydHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hl
ZXRfdXJpKTogUHVibGljIG1ldGhvZCB0byBnZXQKKyAgICAgICAgdXNlci1zdHlsZS1zaGVldCBw
cm9wZXJ0eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6
IEFkZCBuZXcgc3ltYm9sb3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05V
bWFrZWZpbGUuYW06IEFkZCBiZy1jb2xvci5jc3MKKyAgICAgICAgcmVzb3VyY2UgdG8gRVhUUkFf
RElTVC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGlu
Z3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAgICAgICAgKHRlc3RXZWJL
aXRTZXR0aW5nc1VzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNzczogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJlZmVyZW5jZXM6OnVwZGF0ZUtVUkxWYWx1ZUZvcktleSk6IFVwZGF0ZSBLVVJMCisg
ICAgICAgIHNldHRpbmdzIGFzIHN0cmluZ3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6IEFkZCB1cGRhdGVLVVJMVmFsdWVG
b3JLZXkoKS4KKwogMjAxMi0xMC0xMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRpc2Fi
bGUgZmF2aWNvbnMgaW4gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCmluZGV4IDRmNDliYjcuLjExN2I1ZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKQEAgLTIxMSw0ICsy
MTEsMTQgQEAgZG91YmxlIFdlYlByZWZlcmVuY2VzU3RvcmU6OmdldERvdWJsZVZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAogICAgIHJldHVybiB2YWx1ZUZvcktleShtX2RvdWJs
ZVZhbHVlcywga2V5KTsKIH0KIAorYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRLVVJMVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFdlYkNvcmU6OktVUkwmIHZhbHVlKQor
eworICAgIHJldHVybiBzZXRWYWx1ZUZvcktleShtX3N0cmluZ1ZhbHVlcywga2V5LCB2YWx1ZS5z
dHJpbmcoKSk7Cit9CisKK1dlYkNvcmU6OktVUkwgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0S1VS
TFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAoreworICAgIHJldHVybiBXZWJD
b3JlOjpLVVJMKFdlYkNvcmU6OktVUkwoKSwgdmFsdWVGb3JLZXkobV9zdHJpbmdWYWx1ZXMsIGtl
eSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDFlM2NhNjMuLmI0ZjZmOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0yMDUsNiArMjA2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgRk9S
X0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhE
ZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUsIFN0cmluZywg
U3RyaW5nLCAiSVNPLTg4NTktMSIpIFwKICAgICBtYWNybyhGVFBEaXJlY3RvcnlUZW1wbGF0ZVBh
dGgsIGZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgU3RyaW5nLCBTdHJpbmcsICIiKSBcCisgICAg
bWFjcm8oVXNlclN0eWxlU2hlZXRMb2NhdGlvbiwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbiwgS1VS
TCwgV2ViQ29yZTo6S1VSTCwgIiIpIFwKICAgICBcCiAKIApAQCAtMjQ1LDYgKzI0Nyw5IEBAIHN0
cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlIHsKICAgICBib29sIHNldERvdWJsZVZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgdmFsdWUpOwogICAgIGRvdWJsZSBnZXREb3VibGVW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3Q7CiAKKyAgICBib29sIHNldEtVUkxW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdmFsdWUp
OworICAgIFdlYkNvcmU6OktVUkwgZ2V0S1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
KSBjb25zdDsKKwogICAgIC8vIEZvciBXZWJLaXRUZXN0UnVubmVyIHVzYWdlLgogICAgIHN0YXRp
YyB2b2lkIG92ZXJyaWRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZh
bHVlKTsKICAgICBzdGF0aWMgdm9pZCByZW1vdmVUZXN0UnVubmVyT3ZlcnJpZGVzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAK
aW5kZXggMTdkNGM4OC4uNmE2NzQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcApAQCAtNTAsNiArNTAsNyBAQCBzdHJ1Y3Qg
X1dlYktpdFNldHRpbmdzUHJpdmF0ZSB7CiAgICAgQ1N0cmluZyBwaWN0b2dyYXBoRm9udEZhbWls
eTsKICAgICBDU3RyaW5nIGRlZmF1bHRDaGFyc2V0OwogICAgIENTdHJpbmcgdXNlckFnZW50Owor
ICAgIENTdHJpbmcgdXNlclN0eWxlU2hlZXRVUkk7CiAgICAgYm9vbCBhbGxvd01vZGFsRGlhbG9n
czsKICAgICBib29sIHpvb21UZXh0T25seTsKIH07CkBAIC0xMTksNyArMTIwLDggQEAgZW51bSB7
CiAgICAgUFJPUF9FTkFCTEVfU0lURV9TUEVDSUZJQ19RVUlSS1MsCiAgICAgUFJPUF9FTkFCTEVf
UEFHRV9DQUNIRSwKICAgICBQUk9QX1VTRVJfQUdFTlQsCi0gICAgUFJPUF9FTkFCTEVfU01PT1RI
X1NDUk9MTElORworICAgIFBST1BfRU5BQkxFX1NNT09USF9TQ1JPTExJTkcsCisgICAgUFJPUF9V
U0VSX1NUWUxFX1NIRUVUX1VSSQogfTsKIAogc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1
ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQpAQCAtMjU2LDYgKzI1OCw5IEBAIHN0YXRpYyB2b2lk
IHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQs
IGNvbnN0IEdWYWx1CiAgICAgY2FzZSBQUk9QX0VOQUJMRV9TTU9PVEhfU0NST0xMSU5HOgogICAg
ICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nKHNldHRpbmdz
LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UFJPUF9VU0VSX1NUWUxFX1NIRUVUX1VSSToKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF91
c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncywgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7
CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICAgICAgYnJl
YWs7CkBAIC0zOTYsNiArNDAxLDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAgICBjYXNl
IFBST1BfRU5BQkxFX1NNT09USF9TQ1JPTExJTkc6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4odmFsdWUsIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3Ntb290aF9zY3JvbGxpbmcoc2V0
dGluZ3MpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1VTRVJfU1RZTEVfU0hFRVRf
VVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF9zZXR0aW5nc19n
ZXRfdXNlcl9zdHlsZV9zaGVldF91cmkoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVj
dCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTEwNjAsNiArMTA2OCwx
OSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5n
c0NsYXNzKiBrbGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOwog
CisgICAgLyoqCisgICAgICogV2ViS2l0U2V0dGluZ3M6dXNlci1zdHlsZS1zaGVldC11cmk6Cisg
ICAgICoKKyAgICAgKiBUaGUgVVJJIG9mIGEgc3R5bGUgc2hlZXQgdGhhdCBpcyBhcHBsaWVkIHRv
IGV2ZXJ5IHBhZ2UuCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShnT2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9Q
X1VTRVJfU1RZTEVfU0hFRVRfVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX3N0cmluZygidXNlci1zdHlsZS1zaGVldC11cmkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVc2VyIFN0
eWxlIFNoZWV0IFVSSSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJUaGUgVVJJIG9mIGEgc3R5bGUgc2hlZXQgdGhhdCBpcyBhcHBs
aWVkIHRvIGV2ZXJ5IHBhZ2UuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsK
KwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFNldHRp
bmdzUHJpdmF0ZSkpOwogfQogCkBAIC0yNzAwLDMgKzI3MjEsNDIgQEAgdm9pZCB3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nKFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cywgZ2Jvb2wKICAgICBXZWJLaXQ6OnRvSW1wbChwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSktPnNl
dFNjcm9sbEFuaW1hdG9yRW5hYmxlZChlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXNtb290aC1zY3JvbGxpbmciKTsKIH0KKworLyoqCisg
KiB3ZWJraXRfc2V0dGluZ3NfZ2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpOgorICogQHNldHRpbmdz
OiBhICNXZWJLaXRTZXR0aW5ncworICoKKyAqIEdldCB0aGUgI1dlYktpdFNldHRpbmdzOnVzZXIt
c3R5bGUtc2hlZXQtdXJpIHByb3BlcnR5LgorICoKKyAqIFJldHVybnM6IHRoZSBVUkkgb2YgYSBz
dHlsZSBzaGVldCB0aGF0IGlzIGFwcGxpZWQgdG8gZXZlcnkgcGFnZSBvciAlTlVMTCBpZgorICog
ICAgbm8gdXNlciBzdHlsZSBzaGVldCBVUkkgaGFzIGJlZW4gc2V0LgorICovCitjb25zdCBjaGFy
KiB3ZWJraXRfc2V0dGluZ3NfZ2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpKFdlYktpdFNldHRpbmdz
KiBzZXR0aW5ncykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElO
R1Moc2V0dGluZ3MpLCAwKTsKKworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+dXNlclN0eWxl
U2hlZXRVUkkuZGF0YSgpOworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9z
dHlsZV9zaGVldF91cmk6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKiBAdXJp
OiAoYWxsb3ctbm9uZSk6IHRoZSB1c2VyIHN0eWxlIHNoZWV0IFVSSSB0byBzZXQsIG9yICVOVUxM
IHRvIHJlc2V0IGl0CisgKgorICogU2V0IEB1cmkgYXMgdGhlIHN0eWxlIHNoZWV0IHRvIGJlIGFw
cGxpZWQgdG8gZXZlcnkgcGFnZS4gVGhlIFVSSSBtdXN0IGJlIGNvbnNpZGVyZWQKKyAqIGxvY2Fs
IChzZWUgd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19sb2NhbCgpKSwgYSBi
YXNlNjQtZW5jb2RlZCBVVEYtOAorICogZGF0YSBVUkksIG9yICVOVUxMIHRvIHJlc2V0IHRoZSB1
c2VyIHN0eWxlIHNoZWV0LgorICovCit2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9zdHls
ZV9zaGVldF91cmkoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyKiB1cmkpCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKKwor
ICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9IHNldHRpbmdzLT5wcml2OworICAgIGlm
ICghZ19zdHJjbXAwKHByaXYtPnVzZXJTdHlsZVNoZWV0VVJJLmRhdGEoKSwgdXJpKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV2ViQ29yZTo6S1VSTCB1c2VyU3R5bGVTaGVldExvY2F0aW9uID0g
V2ViQ29yZTo6S1VSTChXZWJDb3JlOjpLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSk7Cisg
ICAgV2ViS2l0Ojp0b0ltcGwocHJpdi0+cHJlZmVyZW5jZXMuZ2V0KCkpLT5zZXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uKHVzZXJTdHlsZVNoZWV0TG9jYXRpb24pOworICAgIHByaXYtPnVzZXJTdHls
ZVNoZWV0VVJJID0gdXNlclN0eWxlU2hlZXRMb2NhdGlvbi5zdHJpbmcoKS51dGY4KCk7CisgICAg
Z19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRpbmdzKSwgInVzZXItc3R5bGUtc2hlZXQtdXJp
Iik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0
dGluZ3MuaAppbmRleCBhOWZlODZhLi45Yzk3ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKQEAgLTM4MCw2ICszODAsMTMgQEAg
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xs
aW5nICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdib29sZWFuICAgICAgICBlbmFibGVkKTsKIAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3
ZWJraXRfc2V0dGluZ3NfZ2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJr
aXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICp1cmkp
OworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjU2MjY3Yi4uMDdiZGJjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CkBAIC0yOTksNiArMjk5LDggQEAgd2Via2l0X3NldHRpbmdzX3NldF91c2Vy
X2FnZW50CiB3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfYWdlbnRfd2l0aF9hcHBsaWNhdGlvbl9k
ZXRhaWxzCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nCiB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nCit3ZWJraXRfc2V0dGluZ3Nf
Z2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpCit3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVf
c2hlZXRfdXJpCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0U2V0dGluZ3NDbGFzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05VbWFr
ZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtl
ZmlsZS5hbQppbmRleCAwNmVhMWFmLi43Y2MxZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQpAQCAtNzYsMTAgKzc2
LDExIEBAIExpYnJhcmllc19saWJXZWJLaXQyQVBJVGVzdENvcmVfbGFfU09VUkNFUyA9IFwKIExp
YnJhcmllc19saWJXZWJLaXQyQVBJVGVzdENvcmVfbGFfQ1BQRkxBR1MgPSAkKHdlYmtpdDJfdGVz
dHNfY3BwZmxhZ3MpCiAKIEVYVFJBX0RJU1QgKz0gXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL3Jlc291cmNlcy9iZy1jb2xvci5jc3MgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jlc291cmNlcy9saW5rLXRpdGxlLmpzIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvdGVzdC1jZXJ0LnBl
bSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL3Rl
c3Qta2V5LnBlbSBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVz
b3VyY2VzL3dlYmtpdDJndGstdGVzdHMuZ3Jlc291cmNlLnhtbCBcCi0JU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2xpbmstdGl0bGUuanMKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvd2Via2l0Mmd0ay10ZXN0
cy5ncmVzb3VyY2UueG1sCiAKIFByb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0V2ViS2l0V2Vi
Q29udGV4dF9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKaW5k
ZXggYzdhMGRjMi4uZDZkMzNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNDgs
NiArMjQ4LDExIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRTZXR0aW5ncyhUZXN0KiwgZ2NvbnN0
cG9pbnRlcikKICAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5n
KHNldHRpbmdzLCBUUlVFKTsKICAgICBnX2Fzc2VydCh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJs
ZV9zbW9vdGhfc2Nyb2xsaW5nKHNldHRpbmdzKSk7CiAKKyAgICAvLyBCeSBkZWZhdWx0LCB0aGVy
ZSBpc24ndCBhIHVzZXIgc3R5bGUgc2hlZXQuCisgICAgZ19hc3NlcnQoIXdlYmtpdF9zZXR0aW5n
c19nZXRfdXNlcl9zdHlsZV9zaGVldF91cmkoc2V0dGluZ3MpKTsKKyAgICB3ZWJraXRfc2V0dGlu
Z3Nfc2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpKHNldHRpbmdzLCAiZmlsZTovL3BhdGgvdG8vc3R5
bGUuY3NzIik7CisgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9z
dHlsZV9zaGVldF91cmkoc2V0dGluZ3MpLCA9PSwgImZpbGU6Ly9wYXRoL3RvL3N0eWxlLmNzcyIp
OworCiAgICAgZ19vYmplY3RfdW5yZWYoR19PQkpFQ1Qoc2V0dGluZ3MpKTsKIH0KIApAQCAtMzEz
LDYgKzMxOCw0NSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0U2V0dGluZ3NVc2VyQWdlbnQoV2Vi
Vmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQoZ19zdHJzdHJfbGVu
KG5ld1VzZXJBZ2VudCwgLTEsICJXZWJDYXRHVEsrIikpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0
V2ViS2l0U2V0dGluZ3NVc2VyU3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9p
bnRlcikKK3sKKyAgICBXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3NldHRpbmdzKHRlc3QtPm1fd2ViVmlldyk7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1s
Pjxib2R5IHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9yOiByZWQnPlRlc3Q8L2JvZHk+PC9odG1sPiIs
IDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgLy8gTm8gdXNl
ciBzdHlsZSBzaGVldC4KKyAgICBzdGF0aWMgY29uc3QgY2hhcioganNCYWNrZ3JvdW5kQ29sb3JR
dWVyeSA9ICJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5LCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykiOworICAgIFdlYktpdEphdmFzY3JpcHRS
ZXN1bHQqIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGls
RmluaXNoZWQoanNCYWNrZ3JvdW5kQ29sb3JRdWVyeSwgMCk7CisgICAgR093blB0cjxjaGFyPiB2
YWx1ZVN0cmluZyhXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2Ny
aXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwg
InJnYigyNTUsIDAsIDApIik7CisKKyAgICAvLyBGaWxlIFVSSSB1c2VyIHN0eWxlIHNoZWV0Lgor
ICAgIEdPd25QdHI8Y2hhcj4gc3R5bGVDU1NQYXRoKGdfYnVpbGRfZmlsZW5hbWUoVGVzdDo6Z2V0
UmVzb3VyY2VzRGlyKCkuZGF0YSgpLCAiYmctY29sb3IuY3NzIiwgTlVMTCkpOworICAgIEdPd25Q
dHI8Y2hhcj4gc3R5bGVDU1NVUkkoZ19maWxlbmFtZV90b191cmkoc3R5bGVDU1NQYXRoLmdldCgp
LCAwLCAwKSk7CisgICAgd2Via2l0X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShz
ZXR0aW5ncywgc3R5bGVDU1NVUkkuZ2V0KCkpOworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0
LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoanNCYWNrZ3JvdW5kQ29sb3JRdWVy
eSwgMCk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgdmFsdWVTdHJpbmcu
c2V0KFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1
bHQpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAicmdiKDAs
IDEyOCwgMCkiKTsKKworICAgIC8vIERhdGEgVVJJIHVzZXIgc3R5bGUgc2hlZXQuCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN0eWxlQ1NTID0gImJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
ICFpbXBvcnRhbnQ7IH0iOworICAgIEdPd25QdHI8Y2hhcj4gYmFzZTY0Q1NTKGdfYmFzZTY0X2Vu
Y29kZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihzdHlsZUNTUyksIHN0
cmxlbihzdHlsZUNTUykpKTsKKyAgICBzdHlsZUNTU1VSSS5zZXQoZ19zdHJkdXBfcHJpbnRmKCJk
YXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCVzIiwgYmFzZTY0Q1NTLmdldCgpKSk7
CisgICAgd2Via2l0X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncywg
c3R5bGVDU1NVUkkuZ2V0KCkpOworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZh
U2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoanNCYWNrZ3JvdW5kQ29sb3JRdWVyeSwgMCk7Cisg
ICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgdmFsdWVTdHJpbmcuc2V0KFdlYlZp
ZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQpKTsKKyAg
ICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAicmdiKDAsIDAsIDI1NSki
KTsKKworICAgIC8vIFJlc2V0IHVzZXIgc3R5bGUgc2hlZXQuCisgICAgd2Via2l0X3NldHRpbmdz
X3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncywgMCk7CisgICAgamF2YXNjcmlwdFJl
c3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChqc0JhY2tncm91
bmRDb2xvclF1ZXJ5LCAwKTsKKyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICB2
YWx1ZVN0cmluZy5zZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2
YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwg
PT0sICJyZ2IoMjU1LCAwLCAwKSIpOworfQorCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhT
b3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRo
LCBHSGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCBncG9pbnRlcikKIHsKICAgICBpZiAo
bWVzc2FnZS0+bWV0aG9kICE9IFNPVVBfTUVUSE9EX0dFVCkgewpAQCAtMzM3LDYgKzM4MSw3IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICAgICBUZXN0OjphZGQoIldlYktpdFNldHRpbmdzIiwgIndlYmtp
dC1zZXR0aW5ncyIsIHRlc3RXZWJLaXRTZXR0aW5ncyk7CiAgICAgVGVzdDo6YWRkKCJXZWJLaXRT
ZXR0aW5ncyIsICJuZXctd2l0aC1zZXR0aW5ncyIsIHRlc3RXZWJLaXRTZXR0aW5nc05ld1dpdGhT
ZXR0aW5ncyk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0U2V0dGluZ3MiLCAidXNlci1h
Z2VudCIsIHRlc3RXZWJLaXRTZXR0aW5nc1VzZXJBZ2VudCk7CisgICAgV2ViVmlld1Rlc3Q6OmFk
ZCgiV2ViS2l0U2V0dGluZ3MiLCAidXNlci1zdHlsZS1zaGVldCIsIHRlc3RXZWJLaXRTZXR0aW5n
c1VzZXJTdHlsZVNoZWV0KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvYmctY29sb3IuY3Nz
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNv
bG9yLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmRhN2ViCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVz
b3VyY2VzL2JnLWNvbG9yLmNzcwpAQCAtMCwwICsxLDMgQEAKK2JvZHkgeworICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggY2Ew
MGJiOS4uMzkyMDQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGVEb3Vi
bGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQogICAgIHVwZGF0
ZSgpOyAvLyBGSVhNRTogT25seSBzZW5kIG92ZXIgdGhlIGNoYW5nZWQga2V5IGFuZCB2YWx1ZS4K
IH0KIAordm9pZCBXZWJQcmVmZXJlbmNlczo6dXBkYXRlS1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBXZWJDb3JlOjpLVVJMJiB2YWx1ZSkKK3sKKyAgICB1cGRhdGVTdHJp
bmdWYWx1ZUZvcktleShrZXksIHZhbHVlLnN0cmluZygpKTsKK30KKwogI2RlZmluZSBERUZJTkVf
UFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMoS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFt
ZSwgVHlwZSwgRGVmYXVsdFZhbHVlKSBcCiAgICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0IyNL
ZXlVcHBlcihjb25zdCBUeXBlJiB2YWx1ZSkgXAogICAgIHsgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAppbmRleCA4MWQ5NTgwLi4zZGZmZTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaApAQCAtOTIsNiArOTIsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBi
b29sIHZhbHVlKTsKICAgICB2b2lkIHVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCB1aW50MzJfdCB2YWx1ZSk7CiAgICAgdm9pZCB1cGRhdGVEb3VibGVWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKTsKKyAgICB2b2lkIHVwZGF0ZUtVUkxW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdmFsdWUp
OwogICAgIHZvaWQgcGxhdGZvcm1VcGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0Zm9ybVVwZGF0ZUJvb2xW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0
Zm9ybVVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2
YWx1ZSk7Cg==
</data>
<flag name="commit-queue"
          id="181175"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168249</attachid>
            <date>2012-10-11 10:26:19 -0700</date>
            <delta_ts>2012-10-12 09:21:27 -0700</delta_ts>
            <desc>Try to fix mac build</desc>
            <filename>wk2-user-style-sheet2.diff</filename>
            <type>text/plain</type>
            <size>17941</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNjIyMDhjLi44ZWQwNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTItMTAtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCB1c2VyIHN0eWxlIHNoZWV0IHNldHRpbmcgdG8gV2ViS2l0
MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkwODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgdXNlci1zdHlsZS1zaGVldCBzZXR0aW5nIHRvIFdlYktpdFNldHRpbmdzLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRLVVJMVmFsdWVGb3JLZXkpOiBTZXQgS1VSTAorICAgICAg
ICBzZXR0aW5ncyBhcyBzdHJpbmdzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0
b3JlOjpnZXRLVVJMVmFsdWVGb3JLZXkpOiBHZXQgS1VSTAorICAgICAgICBzZXR0aW5ncyBmcm9t
IGEgVVJMIHN0cmluZy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgor
ICAgICAgICAoV2ViS2l0KTogQWRkIFVzZXJTdHlsZVNoZWV0TG9jYXRpb24gc2V0dGluZyBhcyBz
dHJpbmcgc2V0dGluZy4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzU3RvcmUpOiBBZGQgc2V0S1VS
TFZhbHVlRm9yS2V5KCkgYW5kCisgICAgICAgIGdldEtVUkxWYWx1ZUZvcktleSgpLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktp
dFNldHRpbmdzU2V0UHJvcGVydHkpOiBJbXBsZW1lbnQgc2V0dGVyIGZvciB1c2VyLXN0eWxlLXNo
ZWV0CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0
eSk6IEltcGxlbWVudCBnZXR0ZXIgZm9yIHVzZXItc3R5bGUtc2hlZXQKKyAgICAgICAgcHJvcGVy
dHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IEFkZCB1c2VyLXN0eWxl
LXNoZWV0IHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF91c2VyX3N0eWxl
X3NoZWV0X3VyaSk6IFB1YmxpYyBtZXRob2QgdG8gc2V0CisgICAgICAgIHVzZXItc3R5bGUtc2hl
ZXQgcHJvcGVydHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hl
ZXRfdXJpKTogUHVibGljIG1ldGhvZCB0byBnZXQKKyAgICAgICAgdXNlci1zdHlsZS1zaGVldCBw
cm9wZXJ0eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6
IEFkZCBuZXcgc3ltYm9sb3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05V
bWFrZWZpbGUuYW06IEFkZCBiZy1jb2xvci5jc3MKKyAgICAgICAgcmVzb3VyY2UgdG8gRVhUUkFf
RElTVC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGlu
Z3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAgICAgICAgKHRlc3RXZWJL
aXRTZXR0aW5nc1VzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNzczogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJlZmVyZW5jZXM6OnVwZGF0ZUtVUkxWYWx1ZUZvcktleSk6IFVwZGF0ZSBLVVJMCisg
ICAgICAgIHNldHRpbmdzIGFzIHN0cmluZ3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6IEFkZCB1cGRhdGVLVVJMVmFsdWVG
b3JLZXkoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2VzTWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpzZXRLVVJMVmFsdWVJZkluVXNlckRlZmF1bHRzKToKKwogMjAxMi0x
MC0xMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRpc2FibGUgZmF2aWNvbnMgaW4gV2Vi
S2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuY3BwCmluZGV4IDRmNDliYjcuLjExN2I1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKQEAgLTIxMSw0ICsyMTEsMTQgQEAgZG91YmxlIFdl
YlByZWZlcmVuY2VzU3RvcmU6OmdldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
KSBjb25zdAogICAgIHJldHVybiB2YWx1ZUZvcktleShtX2RvdWJsZVZhbHVlcywga2V5KTsKIH0K
IAorYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRLVVJMVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFdlYkNvcmU6OktVUkwmIHZhbHVlKQoreworICAgIHJldHVybiBzZXRW
YWx1ZUZvcktleShtX3N0cmluZ1ZhbHVlcywga2V5LCB2YWx1ZS5zdHJpbmcoKSk7Cit9CisKK1dl
YkNvcmU6OktVUkwgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0S1VSTFZhbHVlRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5KSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpLVVJMKFdlYkNvcmU6
OktVUkwoKSwgdmFsdWVGb3JLZXkobV9zdHJpbmdWYWx1ZXMsIGtleSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oCmluZGV4IDFlM2NhNjMuLmI0ZjZmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQXJndW1l
bnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9LVVJMLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0yMDUs
NiArMjA2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRf
RkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhEZWZhdWx0VGV4dEVuY29kaW5n
TmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUsIFN0cmluZywgU3RyaW5nLCAiSVNPLTg4NTkt
MSIpIFwKICAgICBtYWNybyhGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgsIGZ0cERpcmVjdG9yeVRl
bXBsYXRlUGF0aCwgU3RyaW5nLCBTdHJpbmcsICIiKSBcCisgICAgbWFjcm8oVXNlclN0eWxlU2hl
ZXRMb2NhdGlvbiwgdXNlclN0eWxlU2hlZXRMb2NhdGlvbiwgS1VSTCwgV2ViQ29yZTo6S1VSTCwg
IiIpIFwKICAgICBcCiAKIApAQCAtMjQ1LDYgKzI0Nyw5IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNl
c1N0b3JlIHsKICAgICBib29sIHNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
LCBkb3VibGUgdmFsdWUpOwogICAgIGRvdWJsZSBnZXREb3VibGVWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmIGtleSkgY29uc3Q7CiAKKyAgICBib29sIHNldEtVUkxWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdmFsdWUpOworICAgIFdlYkNvcmU6OktV
UkwgZ2V0S1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKKwogICAgIC8v
IEZvciBXZWJLaXRUZXN0UnVubmVyIHVzYWdlLgogICAgIHN0YXRpYyB2b2lkIG92ZXJyaWRlQm9v
bFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKTsKICAgICBzdGF0aWMg
dm9pZCByZW1vdmVUZXN0UnVubmVyT3ZlcnJpZGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggMTdkNGM4OC4uNmE2
NzQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFNldHRpbmdzLmNwcApAQCAtNTAsNiArNTAsNyBAQCBzdHJ1Y3QgX1dlYktpdFNldHRpbmdzUHJp
dmF0ZSB7CiAgICAgQ1N0cmluZyBwaWN0b2dyYXBoRm9udEZhbWlseTsKICAgICBDU3RyaW5nIGRl
ZmF1bHRDaGFyc2V0OwogICAgIENTdHJpbmcgdXNlckFnZW50OworICAgIENTdHJpbmcgdXNlclN0
eWxlU2hlZXRVUkk7CiAgICAgYm9vbCBhbGxvd01vZGFsRGlhbG9nczsKICAgICBib29sIHpvb21U
ZXh0T25seTsKIH07CkBAIC0xMTksNyArMTIwLDggQEAgZW51bSB7CiAgICAgUFJPUF9FTkFCTEVf
U0lURV9TUEVDSUZJQ19RVUlSS1MsCiAgICAgUFJPUF9FTkFCTEVfUEFHRV9DQUNIRSwKICAgICBQ
Uk9QX1VTRVJfQUdFTlQsCi0gICAgUFJPUF9FTkFCTEVfU01PT1RIX1NDUk9MTElORworICAgIFBS
T1BfRU5BQkxFX1NNT09USF9TQ1JPTExJTkcsCisgICAgUFJPUF9VU0VSX1NUWUxFX1NIRUVUX1VS
SQogfTsKIAogc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFy
YW1TcGVjKQpAQCAtMjU2LDYgKzI1OCw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzU2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1CiAgICAg
Y2FzZSBQUk9QX0VOQUJMRV9TTU9PVEhfU0NST0xMSU5HOgogICAgICAgICB3ZWJraXRfc2V0dGlu
Z3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nKHNldHRpbmdzLCBnX3ZhbHVlX2dldF9ib29s
ZWFuKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9VU0VSX1NUWUxFX1NI
RUVUX1VSSToKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3Vy
aShzZXR0aW5ncywgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChv
YmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC0zOTYsNiArNDAx
LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWwKICAgICBjYXNlIFBST1BfRU5BQkxFX1NNT09U
SF9TQ1JPTExJTkc6CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF9z
ZXR0aW5nc19nZXRfZW5hYmxlX3Ntb290aF9zY3JvbGxpbmcoc2V0dGluZ3MpKTsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQUk9QX1VTRVJfU1RZTEVfU0hFRVRfVVJJOgorICAgICAgICBnX3Zh
bHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVl
dF91cmkoc2V0dGluZ3MpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTEwNjAsNiArMTA2OCwxOSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRTZXR0aW5nc0NsYXNzKiBrbGFzcykKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVhZFdyaXRlQ29uc3RydWN0UGFyYW1GbGFncykpOwogCisgICAgLyoqCisgICAgICog
V2ViS2l0U2V0dGluZ3M6dXNlci1zdHlsZS1zaGVldC11cmk6CisgICAgICoKKyAgICAgKiBUaGUg
VVJJIG9mIGEgc3R5bGUgc2hlZXQgdGhhdCBpcyBhcHBsaWVkIHRvIGV2ZXJ5IHBhZ2UuCisgICAg
ICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1VTRVJfU1RZTEVfU0hFRVRf
VVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygidXNlci1zdHlsZS1zaGVldC11cmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVc2VyIFN0eWxlIFNoZWV0IFVSSSIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJUaGUgVVJJIG9mIGEgc3R5bGUgc2hlZXQgdGhhdCBpcyBhcHBsaWVkIHRvIGV2ZXJ5IHBhZ2Uu
IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpKTsKKwogICAgIGdfdHlwZV9jbGFz
c19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFNldHRpbmdzUHJpdmF0ZSkpOwogfQog
CkBAIC0yNzAwLDMgKzI3MjEsNDIgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9z
bW9vdGhfc2Nyb2xsaW5nKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2wKICAgICBXZWJL
aXQ6OnRvSW1wbChwcml2LT5wcmVmZXJlbmNlcy5nZXQoKSktPnNldFNjcm9sbEFuaW1hdG9yRW5h
YmxlZChlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAi
ZW5hYmxlLXNtb290aC1zY3JvbGxpbmciKTsKIH0KKworLyoqCisgKiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpOgorICogQHNldHRpbmdzOiBhICNXZWJLaXRTZXR0aW5n
cworICoKKyAqIEdldCB0aGUgI1dlYktpdFNldHRpbmdzOnVzZXItc3R5bGUtc2hlZXQtdXJpIHBy
b3BlcnR5LgorICoKKyAqIFJldHVybnM6IHRoZSBVUkkgb2YgYSBzdHlsZSBzaGVldCB0aGF0IGlz
IGFwcGxpZWQgdG8gZXZlcnkgcGFnZSBvciAlTlVMTCBpZgorICogICAgbm8gdXNlciBzdHlsZSBz
aGVldCBVUkkgaGFzIGJlZW4gc2V0LgorICovCitjb25zdCBjaGFyKiB3ZWJraXRfc2V0dGluZ3Nf
Z2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCAwKTsK
KworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+dXNlclN0eWxlU2hlZXRVUkkuZGF0YSgpOwor
fQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9zdHlsZV9zaGVldF91cmk6Cisg
KiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKiBAdXJpOiAoYWxsb3ctbm9uZSk6IHRo
ZSB1c2VyIHN0eWxlIHNoZWV0IFVSSSB0byBzZXQsIG9yICVOVUxMIHRvIHJlc2V0IGl0CisgKgor
ICogU2V0IEB1cmkgYXMgdGhlIHN0eWxlIHNoZWV0IHRvIGJlIGFwcGxpZWQgdG8gZXZlcnkgcGFn
ZS4gVGhlIFVSSSBtdXN0IGJlIGNvbnNpZGVyZWQKKyAqIGxvY2FsIChzZWUgd2Via2l0X3NlY3Vy
aXR5X21hbmFnZXJfdXJpX3NjaGVtZV9pc19sb2NhbCgpKSwgYSBiYXNlNjQtZW5jb2RlZCBVVEYt
OAorICogZGF0YSBVUkksIG9yICVOVUxMIHRvIHJlc2V0IHRoZSB1c2VyIHN0eWxlIHNoZWV0Lgor
ICovCit2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9zdHlsZV9zaGVldF91cmkoV2ViS2l0
U2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKKworICAgIFdlYktpdFNldHRpbmdz
UHJpdmF0ZSogcHJpdiA9IHNldHRpbmdzLT5wcml2OworICAgIGlmICghZ19zdHJjbXAwKHByaXYt
PnVzZXJTdHlsZVNoZWV0VVJJLmRhdGEoKSwgdXJpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViQ29yZTo6S1VSTCB1c2VyU3R5bGVTaGVldExvY2F0aW9uID0gV2ViQ29yZTo6S1VSTChXZWJD
b3JlOjpLVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSk7CisgICAgV2ViS2l0Ojp0b0ltcGwo
cHJpdi0+cHJlZmVyZW5jZXMuZ2V0KCkpLT5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKHVzZXJT
dHlsZVNoZWV0TG9jYXRpb24pOworICAgIHByaXYtPnVzZXJTdHlsZVNoZWV0VVJJID0gdXNlclN0
eWxlU2hlZXRMb2NhdGlvbi5zdHJpbmcoKS51dGY4KCk7CisgICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKHNldHRpbmdzKSwgInVzZXItc3R5bGUtc2hlZXQtdXJpIik7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCBhOWZl
ODZhLi45Yzk3ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmgKQEAgLTM4MCw2ICszODAsMTMgQEAgV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBl
bmFibGVkKTsKIAorV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfc2V0dGluZ3NfZ2V0
X3VzZXJfc3R5bGVfc2hlZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGlu
Z3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X3Vz
ZXJfc3R5bGVfc2hlZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3Mg
KnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICp1cmkpOworCiBHX0VORF9ERUNMUwog
CiAjZW5kaWYgLyogV2ViS2l0U2V0dGluZ3NfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQK
aW5kZXggZjU2MjY3Yi4uMDdiZGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0y
OTksNiArMjk5LDggQEAgd2Via2l0X3NldHRpbmdzX3NldF91c2VyX2FnZW50CiB3ZWJraXRfc2V0
dGluZ3Nfc2V0X3VzZXJfYWdlbnRfd2l0aF9hcHBsaWNhdGlvbl9kZXRhaWxzCiB3ZWJraXRfc2V0
dGluZ3NfZ2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9zbW9vdGhfc2Nyb2xsaW5nCit3ZWJraXRfc2V0dGluZ3NfZ2V0X3VzZXJfc3R5bGVfc2hl
ZXRfdXJpCit3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpCiAKIDxTVUJT
RUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0U2V0dGluZ3NDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQppbmRleCAwNmVh
MWFmLi43Y2MxZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbQpAQCAtNzYsMTAgKzc2LDExIEBAIExpYnJhcmllc19s
aWJXZWJLaXQyQVBJVGVzdENvcmVfbGFfU09VUkNFUyA9IFwKIExpYnJhcmllc19saWJXZWJLaXQy
QVBJVGVzdENvcmVfbGFfQ1BQRkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfY3BwZmxhZ3MpCiAKIEVY
VFJBX0RJU1QgKz0gXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jl
c291cmNlcy9iZy1jb2xvci5jc3MgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3Rlc3RzL3Jlc291cmNlcy9saW5rLXRpdGxlLmpzIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvdGVzdC1jZXJ0LnBlbSBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL3Rlc3Qta2V5LnBlbSBcCi0JU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL3dlYmtpdDJndGst
dGVzdHMuZ3Jlc291cmNlLnhtbCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvcmVzb3VyY2VzL2xpbmstdGl0bGUuanMKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvd2Via2l0Mmd0ay10ZXN0cy5ncmVzb3VyY2UueG1sCiAK
IFByb2dyYW1zX1dlYktpdDJBUElUZXN0c19UZXN0V2ViS2l0V2ViQ29udGV4dF9TT1VSQ0VTID0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJD
b250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYzdhMGRjMi4uZDZkMzNk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVz
dFdlYktpdFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNDgsNiArMjQ4LDExIEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJLaXRTZXR0aW5ncyhUZXN0KiwgZ2NvbnN0cG9pbnRlcikKICAgICB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5nKHNldHRpbmdzLCBUUlVFKTsK
ICAgICBnX2Fzc2VydCh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9zbW9vdGhfc2Nyb2xsaW5n
KHNldHRpbmdzKSk7CiAKKyAgICAvLyBCeSBkZWZhdWx0LCB0aGVyZSBpc24ndCBhIHVzZXIgc3R5
bGUgc2hlZXQuCisgICAgZ19hc3NlcnQoIXdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9z
aGVldF91cmkoc2V0dGluZ3MpKTsKKyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVf
c2hlZXRfdXJpKHNldHRpbmdzLCAiZmlsZTovL3BhdGgvdG8vc3R5bGUuY3NzIik7CisgICAgZ19h
c3NlcnRfY21wc3RyKHdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVldF91cmkoc2V0
dGluZ3MpLCA9PSwgImZpbGU6Ly9wYXRoL3RvL3N0eWxlLmNzcyIpOworCiAgICAgZ19vYmplY3Rf
dW5yZWYoR19PQkpFQ1Qoc2V0dGluZ3MpKTsKIH0KIApAQCAtMzEzLDYgKzMxOCw0NSBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2ViS2l0U2V0dGluZ3NVc2VyQWdlbnQoV2ViVmlld1Rlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQoZ19zdHJzdHJfbGVuKG5ld1VzZXJBZ2VudCwgLTEs
ICJXZWJDYXRHVEsrIikpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0U2V0dGluZ3NVc2Vy
U3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBXZWJL
aXRTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHRlc3Qt
Pm1fd2ViVmlldyk7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IHN0eWxlPSdiYWNr
Z3JvdW5kLWNvbG9yOiByZWQnPlRlc3Q8L2JvZHk+PC9odG1sPiIsIDApOworICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgLy8gTm8gdXNlciBzdHlsZSBzaGVldC4KKyAg
ICBzdGF0aWMgY29uc3QgY2hhcioganNCYWNrZ3JvdW5kQ29sb3JRdWVyeSA9ICJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNr
Z3JvdW5kLWNvbG9yJykiOworICAgIFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRS
ZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoanNCYWNrZ3Jv
dW5kQ29sb3JRdWVyeSwgMCk7CisgICAgR093blB0cjxjaGFyPiB2YWx1ZVN0cmluZyhXZWJWaWV3
VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAg
Z19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgInJnYigyNTUsIDAsIDApIik7
CisKKyAgICAvLyBGaWxlIFVSSSB1c2VyIHN0eWxlIHNoZWV0LgorICAgIEdPd25QdHI8Y2hhcj4g
c3R5bGVDU1NQYXRoKGdfYnVpbGRfZmlsZW5hbWUoVGVzdDo6Z2V0UmVzb3VyY2VzRGlyKCkuZGF0
YSgpLCAiYmctY29sb3IuY3NzIiwgTlVMTCkpOworICAgIEdPd25QdHI8Y2hhcj4gc3R5bGVDU1NV
UkkoZ19maWxlbmFtZV90b191cmkoc3R5bGVDU1NQYXRoLmdldCgpLCAwLCAwKSk7CisgICAgd2Vi
a2l0X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncywgc3R5bGVDU1NV
UkkuZ2V0KCkpOworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5k
V2FpdFVudGlsRmluaXNoZWQoanNCYWNrZ3JvdW5kQ29sb3JRdWVyeSwgMCk7CisgICAgZ19hc3Nl
cnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgdmFsdWVTdHJpbmcuc2V0KFdlYlZpZXdUZXN0Ojpq
YXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQpKTsKKyAgICBnX2Fzc2Vy
dF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAicmdiKDAsIDEyOCwgMCkiKTsKKworICAg
IC8vIERhdGEgVVJJIHVzZXIgc3R5bGUgc2hlZXQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN0
eWxlQ1NTID0gImJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7IH0iOwor
ICAgIEdPd25QdHI8Y2hhcj4gYmFzZTY0Q1NTKGdfYmFzZTY0X2VuY29kZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihzdHlsZUNTUyksIHN0cmxlbihzdHlsZUNTUykpKTsK
KyAgICBzdHlsZUNTU1VSSS5zZXQoZ19zdHJkdXBfcHJpbnRmKCJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTg7YmFzZTY0LCVzIiwgYmFzZTY0Q1NTLmdldCgpKSk7CisgICAgd2Via2l0X3NldHRp
bmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncywgc3R5bGVDU1NVUkkuZ2V0KCkp
OworICAgIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGls
RmluaXNoZWQoanNCYWNrZ3JvdW5kQ29sb3JRdWVyeSwgMCk7CisgICAgZ19hc3NlcnQoamF2YXNj
cmlwdFJlc3VsdCk7CisgICAgdmFsdWVTdHJpbmcuc2V0KFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0
UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIo
dmFsdWVTdHJpbmcuZ2V0KCksID09LCAicmdiKDAsIDAsIDI1NSkiKTsKKworICAgIC8vIFJlc2V0
IHVzZXIgc3R5bGUgc2hlZXQuCisgICAgd2Via2l0X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3No
ZWV0X3VyaShzZXR0aW5ncywgMCk7CisgICAgamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkph
dmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChqc0JhY2tncm91bmRDb2xvclF1ZXJ5LCAwKTsK
KyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICB2YWx1ZVN0cmluZy5zZXQoV2Vi
Vmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOwor
ICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sICJyZ2IoMjU1LCAwLCAw
KSIpOworfQorCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIs
IFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBHSGFzaFRhYmxlKiwgU291
cENsaWVudENvbnRleHQqLCBncG9pbnRlcikKIHsKICAgICBpZiAobWVzc2FnZS0+bWV0aG9kICE9
IFNPVVBfTUVUSE9EX0dFVCkgewpAQCAtMzM3LDYgKzM4MSw3IEBAIHZvaWQgYmVmb3JlQWxsKCkK
ICAgICBUZXN0OjphZGQoIldlYktpdFNldHRpbmdzIiwgIndlYmtpdC1zZXR0aW5ncyIsIHRlc3RX
ZWJLaXRTZXR0aW5ncyk7CiAgICAgVGVzdDo6YWRkKCJXZWJLaXRTZXR0aW5ncyIsICJuZXctd2l0
aC1zZXR0aW5ncyIsIHRlc3RXZWJLaXRTZXR0aW5nc05ld1dpdGhTZXR0aW5ncyk7CiAgICAgV2Vi
Vmlld1Rlc3Q6OmFkZCgiV2ViS2l0U2V0dGluZ3MiLCAidXNlci1hZ2VudCIsIHRlc3RXZWJLaXRT
ZXR0aW5nc1VzZXJBZ2VudCk7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0U2V0dGluZ3Mi
LCAidXNlci1zdHlsZS1zaGVldCIsIHRlc3RXZWJLaXRTZXR0aW5nc1VzZXJTdHlsZVNoZWV0KTsK
IH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvYmctY29sb3IuY3NzIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmRhN2ViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNz
cwpAQCAtMCwwICsxLDMgQEAKK2JvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuICFp
bXBvcnRhbnQ7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggY2EwMGJiOS4uMzkyMDQ3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC05Miw2ICs5
MiwxMSBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25z
dCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKQogICAgIHVwZGF0ZSgpOyAvLyBGSVhNRTogT25s
eSBzZW5kIG92ZXIgdGhlIGNoYW5nZWQga2V5IGFuZCB2YWx1ZS4KIH0KIAordm9pZCBXZWJQcmVm
ZXJlbmNlczo6dXBkYXRlS1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBX
ZWJDb3JlOjpLVVJMJiB2YWx1ZSkKK3sKKyAgICB1cGRhdGVTdHJpbmdWYWx1ZUZvcktleShrZXks
IHZhbHVlLnN0cmluZygpKTsKK30KKwogI2RlZmluZSBERUZJTkVfUFJFRkVSRU5DRV9HRVRURVJf
QU5EX1NFVFRFUlMoS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZSwgVHlwZSwgRGVmYXVsdFZh
bHVlKSBcCiAgICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0IyNLZXlVcHBlcihjb25zdCBUeXBl
JiB2YWx1ZSkgXAogICAgIHsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuaAppbmRleCA4MWQ5NTgwLi4zZGZmZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJlZmVyZW5jZXMuaApAQCAtOTIsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKTsKICAgICB2
b2lkIHVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2
YWx1ZSk7CiAgICAgdm9pZCB1cGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtl
eSwgZG91YmxlIHZhbHVlKTsKKyAgICB2b2lkIHVwZGF0ZUtVUkxWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdmFsdWUpOwogICAgIHZvaWQgcGxhdGZv
cm1VcGRhdGVTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmIGtleSwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0Zm9ybVVwZGF0ZVVJbnQzMlZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2VzTWFjLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQcmVmZXJlbmNlc01hYy5tbQppbmRleCA2ZmQ0
MWQzLi4xMzBjMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YlByZWZlcmVuY2VzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UHJlZmVyZW5jZXNNYWMubW0KQEAgLTgwLDYgKzgwLDExIEBAIHN0YXRpYyB2b2lkIHNldERvdWJs
ZVZhbHVlSWZJblVzZXJEZWZhdWx0cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluCiAgICAgc3RvcmUuc2V0RG91YmxlVmFsdWVGb3JLZXkoa2V5LCBbb2JqZWN0IGRvdWJsZVZh
bHVlXSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNldEtVUkxWYWx1ZUlmSW5Vc2VyRGVmYXVsdHMoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleSwgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUpCit7CisgICAgc2V0U3RyaW5nVmFsdWVJZkluVXNlckRlZmF1bHRzKGlkZW50
aWZpZXIsIGtleSwgc3RvcmUpOworfQorCiB2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUlu
aXRpYWxpemVTdG9yZSgpCiB7CiAgICAgaWYgKCFtX2lkZW50aWZpZXIpCg==
</data>
<flag name="commit-queue"
          id="181188"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168435</attachid>
            <date>2012-10-12 09:21:27 -0700</date>
            <delta_ts>2013-03-15 18:49:07 -0700</delta_ts>
            <desc>Try to fix win build</desc>
            <filename>wk2-user-style-sheet3.diff</filename>
            <type>text/plain</type>
            <size>18716</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNjIyMDhjLi4xMjNlYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTItMTAtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCB1c2VyIHN0eWxlIHNoZWV0IHNldHRpbmcgdG8gV2ViS2l0
MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkwODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgdXNlci1zdHlsZS1zaGVldCBzZXR0aW5nIHRvIFdlYktpdFNldHRpbmdzLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRLVVJMVmFsdWVGb3JLZXkpOiBTZXQgS1VSTAorICAgICAg
ICBzZXR0aW5ncyBhcyBzdHJpbmdzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0
b3JlOjpnZXRLVVJMVmFsdWVGb3JLZXkpOiBHZXQgS1VSTAorICAgICAgICBzZXR0aW5ncyBmcm9t
IGEgVVJMIHN0cmluZy4KKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgor
ICAgICAgICAoV2ViS2l0KTogQWRkIFVzZXJTdHlsZVNoZWV0TG9jYXRpb24gc2V0dGluZyBhcyBz
dHJpbmcgc2V0dGluZy4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzU3RvcmUpOiBBZGQgc2V0S1VS
TFZhbHVlRm9yS2V5KCkgYW5kCisgICAgICAgIGdldEtVUkxWYWx1ZUZvcktleSgpLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktp
dFNldHRpbmdzU2V0UHJvcGVydHkpOiBJbXBsZW1lbnQgc2V0dGVyIGZvciB1c2VyLXN0eWxlLXNo
ZWV0CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAod2ViS2l0U2V0dGluZ3NHZXRQcm9wZXJ0
eSk6IEltcGxlbWVudCBnZXR0ZXIgZm9yIHVzZXItc3R5bGUtc2hlZXQKKyAgICAgICAgcHJvcGVy
dHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IEFkZCB1c2VyLXN0eWxl
LXNoZWV0IHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF91c2VyX3N0eWxl
X3NoZWV0X3VyaSk6IFB1YmxpYyBtZXRob2QgdG8gc2V0CisgICAgICAgIHVzZXItc3R5bGUtc2hl
ZXQgcHJvcGVydHkuCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hl
ZXRfdXJpKTogUHVibGljIG1ldGhvZCB0byBnZXQKKyAgICAgICAgdXNlci1zdHlsZS1zaGVldCBw
cm9wZXJ0eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6
IEFkZCBuZXcgc3ltYm9sb3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvR05V
bWFrZWZpbGUuYW06IEFkZCBiZy1jb2xvci5jc3MKKyAgICAgICAgcmVzb3VyY2UgdG8gRVhUUkFf
RElTVC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGlu
Z3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAgICAgICAgKHRlc3RXZWJL
aXRTZXR0aW5nc1VzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNzczogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJlZmVyZW5jZXM6OnVwZGF0ZUtVUkxWYWx1ZUZvcktleSk6IFVwZGF0ZSBLVVJMCisg
ICAgICAgIHNldHRpbmdzIGFzIHN0cmluZ3MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6IEFkZCB1cGRhdGVLVVJMVmFsdWVG
b3JLZXkoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvY2YvV2ViUHJlZmVyZW5jZXNDRi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OnNldEtVUkxWYWx1ZUlmSW5Vc2VyRGVmYXVsdHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvV2ViUHJlZmVyZW5jZXNNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnNl
dEtVUkxWYWx1ZUlmSW5Vc2VyRGVmYXVsdHMpOgorCiAyMDEyLTEwLTExICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJdCBzaG91bGQg
YmUgcG9zc2libGUgdG8gZGlzYWJsZSBmYXZpY29ucyBpbiBXZWJLaXQyIEdUSysgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKaW5kZXggNGY0OWJi
Ny4uMTE3YjVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmNwcApAQCAtMjExLDQgKzIxMSwxNCBAQCBkb3VibGUgV2ViUHJlZmVyZW5jZXNTdG9yZTo6
Z2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiAgICAgcmV0dXJu
IHZhbHVlRm9yS2V5KG1fZG91YmxlVmFsdWVzLCBrZXkpOwogfQogCitib29sIFdlYlByZWZlcmVu
Y2VzU3RvcmU6OnNldEtVUkxWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgdmFsdWUpCit7CisgICAgcmV0dXJuIHNldFZhbHVlRm9yS2V5KG1fc3RyaW5n
VmFsdWVzLCBrZXksIHZhbHVlLnN0cmluZygpKTsKK30KKworV2ViQ29yZTo6S1VSTCBXZWJQcmVm
ZXJlbmNlc1N0b3JlOjpnZXRLVVJMVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFdlYkNvcmU6OktVUkwoV2ViQ29yZTo6S1VSTCgpLCB2YWx1ZUZvcktl
eShtX3N0cmluZ1ZhbHVlcywga2V5KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggMWUzY2E2My4u
YjRmNmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKICNpbmNs
dWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTIwNSw2ICsyMDYsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICBGT1JfRUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRSht
YWNybykgXAogICAgIG1hY3JvKERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lLCBkZWZhdWx0VGV4dEVu
Y29kaW5nTmFtZSwgU3RyaW5nLCBTdHJpbmcsICJJU08tODg1OS0xIikgXAogICAgIG1hY3JvKEZU
UERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBTdHJpbmcs
IFN0cmluZywgIiIpIFwKKyAgICBtYWNybyhVc2VyU3R5bGVTaGVldExvY2F0aW9uLCB1c2VyU3R5
bGVTaGVldExvY2F0aW9uLCBLVVJMLCBXZWJDb3JlOjpLVVJMLCAiIikgXAogICAgIFwKIAogCkBA
IC0yNDUsNiArMjQ3LDkgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewogICAgIGJvb2wg
c2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSB2YWx1ZSk7CiAg
ICAgZG91YmxlIGdldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsK
IAorICAgIGJvb2wgc2V0S1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBX
ZWJDb3JlOjpLVVJMJiB2YWx1ZSk7CisgICAgV2ViQ29yZTo6S1VSTCBnZXRLVVJMVmFsdWVGb3JL
ZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworCiAgICAgLy8gRm9yIFdlYktpdFRlc3RSdW5u
ZXIgdXNhZ2UuCiAgICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVCb29sVmFsdWVGb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RSdW5u
ZXJPdmVycmlkZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmNwcAppbmRleCAxN2Q0Yzg4Li42YTY3NDhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC01
MCw2ICs1MCw3IEBAIHN0cnVjdCBfV2ViS2l0U2V0dGluZ3NQcml2YXRlIHsKICAgICBDU3RyaW5n
IHBpY3RvZ3JhcGhGb250RmFtaWx5OwogICAgIENTdHJpbmcgZGVmYXVsdENoYXJzZXQ7CiAgICAg
Q1N0cmluZyB1c2VyQWdlbnQ7CisgICAgQ1N0cmluZyB1c2VyU3R5bGVTaGVldFVSSTsKICAgICBi
b29sIGFsbG93TW9kYWxEaWFsb2dzOwogICAgIGJvb2wgem9vbVRleHRPbmx5OwogfTsKQEAgLTEx
OSw3ICsxMjAsOCBAQCBlbnVtIHsKICAgICBQUk9QX0VOQUJMRV9TSVRFX1NQRUNJRklDX1FVSVJL
UywKICAgICBQUk9QX0VOQUJMRV9QQUdFX0NBQ0hFLAogICAgIFBST1BfVVNFUl9BR0VOVCwKLSAg
ICBQUk9QX0VOQUJMRV9TTU9PVEhfU0NST0xMSU5HCisgICAgUFJPUF9FTkFCTEVfU01PT1RIX1ND
Uk9MTElORywKKyAgICBQUk9QX1VTRVJfU1RZTEVfU0hFRVRfVVJJCiB9OwogCiBzdGF0aWMgdm9p
ZCB3ZWJLaXRTZXR0aW5nc1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElk
LCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCkBAIC0yNTYsNiAr
MjU4LDkgQEAgc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHUKICAgICBjYXNlIFBST1BfRU5BQkxFX1NN
T09USF9TQ1JPTExJTkc6CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3Ntb290
aF9zY3JvbGxpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1VTRVJfU1RZTEVfU0hFRVRfVVJJOgorICAgICAgICB3
ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpKHNldHRpbmdzLCBnX3ZhbHVl
X2dldF9zdHJpbmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJh
bVNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTM5Niw2ICs0MDEsOSBAQCBzdGF0aWMgdm9pZCB3
ZWJLaXRTZXR0aW5nc0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBH
VmFsdWUqIHZhbAogICAgIGNhc2UgUFJPUF9FTkFCTEVfU01PT1RIX1NDUk9MTElORzoKICAgICAg
ICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVf
c21vb3RoX3Njcm9sbGluZyhzZXR0aW5ncykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfVVNFUl9TVFlMRV9TSEVFVF9VUkk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1
ZSwgd2Via2l0X3NldHRpbmdzX2dldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncykpOwor
ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgICAgIGJyZWFr
OwpAQCAtMTA2MCw2ICsxMDY4LDE5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFz
c19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkV3JpdGVDb25z
dHJ1Y3RQYXJhbUZsYWdzKSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRTZXR0aW5nczp1c2Vy
LXN0eWxlLXNoZWV0LXVyaToKKyAgICAgKgorICAgICAqIFRoZSBVUkkgb2YgYSBzdHlsZSBzaGVl
dCB0aGF0IGlzIGFwcGxpZWQgdG8gZXZlcnkgcGFnZS4KKyAgICAgKi8KKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfVVNFUl9TVFlMRV9TSEVFVF9VUkksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJ1c2VyLXN0eWxlLXNo
ZWV0LXVyaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIlVzZXIgU3R5bGUgU2hlZXQgVVJJIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgb2YgYSBzdHls
ZSBzaGVldCB0aGF0IGlzIGFwcGxpZWQgdG8gZXZlcnkgcGFnZS4iKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQ29u
c3RydWN0UGFyYW1GbGFncykpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGtsYXNz
LCBzaXplb2YoV2ViS2l0U2V0dGluZ3NQcml2YXRlKSk7CiB9CiAKQEAgLTI3MDAsMyArMjcyMSw0
MiBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3Ntb290aF9zY3JvbGxpbmcoV2Vi
S2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbAogICAgIFdlYktpdDo6dG9JbXBsKHByaXYtPnBy
ZWZlcmVuY2VzLmdldCgpKS0+c2V0U2Nyb2xsQW5pbWF0b3JFbmFibGVkKGVuYWJsZWQpOwogICAg
IGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtc21vb3RoLXNjcm9s
bGluZyIpOwogfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVl
dF91cmk6CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKgorICogR2V0IHRoZSAj
V2ViS2l0U2V0dGluZ3M6dXNlci1zdHlsZS1zaGVldC11cmkgcHJvcGVydHkuCisgKgorICogUmV0
dXJuczogdGhlIFVSSSBvZiBhIHN0eWxlIHNoZWV0IHRoYXQgaXMgYXBwbGllZCB0byBldmVyeSBw
YWdlIG9yICVOVUxMIGlmCisgKiAgICBubyB1c2VyIHN0eWxlIHNoZWV0IFVSSSBoYXMgYmVlbiBz
ZXQuCisgKi8KK2NvbnN0IGNoYXIqIHdlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVl
dF91cmkoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncyksIDApOworCisgICAgcmV0dXJuIHNldHRp
bmdzLT5wcml2LT51c2VyU3R5bGVTaGVldFVSSS5kYXRhKCk7Cit9CisKKy8qKgorICogd2Via2l0
X3NldHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaToKKyAqIEBzZXR0aW5nczogYSAjV2Vi
S2l0U2V0dGluZ3MKKyAqIEB1cmk6IChhbGxvdy1ub25lKTogdGhlIHVzZXIgc3R5bGUgc2hlZXQg
VVJJIHRvIHNldCwgb3IgJU5VTEwgdG8gcmVzZXQgaXQKKyAqCisgKiBTZXQgQHVyaSBhcyB0aGUg
c3R5bGUgc2hlZXQgdG8gYmUgYXBwbGllZCB0byBldmVyeSBwYWdlLiBUaGUgVVJJIG11c3QgYmUg
Y29uc2lkZXJlZAorICogbG9jYWwgKHNlZSB3ZWJraXRfc2VjdXJpdHlfbWFuYWdlcl91cmlfc2No
ZW1lX2lzX2xvY2FsKCkpLCBhIGJhc2U2NC1lbmNvZGVkIFVURi04CisgKiBkYXRhIFVSSSwgb3Ig
JU5VTEwgdG8gcmVzZXQgdGhlIHVzZXIgc3R5bGUgc2hlZXQuCisgKi8KK3ZvaWQgd2Via2l0X3Nl
dHRpbmdzX3NldF91c2VyX3N0eWxlX3NoZWV0X3VyaShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3Ms
IGNvbnN0IGNoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRU
SU5HUyhzZXR0aW5ncykpOworCisgICAgV2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0
dGluZ3MtPnByaXY7CisgICAgaWYgKCFnX3N0cmNtcDAocHJpdi0+dXNlclN0eWxlU2hlZXRVUkku
ZGF0YSgpLCB1cmkpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpLVVJMIHVzZXJT
dHlsZVNoZWV0TG9jYXRpb24gPSBXZWJDb3JlOjpLVVJMKFdlYkNvcmU6OktVUkwoKSwgU3RyaW5n
Ojpmcm9tVVRGOCh1cmkpKTsKKyAgICBXZWJLaXQ6OnRvSW1wbChwcml2LT5wcmVmZXJlbmNlcy5n
ZXQoKSktPnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24odXNlclN0eWxlU2hlZXRMb2NhdGlvbik7
CisgICAgcHJpdi0+dXNlclN0eWxlU2hlZXRVUkkgPSB1c2VyU3R5bGVTaGVldExvY2F0aW9uLnN0
cmluZygpLnV0ZjgoKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAi
dXNlci1zdHlsZS1zaGVldC11cmkiKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IGE5ZmU4NmEuLjljOTdmZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaApA
QCAtMzgwLDYgKzM4MCwxMyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9zZXR0aW5nc19zZXRf
ZW5hYmxlX3Ntb290aF9zY3JvbGxpbmcgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5n
cyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwogCitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVldF91
cmkgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpOworCitX
RUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9zdHlsZV9zaGVldF91cmkg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgKnVyaSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRT
ZXR0aW5nc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCBmNTYyNjdiLi4wN2Jk
YmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTI5OSw2ICsyOTksOCBAQCB3ZWJr
aXRfc2V0dGluZ3Nfc2V0X3VzZXJfYWdlbnQKIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9hZ2Vu
dF93aXRoX2FwcGxpY2F0aW9uX2RldGFpbHMKIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3Nt
b290aF9zY3JvbGxpbmcKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3Ntb290aF9zY3JvbGxp
bmcKK3dlYmtpdF9zZXR0aW5nc19nZXRfdXNlcl9zdHlsZV9zaGVldF91cmkKK3dlYmtpdF9zZXR0
aW5nc19zZXRfdXNlcl9zdHlsZV9zaGVldF91cmkKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBX
ZWJLaXRTZXR0aW5nc0NsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA2ZWExYWYuLjdjYzFmMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2Vm
aWxlLmFtCkBAIC03NiwxMCArNzYsMTEgQEAgTGlicmFyaWVzX2xpYldlYktpdDJBUElUZXN0Q29y
ZV9sYV9TT1VSQ0VTID0gXAogTGlicmFyaWVzX2xpYldlYktpdDJBUElUZXN0Q29yZV9sYV9DUFBG
TEFHUyA9ICQod2Via2l0Ml90ZXN0c19jcHBmbGFncykKIAogRVhUUkFfRElTVCArPSBcCisJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2JnLWNvbG9yLmNz
cyBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvcmVzb3VyY2VzL2xp
bmstdGl0bGUuanMgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jl
c291cmNlcy90ZXN0LWNlcnQucGVtIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9yZXNvdXJjZXMvdGVzdC1rZXkucGVtIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvd2Via2l0Mmd0ay10ZXN0cy5ncmVzb3VyY2UueG1s
IFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvbGlu
ay10aXRsZS5qcworCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jlc291
cmNlcy93ZWJraXQyZ3RrLXRlc3RzLmdyZXNvdXJjZS54bWwKIAogUHJvZ3JhbXNfV2ViS2l0MkFQ
SVRlc3RzX1Rlc3RXZWJLaXRXZWJDb250ZXh0X1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdl
YktpdFNldHRpbmdzLmNwcAppbmRleCBjN2EwZGMyLi5kNmQzM2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0U2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRT
ZXR0aW5ncy5jcHAKQEAgLTI0OCw2ICsyNDgsMTEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNl
dHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX3Ntb290aF9zY3JvbGxpbmcoc2V0dGluZ3MsIFRSVUUpOwogICAgIGdfYXNzZXJ0KHdlYmtp
dF9zZXR0aW5nc19nZXRfZW5hYmxlX3Ntb290aF9zY3JvbGxpbmcoc2V0dGluZ3MpKTsKIAorICAg
IC8vIEJ5IGRlZmF1bHQsIHRoZXJlIGlzbid0IGEgdXNlciBzdHlsZSBzaGVldC4KKyAgICBnX2Fz
c2VydCghd2Via2l0X3NldHRpbmdzX2dldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncykp
OworICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfdXNlcl9zdHlsZV9zaGVldF91cmkoc2V0dGluZ3Ms
ICJmaWxlOi8vcGF0aC90by9zdHlsZS5jc3MiKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0
X3NldHRpbmdzX2dldF91c2VyX3N0eWxlX3NoZWV0X3VyaShzZXR0aW5ncyksID09LCAiZmlsZTov
L3BhdGgvdG8vc3R5bGUuY3NzIik7CisKICAgICBnX29iamVjdF91bnJlZihHX09CSkVDVChzZXR0
aW5ncykpOwogfQogCkBAIC0zMTMsNiArMzE4LDQ1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRT
ZXR0aW5nc1VzZXJBZ2VudChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBn
X2Fzc2VydChnX3N0cnN0cl9sZW4obmV3VXNlckFnZW50LCAtMSwgIldlYkNhdEdUSysiKSk7CiB9
CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRTZXR0aW5nc1VzZXJTdHlsZVNoZWV0KFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3ModGVzdC0+bV93ZWJWaWV3KTsKKyAgICB0
ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGJvZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZCc+
VGVzdDwvYm9keT48L2h0bWw+IiwgMCk7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVk
KCk7CisKKyAgICAvLyBObyB1c2VyIHN0eWxlIHNoZWV0LgorICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBqc0JhY2tncm91bmRDb2xvclF1ZXJ5ID0gIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmJvZHksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSI7Cisg
ICAgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkph
dmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChqc0JhY2tncm91bmRDb2xvclF1ZXJ5LCAwKTsK
KyAgICBHT3duUHRyPGNoYXI+IHZhbHVlU3RyaW5nKFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVz
dWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodmFs
dWVTdHJpbmcuZ2V0KCksID09LCAicmdiKDI1NSwgMCwgMCkiKTsKKworICAgIC8vIEZpbGUgVVJJ
IHVzZXIgc3R5bGUgc2hlZXQuCisgICAgR093blB0cjxjaGFyPiBzdHlsZUNTU1BhdGgoZ19idWls
ZF9maWxlbmFtZShUZXN0OjpnZXRSZXNvdXJjZXNEaXIoKS5kYXRhKCksICJiZy1jb2xvci5jc3Mi
LCBOVUxMKSk7CisgICAgR093blB0cjxjaGFyPiBzdHlsZUNTU1VSSShnX2ZpbGVuYW1lX3RvX3Vy
aShzdHlsZUNTU1BhdGguZ2V0KCksIDAsIDApKTsKKyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X3Vz
ZXJfc3R5bGVfc2hlZXRfdXJpKHNldHRpbmdzLCBzdHlsZUNTU1VSSS5nZXQoKSk7CisgICAgamF2
YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChq
c0JhY2tncm91bmRDb2xvclF1ZXJ5LCAwKTsKKyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0
KTsKKyAgICB2YWx1ZVN0cmluZy5zZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NT
dHJpbmcoamF2YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmlu
Zy5nZXQoKSwgPT0sICJyZ2IoMCwgMTI4LCAwKSIpOworCisgICAgLy8gRGF0YSBVUkkgdXNlciBz
dHlsZSBzaGVldC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3R5bGVDU1MgPSAiYm9keSB7IGJh
Y2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDsgfSI7CisgICAgR093blB0cjxjaGFyPiBi
YXNlNjRDU1MoZ19iYXNlNjRfZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQg
Y2hhcio+KHN0eWxlQ1NTKSwgc3RybGVuKHN0eWxlQ1NTKSkpOworICAgIHN0eWxlQ1NTVVJJLnNl
dChnX3N0cmR1cF9wcmludGYoImRhdGE6dGV4dC9jc3M7Y2hhcnNldD11dGYtODtiYXNlNjQsJXMi
LCBiYXNlNjRDU1MuZ2V0KCkpKTsKKyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVf
c2hlZXRfdXJpKHNldHRpbmdzLCBzdHlsZUNTU1VSSS5nZXQoKSk7CisgICAgamF2YXNjcmlwdFJl
c3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChqc0JhY2tncm91
bmRDb2xvclF1ZXJ5LCAwKTsKKyAgICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICB2
YWx1ZVN0cmluZy5zZXQoV2ViVmlld1Rlc3Q6OmphdmFzY3JpcHRSZXN1bHRUb0NTdHJpbmcoamF2
YXNjcmlwdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwg
PT0sICJyZ2IoMCwgMCwgMjU1KSIpOworCisgICAgLy8gUmVzZXQgdXNlciBzdHlsZSBzaGVldC4K
KyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X3VzZXJfc3R5bGVfc2hlZXRfdXJpKHNldHRpbmdzLCAw
KTsKKyAgICBqYXZhc2NyaXB0UmVzdWx0ID0gdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRp
bEZpbmlzaGVkKGpzQmFja2dyb3VuZENvbG9yUXVlcnksIDApOworICAgIGdfYXNzZXJ0KGphdmFz
Y3JpcHRSZXN1bHQpOworICAgIHZhbHVlU3RyaW5nLnNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlw
dFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19hc3NlcnRfY21wc3Ry
KHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgInJnYigyNTUsIDAsIDApIik7Cit9CisKIHN0YXRpYyB2
b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdw
b2ludGVyKQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7
CkBAIC0zMzcsNiArMzgxLDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFRlc3Q6OmFkZCgiV2Vi
S2l0U2V0dGluZ3MiLCAid2Via2l0LXNldHRpbmdzIiwgdGVzdFdlYktpdFNldHRpbmdzKTsKICAg
ICBUZXN0OjphZGQoIldlYktpdFNldHRpbmdzIiwgIm5ldy13aXRoLXNldHRpbmdzIiwgdGVzdFdl
YktpdFNldHRpbmdzTmV3V2l0aFNldHRpbmdzKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJL
aXRTZXR0aW5ncyIsICJ1c2VyLWFnZW50IiwgdGVzdFdlYktpdFNldHRpbmdzVXNlckFnZW50KTsK
KyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRTZXR0aW5ncyIsICJ1c2VyLXN0eWxlLXNoZWV0
IiwgdGVzdFdlYktpdFNldHRpbmdzVXNlclN0eWxlU2hlZXQpOwogfQogCiB2b2lkIGFmdGVyQWxs
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Jl
c291cmNlcy9iZy1jb2xvci5jc3MgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90
ZXN0cy9yZXNvdXJjZXMvYmctY29sb3IuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjJmZGE3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9yZXNvdXJjZXMvYmctY29sb3IuY3NzCkBAIC0wLDAgKzEsMyBAQAor
Ym9keSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDsKK30KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmNwcAppbmRleCBjYTAwYmI5Li4zOTIwNDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTkyLDYgKzkyLDExIEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBkb3Vi
bGUgdmFsdWUpCiAgICAgdXBkYXRlKCk7IC8vIEZJWE1FOiBPbmx5IHNlbmQgb3ZlciB0aGUgY2hh
bmdlZCBrZXkgYW5kIHZhbHVlLgogfQogCit2b2lkIFdlYlByZWZlcmVuY2VzOjp1cGRhdGVLVVJM
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFdlYkNvcmU6OktVUkwmIHZhbHVl
KQoreworICAgIHVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGtleSwgdmFsdWUuc3RyaW5nKCkpOwor
fQorCiAjZGVmaW5lIERFRklORV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBl
ciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUpIFwKICAgICB2b2lkIFdl
YlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0IFR5cGUmIHZhbHVlKSBcCiAgICAgeyBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDgxZDk1ODAu
LjNkZmZlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJl
bmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCkBA
IC05Miw2ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVCb29sVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgdXBkYXRlVUludDMyVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKTsKICAgICB2b2lkIHVw
ZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgdmFsdWUpOwor
ICAgIHZvaWQgdXBkYXRlS1VSTFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBX
ZWJDb3JlOjpLVVJMJiB2YWx1ZSk7CiAgICAgdm9pZCBwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVl
Rm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lk
IHBsYXRmb3JtVXBkYXRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZh
bHVlKTsKICAgICB2b2lkIHBsYXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9jZi9XZWJQcmVmZXJlbmNlc0NGLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9jZi9XZWJQcmVmZXJlbmNlc0NGLmNwcAppbmRleCA1ZjZjYTlkLi5hYjQ0OWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvY2YvV2ViUHJlZmVyZW5jZXNDRi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2NmL1dlYlByZWZlcmVuY2VzQ0YuY3BwCkBAIC05
Myw2ICs5MywxMSBAQCBzdGF0aWMgdm9pZCBzZXREb3VibGVWYWx1ZUlmSW5Vc2VyRGVmYXVsdHMo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbgogICAgIHN0b3JlLnNldERvdWJs
ZVZhbHVlRm9yS2V5KGJhc2VLZXksIGRvdWJsZVZhbHVlKTsKIH0KIAorc3RhdGljIHZvaWQgc2V0
S1VSTFZhbHVlSWZJblVzZXJEZWZhdWx0cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgYmFzZUtleSwgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgc2V0
U3RyaW5nVmFsdWVJZkluVXNlckRlZmF1bHRzKGlkZW50aWZpZXIsIGJhc2VLZXksIHN0b3JlKTsK
K30KKwogdm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFsaXplU3RvcmUoKQogewog
ICAgIGlmICghbV9pZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJQcmVmZXJlbmNlc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggNmZkNDFkMy4uMTMwYzFjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQcmVmZXJlbmNlc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2VzTWFjLm1tCkBAIC04
MCw2ICs4MCwxMSBAQCBzdGF0aWMgdm9pZCBzZXREb3VibGVWYWx1ZUlmSW5Vc2VyRGVmYXVsdHMo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbgogICAgIHN0b3JlLnNldERvdWJs
ZVZhbHVlRm9yS2V5KGtleSwgW29iamVjdCBkb3VibGVWYWx1ZV0pOwogfQogCitzdGF0aWMgdm9p
ZCBzZXRLVVJMVmFsdWVJZkluVXNlckRlZmF1bHRzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBrZXksIFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAgIHNl
dFN0cmluZ1ZhbHVlSWZJblVzZXJEZWZhdWx0cyhpZGVudGlmaWVyLCBrZXksIHN0b3JlKTsKK30K
Kwogdm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1Jbml0aWFsaXplU3RvcmUoKQogewogICAg
IGlmICghbV9pZGVudGlmaWVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193413</attachid>
            <date>2013-03-15 18:49:16 -0700</date>
            <delta_ts>2013-03-16 13:26:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99081-20130315184510.patch</filename>
            <type>text/plain</type>
            <size>14921</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjgxNTJjNzM5OWU5ZjAw
MThjYzhmMTk5ZDU1N2IyNGU4ODAzZmNhNi4uZDEwNWFjNWE1NDZhMTMwYmNiYWJkZGM2ZmY4OTRk
ZDc2MmIzZGIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTE1ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQg
bWV0aG9kcyB0byBhZGQgYSB1c2VyIHN0eWxlc2hlZXQgdG8gdGhlIFdlYktpdDIgR1RLKyBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1ldGhv
ZHMgdG8gV2ViS2l0V2ViVmlld0dyb3VwIHRvIGFkZCBhbmQgcmVtb3ZlIHVzZXIgc3R5bGVzaGVl
dHMuCisgICAgICAgIFRoaXMgYWxsb3dzIGNsaWVudHMgdG8gaW5qZWN0IHN0eWxlc2hlZXRzIGlu
dG8gcGFnZXMgd2l0aCBhIHNldCBvZgorICAgICAgICBydWxlcyBmb3Igd2hlbiB0aG9zZSBzdHls
ZXNoZWV0cyBhcHBseS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdHcm91cC5jcHA6CisgICAgICAgICh0b0ltbXV0YWJsZUFycmF5KTogQWRkZWQgdGhpcyBoZWxw
ZXIgd2hpY2ggY29udmVydHMgdGhlIEdMaXN0KiBwYXJhbWV0ZXJzIGludG8KKyAgICAgICAgSW1t
dXRhYmxlQXJyYXlzIGZvciB1c2Ugd2l0aCB0aGUgV2ViS2l0MiBpbnRlcm5hbCBBUEkuCisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVzaGVldCk6IEFkZGVkIG5l
dyBBUEkgZm9yIGFkZGluZyBhIHN0eWxlc2hlZXQuCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Z3JvdXBfcmVtb3ZlX2FsbF91c2VyX3N0eWxlc2hlZXRzKTogQWRkIG5ldyBBUEkgZm9yIGNsZWFy
aW5nIG91dCBhbGwgc3R5bGVzaGVldHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0dyb3VwLmg6IEFkZGVkIG5ldyBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6IEFkZGVk
IG5ldyBBUEkgdG8gdGhlIGRvY3VtZW50YXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXdHcm91cC5jcHA6IEFkZGVkIGEgdGVzdCBmb3IgdGhl
IG5ldyBBUEkuCisgICAgICAgIChzdHlsZXNoZWV0SW5qZWN0ZWRGb3JQYXRoKTogRnVuY3Rpb24g
dG8gY2hlY2sgd2hldGhlciB0aGUgc3R5bGVzaGVldCBoYXMgYmVlbiBpbmplY3RlZCBmb3IgYSBn
aXZlbiBVUkwuCisgICAgICAgIChjcmVhdGVVUkxHTGlzdEZyb21QYXRocyk6IEhlbHBlciB3aGlj
aCBjb252ZXJ0cyB2YXJhcmdzIGludG8gYSB3aGl0ZWxpc3Qgb3IgYmxhY2tsaXN0IEdMaXN0Ki4K
KyAgICAgICAgKHByZXBhcmVGb3JOZXdTdHlsZXNoZWV0VGVzdCk6IEZ1bmN0aW9uIHRvIHN0YXJ0
IGFmcmVzaC4KKyAgICAgICAgKHRlc3RXZWJWaWV3R3JvdXBJbmplY3RlZFN0eWxlc2hlZXQpOiBU
aGUgYWN0dWFsIHRlc3QuCisgICAgICAgIChzZXJ2ZXJDYWxsYmFjayk6IFNlcnZlciBjYWxsYmFj
ayBmb3IgdXNlIHdpdGggdGhlIHRlc3QuIFdlIGNhbm5vdCB1c2UgbG9hZEhUTUwgb3IKKyAgICAg
ICAgbG9hZEFsdGVybmF0ZUhUTUwsIGJlY2F1c2UgdGhhdCBjaGVja3MgdGhlIHdoaXRlbGlzdCBh
bmQgYmxhY2tsaXN0IGFnYWluc3QgYWJvdXQ6YmxhbmsuCisgICAgICAgIChiZWZvcmVBbGwpOiBJ
bml0aWFsaXplIHRoZSBzZXJ2ZXIgYW5kIG5ldyB0ZXN0LgorICAgICAgICAoYWZ0ZXJBbGwpOiBD
bGVhbiB1cCB0aGUgc2VydmVyLgorCiAyMDEzLTAzLTEzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgd2Via2l0X3VyaV9yZXF1
ZXN0X2dldF9odHRwX2hlYWRlcnMgdG8gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAKaW5k
ZXggYWMxZmRhZTU2MTRkYjFiMDAyNzA2NjkxNjdlZGMwNDk2NzU0MjBlMi4uNTM2OTI0ZGM0NDQy
MjBhMmQ3NTFmNTlmMjFmMmZiM2QyODNmMzg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwCkBAIC0yMCw2ICsy
MCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0dyb3Vw
LmgiCiAKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRTZXR0aW5nc1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRXZWJWaWV3R3JvdXBQcml2YXRlLmgiCkBAIC0yMjEsMyArMjIyLDY2IEBAIHZvaWQgd2Via2l0
X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3VwLCBX
ZWJLaXRTZXR0aW5nCiAgICAgd2Via2l0V2ViVmlld0dyb3VwQXR0YWNoU2V0dGluZ3NUb1BhZ2VH
cm91cChncm91cCk7CiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGdyb3VwKSwgInNldHRp
bmdzIik7CiB9CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0lOSkVDVEVE
X0NPTlRFTlRfRlJBTUVTX0FMTCwgV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXMpOworQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNfVE9Q
X09OTFksIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5KTsKKworc3RhdGljIFBhc3NSZWZQ
dHI8SW1tdXRhYmxlQXJyYXk+IHRvSW1tdXRhYmxlQXJyYXkoR0xpc3QqIGxpc3QpCit7CisgICAg
aWYgKCFsaXN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2Jq
ZWN0PiA+IGVudHJpZXM7CisgICAgd2hpbGUgKGxpc3QpIHsKKyAgICAgICAgZW50cmllcy5hcHBl
bmQoV2ViU3RyaW5nOjpjcmVhdGVGcm9tVVRGOFN0cmluZyhzdGF0aWNfY2FzdDxjaGFyKj4obGlz
dC0+ZGF0YSkpKTsKKyAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgfQorICAgIHJldHVy
biBJbW11dGFibGVBcnJheTo6YWRvcHQoZW50cmllcyk7Cit9CisKKy8qKgorICogd2Via2l0X3dl
Yl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlc2hlZXQ6CisgKiBAZ3JvdXA6IGEgI1dlYktpdFdl
YlZpZXdHcm91cAorICogQHNvdXJjZTogdGhlIHNvdXJjZSBvZiB0aGUgc3R5bGVzaGVldCB0byBp
bmplY3QKKyAqIEBiYXNlX3VyaTogKGFsbG93LW5vbmUpOiB0aGUgYmFzZSBVUkkgdG8gdXNlIHdo
ZW4gcHJvY2Vzc2luZyB0aGUgc3R5bGVzaGVldCBjb250ZW50cyBvciAlTlVMTCBmb3IgYWJvdXQ6
YmxhbmsKKyAqIEB3aGl0ZWxpc3Q6IChlbGVtZW50LXR5cGUgZ2NoYXIqKSAoYWxsb3ctbm9uZSk6
IGEgd2hpdGVsaXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVMTAorICogQGJsYWNrbGlzdDogKGVs
ZW1lbnQtdHlwZSBnY2hhciopIChhbGxvdy1ub25lKTogYSBibGFja2xpc3Qgb2YgVVJJIHBhdHRl
cm5zIG9yICVOVUxMCisgKiBAaW5qZWN0ZWRfZnJhbWVzOiBhICNXZWJLaXRJbmplY3RlZEZyYW1l
cyBkZXNjcmliaW5nIHRvIHdoaWNoIGZyYW1lcyB0aGUgc3R5bGVzaGVldCBzaG91bGQgYXBwbHkK
KyAqCisgKiBJbmplY3QgYW4gZXh0ZXJuYWwgc3R5bGVzaGVldCBpbnRvIHBhZ2VzLiBJdCBpcyBw
b3NzaWJsZSB0byBvbmx5IGFwcGx5IHRvIHRoZSBzdHlsZXNoZWV0CisgKiB0byBzb21lIFVSSXMg
YnkgcGFzc2luZyBub24tbnVsbCB2YWx1ZXMgZm9yIEB3aGl0ZWxpc3Qgb3IgQGJsYWNrbGlzdC4g
UGFzc2luZyBhICVOVUxMCisgKiB3aGl0ZWxpc3QgaW1wbGllcyB0aGF0IGFsbCBVUklzIGFyZSBv
biB0aGUgd2hpdGVsaXN0LiBUaGUgc3R5bGVzaGVldCBpcyBhcHBsaWVkIGlmIGEgVVJJIG1hdGNo
ZXMKKyAqIHRoZSB3aGl0ZWxpc3QgYW5kIG5vdCB0aGUgYmxhY2tsaXN0LiBVUkkgcGF0dGVybnMg
bXVzdCBiZSBvZiB0aGUgZm9ybSBbcHJvdG9jb2xdOi8vW2hvc3RdL1twYXRoXQorICogd2hlcmUg
dGhlIGhvc3QgYW5kIHBhdGggY29tcG9uZW50cyBjYW4gY29udGFpbiB0aGUgd2lsZGNhcmQgY2hh
cmFjdGVyICgnKicpIHRvIHJlcHJlc2VudCB6ZXJvCisgKiBvciBtb3JlIG90aGVyIGNoYXJhY3Rl
cnMuCisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlc2hlZXQo
V2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCwgY29uc3QgY2hhciogc291cmNlLCBjb25zdCBjaGFy
KiBiYXNlVVJJLCBHTGlzdCogd2hpdGVsaXN0LCBHTGlzdCogYmxhY2tsaXN0LCBXZWJLaXRJbmpl
Y3RlZENvbnRlbnRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCit7CisgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVdfR1JPVVAoZ3JvdXApKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHNvdXJjZSk7CisKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IHdlYldoaXRlbGlzdCA9IHRv
SW1tdXRhYmxlQXJyYXkod2hpdGVsaXN0KTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IHdl
YkJsYWNrbGlzdCA9IHRvSW1tdXRhYmxlQXJyYXkoYmxhY2tsaXN0KTsKKworICAgIC8vIFdlIGFs
d2F5cyB1c2UgVXNlclN0eWxlVXNlckxldmVsIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiBXS1Bh
Z2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0LgorICAgIGdyb3VwLT5wcml2LT5wYWdlR3JvdXAtPmFk
ZFVzZXJTdHlsZVNoZWV0KAorICAgICAgICBTdHJpbmc6OmZyb21VVEY4KHNvdXJjZSksCisgICAg
ICAgIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSksCisgICAgICAgIHdlYldoaXRlbGlzdC5nZXQo
KSwKKyAgICAgICAgd2ViQmxhY2tsaXN0LmdldCgpLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZyYW1lcyksCisgICAgICAg
IFdlYkNvcmU6OlVzZXJTdHlsZVVzZXJMZXZlbCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92
aWV3X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZXNoZWV0czoKKyAqIEBncm91cDogYSAjV2Vi
S2l0V2ViVmlld0dyb3VwCisgKgorICogUmVtb3ZlIGFsbCBzdHlsZXNoZWV0cyBwcmV2aW91c2x5
IGluamVjdGVkIGludG8gdGhpcyAjV2ViS2l0V2ViVmlld0dyb3VwIAorICogdmlhIHdlYmtpdF93
ZWJfdmlld19ncm91cF9hZGRfdXNlcl9zdHlsZXNoZWV0KCkuCisgKi8KK3ZvaWQgd2Via2l0X3dl
Yl92aWV3X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZXNoZWV0cyhXZWJLaXRXZWJWaWV3R3Jv
dXAqIGdyb3VwKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXX0dS
T1VQKGdyb3VwKSk7CisgICAgZ3JvdXAtPnByaXYtPnBhZ2VHcm91cC0+cmVtb3ZlQWxsVXNlclN0
eWxlU2hlZXRzKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHcm91cC5oCmluZGV4IGE0ODhhZTcyMTMxN2JhMjQ1MWE3MjgxZjMw
MGVkMWZjMWVhYjJlNDQuLjVkZWE3NmM0ZjVlNzM2OWRlOWY4ZmE5ZWJlZTliOTAyOTFkZWY4YjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdHcm91cC5oCkBAIC01MSwyMSArNTEsNDQgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3R3Jv
dXBDbGFzcyB7CiAgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKKy8qKgorICog
V2ViS2l0SW5qZWN0ZWRDb250ZW50RnJhbWVzOgorICogQFdFQktJVF9JTkpFQ1RFRF9DT05URU5U
X0ZSQU1FU19BTEw6IENvbnRlbnQgd2lsbCBiZSBpbmplY3RlZCBhbGwgZnJhbWVzLgorICogQFdF
QktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWTogQ29udGVudCB3aWxsIG9ubHkg
YmUgaW5qZWN0ZWQgaW50byB0aGUgbWFpbiBmcmFtZS4KKyAqCisgKiBFbnVtIHZhbHVlcyB1c2Vk
IGZvciBkZXRlcm1pbmluZyBpbnRvIHdoaWNoIGZyYW1lcyBjb250ZW50IGlzIGluamVjdGVkLgor
ICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19B
TEwsCisgICAgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX1RPUF9PTkxZLAorfSBXZWJL
aXRJbmplY3RlZENvbnRlbnRGcmFtZXM7CisKIFdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJf
dmlld19ncm91cF9nZXRfdHlwZSAgICAgKHZvaWQpOword2Via2l0X3dlYl92aWV3X2dyb3VwX2dl
dF90eXBlICAgICAgICAgICAgICAgICAgICAodm9pZCk7CiAKIFdFQktJVF9BUEkgV2ViS2l0V2Vi
Vmlld0dyb3VwICoKLXdlYmtpdF93ZWJfdmlld19ncm91cF9uZXcgICAgICAgICAgKGNvbnN0IGdj
aGFyICAgICAgICAqbmFtZSk7Cit3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfbmV3ICAgICAgICAgICAg
ICAgICAgICAgICAgIChjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgKm5hbWUpOwogCiBXRUJL
SVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF93ZWJfdmlld19ncm91cF9nZXRfbmFtZSAgICAg
KFdlYktpdFdlYlZpZXdHcm91cCAqZ3JvdXApOword2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF9u
YW1lICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlld0dyb3VwICAgICAgICAgICpncm91
cCk7CiAKIFdFQktJVF9BUEkgV2ViS2l0U2V0dGluZ3MgKgotd2Via2l0X3dlYl92aWV3X2dyb3Vw
X2dldF9zZXR0aW5ncyAoV2ViS2l0V2ViVmlld0dyb3VwICpncm91cCk7Cit3ZWJraXRfd2ViX3Zp
ZXdfZ3JvdXBfZ2V0X3NldHRpbmdzICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3R3JvdXAg
ICAgICAgICAgKmdyb3VwKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZ3Jv
dXBfc2V0X3NldHRpbmdzICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3R3JvdXAgICAgICAg
ICAgKmdyb3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0U2V0dGluZ3MgICAgICAgICAgICAgICpzZXR0aW5ncyk7CisKK1dFQktJVF9B
UEkgdm9pZAord2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlc2hlZXQgICAgICAg
ICAoV2ViS2l0V2ViVmlld0dyb3VwICAgICAgICAgICpncm91cCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAg
ICAgICAqc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgICAgICAgICpiYXNlX3VyaSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAgICAgICAg
ICAgICAgICAgICAgICAqd2hpdGVsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAgICAgICAgICAgICAgICAgICpibGFja2xp
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRJbmplY3RlZENvbnRlbnRGcmFtZXMgIGluamVjdGVkX2ZyYW1lcyk7CiAKIFdFQktJVF9B
UEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyAoV2ViS2l0V2ViVmll
d0dyb3VwICpncm91cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFNldHRpbmdzICAgICAqc2V0dGluZ3MpOword2Via2l0X3dlYl92aWV3X2dyb3VwX3JlbW92ZV9h
bGxfdXNlcl9zdHlsZXNoZWV0cyAoV2ViS2l0V2ViVmlld0dyb3VwICAgICAgICAgICpncm91cCk7
CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IGE5NWFlZTk2
Y2VlNjZjOGY0MDhkZGI4ODE4ODZhYjZjMTVkZGMxNzcuLmZlZWIxNjFhMjMyYjNlOTkyYjg1MmRm
N2QyZTUzZDk0YjNiNzQ1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtOTQ1LDEw
ICs5NDUsMTMgQEAgd2Via2l0X3NlY3VyaXR5X21hbmFnZXJfZ2V0X3R5cGUKIDxTRUNUSU9OPgog
PEZJTEU+V2ViS2l0V2ViVmlld0dyb3VwPC9GSUxFPgogV2ViS2l0V2ViVmlld0dyb3VwCitXZWJL
aXRJbmplY3RlZENvbnRlbnRGcmFtZXMKIHdlYmtpdF93ZWJfdmlld19ncm91cF9uZXcKIHdlYmtp
dF93ZWJfdmlld19ncm91cF9nZXRfbmFtZQogd2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF9zZXR0
aW5ncwogd2Via2l0X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncword2Via2l0X3dlYl92aWV3
X2dyb3VwX2FkZF91c2VyX3N0eWxlc2hlZXQKK3dlYmtpdF93ZWJfdmlld19ncm91cF9yZW1vdmVf
YWxsX3VzZXJfc3R5bGVzaGVldHMKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRXZWJW
aWV3R3JvdXBDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXdHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlld0dyb3VwLmNwcAppbmRleCBjYmMx
ZDIzNjhkZWM1ODNkNmE5Y2QwZDlhODQ1NDg1OGM1ZjVkNTUxLi4wOWYwZWNlZGM0ZTAwN2QxNDVj
MmI0MzQwNDc3OTM4YTgxYjE1ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlld0dyb3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlld0dyb3VwLmNw
cApAQCAtMTksMTEgKzE5LDIxIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUg
IldlYktpdFRlc3RTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgorI2luY2x1ZGUg
PGNzdGRhcmc+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0
Mi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAorc3RhdGljIFdlYktpdFRl
c3RTZXJ2ZXIqIGtTZXJ2ZXI7CisKKy8vIFRoZXNlIGFyZSBhbGwgaGVyZSBzbyB0aGF0IHRoZXkg
Y2FuIGJlIGNoYW5nZWQgZWFzaWx5LCBpZiBuZWNlc3NhcnkuCitzdGF0aWMgY29uc3QgY2hhciog
a1N0eWxlU2hlZXRIVE1MID0gIjxodG1sPjxkaXYgaWQ9XCJzdHlsZWRFbGVtZW50XCI+U3dlZXQg
c3R5bGV6ITwvZGl2PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIqIGtJbmplY3RlZFN0eWxl
c2hlZXQgPSAiI3N0eWxlZEVsZW1lbnQgeyBmb250LXdlaWdodDogYm9sZDsgfSI7CitzdGF0aWMg
Y29uc3QgY2hhcioga1N0eWxlc2hlZXRUZXN0U2NyaXB0ID0gImdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0eWxlZEVsZW1lbnQnKSlbJ2ZvbnQtd2VpZ2h0J10iOwor
c3RhdGljIGNvbnN0IGNoYXIqIGtTdHlsZXNoZWV0VGVzdFNjcmlwdFJlc3VsdCA9ICJib2xkIjsK
Kwogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHcm91cERlZmF1bHQoVGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKIHsKICAgICAvLyBEZWZhdWx0IGdyb3VwIGlzIHNoYXJlZCBieSBhbGwgV2ViVmll
d3MgYnkgZGVmYXVsdC4KQEAgLTg4LDE1ICs5OCwxMDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZp
ZXdHcm91cFNldHRpbmdzKFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQo
d2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF9zZXR0aW5ncyh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2dy
b3VwKHdlYlZpZXcxLmdldCgpKSkgPT0gd2ViVmlldzJTZXR0aW5ncyk7CiB9CiAKK3N0YXRpYyBi
b29sIHN0eWxlc2hlZXRJbmplY3RlZEZvclBhdGgoV2ViVmlld1Rlc3QqIHRlc3QsIGNvbnN0IGNo
YXIqIHBhdGgpCit7CisgICAgQ1N0cmluZyB1cmkgPSBrU2VydmVyLT5nZXRVUklGb3JQYXRoKHBh
dGgpOworICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aChwYXRoKS5kYXRh
KCkpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgR093blB0cjxH
RXJyb3I+IGVycm9yOworICAgIFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRSZXN1
bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoa1N0eWxlc2hlZXRU
ZXN0U2NyaXB0LCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1
bHQpOworICAgIGdfYXNzZXJ0KCFlcnJvci5nZXQoKSk7CisKKyAgICBHT3duUHRyPGNoYXI+IHJl
c3VsdFN0cmluZyhXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2Ny
aXB0UmVzdWx0KSk7CisgICAgcmV0dXJuICFnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCBr
U3R5bGVzaGVldFRlc3RTY3JpcHRSZXN1bHQpOworfQorCitzdGF0aWMgR0xpc3QqIGNyZWF0ZVVS
TEdMaXN0RnJvbVBhdGhzKGNvbnN0IGNoYXIqIHBhdGgsIC4uLikKK3sKKyAgICB2YV9saXN0IGFy
Z3VtZW50TGlzdDsKKyAgICB2YV9zdGFydChhcmd1bWVudExpc3QsIHBhdGgpOworCisgICAgR0xp
c3QqIHJlc3VsdGluZ0xpc3QgPSAwOworICAgIHdoaWxlIChwYXRoKSB7CisgICAgICAgIC8vIFdl
IG11c3QgdXNlIGEgd2lsZGNhcmQgZm9yIHRoZSBob3N0IGhlcmUgdW50aWwgaHR0cDovL3drYnVn
LmNvbS8xMTI0NzYgaXMgZml4ZWQuCisgICAgICAgIC8vIFVudGlsIHRoYXQgdGltZSB3ZSB3aWxs
IGZhaWwgdHJ5aW5nIHRvIHVzZSBob3N0bmFtZXMgd2l0aCBwb3J0IG51bWJlcnMgaW4gdGhlbS4K
KyAgICAgICAgcmVzdWx0aW5nTGlzdCA9IGdfbGlzdF9wcmVwZW5kKHJlc3VsdGluZ0xpc3QsIGdf
c3RyZHVwX3ByaW50ZigiaHR0cDovLyovJXMqIiwgcGF0aCkpOworICAgICAgICBwYXRoID0gdmFf
YXJnKGFyZ3VtZW50TGlzdCwgY29uc3QgY2hhciopOworICAgIH0KKworICAgIHJldHVybiByZXN1
bHRpbmdMaXN0OworfQorCitzdGF0aWMgdm9pZCBwcmVwYXJlRm9yTmV3U3R5bGVzaGVldFRlc3Qo
V2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCwgR0xpc3QqKiB3aGl0ZWxpc3QsIEdMaXN0KiogYmxh
Y2tsaXN0KQoreworICAgIHdlYmtpdF93ZWJfdmlld19ncm91cF9yZW1vdmVfYWxsX3VzZXJfc3R5
bGVzaGVldHMoZ3JvdXApOworCisgICAgaWYgKCp3aGl0ZWxpc3QpIHsKKyAgICAgICAgZ19saXN0
X2ZyZWVfZnVsbCgqd2hpdGVsaXN0LCBnX2ZyZWUpOworICAgICAgICAqd2hpdGVsaXN0ID0gMDsK
KyAgICB9CisKKyAgICBpZiAoKmJsYWNrbGlzdCkgeworICAgICAgICBnX2xpc3RfZnJlZV9mdWxs
KCpibGFja2xpc3QsIGdfZnJlZSk7CisgICAgICAgICpibGFja2xpc3QgPSAwOworICAgIH0KK30K
Kworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHcm91cEluamVjdGVkU3R5bGVzaGVldChXZWJWaWV3
VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3R3JvdXAqIGdy
b3VwID0gd2Via2l0X3dlYl92aWV3X2dldF9ncm91cCh0ZXN0LT5tX3dlYlZpZXcpOworICAgIEdM
aXN0KiB3aGl0ZWxpc3QgPSAwOworICAgIEdMaXN0KiBibGFja2xpc3QgPSAwOworICAgIHByZXBh
cmVGb3JOZXdTdHlsZXNoZWV0VGVzdChncm91cCwgJndoaXRlbGlzdCwgJmJsYWNrbGlzdCk7CisK
KyAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0IG9yIGEgYmxhY2tsaXN0IGFsbCBVUkxzIHNob3Vs
ZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZXNoZWV0LgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBy
YW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKKyAgICBnX2Fzc2VydCghc3R5bGVzaGVldElu
amVjdGVkRm9yUGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CisgICAgd2Via2l0X3dlYl92aWV3X2dy
b3VwX2FkZF91c2VyX3N0eWxlc2hlZXQoZ3JvdXAsIGtJbmplY3RlZFN0eWxlc2hlZXQsIDAsIDAs
IDAsIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEwpOworICAgIGdfYXNzZXJ0KHN0
eWxlc2hlZXRJbmplY3RlZEZvclBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOworCisgICAgcHJlcGFy
ZUZvck5ld1N0eWxlc2hlZXRUZXN0KGdyb3VwLCAmd2hpdGVsaXN0LCAmYmxhY2tsaXN0KTsKKwor
ICAgIGJsYWNrbGlzdCA9IGNyZWF0ZVVSTEdMaXN0RnJvbVBhdGhzKHJhbmRvbVBhdGgsIDApOwor
ICAgIHdlYmtpdF93ZWJfdmlld19ncm91cF9hZGRfdXNlcl9zdHlsZXNoZWV0KGdyb3VwLCBrSW5q
ZWN0ZWRTdHlsZXNoZWV0LCAwLCAwLCBibGFja2xpc3QsIFdFQktJVF9JTkpFQ1RFRF9DT05URU5U
X0ZSQU1FU19BTEwpOworICAgIGdfYXNzZXJ0KCFzdHlsZXNoZWV0SW5qZWN0ZWRGb3JQYXRoKHRl
c3QsIHJhbmRvbVBhdGgpKTsKKworICAgIHByZXBhcmVGb3JOZXdTdHlsZXNoZWV0VGVzdChncm91
cCwgJndoaXRlbGlzdCwgJmJsYWNrbGlzdCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5U
aGVXaGl0ZUxpc3QgPSAiaW50aGV3aGl0ZWxpc3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBu
b3RJbldoaXRlbGlzdCA9ICJub3RpbnRoZXdoaXRlbGlzdCI7CisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2ts
aXN0IjsKKyAgICB3aGl0ZWxpc3QgPSBjcmVhdGVVUkxHTGlzdEZyb21QYXRocyhpblRoZVdoaXRl
TGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QsIDApOworICAgIGJsYWNrbGlzdCA9IGNy
ZWF0ZVVSTEdMaXN0RnJvbVBhdGhzKGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVzaGVldChncm91cCwga0luamVj
dGVkU3R5bGVzaGVldCwgMCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIFdFQktJVF9JTkpFQ1RFRF9D
T05URU5UX0ZSQU1FU19BTEwpOworICAgIGdfYXNzZXJ0KHN0eWxlc2hlZXRJbmplY3RlZEZvclBh
dGgodGVzdCwgaW5UaGVXaGl0ZUxpc3QpKTsKKyAgICBnX2Fzc2VydCghc3R5bGVzaGVldEluamVj
dGVkRm9yUGF0aCh0ZXN0LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCkpOworICAgIGdfYXNz
ZXJ0KCFzdHlsZXNoZWV0SW5qZWN0ZWRGb3JQYXRoKHRlc3QsIG5vdEluV2hpdGVsaXN0KSk7CisK
KyAgICAvLyBJdCdzIGltcG9ydGFudCB0byBjbGVhbiB1cCB0aGUgZW52aXJvbm1lbnQgYmVmb3Jl
IG90aGVyIHRlc3RzLgorICAgIHByZXBhcmVGb3JOZXdTdHlsZXNoZWV0VGVzdChncm91cCwgJndo
aXRlbGlzdCwgJmJsYWNrbGlzdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNv
dXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgs
IEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVyKQoreworICAgIHNvdXBf
bWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX09LKTsKKyAgICBzb3VwX21l
c3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RB
VElDLCBrU3R5bGVTaGVldEhUTUwsIHN0cmxlbihrU3R5bGVTaGVldEhUTUwpKTsKKyAgICBzb3Vw
X21lc3NhZ2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5yZXNwb25zZV9ib2R5KTsKK30KKwogdm9p
ZCBiZWZvcmVBbGwoKQogeworICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigpOwor
ICAgIGtTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFjayk7CisKICAgICBUZXN0OjphZGQoIldlYktp
dFdlYlZpZXdHcm91cCIsICJkZWZhdWx0LWdyb3VwIiwgdGVzdFdlYlZpZXdHcm91cERlZmF1bHQp
OwogICAgIFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlld0dyb3VwIiwgIm5ldy1ncm91cCIsIHRlc3RX
ZWJWaWV3R3JvdXBOZXdHcm91cCk7CiAgICAgVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIm5l
dy13aXRoLWdyb3VwIiwgdGVzdFdlYlZpZXdOZXdXaXRoR3JvdXApOwogICAgIFRlc3Q6OmFkZCgi
V2ViS2l0V2ViVmlld0dyb3VwIiwgInNldHRpbmdzIiwgdGVzdFdlYlZpZXdHcm91cFNldHRpbmdz
KTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3R3JvdXAiLCAiaW5qZWN0ZWQt
c3R5bGVzaGVldCIsIHRlc3RXZWJWaWV3R3JvdXBJbmplY3RlZFN0eWxlc2hlZXQpOwogfQogCiB2
b2lkIGFmdGVyQWxsKCkKIHsKLQorICAgIGRlbGV0ZSBrU2VydmVyOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193445</attachid>
            <date>2013-03-16 13:26:12 -0700</date>
            <delta_ts>2013-04-26 16:08:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99081-20130316132205.patch</filename>
            <type>text/plain</type>
            <size>15134</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjgxNTJjNzM5OWU5ZjAw
MThjYzhmMTk5ZDU1N2IyNGU4ODAzZmNhNi4uOTU3OWVkOWNjZTRhOWVmZjdjOTNiZTE4NjEyMzE4
NjJkMTkyMDlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTE1ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQg
bWV0aG9kcyB0byBhZGQgYSB1c2VyIHN0eWxlIHNoZWV0IHRvIHRoZSBXZWJLaXQyIEdUSysgQVBJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtZXRo
b2RzIHRvIFdlYktpdFdlYlZpZXdHcm91cCB0byBhZGQgYW5kIHJlbW92ZSB1c2VyIHN0eWxlIHNo
ZWV0cy4KKyAgICAgICAgVGhpcyBhbGxvd3MgY2xpZW50cyB0byBpbmplY3Qgc3R5bGUgc2hlZXRz
IGludG8gcGFnZXMgd2l0aCBhIHNldCBvZgorICAgICAgICBydWxlcyBmb3Igd2hlbiB0aG9zZSBz
dHlsZSBzaGVldHMgYXBwbHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3R3JvdXAuY3BwOgorICAgICAgICAodG9JbW11dGFibGVBcnJheSk6IEFkZGVkIHRoaXMg
aGVscGVyIHdoaWNoIGNvbnZlcnRzIHRoZSBHTGlzdCogcGFyYW1ldGVycyBpbnRvCisgICAgICAg
IEltbXV0YWJsZUFycmF5cyBmb3IgdXNlIHdpdGggdGhlIFdlYktpdDIgaW50ZXJuYWwgQVBJLgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KTogQWRk
ZWQgbmV3IEFQSSBmb3IgYWRkaW5nIGEgc3R5bGUgc2hlZXQuCisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZ3JvdXBfcmVtb3ZlX2FsbF91c2VyX3N0eWxlX3NoZWV0cyk6IEFkZCBuZXcgQVBJIGZv
ciBjbGVhcmluZyBvdXQgYWxsIHN0eWxlIHNoZWV0cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuaDogQWRkZWQgbmV3IG1ldGhvZCBkZWNsYXJhdGlvbnMu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dDogQWRkZWQgbmV3IEFQSSB0byB0aGUgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlld0dyb3VwLmNwcDogQWRkZWQgYSB0ZXN0
IGZvciB0aGUgbmV3IEFQSS4KKyAgICAgICAgKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQ
YXRoKTogRnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciB0aGUgc3R5bGUgc2hlZXQgaGFzIGJlZW4g
aW5qZWN0ZWQgZm9yIGEgZ2l2ZW4gVVJMLgorICAgICAgICAoZmlsbFVSTExpc3RGcm9tUGF0aHMp
OiBIZWxwZXIgd2hpY2ggY29udmVydHMgcGF0aHMgcGFzc2VkIHZpYSB2YXJhcmdzIGludG8gYSB3
aGl0ZWxpc3Qgb3IgYmxhY2tsaXN0LgorICAgICAgICAocmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNo
ZWV0c0FuZFJlc2V0TGlzdHMpOiBGdW5jdGlvbiB0byBzdGFydCBhZnJlc2guCisgICAgICAgICh0
ZXN0V2ViVmlld0dyb3VwSW5qZWN0ZWRTdHlsZVNoZWV0KTogVGhlIGFjdHVhbCB0ZXN0LgorICAg
ICAgICAoc2VydmVyQ2FsbGJhY2spOiBTZXJ2ZXIgY2FsbGJhY2sgZm9yIHVzZSB3aXRoIHRoZSB0
ZXN0LiBXZSBjYW5ub3QgdXNlIGxvYWRIVE1MIG9yCisgICAgICAgIGxvYWRBbHRlcm5hdGVIVE1M
LCBiZWNhdXNlIHRoYXQgY2hlY2tzIHRoZSB3aGl0ZWxpc3QgYW5kIGJsYWNrbGlzdCBhZ2FpbnN0
IGFib3V0OmJsYW5rLgorICAgICAgICAoYmVmb3JlQWxsKTogSW5pdGlhbGl6ZSB0aGUgc2VydmVy
IGFuZCBuZXcgdGVzdC4KKyAgICAgICAgKGFmdGVyQWxsKTogQ2xlYW4gdXAgdGhlIHNlcnZlci4K
KwogMjAxMy0wMy0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gQWRkIHdlYmtpdF91cmlfcmVxdWVzdF9nZXRfaHR0cF9oZWFkZXJz
IHRvIFdlYktpdDIgR1RLKyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwCmluZGV4IGFjMWZkYWU1NjE0ZGIxYjAw
MjcwNjY5MTY3ZWRjMDQ5Njc1NDIwZTIuLjk0MGY4ZmFhMDQ0NDY4NTc1NjQ2N2RkMTM3ZGI2NWI2
ZjNmYTIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcApAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdHcm91cC5oIgogCisjaW5jbHVkZSAiSW1t
dXRhYmxlQXJyYXkuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0U2V0dGluZ3NQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0dyb3VwUHJpdmF0
ZS5oIgpAQCAtMjIxLDMgKzIyMiw2NiBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19ncm91cF9zZXRf
c2V0dGluZ3MoV2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCwgV2ViS2l0U2V0dGluZwogICAgIHdl
YmtpdFdlYlZpZXdHcm91cEF0dGFjaFNldHRpbmdzVG9QYWdlR3JvdXAoZ3JvdXApOwogICAgIGdf
b2JqZWN0X25vdGlmeShHX09CSkVDVChncm91cCksICJzZXR0aW5ncyIpOwogfQorCitDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEws
IFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX1RPUF9PTkxZLCBXZWJDb3JlOjpJbmpl
Y3RJblRvcEZyYW1lT25seSk7CisKK3N0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiB0
b0ltbXV0YWJsZUFycmF5KGNvbnN0IGNoYXIqIGNvbnN0KiBsaXN0KQoreworICAgIGlmICghbGlz
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBl
bnRyaWVzOworICAgIHdoaWxlICgqbGlzdCkgeworICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJT
dHJpbmc6OmNyZWF0ZUZyb21VVEY4U3RyaW5nKCpsaXN0KSk7CisgICAgICAgIGxpc3QrKzsKKyAg
ICB9CisgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9wdChlbnRyaWVzKTsKK30KKworLyoq
CisgKiB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQ6CisgKiBAZ3Jv
dXA6IGEgI1dlYktpdFdlYlZpZXdHcm91cAorICogQHNvdXJjZTogdGhlIHNvdXJjZSBvZiB0aGUg
c3R5bGVfc2hlZXQgdG8gaW5qZWN0CisgKiBAYmFzZV91cmk6IChhbGxvdy1ub25lKTogdGhlIGJh
c2UgVVJJIHRvIHVzZSB3aGVuIHByb2Nlc3NpbmcgdGhlIHN0eWxlX3NoZWV0IGNvbnRlbnRzIG9y
ICVOVUxMIGZvciBhYm91dDpibGFuaworICogQHdoaXRlbGlzdDogKGFycmF5IHplcm8tdGVybWlu
YXRlZD0xKSAoYWxsb3ctbm9uZSk6IGEgd2hpdGVsaXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVM
TAorICogQGJsYWNrbGlzdDogKGFycmF5IHplcm8tdGVybWluYXRlZD0xKSAoYWxsb3ctbm9uZSk6
IGEgYmxhY2tsaXN0IG9mIFVSSSBwYXR0ZXJucyBvciAlTlVMTAorICogQGluamVjdGVkX2ZyYW1l
czogYSAjV2ViS2l0SW5qZWN0ZWRGcmFtZXMgZGVzY3JpYmluZyB0byB3aGljaCBmcmFtZXMgdGhl
IHN0eWxlX3NoZWV0IHNob3VsZCBhcHBseQorICoKKyAqIEluamVjdCBhbiBleHRlcm5hbCBzdHls
ZSBzaGVldCBpbnRvIHBhZ2VzLiBJdCBpcyBwb3NzaWJsZSB0byBvbmx5IGFwcGx5IHRvIHRoZSBz
dHlsZSBzaGVldAorICogdG8gc29tZSBVUklzIGJ5IHBhc3Npbmcgbm9uLW51bGwgdmFsdWVzIGZv
ciBAd2hpdGVsaXN0IG9yIEBibGFja2xpc3QuIFBhc3NpbmcgYSAlTlVMTAorICogd2hpdGVsaXN0
IGltcGxpZXMgdGhhdCBhbGwgVVJJcyBhcmUgb24gdGhlIHdoaXRlbGlzdC4gVGhlIHN0eWxlIHNo
ZWV0IGlzIGFwcGxpZWQgaWYgYSBVUkkgbWF0Y2hlcworICogdGhlIHdoaXRlbGlzdCBhbmQgbm90
IHRoZSBibGFja2xpc3QuIFVSSSBwYXR0ZXJucyBtdXN0IGJlIG9mIHRoZSBmb3JtIFtwcm90b2Nv
bF06Ly9baG9zdF0vW3BhdGhdCisgKiB3aGVyZSB0aGUgaG9zdCBhbmQgcGF0aCBjb21wb25lbnRz
IGNhbiBjb250YWluIHRoZSB3aWxkY2FyZCBjaGFyYWN0ZXIgKCcqJykgdG8gcmVwcmVzZW50IHpl
cm8KKyAqIG9yIG1vcmUgb3RoZXIgY2hhcmFjdGVycy4KKyAqLwordm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQoV2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCwg
Y29uc3QgY2hhciogc291cmNlLCBjb25zdCBjaGFyKiBiYXNlVVJJLCBjb25zdCBjaGFyKiBjb25z
dCogd2hpdGVsaXN0LCBjb25zdCBjaGFyKiBjb25zdCogYmxhY2tsaXN0LCBXZWJLaXRJbmplY3Rl
ZENvbnRlbnRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVdfR1JPVVAoZ3JvdXApKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHNv
dXJjZSk7CisKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IHdlYldoaXRlbGlzdCA9IHRvSW1t
dXRhYmxlQXJyYXkod2hpdGVsaXN0KTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IHdlYkJs
YWNrbGlzdCA9IHRvSW1tdXRhYmxlQXJyYXkoYmxhY2tsaXN0KTsKKworICAgIC8vIFdlIGFsd2F5
cyB1c2UgVXNlclN0eWxlVXNlckxldmVsIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiBXS1BhZ2VH
cm91cEFkZFVzZXJTdHlsZVNoZWV0LgorICAgIGdyb3VwLT5wcml2LT5wYWdlR3JvdXAtPmFkZFVz
ZXJTdHlsZVNoZWV0KAorICAgICAgICBTdHJpbmc6OmZyb21VVEY4KHNvdXJjZSksCisgICAgICAg
IFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSksCisgICAgICAgIHdlYldoaXRlbGlzdC5nZXQoKSwK
KyAgICAgICAgd2ViQmxhY2tsaXN0LmdldCgpLAorICAgICAgICBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZyYW1lcyksCisgICAgICAgIFdl
YkNvcmU6OlVzZXJTdHlsZVVzZXJMZXZlbCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZV9zaGVldHM6CisgKiBAZ3JvdXA6IGEgI1dlYktp
dFdlYlZpZXdHcm91cAorICoKKyAqIFJlbW92ZSBhbGwgc3R5bGUgc2hlZXRzIHByZXZpb3VzbHkg
aW5qZWN0ZWQgaW50byB0aGlzICNXZWJLaXRXZWJWaWV3R3JvdXAgCisgKiB2aWEgd2Via2l0X3dl
Yl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KCkuCisgKi8KK3ZvaWQgd2Via2l0X3dl
Yl92aWV3X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZV9zaGVldHMoV2ViS2l0V2ViVmlld0dy
b3VwKiBncm91cCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFV19H
Uk9VUChncm91cCkpOworICAgIGdyb3VwLT5wcml2LT5wYWdlR3JvdXAtPnJlbW92ZUFsbFVzZXJT
dHlsZVNoZWV0cygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuaAppbmRleCBhNDg4YWU3MjEzMTdiYTI0NTFhNzI4MWYz
MDBlZDFmYzFlYWIyZTQ0Li43NzUyMzY1OGQ1YjJkMzJmMDIzM2U3YWJlMDYzZjE3N2YzYWYwZmNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3R3JvdXAuaApAQCAtNTEsMjEgKzUxLDQ0IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0dy
b3VwQ2xhc3MgewogICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCisvKioKKyAq
IFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lczoKKyAqIEBXRUJLSVRfSU5KRUNURURfQ09OVEVO
VF9GUkFNRVNfQUxMOiBDb250ZW50IHdpbGwgYmUgaW5qZWN0ZWQgaW50byBhbGwgZnJhbWVzLgor
ICogQFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWTogQ29udGVudCB3aWxs
IG9ubHkgYmUgaW5qZWN0ZWQgaW50byB0aGUgbWFpbiBmcmFtZS4KKyAqCisgKiBFbnVtIHZhbHVl
cyB1c2VkIGZvciBkZXRlcm1pbmluZyBpbnRvIHdoaWNoIGZyYW1lcyBjb250ZW50IGlzIGluamVj
dGVkLgorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZS
QU1FU19BTEwsCisgICAgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX1RPUF9PTkxZLAor
fSBXZWJLaXRJbmplY3RlZENvbnRlbnRGcmFtZXM7CisKIFdFQktJVF9BUEkgR1R5cGUKLXdlYmtp
dF93ZWJfdmlld19ncm91cF9nZXRfdHlwZSAgICAgKHZvaWQpOword2Via2l0X3dlYl92aWV3X2dy
b3VwX2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIFdl
YktpdFdlYlZpZXdHcm91cCAqCi13ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfbmV3ICAgICAgICAgIChj
b25zdCBnY2hhciAgICAgICAgKm5hbWUpOword2Via2l0X3dlYl92aWV3X2dyb3VwX25ldyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgICAqbmFtZSk7
CiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgotd2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF9u
YW1lICAgICAoV2ViS2l0V2ViVmlld0dyb3VwICpncm91cCk7Cit3ZWJraXRfd2ViX3ZpZXdfZ3Jv
dXBfZ2V0X25hbWUgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlld0dyb3VwICAgICAg
ICAgICpncm91cCk7CiAKIFdFQktJVF9BUEkgV2ViS2l0U2V0dGluZ3MgKgotd2Via2l0X3dlYl92
aWV3X2dyb3VwX2dldF9zZXR0aW5ncyAoV2ViS2l0V2ViVmlld0dyb3VwICpncm91cCk7Cit3ZWJr
aXRfd2ViX3ZpZXdfZ3JvdXBfZ2V0X3NldHRpbmdzICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
Vmlld0dyb3VwICAgICAgICAgICpncm91cCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
Yl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXdH
cm91cCAgICAgICAgICAqZ3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0U2V0dGluZ3MgICAgICAgICAgICAgICpzZXR0aW5ncyk7
CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxl
X3NoZWV0ICAgICAgICAgKFdlYktpdFdlYlZpZXdHcm91cCAgICAgICAgICAgKmdyb3VwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICAgICAgICAgICAgKnNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICpi
YXNlX3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAqIGNvbnN0ICAgICAgICAgICp3aGl0ZWxpc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKiBj
b25zdCAgICAgICAgICAqYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lcyAgIGluamVj
dGVkX2ZyYW1lcyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2dyb3VwX3Nl
dF9zZXR0aW5ncyAoV2ViS2l0V2ViVmlld0dyb3VwICpncm91cCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFNldHRpbmdzICAgICAqc2V0dGluZ3MpOword2Via2l0
X3dlYl92aWV3X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZV9zaGVldHMgKFdlYktpdFdlYlZp
ZXdHcm91cCAgICAgICAgICAqZ3JvdXApOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dAppbmRleCBhOTVhZWU5NmNlZTY2YzhmNDA4ZGRiODgxODg2YWI2YzE1ZGRjMTc3
Li43MWEyZGU3YTA2OTQwMGNmNjJjM2FjY2U0NjAyOTkzZTQ5MzYyNmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKQEAgLTk0NSwxMCArOTQ1LDEzIEBAIHdlYmtpdF9zZWN1cml0eV9tYW5h
Z2VyX2dldF90eXBlCiA8U0VDVElPTj4KIDxGSUxFPldlYktpdFdlYlZpZXdHcm91cDwvRklMRT4K
IFdlYktpdFdlYlZpZXdHcm91cAorV2ViS2l0SW5qZWN0ZWRDb250ZW50RnJhbWVzCiB3ZWJraXRf
d2ViX3ZpZXdfZ3JvdXBfbmV3CiB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfZ2V0X25hbWUKIHdlYmtp
dF93ZWJfdmlld19ncm91cF9nZXRfc2V0dGluZ3MKIHdlYmtpdF93ZWJfdmlld19ncm91cF9zZXRf
c2V0dGluZ3MKK3dlYmtpdF93ZWJfdmlld19ncm91cF9hZGRfdXNlcl9zdHlsZV9zaGVldAord2Vi
a2l0X3dlYl92aWV3X2dyb3VwX3JlbW92ZV9hbGxfdXNlcl9zdHlsZV9zaGVldHMKIAogPFNVQlNF
Q1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRXZWJWaWV3R3JvdXBDbGFzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXdHcm91
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0
V2ViVmlld0dyb3VwLmNwcAppbmRleCBjYmMxZDIzNjhkZWM1ODNkNmE5Y2QwZDlhODQ1NDg1OGM1
ZjVkNTUxLi4wMjZjNWM1YjllOGVmYWUyOTk4ZDI4MzZhZDkwYWNkNDNhZDI2MWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2Vi
Vmlld0dyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9UZXN0V2ViS2l0V2ViVmlld0dyb3VwLmNwcApAQCAtMTksMTEgKzE5LDIxIEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgIldlYktpdFRlc3RTZXJ2ZXIuaCIKICNpbmNsdWRl
ICJXZWJWaWV3VGVzdC5oIgorI2luY2x1ZGUgPGNzdGRhcmc+CiAjaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dS
ZWZQdHIuaD4KIAorc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CisKKy8vIFRoZXNl
IGFyZSBhbGwgaGVyZSBzbyB0aGF0IHRoZXkgY2FuIGJlIGNoYW5nZWQgZWFzaWx5LCBpZiBuZWNl
c3NhcnkuCitzdGF0aWMgY29uc3QgY2hhcioga1N0eWxlU2hlZXRIVE1MID0gIjxodG1sPjxkaXYg
aWQ9XCJzdHlsZWRFbGVtZW50XCI+U3dlZXQgc3R5bGV6ITwvZGl2PjwvaHRtbD4iOworc3RhdGlj
IGNvbnN0IGNoYXIqIGtJbmplY3RlZFN0eWxlU2hlZXQgPSAiI3N0eWxlZEVsZW1lbnQgeyBmb250
LXdlaWdodDogYm9sZDsgfSI7CitzdGF0aWMgY29uc3QgY2hhcioga1N0eWxlU2hlZXRUZXN0U2Ny
aXB0ID0gImdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0eWxlZEVs
ZW1lbnQnKSlbJ2ZvbnQtd2VpZ2h0J10iOworc3RhdGljIGNvbnN0IGNoYXIqIGtTdHlsZVNoZWV0
VGVzdFNjcmlwdFJlc3VsdCA9ICJib2xkIjsKKwogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHcm91
cERlZmF1bHQoVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICAvLyBEZWZhdWx0IGdy
b3VwIGlzIHNoYXJlZCBieSBhbGwgV2ViVmlld3MgYnkgZGVmYXVsdC4KQEAgLTg4LDE1ICs5OCwx
MDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHcm91cFNldHRpbmdzKFRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQod2Via2l0X3dlYl92aWV3X2dyb3VwX2dldF9zZXR0
aW5ncyh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2dyb3VwKHdlYlZpZXcxLmdldCgpKSkgPT0gd2ViVmll
dzJTZXR0aW5ncyk7CiB9CiAKK3N0YXRpYyBib29sIGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJM
QXRQYXRoKFdlYlZpZXdUZXN0KiB0ZXN0LCBjb25zdCBjaGFyKiBwYXRoKQoreworICAgIHRlc3Qt
PmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aChwYXRoKS5kYXRhKCkpOworICAgIHRlc3Qt
PndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgR093blB0cjxHRXJyb3I+IGVycm9yOwor
ICAgIFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRSZXN1bHQgPSB0ZXN0LT5ydW5K
YXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoa1N0eWxlU2hlZXRUZXN0U2NyaXB0LCAmZXJy
b3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KGphdmFzY3JpcHRSZXN1bHQpOworICAgIGdfYXNz
ZXJ0KCFlcnJvci5nZXQoKSk7CisKKyAgICBHT3duUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhXZWJW
aWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7Cisg
ICAgcmV0dXJuICFnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCBrU3R5bGVTaGVldFRlc3RT
Y3JpcHRSZXN1bHQpOworfQorCitzdGF0aWMgdm9pZCBmaWxsVVJMTGlzdEZyb21QYXRocyhjaGFy
KiogbGlzdCwgY29uc3QgY2hhciogcGF0aCwgLi4uKQoreworICAgIHZhX2xpc3QgYXJndW1lbnRM
aXN0OworICAgIHZhX3N0YXJ0KGFyZ3VtZW50TGlzdCwgcGF0aCk7CisKKyAgICBpbnQgaSA9IDA7
CisgICAgd2hpbGUgKHBhdGgpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG11c3QgdXNlIGEgd2ls
ZGNhcmQgZm9yIHRoZSBob3N0IGhlcmUgdW50aWwgaHR0cDovL3drYnVnLmNvbS8xMTI0NzYgaXMg
Zml4ZWQuCisgICAgICAgIC8vIFVudGlsIHRoYXQgdGltZSBwYXR0ZXJucyB3aXRoIHBvcnQgbnVt
YmVycyBpbiB0aGVtIHdpbGwgbm90IHByb3Blcmx5IG1hdGNoIFVSTHMgd2l0aCBwb3J0IG51bWJl
cnMuCisgICAgICAgIGxpc3RbaSsrXSA9IGdfc3RyZHVwX3ByaW50ZigiaHR0cDovLyovJXMqIiwg
cGF0aCk7CisgICAgICAgIHBhdGggPSB2YV9hcmcoYXJndW1lbnRMaXN0LCBjb25zdCBjaGFyKik7
CisgICAgfQorfQorCitzdGF0aWMgdm9pZCByZW1vdmVPbGRJbmplY3RlZFN0eWxlU2hlZXRzQW5k
UmVzZXRMaXN0cyhXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3VwLCBjaGFyKiogd2hpdGVsaXN0LCBj
aGFyKiogYmxhY2tsaXN0KQoreworICAgIHdlYmtpdF93ZWJfdmlld19ncm91cF9yZW1vdmVfYWxs
X3VzZXJfc3R5bGVfc2hlZXRzKGdyb3VwKTsKKworICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7Cisg
ICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0KTsKKyAgICAgICAgKndoaXRlbGlzdCA9IDA7CisgICAg
ICAgIHdoaXRlbGlzdCsrOworICAgIH0KKworICAgIHdoaWxlICgqYmxhY2tsaXN0KSB7CisgICAg
ICAgIGdfZnJlZSgqYmxhY2tsaXN0KTsKKyAgICAgICAgKmJsYWNrbGlzdCA9IDA7CisgICAgICAg
IGJsYWNrbGlzdCsrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHcm91cElu
amVjdGVkU3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICBXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3VwID0gd2Via2l0X3dlYl92aWV3X2dldF9ncm91cCh0
ZXN0LT5tX3dlYlZpZXcpOworICAgIGNoYXIqIHdoaXRlbGlzdFszXSA9IHsgMCwgMCwgMCB9Owor
ICAgIGNoYXIqIGJsYWNrbGlzdFszXSA9IHsgMCwgMCwgMCB9OworCisgICAgcmVtb3ZlT2xkSW5q
ZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHMoZ3JvdXAsIHdoaXRlbGlzdCwgYmxhY2tsaXN0
KTsKKworICAgIC8vIFdpdGhvdXQgYSB3aGl0ZWxpc3Qgb3IgYSBibGFja2xpc3QgYWxsIFVSTHMg
c2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHN0eWxlIHNoZWV0LgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKKyAgICBnX2Fzc2VydCghaXNTdHls
ZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOworICAgIHdlYmtp
dF93ZWJfdmlld19ncm91cF9hZGRfdXNlcl9zdHlsZV9zaGVldChncm91cCwga0luamVjdGVkU3R5
bGVTaGVldCwgMCwgMCwgMCwgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX0FMTCk7Cisg
ICAgZ19hc3NlcnQoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9t
UGF0aCkpOworCisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHMo
Z3JvdXAsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhz
KGJsYWNrbGlzdCwgcmFuZG9tUGF0aCwgMCk7CisgICAgd2Via2l0X3dlYl92aWV3X2dyb3VwX2Fk
ZF91c2VyX3N0eWxlX3NoZWV0KGdyb3VwLCBrSW5qZWN0ZWRTdHlsZVNoZWV0LCAwLCAwLCBibGFj
a2xpc3QsIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEwpOworICAgIGdfYXNzZXJ0
KCFpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7Cisg
ICAgZ19hc3NlcnQoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgInNvbWVv
dGhlcnJhbmRvbXBhdGgiKSk7CisKKyAgICByZW1vdmVPbGRJbmplY3RlZFN0eWxlU2hlZXRzQW5k
UmVzZXRMaXN0cyhncm91cCwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworCisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0ID0gImludGhld2hpdGVsaXN0IjsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogbm90SW5XaGl0ZWxpc3QgPSAibm90aW50aGV3aGl0ZWxpc3QiOworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCA9ICJpbnRoZXdoaXRl
bGlzdGFuZGJsYWNrbGlzdCI7CisKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyh3aGl0ZWxpc3Qs
IGluVGhlV2hpdGVMaXN0LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCwgMCk7CisgICAgZmls
bFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCwg
MCk7CisgICAgd2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KGdyb3Vw
LCBrSW5qZWN0ZWRTdHlsZVNoZWV0LCAwLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCwgV0VCS0lUX0lO
SkVDVEVEX0NPTlRFTlRfRlJBTUVTX0FMTCk7CisgICAgZ19hc3NlcnQoaXNTdHlsZVNoZWV0SW5q
ZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3QpKTsKKyAgICBnX2Fzc2VydCgh
aXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRC
bGFja0xpc3QpKTsKKyAgICBnX2Fzc2VydCghaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBh
dGgodGVzdCwgbm90SW5XaGl0ZWxpc3QpKTsKKworICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNs
ZWFuIHVwIHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgb3RoZXIgdGVzdHMuCisgICAgcmVtb3ZlT2xk
SW5qZWN0ZWRTdHlsZVNoZWV0c0FuZFJlc2V0TGlzdHMoZ3JvdXAsIHdoaXRlbGlzdCwgYmxhY2ts
aXN0KTsKK30KKworc3RhdGljIHZvaWQgc2VydmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVy
LCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNv
dXBDbGllbnRDb250ZXh0KiwgZ3BvaW50ZXIpCit7CisgICAgc291cF9tZXNzYWdlX3NldF9zdGF0
dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOworICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVu
ZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsIGtTdHlsZVNoZWV0
SFRNTCwgc3RybGVuKGtTdHlsZVNoZWV0SFRNTCkpOworICAgIHNvdXBfbWVzc2FnZV9ib2R5X2Nv
bXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7
CisgICAga1NlcnZlciA9IG5ldyBXZWJLaXRUZXN0U2VydmVyKCk7CisgICAga1NlcnZlci0+cnVu
KHNlcnZlckNhbGxiYWNrKTsKKwogICAgIFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlld0dyb3VwIiwg
ImRlZmF1bHQtZ3JvdXAiLCB0ZXN0V2ViVmlld0dyb3VwRGVmYXVsdCk7CiAgICAgVGVzdDo6YWRk
KCJXZWJLaXRXZWJWaWV3R3JvdXAiLCAibmV3LWdyb3VwIiwgdGVzdFdlYlZpZXdHcm91cE5ld0dy
b3VwKTsKICAgICBUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAibmV3LXdpdGgtZ3JvdXAiLCB0
ZXN0V2ViVmlld05ld1dpdGhHcm91cCk7CiAgICAgVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3R3Jv
dXAiLCAic2V0dGluZ3MiLCB0ZXN0V2ViVmlld0dyb3VwU2V0dGluZ3MpOworICAgIFdlYlZpZXdU
ZXN0OjphZGQoIldlYktpdFdlYlZpZXdHcm91cCIsICJpbmplY3RlZC1zdHlsZS1zaGVldCIsIHRl
c3RXZWJWaWV3R3JvdXBJbmplY3RlZFN0eWxlU2hlZXQpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
IHsKLQorICAgIGRlbGV0ZSBrU2VydmVyOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>