<?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>109576</bug_id>
          
          <creation_ts>2013-02-12 05:41:04 -0800</creation_ts>
          <short_desc>[SOUP] Incorrect multilevel redirections (cannot login to Google+)</short_desc>
          <delta_ts>2019-05-17 14:02:27 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://plus.google.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Soup</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cedric.bellegarde</cc>
    
    <cc>christian</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830830</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-12 05:41:04 -0800</bug_when>
    <thetext>I found this when trying to login to plus.google.com with the current master and WebKitGtk+ (I guess the same happens with Efl). I was totally unable to login and the server was responding to some of the requests with 405 (Invalid method). I noticed that we were incorrectly redirecting with a POST when we should be using a GET in some cases.

This is more or less the sequence of events:

     client              server

(1) POST url   ---&gt;      
               &lt;---    return 302
(2) GET url    ---&gt;    
               &lt;---    return 302
(3) POST url   ---&gt;
               &lt;---    return 405

So (2) is OK but the POST in (3) is not. The problem is the following, in doRedirect we create the new Request from the _original_ request (which is a POST), but the SoupMessage corresponds to the last client-server HTTP communication. So if the original request was a POST, it will never be rewritten to a GET for multilevel redirects (because the last SoupMessage method is a GET).

Patch coming soon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830841</commentid>
    <comment_count>1</comment_count>
      <attachid>187847</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-12 05:50:09 -0800</bug_when>
    <thetext>Created attachment 187847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830864</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-12 06:16:08 -0800</bug_when>
    <thetext>This may be related to Bug 93214.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830896</commentid>
    <comment_count>3</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2013-02-12 06:44:24 -0800</bug_when>
    <thetext>yup

*** This bug has been marked as a duplicate of bug 93214 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830919</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-12 07:08:55 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=187847) [details]
&gt; Patch

(In reply to comment #3)
&gt; yup
&gt; 
&gt; *** This bug has been marked as a duplicate of bug 93214 ***

It looks like some of the changes in the patch fix further GTK+ bugs though. So perhaps this bug should stay open and address those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830921</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-12 07:13:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #1)
&gt; &gt; Created an attachment (id=187847) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; (In reply to comment #3)
&gt; &gt; yup
&gt; &gt; 
&gt; &gt; *** This bug has been marked as a duplicate of bug 93214 ***
&gt; 
&gt; It looks like some of the changes in the patch fix further GTK+ bugs though. So perhaps this bug should stay open and address those.


I agree, it might be a dup, but this patch also includes the required changes for redirect-methods.html to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830923</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-12 07:17:34 -0800</bug_when>
    <thetext>(In reply to comment #5)

&gt; I agree, it might be a dup, but this patch also includes the required changes for redirect-methods.html to work.

Do you mind also commenting on the other bug? The checks here looks simpler, but I&apos;m having trouble evaluating which version of the change is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830941</commentid>
    <comment_count>7</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2013-02-12 07:50:39 -0800</bug_when>
    <thetext>my bad. oh, it looks like this may have the DRT fix that will let us uncomment the test from 93214 as well.

However, as I said there, I don&apos;t think we should be changing shouldRedirectAsGET(); the logic in that function is correct as-is. The bug is in doRedirect(); shouldRedirectAsGET() is saying &quot;you don&apos;t need to change the method from the previous request&quot; but doRedirect *does* change the method (accidentally, as a result of initializing request from the wrong data).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831068</commentid>
    <comment_count>8</comment_count>
      <attachid>187893</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-12 10:41:23 -0800</bug_when>
    <thetext>Created attachment 187893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831090</commentid>
    <comment_count>9</comment_count>
      <attachid>187893</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-12 11:01:31 -0800</bug_when>
    <thetext>Comment on attachment 187893
Patch

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

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-1005
&gt;      WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get());
&gt;  
&gt; -    // A NULL WebResource means the load has been interrupted, and
&gt; -    // replaced by another one while this resource was being loaded.
&gt; -    if (!webResource)
&gt; -        return;

So is the the case that webkit_web_view_get_resource can never return a NULL WebKitWebResource? If so you should probably ASSERT here.

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-1018
&gt; -    webkit_web_resource_init_with_core_resource(webResource, coreResource.get());

Not entirely sure why this is removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831137</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-12 11:57:56 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 187893 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187893&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-1005
&gt; &gt;      WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get());
&gt; &gt;  
&gt; &gt; -    // A NULL WebResource means the load has been interrupted, and
&gt; &gt; -    // replaced by another one while this resource was being loaded.
&gt; &gt; -    if (!webResource)
&gt; &gt; -        return;
&gt; 
&gt; So is the the case that webkit_web_view_get_resource can never return a NULL WebKitWebResource? If so you should probably ASSERT here.

The implementation can return NULL, but since we register all the identifiers  and WebCore will never notify us about a non existing resource, I think we can safely add an ASSERT there instead of the NULL check.

&gt; &gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-1018
&gt; &gt; -    webkit_web_resource_init_with_core_resource(webResource, coreResource.get());
&gt; 
&gt; Not entirely sure why this is removed.

By mistake :). I think the final code should be something like this:

    const char* uri = webkit_web_resource_get_uri(webResource);
    RefPtr&lt;ArchiveResource&gt; coreResource(loader-&gt;subresource(KURL(KURL(), uri)));
    if (coreResource)
        webkit_web_resource_init_with_core_resource(webResource, coreResource.get());

I&apos;d love to hear kov&apos;s opinion on the matter since he wrote most of that method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831420</commentid>
    <comment_count>11</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-02-12 16:49:15 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; &gt; -    // A NULL WebResource means the load has been interrupted, and
&gt; &gt; &gt; -    // replaced by another one while this resource was being loaded.
&gt; &gt; &gt; -    if (!webResource)
&gt; &gt; &gt; -        return;
&gt; &gt; 
&gt; &gt; So is the the case that webkit_web_view_get_resource can never return a NULL WebKitWebResource? If so you should probably ASSERT here.
&gt; 
&gt; The implementation can return NULL, but since we register all the identifiers  and WebCore will never notify us about a non existing resource, I think we can safely add an ASSERT there instead of the NULL check.

By non-existing you mean 404? I&apos;m pretty sure this comment made sense when it was written, I don&apos;t know if our assumptions have changed, though, IIRC this was for things like getting a resource load started which eventually got replaced by a plugin handling it, I&apos;m not sure we won&apos;t be getting crashes from this =/
 
&gt; By mistake :). I think the final code should be something like this:
&gt; 
&gt;     const char* uri = webkit_web_resource_get_uri(webResource);
&gt;     RefPtr&lt;ArchiveResource&gt; coreResource(loader-&gt;subresource(KURL(KURL(), uri)));
&gt;     if (coreResource)
&gt;         webkit_web_resource_init_with_core_resource(webResource, coreResource.get());
&gt; 
&gt; I&apos;d love to hear kov&apos;s opinion on the matter since he wrote most of that method.

Are these changes required for the fix you&apos;re doing? I would prefer them to not  be done at all or be landed separately at least, so we can more easily back them out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831722</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-02-13 01:44:22 -0800</bug_when>
    <thetext>Now that I thought a bit more about this I agree with Gustavo that we should not submit the patch even if it &quot;fixes&quot; the test case, basically because it would mean an API change, in the sense that some signals will mean a different thing.

So once bug 93214 is submitted, the sequence of events in redirect-methods.html will be the right one although the test will not pass yet. There will be two text differences:
   (1) the uri of the WebResource
   (2) the lack of didFinishLoading message

Those differences, as I mentioned, do not mean that the test is behaving incorrectly as they could be perfectly explained by the decisions taken when the WKGtk API was designed. I&apos;ll go through both cases:

(1) The first argument in the &quot;willSendRequest&quot; message is supposed to be the URI of the resource that will change due to a redirect. In our case this fails because we rewrite the URI of the WebResouce (to the new one) before emitting the &quot;resource-request-starting&quot; signal in FrameLoaderClient::dispatchWillSendRequest.

(2) WRT the lack of the didFinishLoading message in the test result, it can be explained if we carefully look at FrameLoaderClient::dispatchDidFinishLoading. If we do not find a coreResource for a subresource then we return and do not notify. From the comment above that code I guess this was added because we didn&apos;t want to emit &quot;resource-load-finish&quot; for resources that failed to load. What I have seen is that the lack of coreResource could also mean that the request was redirected (and thus a new resource was created to handle it).

So putting aside the discussion about if this is the right way to do things or not from an API POV, I think that if we want to take advantage of passing such an important test (we have lately broke the redirection many times) we might consider the option of creating a specific test result for this case for our port (and even for WK1 only, I&apos;d need to check the resources API in WK2) that will not print the new resource URI (as it is identical to the request) and won&apos;t have the didFinishLoading messages.

wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833532</commentid>
    <comment_count>13</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-02-14 16:22:31 -0800</bug_when>
    <thetext>Yeah, I think we should just target getting this passing for wk2 and leave the wk1 side as is if possible. No use spending much time in wk1 at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238163</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-09 19:25:46 -0700</bug_when>
    <thetext>Is this bug obsolete or is it the cause of https://bugzilla.gnome.org/show_bug.cgi?id=771856 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239815</commentid>
    <comment_count>15</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-10-13 10:12:04 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Is this bug obsolete or is it the cause of
&gt; https://bugzilla.gnome.org/show_bug.cgi?id=771856 ?

I guess the problem is still there indeed, but I haven&apos;t looked into it since I worked on this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335383</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-04 12:09:18 -0700</bug_when>
    <thetext>*** Bug 175189 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335385</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-04 12:09:43 -0700</bug_when>
    <thetext>Looks like this is breaking notifications on Google websites as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363173</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-22 14:56:59 -0700</bug_when>
    <thetext>I don&apos;t think bug #175189 is actually a duplicate.

It also looks like, reading this history of this bug, a fix has already been committed. It&apos;s not clear to me if there is still a bug here or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537233</commentid>
    <comment_count>19</comment_count>
    <who name="Lionir">webkit-bugzilla</who>
    <bug_when>2019-05-17 13:48:27 -0700</bug_when>
    <thetext>This can no longer be tested because Google+ closed down. Should we close this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537244</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-17 14:02:27 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #18)
&gt; It also looks like, reading this history of this bug, a fix has already been
&gt; committed. It&apos;s not clear to me if there is still a bug here or not.

Sergio, if there&apos;s still a problem here, feel free to file an updated report.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187847</attachid>
            <date>2013-02-12 05:50:09 -0800</date>
            <delta_ts>2013-02-12 10:41:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109576-20130212144638.patch</filename>
            <type>text/plain</type>
            <size>9639</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQxYzMxZjBjODFmOGJk
ODQ5ZTQ4MTZmNTAzZWFjY2ZjMzE0ZWYxMC4uOGZiZGEyMzQ1MWE3MmQxM2VhNTk4OGIyNWQwMzNi
ZTU0MWE4ZmQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTEyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtTb3VwXSBJ
bmNvcnJlY3QgbXVsdGlsZXZlbCByZWRpcmVjdGlvbnMgKGNhbm5vdCBsb2dpbiB0byBHb29nbGUr
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTc2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV3cml0
dGVuIFJlc291cmNlSGFuZGxlU291cDo6c2hvdWxkUmVkaXJlY3RBc0dFVCgpIHRvIGRvIGV4YWN0
bHkKKyAgICAgICAgd2hhdCB0aGUgZnVuY3Rpb24gbmFtZSBzdWdnZXN0cywgZGV0ZXJtaW5lIHdo
ZXRoZXIgb3Igbm90IHdlCisgICAgICAgIHNob3VsZCB1c2UgYSBHRVQgaW5zdGVhZCBvZiB0aGUg
b3JpZ2luYWwgbWV0aG9kIGZvcgorICAgICAgICByZWRpcmVjdGlvbnMuIFRoaXMgZnVuY3Rpb24g
dXNlZCB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mCisgICAgICAgIHJld3JpdGVzIGJ1dCB3YXMg
bm90IGJlaGF2aW5nIGNvcnJlY3RseSBmb3IgbXVsdGlsZXZlbCByZWRpcmVjdHMKKyAgICAgICAg
YXMgaXQgd2FzIHVzaW5nIHRoZSBsYXN0IFNvdXBNZXNzYWdlIGluIG9yZGVyIHRvIG1ha2UgYSBk
ZWNpc2lvbgorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0LgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzaG91bGRSZWRpcmVjdEFzR0VUKToKKyAgICAgICAgKFdlYkNvcmU6OmRv
UmVkaXJlY3QpOgorCiAyMDEzLTAyLTA1ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUk6IFNob3VsZCBub3QgbW92ZSBm
b2N1cyBpZiB0aGUgZWxlbWVudCBhbHJlYWR5IGhhcyBmb2N1cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IGFmOTdhNTc4YzE5NDdjNzI5NTU3ZTg4N2U1YjBhZDk2NTA4NzM5YjYuLmE1YWNkZWM4MDQzZThl
ZTQwYzRiMTlmMTllYjM4NzliNmU2ZDdhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMy0wMi0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KKworICAgICAgICBbU291cF0gSW5jb3JyZWN0IG11bHRpbGV2ZWwgcmVkaXJlY3Rpb25zIChj
YW5ub3QgbG9naW4gdG8gR29vZ2xlKykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92ZWQgV2ViUmVzb3VyY2UgZXhpc3RlbmNlIGNoZWNrcyBhcyBp
dCBzZWVtcyB0aGF0IHRoZXkgYXJlIG5vCisgICAgICAgIGxvbmdlciBuZWVkZWQgYW5kIHdoZXJl
IGFsc28gcHJldmVudGluZyByZWRpcmVjdC1tZXRob2RzLmh0bWwgZnJvbQorICAgICAgICBwYXNz
aW5nLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKToKKwogMjAxMy0wMi0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBORVdTIGFuZCBjb25maWd1cmF0aW9u
IGluIHByZXBhcmF0aW9uIGZvciAxLjExLjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDFm
NmFmM2NjMTQzYmRjMmYyOTY1YmIzNjE2NDZiMTZjMzkwOWI5ZGIuLjQ3NjM1MjEwZDYwMGM1Y2Y5
YzdmMDViMTY1NzY1OGMwOTUyM2JlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00MTks
MjUgKzQxOSwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZWRpcmVjdChSZXNvdXJjZUhhbmRsZSog
aGFuZGxlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRSZWRpcmVj
dEFzR0VUKFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBLVVJMJiBuZXdVUkwsIGJvb2wgY3Jvc3NPcmln
aW4pCitzdGF0aWMgYm9vbCBzaG91bGRSZWRpcmVjdEFzR0VUKFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBTb3VwTWVzc2FnZSogbWVzc2FnZSkKIHsKLSAgICBpZiAobWVzc2FnZS0+bWV0aG9kID09
IFNPVVBfTUVUSE9EX0dFVCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFuZXdV
UkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IHN3aXRjaCAobWVzc2FnZS0+c3RhdHVzX2NvZGUpIHsKLSAgICBjYXNlIFNPVVBfU1RBVFVTX1NF
RV9PVEhFUjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBTT1VQX1NUQVRVU19GT1VO
RDoKLSAgICBjYXNlIFNPVVBfU1RBVFVTX01PVkVEX1BFUk1BTkVOVExZOgotICAgICAgICBpZiAo
bWVzc2FnZS0+bWV0aG9kID09IFNPVVBfTUVUSE9EX1BPU1QpCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKGNyb3NzT3JpZ2luICYmIG1l
c3NhZ2UtPm1ldGhvZCA9PSBTT1VQX01FVEhPRF9ERUxFVEUpCisgICAgaWYgKCgobWVzc2FnZS0+
c3RhdHVzX2NvZGUgPT0gU09VUF9TVEFUVVNfTU9WRURfUEVSTUFORU5UTFkpCisgICAgICAgIHx8
IChtZXNzYWdlLT5zdGF0dXNfY29kZSA9PSBTT1VQX1NUQVRVU19GT1VORCkKKyAgICAgICAgfHwg
KG1lc3NhZ2UtPnN0YXR1c19jb2RlID09IFNPVVBfU1RBVFVTX1NFRV9PVEhFUikpCisgICAgICAg
ICYmIChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ2MSw3ICs0NDgsNyBAQCBzdGF0aWMgdm9pZCBk
b1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgYm9vbCBjcm9zc09yaWdpbiA9
ICFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwocmVxdWVzdC51cmwoKSwgbmV3VVJMKTsKICAg
ICByZXF1ZXN0LnNldFVSTChuZXdVUkwpOwogCi0gICAgaWYgKHNob3VsZFJlZGlyZWN0QXNHRVQo
bWVzc2FnZSwgbmV3VVJMLCBjcm9zc09yaWdpbikpIHsKKyAgICBpZiAoc2hvdWxkUmVkaXJlY3RB
c0dFVChyZXF1ZXN0LCBtZXNzYWdlKSkgewogICAgICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2Qo
IkdFVCIpOwogICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KDApOwogICAgICAgICByZXF1ZXN0
LmNsZWFySFRUUENvbnRlbnRUeXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggMjQ2NTI5NTQy
ODc3ODlhMjZmZDhhNmRmNjE1NTdiYTI4MjBiM2VlZi4uODE0OGVmMzVlODMyMjNmMTE3YjZjNjlk
NmZkMWZkZTgzMTkzOGJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMjQ3LDEzICsyNDcsNiBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciogbG9hZGVyLAogICAgIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNv
dXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uod2ViVmlldywgaWRlbnRpZmllclN0
cmluZy5nZXQoKSk7CiAgICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4gbmV0d29ya1Jl
cXVlc3QoYWRvcHRHUmVmKGtpdE5ldyhyZXF1ZXN0KSkpOwogCi0gICAgaWYgKCFyZWRpcmVjdFJl
c3BvbnNlLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgYSByZWRpcmVjdCwgc28gd2Ug
bmVlZCB0byB1cGRhdGUgdGhlIFdlYlJlc291cmNlJ3Mga25vd2xlZGdlCi0gICAgICAgIC8vIG9m
IHRoZSBVUkkuCi0gICAgICAgIGdfZnJlZSh3ZWJSZXNvdXJjZS0+cHJpdi0+dXJpKTsKLSAgICAg
ICAgd2ViUmVzb3VyY2UtPnByaXYtPnVyaSA9IGdfc3RyZHVwKHJlcXVlc3QudXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdl
YlZpZXcsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgbV9mcmFtZSwgd2ViUmVzb3VyY2Us
IG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogICAgIGdfc2ln
bmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdl
YlJlc291cmNlLCBuZXR3b3JrUmVxdWVzdC5nZXQoKSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsK
IApAQCAtOTk5LDI0ICs5OTIsNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlcgogICAgIEdPd25Q
dHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOwogICAgIFdl
YktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3Vy
Y2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7CiAKLSAgICAvLyBBIE5VTEwgV2Vi
UmVzb3VyY2UgbWVhbnMgdGhlIGxvYWQgaGFzIGJlZW4gaW50ZXJydXB0ZWQsIGFuZAotICAgIC8v
IHJlcGxhY2VkIGJ5IGFub3RoZXIgb25lIHdoaWxlIHRoaXMgcmVzb3VyY2Ugd2FzIGJlaW5nIGxv
YWRlZC4KLSAgICBpZiAoIXdlYlJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25z
dCBjaGFyKiB1cmkgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkod2ViUmVzb3VyY2UpOwot
ICAgIFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IGNvcmVSZXNvdXJjZShsb2FkZXItPnN1YnJlc291
cmNlKEtVUkwoS1VSTCgpLCB1cmkpKSk7Ci0KLSAgICAvLyBJZiBjb3JlUmVzb3VyY2UgaXMgTlVM
TCBoZXJlLCB0aGUgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQsCi0gICAgLy8gdW5sZXNzIGl0J3Mg
dGhlIG1haW4gcmVzb3VyY2UuCi0gICAgaWYgKCFjb3JlUmVzb3VyY2UgJiYgd2ViUmVzb3VyY2Ug
IT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKHdlYlZpZXcpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAoIWNvcmVSZXNvdXJjZSkKLSAgICAgICAgY29yZVJlc291cmNlID0g
bG9hZGVyLT5tYWluUmVzb3VyY2UoKTsKLQotICAgIHdlYmtpdF93ZWJfcmVzb3VyY2VfaW5pdF93
aXRoX2NvcmVfcmVzb3VyY2Uod2ViUmVzb3VyY2UsIGNvcmVSZXNvdXJjZS5nZXQoKSk7Ci0KICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkLWZpbmlzaGVkIik7CiAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1sb2FkLWZpbmlzaGVk
Iiwgd2ViUmVzb3VyY2UpOwogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVz
b3VyY2UtbG9hZC1maW5pc2hlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjlhZmY1ZjVmN2RmNTcy
YzNjZGEwNjVhNGU4OTJhYWQ3MTUwN2I1Li5jNjQ1MzhhYzI5YWU4NmM3MjZhODVhMjhmMjU1ZmUy
Yjg2ZDBiNTU0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NvdXBdIEluY29ycmVjdCBtdWx0aWxldmVs
IHJlZGlyZWN0aW9ucyAoY2Fubm90IGxvZ2luIHRvIEdvb2dsZSspCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZmlyc3QgYXJndW1lbnQgZm9yIHdp
bGxTZW5kUmVxdWVzdCBkdW1wIG11c3QgYmUgdGhlIFdlYlJlc291cmNlIHVybC4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICh3aWxs
U2VuZFJlcXVlc3RDYWxsYmFjayk6CisKIDIwMTMtMDItMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpv
Y2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZW1vdmUgdW5uZWNjZXNz
YXJ5IDAgY2hlY2tzIGZvciB0ZXN0UnVubmVyIG5vdyB0aGF0IHRoZSBUZXN0UnVubmVyIGxpYnJh
cnkgb3ducyBpdApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5k
ZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAK
aW5kZXggZmFkYzNlYzc2MDEwYWY5NmEwYWQzNGZhMDYzZThhZjkwOWVlZjkwNS4uNjFkMzBkZWNl
YTU1ZWMwYzgyNTQ2OGE4ZmFhMjRjOGFlMDY4YjE4NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMjgzLDkgKzEyODMsOSBAQCBzdGF0aWMgdm9p
ZCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRX
ZWJGcmFtZSogd2ViRgogCiAgICAgaWYgKCFkb25lICYmIGdUZXN0UnVubmVyLT5kdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKCkpCiAgICAgICAgIHByaW50ZigiJXMgLSB3aWxsU2VuZFJlcXVlc3Qg
JXMgcmVkaXJlY3RSZXNwb25zZSAlc1xuIiwKLSAgICAgICAgICAgICAgIGNvbnZlcnROZXR3b3Jr
UmVxdWVzdFRvVVJMUGF0aChyZXF1ZXN0KS5kYXRhKCksCi0gICAgICAgICAgICAgICBkZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0KS5kYXRhKCksCi0gICAgICAgICAgICAg
ICBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkuZGF0YSgpKTsKKyAg
ICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYlZpZXcsIHdlYkZy
YW1lLCByZXNvdXJjZSkuZGF0YSgpLAorICAgICAgICAgICAgZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQocmVxdWVzdCkuZGF0YSgpLAorICAgICAgICAgICAgZGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpLmRhdGEoKSk7CiAKICAgICBTb3VwTWVzc2FnZSog
c291cE1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3Qp
OwogICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyh3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X2dldF91cmkocmVxdWVzdCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5OTg0ZDk2ODZiMTZmYjE1ZGFlMjEyZjQ1MDAy
OTY2ZDAzN2Q4YWEuLjAxNTRhNzU3ZmQwYWM5N2E4MjI2ZDk2MTFhNzc1MGZjMGIxYTk4NzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2
aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbU291cF0gSW5jb3JyZWN0IG11bHRpbGV2ZWwg
cmVkaXJlY3Rpb25zIChjYW5ub3QgbG9naW4gdG8gR29vZ2xlKykKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU3NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnM6IHJlbW92ZWQgcmVkaXJlY3QtbWV0aG9kcy5odG1scyB3aGljaCBpcyB3b3JraW5nIGZp
bmUgbm93LgorCiAyMDEzLTAyLTA1ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUk6IFNob3VsZCBub3QgbW92ZSBmb2N1
cyBpZiB0aGUgZWxlbWVudCBhbHJlYWR5IGhhcyBmb2N1cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ODg3YWU4YjA4ZDY4N2RlYjZiZjkyZDkwOGU3NTUx
ZGFlOTllNTE1Li4wMjUzNmFkNjY3MzQ3ZjZjODM0ZjgzNWFjZDE3ZGFlMTc2ZmU2OGZiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTE2LDkgKzkxNiw2
IEBAIEJ1ZyhHVEspIHBsdWdpbnMvZm9ybS12YWx1ZS5odG1sIFsgRmFpbHVyZSBdCiAjIGV2ZW50
U2VuZGVyLmtleURvd24gY2FsbCBkb2VzIG5vdCBnZXQgZXhlY3V0ZWQgZnJvbSB0aGUgVGVzdE5l
dHNjYXBlUGx1Z2luCiB3ZWJraXQub3JnL2IvOTAzODMgaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdp
bi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbCBbIFNraXAgXQogCi0jIE1pc3NpbmcgcmVzb3VyY2Ug
bG9hZCBjYWxsYmFjayBhYmlsaXR5IGluIERSVAotd2Via2l0Lm9yZy9iLzI3OTA1IGh0dHAvdGVz
dHMvbG9hZGluZy9yZWRpcmVjdC1tZXRob2RzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9y
Zy9iLzMwNTc3IGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtbGVmdC1yaWdodC5odG1sIFsgRmFpbHVy
ZSBdCiAKIHdlYmtpdC5vcmcvYi8zMDYyMCBmYXN0L3hzbC9zb3J0LWxvY2FsZS54bWwgWyBGYWls
dXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187893</attachid>
            <date>2013-02-12 10:41:23 -0800</date>
            <delta_ts>2013-02-13 01:17:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109576-20130212193752.patch</filename>
            <type>text/plain</type>
            <size>11964</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQxYzMxZjBjODFmOGJk
ODQ5ZTQ4MTZmNTAzZWFjY2ZjMzE0ZWYxMC4uZjkwZDg2ZGU3YWM3NzdhNjliNmI0OWY5ZmJhZDVj
YzNkOGVjZDMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTEyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtTb3VwXSBJ
bmNvcnJlY3QgbXVsdGlsZXZlbCByZWRpcmVjdGlvbnMgKGNhbm5vdCBsb2dpbiB0byBHb29nbGUr
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTc2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YW4gZXh0cmEgY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSByZWRpcmVjdCBzaG91bGQgYmUg
YQorICAgICAgICBHRVQgb3Igbm90LiBUaGUgb2xkIFJlc291cmNlSGFuZGxlU291cDo6c2hvdWxk
UmVkaXJlY3RBc0dFVCgpCisgICAgICAgIGFzc3VtZWQgdGhhdCB0aGVyZSB3YXMgYSBwZXJmZWN0
IG1hdGNoIGJldHdlZW4gdGhlIG5ldworICAgICAgICBSZXNvdXJjZVJlcXVlc3QgYW5kIHRoZSBs
YXRlc3QgU291cE1lc3NhZ2Ugd2hpY2ggaXMgbm90IHRydWUgZm9yCisgICAgICAgIG11bHRpLWxl
dmVsIHJlZGlyZWN0cyAoYmVjYXVzZSB3ZSBhbHdheXMgY3JlYXRlIHRoZSBuZXcKKyAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0cyBhcyBjb3BpZXMgb2YgaGFuZGxlLT5maXJzdFJlcXVlc3QoKSkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFJld3JpdGVSZWRpcmVjdEFzR0VUKTogcmVuYW1lZCBm
cm9tIHNob3VsZFJlZGlyZWN0QXNHRVQuCisgICAgICAgIChXZWJDb3JlOjpkb1JlZGlyZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OnNlbmRSZXF1ZXN0Q2FsbGJhY2spOiByZXBsYWNlIHRoZSBtX2xh
c3RIVFRQTWV0aG9kIG9uIHJlZGlyZWN0cy4KKwogMjAxMy0wMi0wNSAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSU5QVVRfTVVMVElQTEVfRklFTERTX1VJOiBT
aG91bGQgbm90IG1vdmUgZm9jdXMgaWYgdGhlIGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCBhZjk3YTU3OGMxOTQ3YzcyOTU1N2U4ODdlNWIwYWQ5NjUwODczOWI2
Li5hNWFjZGVjODA0M2U4ZWU0MGM0YjE5ZjE5ZWIzODc5YjZlNmQ3YWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDItMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1NvdXBdIEluY29ycmVjdCBtdWx0aWxldmVs
IHJlZGlyZWN0aW9ucyAoY2Fubm90IGxvZ2luIHRvIEdvb2dsZSspCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIFdlYlJlc291cmNlIGV4aXN0
ZW5jZSBjaGVja3MgYXMgaXQgc2VlbXMgdGhhdCB0aGV5IGFyZSBubworICAgICAgICBsb25nZXIg
bmVlZGVkIGFuZCB3aGVyZSBhbHNvIHByZXZlbnRpbmcgcmVkaXJlY3QtbWV0aG9kcy5odG1sIGZy
b20KKyAgICAgICAgcGFzc2luZy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisKIDIwMTMtMDItMDUgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgTkVXUyBh
bmQgY29uZmlndXJhdGlvbiBpbiBwcmVwYXJhdGlvbiBmb3IgMS4xMS41LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcAppbmRleCAxZjZhZjNjYzE0M2JkYzJmMjk2NWJiMzYxNjQ2YjE2YzM5MDliOWRiLi41
ZDE4NjJiZjI0NTJiN2ZmODhhMGRiY2Q0YjQ4MWY3Y2FlZWVmMDVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVT
b3VwLmNwcApAQCAtNDE5LDggKzQxOSwxNCBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZWRpcmVjdChS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBzaG91bGRSZWRpcmVjdEFzR0VUKFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBLVVJMJiBuZXdVUkws
IGJvb2wgY3Jvc3NPcmlnaW4pCitzdGF0aWMgYm9vbCBzaG91bGRSZXdyaXRlUmVkaXJlY3RBc0dF
VChjb25zdCBSZXNvdXJjZVJlcXVlc3QgJm5ld1JlcXVlc3QsIFNvdXBNZXNzYWdlKiBtZXNzYWdl
LCBLVVJMJiBuZXdVUkwsIGJvb2wgY3Jvc3NPcmlnaW4pCiB7CisgICAgLy8gbmV3UmVxdWVzdCBp
cyBjcmVhdGVkIGFmdGVyIHRoZSBoYW5kbGUncyBmaXJzdFJlcXVlc3Qgc28gaW4gdGhlCisgICAg
Ly8gY2FzZSBvZiBtdWx0aWxldmVsIHJlZGlyZWN0cywgdGhlIFNvdXBNZXNzYWdlIHdpbGwgbm90
IGxpa2VseQorICAgIC8vIG1hdGNoIGl0LgorICAgIGlmIChuZXdSZXF1ZXN0Lmh0dHBNZXRob2Qo
KSAhPSBtZXNzYWdlLT5tZXRob2QpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKG1l
c3NhZ2UtPm1ldGhvZCA9PSBTT1VQX01FVEhPRF9HRVQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtNDYxLDcgKzQ2Nyw3IEBAIHN0YXRpYyB2b2lkIGRvUmVkaXJlY3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSkKICAgICBib29sIGNyb3NzT3JpZ2luID0gIXByb3RvY29sSG9zdEFuZFBvcnRB
cmVFcXVhbChyZXF1ZXN0LnVybCgpLCBuZXdVUkwpOwogICAgIHJlcXVlc3Quc2V0VVJMKG5ld1VS
TCk7CiAKLSAgICBpZiAoc2hvdWxkUmVkaXJlY3RBc0dFVChtZXNzYWdlLCBuZXdVUkwsIGNyb3Nz
T3JpZ2luKSkgeworICAgIGlmIChzaG91bGRSZXdyaXRlUmVkaXJlY3RBc0dFVChyZXF1ZXN0LCBt
ZXNzYWdlLCBuZXdVUkwsIGNyb3NzT3JpZ2luKSkgewogICAgICAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QoIkdFVCIpOwogICAgICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KDApOwogICAgICAgICBy
ZXF1ZXN0LmNsZWFySFRUUENvbnRlbnRUeXBlKCk7CkBAIC02ODEsNiArNjg3LDcgQEAgc3RhdGlj
IHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IGdwb2ludGVyIGRhdGEpCiAKICAgICBpZiAoc291cE1lc3NhZ2UpIHsKICAgICAgICAgaWYgKFNP
VVBfU1RBVFVTX0lTX1JFRElSRUNUSU9OKHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSkgJiYgc2hv
dWxkUmVkaXJlY3QoaGFuZGxlLmdldCgpKSkgeworICAgICAgICAgICAgZC0+bV9sYXN0SFRUUE1l
dGhvZCA9IHNvdXBNZXNzYWdlLT5tZXRob2Q7CiAgICAgICAgICAgICBkLT5tX2lucHV0U3RyZWFt
ID0gaW5wdXRTdHJlYW07CiAgICAgICAgICAgICAvLyBXZSB1c2UgcmVhZF9hc3luYygpIHJhdGhl
ciB0aGFuIHNraXBfYXN5bmMoKSB0byB3b3JrIGFyb3VuZAogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ4OSB1bnRpbCB3ZSBjYW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAppbmRleCAyNDY1Mjk1NDI4Nzc4OWEyNmZkOGE2ZGY2MTU1N2JhMjgy
MGIzZWVmLi44MTQ4ZWYzNWU4MzIyM2YxMTdiNmM2OWQ2ZmQxZmRlODMxOTM4YmRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCkBAIC0yNDcsMTMgKzI0Nyw2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIs
CiAgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dl
dF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3RyaW5nLmdldCgpKTsKICAgICBHUmVmUHRy
PFdlYktpdE5ldHdvcmtSZXF1ZXN0PiBuZXR3b3JrUmVxdWVzdChhZG9wdEdSZWYoa2l0TmV3KHJl
cXVlc3QpKSk7CiAKLSAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKLSAgICAg
ICAgLy8gVGhpcyBpcyBhIHJlZGlyZWN0LCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgV2ViUmVz
b3VyY2UncyBrbm93bGVkZ2UKLSAgICAgICAgLy8gb2YgdGhlIFVSSS4KLSAgICAgICAgZ19mcmVl
KHdlYlJlc291cmNlLT5wcml2LT51cmkpOwotICAgICAgICB3ZWJSZXNvdXJjZS0+cHJpdi0+dXJp
ID0gZ19zdHJkdXAocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICB9
Ci0KICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLXJlcXVlc3Qt
c3RhcnRpbmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1JlcXVlc3QuZ2V0KCksIG5l
dHdvcmtSZXNwb25zZS5nZXQoKSk7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUs
ICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0
LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogCkBAIC05OTksMjQgKzk5Miw2IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpE
b2N1bWVudExvYWRlciogbG9hZGVyCiAgICAgR093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmlu
Zyh0b1N0cmluZyhpZGVudGlmaWVyKSk7CiAgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291
cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3Ry
aW5nLmdldCgpKTsKIAotICAgIC8vIEEgTlVMTCBXZWJSZXNvdXJjZSBtZWFucyB0aGUgbG9hZCBo
YXMgYmVlbiBpbnRlcnJ1cHRlZCwgYW5kCi0gICAgLy8gcmVwbGFjZWQgYnkgYW5vdGhlciBvbmUg
d2hpbGUgdGhpcyByZXNvdXJjZSB3YXMgYmVpbmcgbG9hZGVkLgotICAgIGlmICghd2ViUmVzb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IGNoYXIqIHVyaSA9IHdlYmtpdF93ZWJf
cmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSk7Ci0gICAgUmVmUHRyPEFyY2hpdmVSZXNvdXJj
ZT4gY29yZVJlc291cmNlKGxvYWRlci0+c3VicmVzb3VyY2UoS1VSTChLVVJMKCksIHVyaSkpKTsK
LQotICAgIC8vIElmIGNvcmVSZXNvdXJjZSBpcyBOVUxMIGhlcmUsIHRoZSByZXNvdXJjZSBmYWls
ZWQgdG8gbG9hZCwKLSAgICAvLyB1bmxlc3MgaXQncyB0aGUgbWFpbiByZXNvdXJjZS4KLSAgICBp
ZiAoIWNvcmVSZXNvdXJjZSAmJiB3ZWJSZXNvdXJjZSAhPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21h
aW5fcmVzb3VyY2Uod2ViVmlldykpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghY29yZVJl
c291cmNlKQotICAgICAgICBjb3JlUmVzb3VyY2UgPSBsb2FkZXItPm1haW5SZXNvdXJjZSgpOwot
Ci0gICAgd2Via2l0X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNvdXJjZSh3ZWJSZXNv
dXJjZSwgY29yZVJlc291cmNlLmdldCgpKTsKLQogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3
ZWJSZXNvdXJjZSwgImxvYWQtZmluaXNoZWQiKTsKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV9mcmFtZSwgInJlc291cmNlLWxvYWQtZmluaXNoZWQiLCB3ZWJSZXNvdXJjZSk7CiAgICAgZ19z
aWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1sb2FkLWZpbmlzaGVkIiwgbV9m
cmFtZSwgd2ViUmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDQ2OWFmZjVmNWY3ZGY1NzJjM2NkYTA2NWE0ZTg5MmFhZDcxNTA3YjUu
LmM2NDUzOGFjMjlhZTg2YzcyNmE4NWEyOGYyNTVmZTJiODZkMGI1NTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
My0wMi0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbU291cF0gSW5jb3JyZWN0IG11bHRpbGV2ZWwgcmVkaXJlY3Rpb25zIChjYW5ub3QgbG9n
aW4gdG8gR29vZ2xlKykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTU3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBmaXJzdCBhcmd1bWVudCBmb3Igd2lsbFNlbmRSZXF1ZXN0IGR1bXAgbXVzdCBi
ZSB0aGUgV2ViUmVzb3VyY2UgdXJsLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKToKKwog
MjAxMy0wMi0wNSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIHJlbW92ZSB1bm5lY2Nlc3NhcnkgMCBjaGVja3MgZm9yIHRlc3RSdW5u
ZXIgbm93IHRoYXQgdGhlIFRlc3RSdW5uZXIgbGlicmFyeSBvd25zIGl0CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmYWRjM2VjNzYwMTBhZjk2YTBh
ZDM0ZmEwNjNlOGFmOTA5ZWVmOTA1Li42MWQzMGRlY2VhNTVlYzBjODI1NDY4YThmYWEyNGM4YWUw
NjhiMTg0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAK
QEAgLTEyODMsOSArMTI4Myw5IEBAIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNr
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGCiAKICAgICBpZiAo
IWRvbmUgJiYgZ1Rlc3RSdW5uZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkKICAgICAg
ICAgcHJpbnRmKCIlcyAtIHdpbGxTZW5kUmVxdWVzdCAlcyByZWRpcmVjdFJlc3BvbnNlICVzXG4i
LAotICAgICAgICAgICAgICAgY29udmVydE5ldHdvcmtSZXF1ZXN0VG9VUkxQYXRoKHJlcXVlc3Qp
LmRhdGEoKSwKLSAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0
KHJlcXVlc3QpLmRhdGEoKSwKLSAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KHJlc3BvbnNlKS5kYXRhKCkpOworICAgICAgICAgICAgZGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHQod2ViVmlldywgd2ViRnJhbWUsIHJlc291cmNlKS5kYXRhKCksCisg
ICAgICAgICAgICBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0KS5kYXRh
KCksCisgICAgICAgICAgICBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25z
ZSkuZGF0YSgpKTsKIAogICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CiAgICAgU291cFVSSSogdXJpID0gc291
cF91cmlfbmV3KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNTk5ODRkOTY4NmIxNmZiMTVkYWUyMTJmNDUwMDI5NjZkMDM3ZDhhYS4uZDAxZmYzMGYzNThj
MzliYzU1MDExYzFjZjA1OTgzYWI3MDM5ZTBkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEz
LTAyLTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtTb3VwXSBJbmNvcnJlY3QgbXVsdGlsZXZlbCByZWRpcmVjdGlvbnMgKGNhbm5vdCBsb2dp
biB0byBHb29nbGUrKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NTc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlZCByZWRpcmVjdC1tZXRob2RzLmh0bWwgYW5kIDMwNy1hZnRlci0zMDMtYWZ0
ZXItcG9zdC5odG1sCisgICAgICAgIHdoaWNoIHNob3VsZCB3b3JrIGZpbmUgbm93LgorCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMDUgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIElOUFVUX01VTFRJUExFX0ZJRUxEU19VSTogU2hvdWxk
IG5vdCBtb3ZlIGZvY3VzIGlmIHRoZSBlbGVtZW50IGFscmVhZHkgaGFzIGZvY3VzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBiNGQ1YTE5NDE5ZWY2MzM4
MWIzZjE0OTdkZmY2YjgxMTM1YjhiY2QuLmNmM2E4ODVmMjYyODJlNTFjOTE2NThmZmJjY2U5MDgz
ZGQxMGY5NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC03NjEsNyArNzYxLDYgQEAgd2Via2l0Lm9yZy9iLzc3NjMxIGZhc3QvbXVsdGljb2wvc3Bhbi9z
cGFuLWFzLWltbWVkaWF0ZS1jaGlsZC1wcm9wZXJ0eS1yZW1vdmFsLmgKIHdlYmtpdC5vcmcvYi83
NzYzMSBmYXN0L211bHRpY29sL3NwYW4vc3Bhbi1hcy1pbW1lZGlhdGUtY29sdW1ucy1jaGlsZC1y
ZW1vdmFsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvOTMyMTMgZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvdGV4dC1zcGxpY2VkLWZvbnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
Ci13ZWJraXQub3JnL2IvOTMyMTQgaHR0cC90ZXN0cy9sb2FkaW5nLzMwNy1hZnRlci0zMDMtYWZ0
ZXItcG9zdC5odG1sIFsgQ3Jhc2ggRmFpbHVyZSBQYXNzIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9i
LzkzMjEyIGh0dHAvdGVzdHMvaW5jcmVtZW50YWwvc2xvdy11dGY4LXRleHQucGwgWyBQYXNzIFRp
bWVvdXQgXQogCiB3ZWJraXQub3JnL2IvODUxODAgbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXN0
ZXAtYnV0dG9uLWNsaWNrZWQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCkBAIC0xMjg1LDkgKzEyODQs
NiBAQCB3ZWJraXQub3JnL2IvODU0NjYgY3NzMy9pbWFnZXMvY3Jvc3MtZmFkZS1iYWNrZ3JvdW5k
LXNpemUuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvODU0OTIgY3NzMy96b29tLWNv
b3Jkcy54aHRtbCBbIEZhaWx1cmUgXQogCi0jIE9jY2FzaW9uYWxseSBtaXNzaW5nIGNodW5rcyBv
ZiBvdXRwdXQKLXdlYmtpdC5vcmcvYi82Njg3MyBodHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3Qt
bWV0aG9kcy5odG1sIFsgRmFpbHVyZSBdCi0KICMgSUVUQyBmbGV4Ym94IGZhaWx1cmVzCiB3ZWJr
aXQub3JnL2IvODUyMTEgaWV0ZXN0Y2VudGVyL2NzczMvZmxleGJveC9mbGV4Ym94LWFsaWduLXN0
cmV0Y2gtMDAxLmh0bSBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg1MjEyIGll
dGVzdGNlbnRlci9jc3MzL2ZsZXhib3gvZmxleGJveC1sYXlvdXQtMDAyLmh0bSBbIEltYWdlT25s
eUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA5ODg3YWU4YjA4ZDY4N2RlYjZiZjkyZDkwOGU3NTUxZGFlOTllNTE1Li5mYzM5NjkxZjNiOTIw
OTgwMDA2ZmQ0MTg1ZjZlY2FjMzBhNDBlMTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtOTE2LDkgKzkxNiw2IEBAIEJ1ZyhHVEspIHBsdWdpbnMvZm9y
bS12YWx1ZS5odG1sIFsgRmFpbHVyZSBdCiAjIGV2ZW50U2VuZGVyLmtleURvd24gY2FsbCBkb2Vz
IG5vdCBnZXQgZXhlY3V0ZWQgZnJvbSB0aGUgVGVzdE5ldHNjYXBlUGx1Z2luCiB3ZWJraXQub3Jn
L2IvOTAzODMgaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRt
bCBbIFNraXAgXQogCi0jIE1pc3NpbmcgcmVzb3VyY2UgbG9hZCBjYWxsYmFjayBhYmlsaXR5IGlu
IERSVAotd2Via2l0Lm9yZy9iLzI3OTA1IGh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC1tZXRo
b2RzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzMwNTc3IGVkaXRpbmcvc2VsZWN0
aW9uL21vdmUtbGVmdC1yaWdodC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8zMDYy
MCBmYXN0L3hzbC9zb3J0LWxvY2FsZS54bWwgWyBGYWlsdXJlIF0KQEAgLTk0NCw5ICs5NDEsNiBA
QCBCdWcoR1RLKSBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJucy1udWxs
LW9uLXJlZGlyZWN0Lmh0bWwgWyBGYWlsdQogQnVnKEdUSykgZmFzdC9sb2FkZXIvYXBpLXRlc3Qt
bmV3LXdpbmRvdy1kYXRhLWxvYWQtYmFzZS11cmwuaHRtbCBbIEZhaWx1cmUgXQogQnVnKEdUSykg
ZmFzdC9sb2FkZXIvYXBpLXRlc3QtZ28tdG8tY3VycmVudC1iYWNrLWZvcndhcmQtaXRlbS5odG1s
IFsgRmFpbHVyZSBdCiAKLSMgTmVlZHMgdG8gbWFrZSBzdXJlIHRoZSByZWRpcmVjdC1jaGFpbiBz
Y2VuYXJpbyBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE0MTAg
d29ya3MKLXdlYmtpdC5vcmcvYi8zNTMwMCBodHRwL3Rlc3RzL2xvYWRpbmcvMzA3LWFmdGVyLTMw
My1hZnRlci1wb3N0Lmh0bWwgWyBGYWlsdXJlIF0KLQogIyBQYWdlZCBjb250aW51b3VzTW91c2VT
Y3JvbGxCeSgpIGV2ZW50cyBhcmUgbm90IHN1cHBvcnRlZCBpbiBHVEsuCiBCdWcoR1RLKSBmYXN0
L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy14LWluLW5vbi1zY3JvbGxpbmctZGl2
Lmh0bWwgWyBGYWlsdXJlIF0KIEJ1ZyhHVEspIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZl
bnQtcGFnaW5nLXgtaW4tbm9uLXNjcm9sbGluZy1wYWdlLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>