<?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>26104</bug_id>
          
          <creation_ts>2009-05-31 07:05:52 -0700</creation_ts>
          <short_desc>[GTK] Make NetworkRequest a proper GObject and expose SoupMessage</short_desc>
          <delta_ts>2009-06-10 19:52:01 -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>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></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="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>danw</cc>
    
    <cc>jmalonzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>123732</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-31 07:05:52 -0700</bug_when>
    <thetext>We landed the groundwork for making NetworkRequest meet our needs. There are still some steps needed going forward:

1. making it a proper GObject (with properties and such), exposing the SoupMessage
2. build a WebKitNetworkResponse class to go with it in delegates where they are both needed
3. implement the willSendRequest &quot;delegate&quot; as a signal, allowing us to better customize and track requests

Number 3 is very related to the DataSource implementation, since we want to give our API users a way to track the loading of each resource. This bug is here to track the first point in that list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123733</commentid>
    <comment_count>1</comment_count>
      <attachid>30813</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-31 07:06:29 -0700</bug_when>
    <thetext>Created attachment 30813
Make WebKitNetworkRequest a proper GObject

 ChangeLog                                  |    8 ++
 GNUmakefile.am                             |    6 +
 WebKit/gtk/ChangeLog                       |   24 ++++
 WebKit/gtk/tests/testnetworkrequest.c      |  131 +++++++++++++++++++++
 WebKit/gtk/webkit/webkitnetworkrequest.cpp |  176 +++++++++++++++++++++++-----
 WebKit/gtk/webkit/webkitnetworkrequest.h   |    4 +
 6 files changed, 320 insertions(+), 29 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123981</commentid>
    <comment_count>2</comment_count>
      <attachid>30813</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-02 06:19:38 -0700</bug_when>
    <thetext>Comment on attachment 30813
Make WebKitNetworkRequest a proper GObject

&gt; diff --git a/WebKit/gtk/webkit/webkitnetworkrequest.cpp b/WebKit/gtk/webkit/webkitnetworkrequest.cpp
&gt; index feef3ec..f97ca41 100644
&gt; --- a/WebKit/gtk/webkit/webkitnetworkrequest.cpp
&gt; +++ b/WebKit/gtk/webkit/webkitnetworkrequest.cpp
&gt; @@ -22,6 +22,7 @@
&gt;  #include &quot;webkitnetworkrequest.h&quot;
&gt;  
&gt;  #include &quot;CString.h&quot;
&gt; +#include &lt;glib/gi18n-lib.h&gt;
&gt;  #include &quot;ResourceRequest.h&quot;
&gt;  #include &quot;webkitprivate.h&quot;

Usually the order of includes is something like:

** config.h **
** header of this source **

** WebCore/WebKit includes **

** third party **

I would like to follow the same here. If you can please put the glib include in the end that would be great.

&gt;  
&gt; @@ -41,12 +42,22 @@
&gt;  G_DEFINE_TYPE(WebKitNetworkRequest, webkit_network_request, G_TYPE_OBJECT);
&gt;  
&gt;  struct _WebKitNetworkRequestPrivate {
&gt; +    gboolean isConstructed;
&gt;      gchar* uri;
&gt;      SoupMessage* message;
&gt;  };
&gt;  
&gt; +static GObject* webkit_network_request_constructor(GType gtype, guint n_properties, GObjectConstructParam *properties);

The asterisk in properties is misplaced.

&gt; +static void webkit_network_request_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec *pspec)

Ditto with *pspec.

&gt; +static void webkit_network_request_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec *pspec)

Same.

&gt; +{
&gt; +    WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object);
&gt; +    WebKitNetworkRequestPrivate* priv = request-&gt;priv;
&gt; +
&gt; +    switch(prop_id) {
&gt; +    case PROP_URI:
&gt; +        if (priv-&gt;isConstructed) {
&gt; +            webkit_network_request_set_uri(request, g_value_get_string(value));
&gt; +            break;
&gt; +        }
&gt; +        if (g_value_get_string(value))
&gt; +            priv-&gt;uri = g_value_dup_string(value);

Should we free uri first before setting a new value? Also, is it possible to refactor and maybe merge these two? Does it matter how we set the uri?

&gt; +    case PROP_MESSAGE:
&gt; +        priv-&gt;message = SOUP_MESSAGE(g_value_dup_object(value));

Should we check and free priv-&gt;message first as well?

&gt; +     */
&gt; +    g_object_class_install_property(objectClass, PROP_URI,
&gt; +                                    g_param_spec_string(&quot;uri&quot;,
&gt; +                                                        _(&quot;URI&quot;),
&gt; +                                                        _(&quot;The URI to which the request will be made.&quot;),
&gt; +                                                        NULL,
&gt; +                                                        static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT)));

We&apos;ve been using C-style casts in WebKit until now. Should we do the same here?

&gt; +    g_object_class_install_property(objectClass, PROP_MESSAGE,
&gt; +                                    g_param_spec_object(&quot;message&quot;,
&gt; +                                                        _(&quot;Message&quot;),
&gt; +                                                        _(&quot;The SoupMessage that backs the request.&quot;),
&gt; +                                                        SOUP_TYPE_MESSAGE,
&gt; +                                                        static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY)));

Ditto.  

&gt; +static GObject* webkit_network_request_constructor(GType gtype, guint n_properties, GObjectConstructParam *properties)

Can we make n_properties -&gt; nProperties to be consistent with this file?

&gt; +{
&gt; +    GObject* object = G_OBJECT_CLASS(webkit_network_request_parent_class)-&gt;constructor(gtype, n_properties, properties);
&gt; +    WebKitNetworkRequestPrivate* priv = WEBKIT_NETWORK_REQUEST(object)-&gt;priv;
&gt; +
&gt; +    priv-&gt;isConstructed = TRUE;
&gt; +
&gt; +    if ((priv-&gt;uri &amp;&amp; priv-&gt;message) || (!priv-&gt;uri &amp;&amp; !priv-&gt;message)) {
&gt; +        if (priv-&gt;uri)
&gt; +            g_free(priv-&gt;uri);

g_free is null-safe so we can skip the if statement.

&gt; +        if (priv-&gt;message)
&gt; +            g_object_unref(priv-&gt;message);

Is it possible to have an existing priv-&gt;message in construction?

&gt; +        g_critical(&quot;WebKitNetworkMessage needs to be initialized with one (and only one) of a URI or a SoupMessage.&quot;);
&gt; +        g_object_unref(object);
&gt; +        return NULL;

I&apos;m not sure if bailing out would be a good thing. Is it possible to just initialize with message if url and the message url are the same? Is there a better way to do this?

&gt; +    }
&gt; +
&gt; +    if (priv-&gt;message)
&gt; +        return object;
&gt; +
&gt; +    priv-&gt;message = soup_message_new(&quot;GET&quot;, priv-&gt;uri);
&gt; +    if (!priv-&gt;message) {
&gt; +        g_critical(&quot;Tried to initialize a WebKitNetworkRequest with an invalid URI: %s&quot;, priv-&gt;uri);
&gt; +        g_free(priv-&gt;uri);

The message is a bit confusing. The URI can be valid it&apos;s just that Soup wasn&apos;t able to parse it. If that&apos;s the case, can we still let it through and let load-error propagate (and so users will get an error page about their request)?

+1 for the API. Patch looks good otherwise. I&apos;m going to say r- for now until we address the points I raised above.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124088</commentid>
    <comment_count>3</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-02 18:05:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 30813 [review])
&gt; &gt; +    case PROP_URI:
&gt; &gt; +        if (priv-&gt;isConstructed) {
&gt; &gt; +            webkit_network_request_set_uri(request, g_value_get_string(value));
&gt; &gt; +            break;
&gt; &gt; +        }
&gt; &gt; +        if (g_value_get_string(value))
&gt; &gt; +            priv-&gt;uri = g_value_dup_string(value);
&gt; 
&gt; Should we free uri first before setting a new value? Also, is it possible to
&gt; refactor and maybe merge these two? Does it matter how we set the uri?

That path will only be hit on construction, so priv-&gt;uri will always be NULL.

&gt; &gt; +    case PROP_MESSAGE:
&gt; &gt; +        priv-&gt;message = SOUP_MESSAGE(g_value_dup_object(value));
&gt; 
&gt; Should we check and free priv-&gt;message first as well?

Message is a CONSTRUCT_ONLY property, so we can count on it always being NULL, too.

static_cast&lt;GParamFlags&gt;(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT)));
&gt; 
&gt; We&apos;ve been using C-style casts in WebKit until now. Should we do the same here?

Sounds good =).

&gt; Can we make n_properties -&gt; nProperties to be consistent with this file?

Yeah, I had that in mind, and forgot to do it. I actually think numerOfProperties is more correct.

&gt; &gt; +        if (priv-&gt;message)
&gt; &gt; +            g_object_unref(priv-&gt;message);
&gt; 
&gt; Is it possible to have an existing priv-&gt;message in construction?

Yes. The construction properties are set before calling _constructor, the code takes advantage of that =).

&gt; &gt; +        g_critical(&quot;WebKitNetworkMessage needs to be initialized with one (and only one) of a URI or a SoupMessage.&quot;);
&gt; &gt; +        g_object_unref(object);
&gt; &gt; +        return NULL;
&gt; 
&gt; I&apos;m not sure if bailing out would be a good thing. Is it possible to just
&gt; initialize with message if url and the message url are the same? Is there a
&gt; better way to do this?

We could, but that&apos;d be programmer error, and additional complexity I don&apos;t think we should try to handle. I believe documenting and bailing out is the simplest and least error prone approach.

&gt; The message is a bit confusing. The URI can be valid it&apos;s just that Soup wasn&apos;t
&gt; able to parse it. If that&apos;s the case, can we still let it through and let
&gt; load-error propagate (and so users will get an error page about their request)?

That&apos;d be a bug in Soup, I think. Notice that not all requests depend on NetworkRequest objects being created correctly to get loaded - only those passed to _load_request by the user will end up being loaded. The other cases do not depend on the NetworkRequest being created correctly to load (the SoupMessage will be created by ResourceRequest in those cases). I think we should assume that when Soup doesn&apos;t like the URI, that the URI is not valid, and when that is not the case, we fix Soup&apos;s parsing. What do you think?

&gt; +1 for the API. Patch looks good otherwise. I&apos;m going to say r- for now until
&gt; we address the points I raised above.

Thanks! I&apos;m uploading another one right away!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124089</commentid>
    <comment_count>4</comment_count>
      <attachid>30888</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-02 18:23:26 -0700</bug_when>
    <thetext>Created attachment 30888
Make WebKitNetworkRequest a proper GObject

 ChangeLog                                  |    8 ++
 GNUmakefile.am                             |    6 +
 WebKit/gtk/ChangeLog                       |   24 ++++
 WebKit/gtk/tests/testnetworkrequest.c      |  131 ++++++++++++++++++++
 WebKit/gtk/webkit/webkitnetworkrequest.cpp |  180 +++++++++++++++++++++++-----
 WebKit/gtk/webkit/webkitnetworkrequest.h   |    4 +
 6 files changed, 324 insertions(+), 29 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124090</commentid>
    <comment_count>5</comment_count>
      <attachid>30888</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-02 18:24:40 -0700</bug_when>
    <thetext>Comment on attachment 30888
Make WebKitNetworkRequest a proper GObject

Addresses all Jan comments I didn&apos;t reply to with a justification as comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124295</commentid>
    <comment_count>6</comment_count>
      <attachid>30943</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:30:31 -0700</bug_when>
    <thetext>Created attachment 30943
Refactor handling of the SoupMessage

 WebCore/ChangeLog                                  |   21 +++++
 .../platform/network/soup/ResourceHandleSoup.cpp   |    9 +-
 WebCore/platform/network/soup/ResourceRequest.h    |   31 ++-----
 .../platform/network/soup/ResourceRequestSoup.cpp  |   96 ++++----------------
 WebKit/gtk/ChangeLog                               |   18 ++++
 WebKit/gtk/tests/testhttpbackend.c                 |   46 +---------
 WebKit/gtk/webkit/webkitnetworkrequest.cpp         |   17 +++-
 7 files changed, 88 insertions(+), 150 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124296</commentid>
    <comment_count>7</comment_count>
      <attachid>30944</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:30:38 -0700</bug_when>
    <thetext>Created attachment 30944
Make WebKitNetworkRequest a proper GObject

 ChangeLog                                  |    8 ++
 GNUmakefile.am                             |    6 +
 WebKit/gtk/ChangeLog                       |   24 ++++
 WebKit/gtk/tests/testnetworkrequest.c      |  131 ++++++++++++++++++++
 WebKit/gtk/webkit/webkitnetworkrequest.cpp |  179 +++++++++++++++++++++++-----
 WebKit/gtk/webkit/webkitnetworkrequest.h   |    4 +
 6 files changed, 322 insertions(+), 30 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124297</commentid>
    <comment_count>8</comment_count>
      <attachid>30943</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:35:26 -0700</bug_when>
    <thetext>Comment on attachment 30943
Refactor handling of the SoupMessage

So, a small rationale: after landing the original patch, I went ahead and started experimenting with implementing more functionality, using the willSendRequest &apos;delegate&apos;.

I have a patch I&apos;ll post here soonish that implements that as a new signal. That patch exposed a bug in my original patch, though: I implemented a copy constructor to handle the fact that SoupMessage had to be treated in a special way, but I did not override operator=, which causes the message to be shallow-copied in some cases, and thus double-freed.

I did implement the operator= override, and it works, but I decided to avoid all this complexity by taking the same approach used by Qt: we create a new SoupMessage whenever we need one, and store nothing in the ResourceRequest object.

This lowers complexity, and will make us happy campers, not having to deal with lots of custom code needing updating in ResourceRequest, and less crashes, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124298</commentid>
    <comment_count>9</comment_count>
      <attachid>30944</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:38:21 -0700</bug_when>
    <thetext>Comment on attachment 30944
Make WebKitNetworkRequest a proper GObject

This is my GObjectization of NetworkRequest updated to the refactoring I proposed. There are still some things we need to think for this patch, such as, what to do about requests which are not handled by soup (file://, about:, data:), for instance.

I don&apos;t think these decisions are blockers for this change to happen, as I don&apos;t think we&apos;ll have API breakage caused by them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124299</commentid>
    <comment_count>10</comment_count>
      <attachid>30945</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:47:25 -0700</bug_when>
    <thetext>Created attachment 30945
Map the willSendRequest delegate to the &apos;outgoing-request&apos; signal

 WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp |   15 ++++++++++++-
 WebKit/gtk/webkit/webkitnetworkrequest.cpp         |    4 +-
 WebKit/gtk/webkit/webkitwebview.cpp                |   21 ++++++++++++++++++++
 3 files changed, 36 insertions(+), 4 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124300</commentid>
    <comment_count>11</comment_count>
      <attachid>30945</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-04 06:48:36 -0700</bug_when>
    <thetext>Comment on attachment 30945
Map the willSendRequest delegate to the &apos;outgoing-request&apos; signal

This is not what I think the final patch should look like. I believe we may want to implement a placeholder WebKitNetworkResponse before this, but I&apos;m submitting it so that people may comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124938</commentid>
    <comment_count>12</comment_count>
      <attachid>30943</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-09 07:28:46 -0700</bug_when>
    <thetext>Comment on attachment 30943
Refactor handling of the SoupMessage

Looks good to me. The only comment is that I&apos;d name ResourceRequest::setSoupMessage something like ResourceRequest::setFromSoupMessage, which better explains what the function actually does. r+ me with a change like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124940</commentid>
    <comment_count>13</comment_count>
      <attachid>30944</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-09 07:31:07 -0700</bug_when>
    <thetext>Comment on attachment 30944
Make WebKitNetworkRequest a proper GObject

Two general comments:

- I think we should not fail to construct the object with invalid URIs, but set it anyway (with no message), and later on WebKit build our ResourceRequests from the URI when the message is not present in the WebKitNetworkRequest object.

- Also, just giving a warning when both URI nad message are passed (checked in a &apos;constructed&apos; handler) is enough, no need to fail. The SoupMessage will have priority over the URI when both are present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124949</commentid>
    <comment_count>14</comment_count>
      <attachid>30943</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 08:38:21 -0700</bug_when>
    <thetext>Comment on attachment 30943
Refactor handling of the SoupMessage

Landed as r44536.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125048</commentid>
    <comment_count>15</comment_count>
      <attachid>31116</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 17:32:32 -0700</bug_when>
    <thetext>Created attachment 31116
Make WebKitNetworkRequest a proper GObject

 ChangeLog                                  |    8 ++
 GNUmakefile.am                             |    6 +
 WebKit/gtk/ChangeLog                       |   24 +++++
 WebKit/gtk/tests/testnetworkrequest.c      |   97 +++++++++++++++++++
 WebKit/gtk/webkit/webkitnetworkrequest.cpp |  140 ++++++++++++++++++++++------
 WebKit/gtk/webkit/webkitnetworkrequest.h   |    4 +
 6 files changed, 251 insertions(+), 28 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125050</commentid>
    <comment_count>16</comment_count>
      <attachid>31116</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 17:33:32 -0700</bug_when>
    <thetext>Comment on attachment 31116
Make WebKitNetworkRequest a proper GObject

Ok, here&apos;s another try. This time I&apos;m going for the simple is beautiful approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125051</commentid>
    <comment_count>17</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-09 17:33:58 -0700</bug_when>
    <thetext>Would be good to get some feedback from danw here, I think =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125071</commentid>
    <comment_count>18</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2009-06-09 18:45:26 -0700</bug_when>
    <thetext>I don&apos;t have a whole lot to say; I&apos;m really not familiar with how WebKit works above the level of WebCore/platform/network, so...

(In reply to comment #3)
&gt; &gt; The message is a bit confusing. The URI can be valid it&apos;s just that Soup wasn&apos;t
&gt; &gt; able to parse it. If that&apos;s the case, can we still let it through and let
&gt; &gt; load-error propagate (and so users will get an error page about their request)?
&gt; 
&gt; That&apos;d be a bug in Soup, I think.

Yes, soup_uri_new() should accept any syntactically-correct URI.

(In reply to comment #9)
&gt; There are still some things we need to think for this patch, such as,
&gt; what to do about requests which are not handled by soup (file://, about:,
&gt; data:), for instance.

I am hoping to have SoupURILoader (http://bugzilla.gnome.org/show_bug.cgi?id=557777) ready for 2.28. (There&apos;s a summer of code student working on it.) It should support ftp, file, and data itself, and allow you to plug in handlers for other URI schemes like &quot;about&quot; or &quot;chrome&quot; if you want. The API isn&apos;t really figured out yet, but feel free to make suggestions.

It *won&apos;t* be based on SoupMessage though, because that&apos;s too HTTP-specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125150</commentid>
    <comment_count>19</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-10 10:06:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I don&apos;t have a whole lot to say; I&apos;m really not familiar with how WebKit works
&gt; above the level of WebCore/platform/network, so...

I&apos;m interested in whatever little you are able to fix in my understanding =).

&gt; &gt; That&apos;d be a bug in Soup, I think.
&gt; 
&gt; Yes, soup_uri_new() should accept any syntactically-correct URI.

Yeah, I think my last patch acknowledges my approach was mistaken here.
 
&gt; I am hoping to have SoupURILoader
&gt; (http://bugzilla.gnome.org/show_bug.cgi?id=557777) ready for 2.28. (There&apos;s a
&gt; summer of code student working on it.) It should support ftp, file, and data
&gt; itself, and allow you to plug in handlers for other URI schemes like &quot;about&quot; or
&gt; &quot;chrome&quot; if you want. The API isn&apos;t really figured out yet, but feel free to
&gt; make suggestions.
&gt; 
&gt; It *won&apos;t* be based on SoupMessage though, because that&apos;s too HTTP-specific.

We will then expose it too, I guess, along-side message, and do some more magic inside WebKitNetworkRequest and ResourceHandleSoup. I think my current patch is future-proof in this regard. Thanks for the comments!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125190</commentid>
    <comment_count>20</comment_count>
      <attachid>31116</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-10 12:15:26 -0700</bug_when>
    <thetext>Comment on attachment 31116
Make WebKitNetworkRequest a proper GObject

I think you should add a test that passes both URI and message, probably. Also not sure if it&apos;s OK to be totally silent when passing both, but well, I guess this patch can go as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125265</commentid>
    <comment_count>21</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-10 19:52:01 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 31116 [review])
&gt; I think you should add a test that passes both URI and message, probably. Also
&gt; not sure if it&apos;s OK to be totally silent when passing both, but well, I guess
&gt; this patch can go as-is.
&gt; 

Landed as r44598, with the additional test.

I also made the following change; since we had discussed this earlier, I thought it was not a problem to sneak it in here (there was a nasty crash otherwise):

diff --git a/WebKit/gtk/webkit/webkitwebframe.cpp b/WebKit/gtk/webkit/webkitwebframe.cpp
index b1eac26..60fb1bb 100644
--- a/WebKit/gtk/webkit/webkitwebframe.cpp
+++ b/WebKit/gtk/webkit/webkitwebframe.cpp
@@ -510,7 +510,14 @@ void webkit_web_frame_load_request(WebKitWebFrame* frame, WebKitNetworkRequest*
     if (!coreFrame)
         return;
 
-    coreFrame-&gt;loader()-&gt;load(ResourceRequest(webkit_network_request_get_message(request)), false);
+    SoupMessage* soupMessage = webkit_network_request_get_message(request);
+    if (soupMessage) {
+        coreFrame-&gt;loader()-&gt;load(ResourceRequest(soupMessage), false);
+        return;
+    }
+
+    KURL url = KURL(KURL(), String::fromUTF8(webkit_network_request_get_uri(request)));
+    coreFrame-&gt;loader()-&gt;load(ResourceRequest(url), false);
 }

I&apos;m closing this bug, since the original intent is completed, and I&apos;ll open another one to post/track the implementation of willSendRequest as soon as possible.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30813</attachid>
            <date>2009-05-31 07:06:29 -0700</date>
            <delta_ts>2009-06-02 18:23:54 -0700</delta_ts>
            <desc>Make WebKitNetworkRequest a proper GObject</desc>
            <filename>Make-WebKitNetworkRequest-a-proper-GObject.patch</filename>
            <type>text/plain</type>
            <size>17907</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">NzdlNDc3OWI1NDVhYmQ1MzA3NTkxNmEyOTJjNDQ0MTliOWQzM2VjYQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE5NDZkNTYuLjU3YzZlMDEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wNS0zMSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3Igb3VyIFdlYktp
dE5ldHdvcmtSZXF1ZXN0IG9iamVjdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAy
MDA5LTA1LTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBi
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4N2VlNDkuLmVhZjg4NjMgMTAwNjQ0Ci0tLSBhL0dOVW1h
a2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01MjQsNiArNTI0LDcgQEAgd2Via2l0
X3Rlc3RzX2xkZmxhZ3MgPSBcCiAJLW5vLWZhc3QtaW5zdGFsbAogCiBURVNUX1BST0dTICs9IFBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0aHR0cGJhY2tlbmQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90
ZXN0bmV0d29ya3JlcXVlc3QgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUgXAog
CVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFtcy91
bml0dGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKQEAgLTUzNiw2ICs1MzcsMTEgQEAgUHJvZ3Jh
bXNfdW5pdHRlc3RzX3Rlc3RodHRwYmFja2VuZF9DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xEQUREID0gJCh3ZWJraXRf
dGVzdHNfbGRhZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xERkxBR1Mg
PSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQogCitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdv
cmtyZXF1ZXN0X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5j
CitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdvcmtyZXF1ZXN0X0NGTEFHUyA9ICQod2Via2l0
X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29ya3JlcXVlc3RfTERB
REQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29y
a3JlcXVlc3RfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0d2ViZnJhbWVfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmZy
YW1lLmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViZnJhbWVfQ0ZMQUdTID0gJCh3ZWJraXRf
dGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFtZV9MREFERCA9ICQo
d2Via2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkYjEzNGMwLi40NGFmMzQxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDA5LTA1LTMxICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
V2ViS2l0TmV0d29ya1JlcXVlc3QgYSBwcm9wZXIgR09iamVjdCwgbWFraW5nIFVSSSBhbmQKKyAg
ICAgICAgU291cE1lc3NhZ2UgcHJvcGVydGllcy4gQWxzbyBhZGRpbmcgdW5pdCB0ZXN0cyBmb3Ig
Y3JlYXRpb24gYW5kCisgICAgICAgIGRlc3RydWN0aW9uLgorCisgICAgICAgICogdGVzdHMvdGVz
dG5ldHdvcmtyZXF1ZXN0LmM6IEFkZGVkLgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3Rf
Y3JlYXRlX2Rlc3Ryb3kpOgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGll
cyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkpOgor
ICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkpOgorICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfaW5pdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0
cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9y
ZXF1ZXN0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KToKKyAgICAgICAg
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2dldF91cmkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oOgorCiAyMDA5LTA1LTI5ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0bmV0d29y
a3JlcXVlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjA5NmNkCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0bmV0d29ya3JlcXVlc3QuYwpA
QCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5o
PgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KKworI2lm
IEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQs
IDApCisKK3N0YXRpYyB2b2lkIHRlc3RfbmV0d29ya19yZXF1ZXN0X2NyZWF0ZV9kZXN0cm95KCkK
K3sKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdDsKKyAgICBTb3VwTWVzc2FnZSog
bWVzc2FnZTsKKworICAgIC8qIFRlc3QgY3JlYXRpb24gd2l0aCBVUkkgKi8KKyAgICByZXF1ZXN0
ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09S
S19SRVFVRVNULCAidXJpIiwgImh0dHA6Ly9kZWJpYW4ub3JnLyIsIE5VTEwpKTsKKyAgICBnX2Fz
c2VydChXRUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpKTsKKyAgICBtZXNzYWdlID0g
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKKyAgICBnX2Fzc2Vy
dF9jbXBpbnQoR19PQkpFQ1QobWVzc2FnZSktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfb2Jq
ZWN0X3VucmVmKHJlcXVlc3QpOworCisgICAgLyogVGVzdCBjcmVhdGlvbiB3aXRoIFNvdXBNZXNz
YWdlICovCisgICAgbWVzc2FnZSA9IHNvdXBfbWVzc2FnZV9uZXcoIkdFVCIsICJodHRwOi8vZGVi
aWFuLm9yZy8iKTsKKyAgICByZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAibWVzc2FnZSIsIG1lc3NhZ2UsIE5V
TEwpKTsKKyAgICBnX2Fzc2VydChXRUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpKTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QobWVzc2FnZSktPnJlZl9jb3VudCwgPT0sIDIp
OworICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChtZXNzYWdlKS0+cmVmX2NvdW50LCA9PSwgMSk7CisgICAgZ19vYmplY3RfdW5yZWYobWVz
c2FnZSk7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9uIHdpdGggYm90aCBVUkkgYW5kIFNvdXBNZXNz
YWdlOyBzaG91bGQgZmFpbCAqLworICAgIGlmIChnX3Rlc3RfdHJhcF9mb3JrKDAsIEdfVEVTVF9U
UkFQX1NJTEVOQ0VfU1RET1VUfEdfVEVTVF9UUkFQX1NJTEVOQ0VfU1RERVJSKSkgeworICAgICAg
ICBtZXNzYWdlID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwgImh0dHA6Ly9kZWJpYW4ub3JnLyIp
OworICAgICAgICByZXF1ZXN0ID0gZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVR
VUVTVCwgInVyaSIsICJodHRwOi8vZGViaWFuLm9yZy8iLCAibWVzc2FnZSIsIG1lc3NhZ2UsIE5V
TEwpOworICAgICAgICBleGl0KDApOworICAgIH0KKworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9m
YWlsZWQoKTsKKyAgICBnX3Rlc3RfdHJhcF9hc3NlcnRfc3RkZXJyKCIqV2ViS2l0TmV0d29ya01l
c3NhZ2UgbmVlZHMgdG8gYmUgaW5pdGlhbGl6ZWQgd2l0aCBvbmUgKGFuZCBvbmx5IG9uZSkgb2Yg
YSBVUkkgb3IgYSBTb3VwTWVzc2FnZS4qIik7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9uIHdpdGgg
bm8gVVJJIG9yIFNvdXBNZXNzYWdlOyBzaG91bGQgZmFpbCAqLworICAgIGlmIChnX3Rlc3RfdHJh
cF9mb3JrKDAsIEdfVEVTVF9UUkFQX1NJTEVOQ0VfU1RET1VUfEdfVEVTVF9UUkFQX1NJTEVOQ0Vf
U1RERVJSKSkgeworICAgICAgICByZXF1ZXN0ID0gZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05F
VFdPUktfUkVRVUVTVCwgTlVMTCk7CisgICAgICAgIGV4aXQoMCk7CisgICAgfQorCisgICAgZ190
ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCgpOworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9zdGRlcnIo
IipXZWJLaXROZXR3b3JrTWVzc2FnZSBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB3aXRoIG9uZSAo
YW5kIG9ubHkgb25lKSBvZiBhIFVSSSBvciBhIFNvdXBNZXNzYWdlLioiKTsKKworICAgIC8qIFRl
c3QgY3JlYXRpb24gd2l0aCBiYWQgVVJJOyBzaG91bGQgZmFpbCAqLworICAgIGlmIChnX3Rlc3Rf
dHJhcF9mb3JrKDAsIEdfVEVTVF9UUkFQX1NJTEVOQ0VfU1RET1VUfEdfVEVTVF9UUkFQX1NJTEVO
Q0VfU1RERVJSKSkgeworICAgICAgICByZXF1ZXN0ID0gZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X05FVFdPUktfUkVRVUVTVCwgInVyaSIsICJ3b29ob28iLCBOVUxMKTsKKyAgICAgICAgZXhpdCgw
KTsKKyAgICB9CisKKyAgICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkKCk7CisgICAgZ190ZXN0
X3RyYXBfYXNzZXJ0X3N0ZGVycigiKlRyaWVkIHRvIGluaXRpYWxpemUgYSBXZWJLaXROZXR3b3Jr
UmVxdWVzdCB3aXRoIGFuIGludmFsaWQgVVJJOiB3b29ob28qIik7Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3RfbmV0d29ya19yZXF1ZXN0X3Byb3BlcnRpZXMoKQoreworICAgIFdlYktpdE5ldHdvcmtS
ZXF1ZXN0KiByZXF1ZXN0OworICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlOworICAgIGdjaGFyKiBz
b3VwVVJJOworCisgICAgLyogVGVzdCBVUkkgaXMgc2V0IGNvcnJlY3RseSB3aGVuIGNyZWF0aW5n
IHdpdGggVVJJICovCisgICAgcmVxdWVzdCA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KCJo
dHRwOi8vZGViaWFuLm9yZy8iKTsKKyAgICBnX2Fzc2VydChXRUJLSVRfSVNfTkVUV09SS19SRVFV
RVNUKHJlcXVlc3QpKTsKKyAgICBtZXNzYWdlID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRf
bWVzc2FnZShyZXF1ZXN0KTsKKworICAgIHNvdXBVUkkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291
cF9tZXNzYWdlX2dldF91cmkobWVzc2FnZSksIEZBTFNFKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIo
c291cFVSSSwgPT0sICJodHRwOi8vZGViaWFuLm9yZy8iKTsKKyAgICBnX2ZyZWUoc291cFVSSSk7
CisKKyAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKHJl
cXVlc3QpLCA9PSwgImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIGdfb2JqZWN0X3VucmVmKHJl
cXVlc3QpOworCisgICAgLyogVGVzdCBVUkkgaXMgc2V0IGNvcnJlY3RseSB3aGVuIGNyZWF0aW5n
IHdpdGggTWVzc2FnZSAqLworICAgIG1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KCJHRVQiLCAi
aHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVF
U1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBt
ZXNzYWdlLCBOVUxMKSk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChy
ZXF1ZXN0KSk7CisgICAgZ19vYmplY3RfdW5yZWYobWVzc2FnZSk7CisKKyAgICBtZXNzYWdlID0g
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKKyAgICBzb3VwVVJJ
ID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpLCBGQUxT
RSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHNvdXBVUkksID09LCAiaHR0cDovL2RlYmlhbi5vcmcv
Iik7CisgICAgZ19mcmVlKHNvdXBVUkkpOworCisgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sICJodHRwOi8vZGViaWFuLm9yZy8i
KTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQoreworICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CisgICAgZ3RrX3Rlc3Rf
aW5pdCgmYXJnYywgJmFyZ3YsIE5VTEwpOworCisgICAgZ190ZXN0X2J1Z19iYXNlKCJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy8iKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvbmV0d29y
a3JlcXVlc3QvY3JlYXRlZGVzdHJveSIsIHRlc3RfbmV0d29ya19yZXF1ZXN0X2NyZWF0ZV9kZXN0
cm95KTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvbmV0d29ya3JlcXVlc3QvcHJvcGVy
dGllcyIsIHRlc3RfbmV0d29ya19yZXF1ZXN0X3Byb3BlcnRpZXMpOworICAgIHJldHVybiBnX3Rl
c3RfcnVuICgpOworfQorCisjZWxzZQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQor
eworICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgYXQgbGVhc3QgZ2xpYi0yLjE2LjAgYW5k
IGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsK
KyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5jcHAKaW5kZXggZmVlZjNlYy4uZjk3Y2E0MSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg
IndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKQEAgLTQxLDEyICs0MiwyMiBAQAogR19ERUZJTkVfVFlQ
RShXZWJLaXROZXR3b3JrUmVxdWVzdCwgd2Via2l0X25ldHdvcmtfcmVxdWVzdCwgR19UWVBFX09C
SkVDVCk7CiAKIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIHsKKyAgICBnYm9v
bGVhbiBpc0NvbnN0cnVjdGVkOwogICAgIGdjaGFyKiB1cmk7CiAgICAgU291cE1lc3NhZ2UqIG1l
c3NhZ2U7CiB9OwogCiAjZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZBVEUo
b2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9ORVRX
T1JLX1JFUVVFU1QsIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpCiAKK3N0YXRpYyBHT2Jq
ZWN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0cnVjdG9yKEdUeXBlIGd0eXBlLCBndWlu
dCBuX3Byb3BlcnRpZXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSAqcHJvcGVydGllcyk7CisKK2Vu
dW0geworICAgIFBST1BfMCwKKworICAgIFBST1BfVVJJLAorICAgIFBST1BfTUVTU0FHRSwKK307
CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQogewogICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05F
VFdPUktfUkVRVUVTVChvYmplY3QpOwpAQCAtNjIsOSArNzMsODAgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X25ldHdvcmtfcmVxdWVzdF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShv
YmplY3QpOwogfQogCitzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQYXJh
bVNwZWMgKnBzcGVjKQoreworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VC
S0lUX05FVFdPUktfUkVRVUVTVChvYmplY3QpOworCisgICAgc3dpdGNoKHByb3BfaWQpIHsKKyAg
ICBjYXNlIFBST1BfVVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUFJPUF9NRVNTQUdFOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdl
YmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCkpOworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBy
b3BfaWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQoreworICAgIFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChvYmpl
Y3QpOworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnBy
aXY7CisKKyAgICBzd2l0Y2gocHJvcF9pZCkgeworICAgIGNhc2UgUFJPUF9VUkk6CisgICAgICAg
IGlmIChwcml2LT5pc0NvbnN0cnVjdGVkKSB7CisgICAgICAgICAgICB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ192YWx1ZV9nZXRfc3RyaW5n
KHZhbHVlKSkKKyAgICAgICAgICAgIHByaXYtPnVyaSA9IGdfdmFsdWVfZHVwX3N0cmluZyh2YWx1
ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRVNTQUdFOgorICAgICAgICBwcml2
LT5tZXNzYWdlID0gU09VUF9NRVNTQUdFKGdfdmFsdWVfZHVwX29iamVjdCh2YWx1ZSkpOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf
UFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgfQorfQorCiBzdGF0aWMg
dm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0TmV0d29ya1JlcXVl
c3RDbGFzcyogcmVxdWVzdENsYXNzKQogewotICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFz
cyktPmZpbmFsaXplID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9maW5hbGl6ZTsKKyAgICBHT2Jq
ZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsKKwor
ICAgIG9iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY29u
c3RydWN0b3I7CisgICAgb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9maW5hbGl6ZTsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0X25l
dHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHk7CisgICAgb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0
eSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3Byb3BlcnR5OworCisgICAgLyoqCisgICAg
ICogV2ViS2l0TmV0d29ya1JlcXVlc3Q6dXJpOgorICAgICAqCisgICAgICogVGhlIFVSSSB0byB3
aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlIG1hZGUuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4x
LjkKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENs
YXNzLCBQUk9QX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19zdHJpbmcoInVyaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlVSSSIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgVVJJIHRvIHdoaWNoIHRoZSBy
ZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdF
QktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9DT05TVFJVQ1QpKSk7CisKKyAgICAvKioKKyAg
ICAgKiBXZWJLaXROZXR3b3JrUmVxdWVzdDptZXNzYWdlOgorICAgICAqCisgICAgICogVGhlICNT
b3VwTWVzc2FnZSB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0LgorICAgICAqCisgICAgICogU2luY2U6
IDEuMS45CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX29iamVjdCgibWVzc2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1lc3NhZ2UiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFNv
dXBNZXNzYWdlIHRoYXQgYmFja3MgdGhlIHJlcXVlc3QuIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfVFlQRV9NRVNTQUdFLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NP
TlNUUlVDVF9PTkxZKSkpOwogCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RD
bGFzcywgc2l6ZW9mKFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpOwogfQpAQCAtNzMsMjAg
KzE1NSw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2luaXQoV2ViS2l0
TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2
YXRlKiBwcml2ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsK
ICAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKKyAgICBwcml2LT5pc0NvbnN0cnVjdGVkID0gRkFM
U0U7Cit9CisKK3N0YXRpYyBHT2JqZWN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0cnVj
dG9yKEdUeXBlIGd0eXBlLCBndWludCBuX3Byb3BlcnRpZXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJh
bSAqcHJvcGVydGllcykKK3sKKyAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKGd0eXBlLCBu
X3Byb3BlcnRpZXMsIHByb3BlcnRpZXMpOworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2JqZWN0KS0+cHJpdjsKKworICAgIHBy
aXYtPmlzQ29uc3RydWN0ZWQgPSBUUlVFOworCisgICAgaWYgKChwcml2LT51cmkgJiYgcHJpdi0+
bWVzc2FnZSkgfHwgKCFwcml2LT51cmkgJiYgIXByaXYtPm1lc3NhZ2UpKSB7CisgICAgICAgIGlm
IChwcml2LT51cmkpCisgICAgICAgICAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKworICAgICAgICBp
ZiAocHJpdi0+bWVzc2FnZSkKKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPm1lc3Nh
Z2UpOworCisgICAgICAgIGdfY3JpdGljYWwoIldlYktpdE5ldHdvcmtNZXNzYWdlIG5lZWRzIHRv
IGJlIGluaXRpYWxpemVkIHdpdGggb25lIChhbmQgb25seSBvbmUpIG9mIGEgVVJJIG9yIGEgU291
cE1lc3NhZ2UuIik7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKG9iamVjdCk7CisgICAgICAgIHJl
dHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChwcml2LT5tZXNzYWdlKQorICAgICAgICByZXR1
cm4gb2JqZWN0OworCisgICAgcHJpdi0+bWVzc2FnZSA9IHNvdXBfbWVzc2FnZV9uZXcoIkdFVCIs
IHByaXYtPnVyaSk7CisgICAgaWYgKCFwcml2LT5tZXNzYWdlKSB7CisgICAgICAgIGdfY3JpdGlj
YWwoIlRyaWVkIHRvIGluaXRpYWxpemUgYSBXZWJLaXROZXR3b3JrUmVxdWVzdCB3aXRoIGFuIGlu
dmFsaWQgVVJJOiAlcyIsIHByaXYtPnVyaSk7CisgICAgICAgIGdfZnJlZShwcml2LT51cmkpOwor
ICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqZWN0OwogfQogCiAv
LyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkKIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCog
cmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X05FVFdPUktfUkVRVUVTVCwgTlVMTCkpOwotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0KICAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Ug
PSByZXNvdXJjZVJlcXVlc3Quc291cE1lc3NhZ2UoKTsKLSAgICBpZiAoc291cE1lc3NhZ2UpCi0g
ICAgICAgIHByaXYtPm1lc3NhZ2UgPSBTT1VQX01FU1NBR0UoZ19vYmplY3RfcmVmKHNvdXBNZXNz
YWdlKSk7Ci0gICAgcHJpdi0+dXJpID0gZ19zdHJkdXAocmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0dXJu
IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktf
UkVRVUVTVCwgIm1lc3NhZ2UiLCBzb3VwTWVzc2FnZSwgTlVMTCkpOwogfQogCiAvKioKQEAgLTEw
MiwxNiArMjExLDcgQEAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfbmV3KGNvbnN0IGdjaGFyKiB1cmkpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXJp
LCBOVUxMKTsKIAotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05F
VFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBO
VUxMKSk7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+
cHJpdjsKLQotICAgIHByaXYtPm1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KCJHRVQiLCB1cmkp
OwotICAgIGlmICghcHJpdi0+bWVzc2FnZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBw
cml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOwotCi0gICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdP
UktfUkVRVUVTVCwgInVyaSIsIHVyaSwgTlVMTCkpOwogfQogCiAvKioKQEAgLTEyMCw2ICsyMjAs
NyBAQCBXZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcoY29u
c3QgZ2NoYXIqIHVyaSkKICAqIEB1cmk6IGFuIFVSSQogICoKICAqIFNldHMgdGhlIFVSSSBoZWxk
IGFuZCB1c2VkIGJ5IHRoZSBnaXZlbiByZXF1ZXN0LgorICoKICAqLwogdm9pZCB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X3NldF91cmkoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0
IGdjaGFyKiB1cmkpCiB7CkBAIC0xMjgsOCArMjI5LDE3IEBAIHZvaWQgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9zZXRfdXJpKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBnY2hh
cioKIAogICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnBy
aXY7CiAKLSAgICBnX2ZyZWUocHJpdi0+dXJpKTsKLSAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1
cmkpOworICAgIFNvdXBVUkkqIHNvdXBVUkkgPSBzb3VwX3VyaV9uZXcodXJpKTsKKyAgICBpZiAo
IXNvdXBVUkkpIHsKKyAgICAgICAgZ19jcml0aWNhbCgiVHJpZWQgdG8gc2V0IGFuIGludmFsaWQg
VVJJIHRvIGEgV2ViS2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0OiAlcyIsIHVyaSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAocHJpdi0+dXJpKQorICAgICAgICBnX2ZyZWUocHJp
di0+dXJpKTsKKworICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJpKHByaXYtPm1lc3NhZ2UsIHNvdXBV
UkkpOworICAgIHNvdXBfdXJpX2ZyZWUoc291cFVSSSk7CiB9CiAKIC8qKgpAQCAtMTQ1LDE4ICsy
NTUsMjYgQEAgR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0
X3VyaShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWUKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpLCBOVUxMKTsKIAogICAgIFdlYktp
dE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBpZiAo
cHJpdi0+dXJpKQorICAgICAgICByZXR1cm4gcHJpdi0+dXJpOworCisgICAgU291cFVSSSogc291
cFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHByaXYtPm1lc3NhZ2UpOworICAgIHByaXYtPnVy
aSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSk7CiAgICAgcmV0dXJuIHByaXYt
PnVyaTsKIH0KIAotLy8gTk9UIFlFVCBBUEk7IEZvciBpbnRlcm5hbCB1c2Ugb25seSwgZm9yIG5v
dwotLy8gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfc291cF9tZXNzYWdlOgotLy8gQHJlcXVl
c3Q6IGEgI1dlYktpdE5ldHdvcmtSZXF1ZXN0Ci0vLwotLy8gT2J0YWlucyB0aGUgI1NvdXBNZXNz
YWdlIGhlbGQgYW5kIHVzZWQgYnkgdGhlIGdpdmVuIHJlcXVlc3QuIE5vdGljZQotLy8gdGhhdCBt
b2RpZmljYXRpb24gb2YgdGhlIFNvdXBNZXNzYWdlIG9mIGEgcmVxdWVzdCBieSBzaWduYWwKLS8v
IGhhbmRsZXJzIGlzIG9ubHkgc3VwcG9ydGVkIHdoZXJlIGV4cGxpY2l0bHkgZG9jdW1lbnRlZC4K
LS8vCi0vLyBSZXR1cm5zOiB0aGUgI1NvdXBNZXNzYWdlCisvKiogd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfc291cF9tZXNzYWdlOgorICogQHJlcXVlc3Q6IGEgI1dlYktpdE5ldHdvcmtSZXF1
ZXN0CisgKgorICogT2J0YWlucyB0aGUgI1NvdXBNZXNzYWdlIGhlbGQgYW5kIHVzZWQgYnkgdGhl
IGdpdmVuIHJlcXVlc3QuIE5vdGljZQorICogdGhhdCBtb2RpZmljYXRpb24gb2YgdGhlIFNvdXBN
ZXNzYWdlIG9mIGEgcmVxdWVzdCBieSBzaWduYWwKKyAqIGhhbmRsZXJzIGlzIG9ubHkgc3VwcG9y
dGVkIChhcyBpbiwgd2lsbCBvbmx5IGFmZmVjdCB3aGF0IGlzCisgKiBhY3R1YWxseSBzZW50IHRv
IHRoZSBzZXJ2ZXIpIHdoZXJlIGV4cGxpY2l0bHkgZG9jdW1lbnRlZC4KKyAqCisgKiBSZXR1cm5z
OiB0aGUgI1NvdXBNZXNzYWdlCisgKiBTaW5jZTogMS4xLjkKKyAqLwogU291cE1lc3NhZ2UqIHdl
YmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJl
cXVlc3QpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05FVFdPUktfUkVR
VUVTVChyZXF1ZXN0KSwgTlVMTCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRuZXR3b3JrcmVxdWVzdC5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuaAppbmRleCAwMWFiOGJiLi43OGUwNGExIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0LmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgV0VCS0lUX05FVFdPUktf
UkVRVUVTVF9ICiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KIApAQCAtNjUsNiAr
NjYsOSBAQCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmkgIChXZWJLaXROZXR3b3JrUmVx
dWVzdCAqcmVxdWVzdCwKIFdFQktJVF9BUEkgR19DT05TVF9SRVRVUk4gZ2NoYXIgKgogd2Via2l0
X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3Qp
OwogCitXRUJLSVRfQVBJIFNvdXBNZXNzYWdlICoKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0
X21lc3NhZ2UoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworCiBHX0VORF9ERUNMUwog
CiAjZW5kaWYK
</data>
<flag name="review"
          id="15637"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30888</attachid>
            <date>2009-06-02 18:23:26 -0700</date>
            <delta_ts>2009-06-04 06:30:37 -0700</delta_ts>
            <desc>Make WebKitNetworkRequest a proper GObject</desc>
            <filename>Make-WebKitNetworkRequest-a-proper-GObject.patch</filename>
            <type>text/plain</type>
            <size>18169</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">OTFiNTk4MThlYjkwNjI3MjQ2NGQ4YWU2ZDhiY2M2NzljNjdhMjBkYgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE5NDZkNTYuLjU3YzZlMDEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wNS0zMSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3Igb3VyIFdlYktp
dE5ldHdvcmtSZXF1ZXN0IG9iamVjdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAy
MDA5LTA1LTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBi
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4N2VlNDkuLmVhZjg4NjMgMTAwNjQ0Ci0tLSBhL0dOVW1h
a2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01MjQsNiArNTI0LDcgQEAgd2Via2l0
X3Rlc3RzX2xkZmxhZ3MgPSBcCiAJLW5vLWZhc3QtaW5zdGFsbAogCiBURVNUX1BST0dTICs9IFBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0aHR0cGJhY2tlbmQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90
ZXN0bmV0d29ya3JlcXVlc3QgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUgXAog
CVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFtcy91
bml0dGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKQEAgLTUzNiw2ICs1MzcsMTEgQEAgUHJvZ3Jh
bXNfdW5pdHRlc3RzX3Rlc3RodHRwYmFja2VuZF9DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xEQUREID0gJCh3ZWJraXRf
dGVzdHNfbGRhZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xERkxBR1Mg
PSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQogCitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdv
cmtyZXF1ZXN0X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5j
CitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdvcmtyZXF1ZXN0X0NGTEFHUyA9ICQod2Via2l0
X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29ya3JlcXVlc3RfTERB
REQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29y
a3JlcXVlc3RfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0d2ViZnJhbWVfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmZy
YW1lLmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViZnJhbWVfQ0ZMQUdTID0gJCh3ZWJraXRf
dGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFtZV9MREFERCA9ICQo
d2Via2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3ZDgzMTk4Li5lMGVlYTJjIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDA5LTA1LTMxICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
V2ViS2l0TmV0d29ya1JlcXVlc3QgYSBwcm9wZXIgR09iamVjdCwgbWFraW5nIFVSSSBhbmQKKyAg
ICAgICAgU291cE1lc3NhZ2UgcHJvcGVydGllcy4gQWxzbyBhZGRpbmcgdW5pdCB0ZXN0cyBmb3Ig
Y3JlYXRpb24gYW5kCisgICAgICAgIGRlc3RydWN0aW9uLgorCisgICAgICAgICogdGVzdHMvdGVz
dG5ldHdvcmtyZXF1ZXN0LmM6IEFkZGVkLgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3Rf
Y3JlYXRlX2Rlc3Ryb3kpOgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGll
cyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkpOgor
ICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkpOgorICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfaW5pdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0
cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9y
ZXF1ZXN0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KToKKyAgICAgICAg
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2dldF91cmkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oOgorCiAyMDA5LTA1LTI5ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvdGVzdHMvdGVzdG5ldHdvcmtyZXF1ZXN0LmMgYi9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RuZXR3b3JrcmVxdWVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjE2MDk2Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3Jr
cmVxdWVzdC5jCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQu
aD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRl
IDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtp
dC5oPgorCisjaWYgR0xJQl9DSEVDS19WRVJTSU9OKDIsIDE2LCAwKSAmJiBHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAxNCwgMCkKKworc3RhdGljIHZvaWQgdGVzdF9uZXR3b3JrX3JlcXVlc3RfY3JlYXRl
X2Rlc3Ryb3koKQoreworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0OworICAgIFNv
dXBNZXNzYWdlKiBtZXNzYWdlOworCisgICAgLyogVGVzdCBjcmVhdGlvbiB3aXRoIFVSSSAqLwor
ICAgIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRf
VFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmkiLCAiaHR0cDovL2RlYmlhbi5vcmcvIiwgTlVMTCkp
OworICAgIGdfYXNzZXJ0KFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOworICAg
IG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpOwor
ICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVChtZXNzYWdlKS0+cmVmX2NvdW50LCA9PSwgMSk7
CisgICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9uIHdp
dGggU291cE1lc3NhZ2UgKi8KKyAgICBtZXNzYWdlID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwg
Imh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwg
bWVzc2FnZSwgTlVMTCkpOworICAgIGdfYXNzZXJ0KFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1Qo
cmVxdWVzdCkpOworICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVChtZXNzYWdlKS0+cmVmX2Nv
dW50LCA9PSwgMik7CisgICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7CisgICAgZ19hc3NlcnRf
Y21waW50KEdfT0JKRUNUKG1lc3NhZ2UpLT5yZWZfY291bnQsID09LCAxKTsKKyAgICBnX29iamVj
dF91bnJlZihtZXNzYWdlKTsKKworICAgIC8qIFRlc3QgY3JlYXRpb24gd2l0aCBib3RoIFVSSSBh
bmQgU291cE1lc3NhZ2U7IHNob3VsZCBmYWlsICovCisgICAgaWYgKGdfdGVzdF90cmFwX2Zvcmso
MCwgR19URVNUX1RSQVBfU0lMRU5DRV9TVERPVVR8R19URVNUX1RSQVBfU0lMRU5DRV9TVERFUlIp
KSB7CisgICAgICAgIG1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KCJHRVQiLCAiaHR0cDovL2Rl
Ymlhbi5vcmcvIik7CisgICAgICAgIHJlcXVlc3QgPSBnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
TkVUV09SS19SRVFVRVNULCAidXJpIiwgImh0dHA6Ly9kZWJpYW4ub3JnLyIsICJtZXNzYWdlIiwg
bWVzc2FnZSwgTlVMTCk7CisgICAgICAgIGV4aXQoMCk7CisgICAgfQorCisgICAgZ190ZXN0X3Ry
YXBfYXNzZXJ0X2ZhaWxlZCgpOworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9zdGRlcnIoIipXZWJL
aXROZXR3b3JrTWVzc2FnZSBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB3aXRoIG9uZSAoYW5kIG9u
bHkgb25lKSBvZiBhIFVSSSBvciBhIFNvdXBNZXNzYWdlLioiKTsKKworICAgIC8qIFRlc3QgY3Jl
YXRpb24gd2l0aCBubyBVUkkgb3IgU291cE1lc3NhZ2U7IHNob3VsZCBmYWlsICovCisgICAgaWYg
KGdfdGVzdF90cmFwX2ZvcmsoMCwgR19URVNUX1RSQVBfU0lMRU5DRV9TVERPVVR8R19URVNUX1RS
QVBfU0lMRU5DRV9TVERFUlIpKSB7CisgICAgICAgIHJlcXVlc3QgPSBnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBOVUxMKTsKKyAgICAgICAgZXhpdCgwKTsKKyAgICB9
CisKKyAgICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkKCk7CisgICAgZ190ZXN0X3RyYXBfYXNz
ZXJ0X3N0ZGVycigiKldlYktpdE5ldHdvcmtNZXNzYWdlIG5lZWRzIHRvIGJlIGluaXRpYWxpemVk
IHdpdGggb25lIChhbmQgb25seSBvbmUpIG9mIGEgVVJJIG9yIGEgU291cE1lc3NhZ2UuKiIpOwor
CisgICAgLyogVGVzdCBjcmVhdGlvbiB3aXRoIGJhZCBVUkk7IHNob3VsZCBmYWlsICovCisgICAg
aWYgKGdfdGVzdF90cmFwX2ZvcmsoMCwgR19URVNUX1RSQVBfU0lMRU5DRV9TVERPVVR8R19URVNU
X1RSQVBfU0lMRU5DRV9TVERFUlIpKSB7CisgICAgICAgIHJlcXVlc3QgPSBnX29iamVjdF9uZXco
V0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAidXJpIiwgIndvb2hvbyIsIE5VTEwpOworICAg
ICAgICBleGl0KDApOworICAgIH0KKworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQoKTsK
KyAgICBnX3Rlc3RfdHJhcF9hc3NlcnRfc3RkZXJyKCIqVHJpZWQgdG8gaW5pdGlhbGl6ZSBhIFdl
YktpdE5ldHdvcmtSZXF1ZXN0IHdpdGggYW4gaW52YWxpZCBVUkk6IHdvb2hvbyoiKTsKK30KKwor
c3RhdGljIHZvaWQgdGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGllcygpCit7CisgICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3Q7CisgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2U7Cisg
ICAgZ2NoYXIqIHNvdXBVUkk7CisKKyAgICAvKiBUZXN0IFVSSSBpcyBzZXQgY29ycmVjdGx5IHdo
ZW4gY3JlYXRpbmcgd2l0aCBVUkkgKi8KKyAgICByZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9uZXcoImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIGdfYXNzZXJ0KFdFQktJVF9JU19O
RVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOworICAgIG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpOworCisgICAgc291cFVSSSA9IHNvdXBfdXJpX3Rv
X3N0cmluZyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSwgRkFMU0UpOworICAgIGdfYXNz
ZXJ0X2NtcHN0cihzb3VwVVJJLCA9PSwgImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIGdfZnJl
ZShzb3VwVVJJKTsKKworICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X2dldF91cmkocmVxdWVzdCksID09LCAiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgZ19vYmpl
Y3RfdW5yZWYocmVxdWVzdCk7CisKKyAgICAvKiBUZXN0IFVSSSBpcyBzZXQgY29ycmVjdGx5IHdo
ZW4gY3JlYXRpbmcgd2l0aCBNZXNzYWdlICovCisgICAgbWVzc2FnZSA9IHNvdXBfbWVzc2FnZV9u
ZXcoIkdFVCIsICJodHRwOi8vZGViaWFuLm9yZy8iKTsKKyAgICByZXF1ZXN0ID0gV0VCS0lUX05F
VFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAi
bWVzc2FnZSIsIG1lc3NhZ2UsIE5VTEwpKTsKKyAgICBnX2Fzc2VydChXRUJLSVRfSVNfTkVUV09S
S19SRVFVRVNUKHJlcXVlc3QpKTsKKyAgICBnX29iamVjdF91bnJlZihtZXNzYWdlKTsKKworICAg
IG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpOwor
ICAgIHNvdXBVUkkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobWVz
c2FnZSksIEZBTFNFKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoc291cFVSSSwgPT0sICJodHRwOi8v
ZGViaWFuLm9yZy8iKTsKKyAgICBnX2ZyZWUoc291cFVSSSk7CisKKyAgICBnX2Fzc2VydF9jbXBz
dHIod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKHJlcXVlc3QpLCA9PSwgImh0dHA6Ly9k
ZWJpYW4ub3JnLyIpOworICAgIGdfb2JqZWN0X3VucmVmKHJlcXVlc3QpOworfQorCitpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKKyAg
ICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgTlVMTCk7CisKKyAgICBnX3Rlc3RfYnVnX2Jh
c2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dl
YmtpdC9uZXR3b3JrcmVxdWVzdC9jcmVhdGVkZXN0cm95IiwgdGVzdF9uZXR3b3JrX3JlcXVlc3Rf
Y3JlYXRlX2Rlc3Ryb3kpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9uZXR3b3JrcmVx
dWVzdC9wcm9wZXJ0aWVzIiwgdGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGllcyk7CisgICAg
cmV0dXJuIGdfdGVzdF9ydW4gKCk7Cit9CisKKyNlbHNlCitpbnQgbWFpbihpbnQgYXJnYywgY2hh
cioqIGFyZ3YpCit7CisgICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBnbGli
LTIuMTYuMCBhbmQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhp
bmcgbm93LiIpOworICAgIHJldHVybiAwOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCBmZWVmM2VjLi44YzlhNjhkIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCkBAIC0yNSw2ICsyNSw4IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5o
IgogCisjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKwogLyoqCiAgKiBTRUNUSU9OOndlYmtp
dG5ldHdvcmtyZXF1ZXN0CiAgKiBAc2hvcnRfZGVzY3JpcHRpb246IFRoZSB0YXJnZXQgb2YgYSBu
YXZpZ2F0aW9uIHJlcXVlc3QKQEAgLTQxLDEyICs0MywyMiBAQAogR19ERUZJTkVfVFlQRShXZWJL
aXROZXR3b3JrUmVxdWVzdCwgd2Via2l0X25ldHdvcmtfcmVxdWVzdCwgR19UWVBFX09CSkVDVCk7
CiAKIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIHsKKyAgICBnYm9vbGVhbiBp
c0NvbnN0cnVjdGVkOwogICAgIGdjaGFyKiB1cmk7CiAgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2U7
CiB9OwogCiAjZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZBVEUob2JqKSAo
R19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9ORVRXT1JLX1JF
UVVFU1QsIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpCiAKK3N0YXRpYyBHT2JqZWN0KiB3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0cnVjdG9yKEdUeXBlIGd0eXBlLCBndWludCBudW1i
ZXJPZlByb3BlcnRpZXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogcHJvcGVydGllcyk7CisKK2Vu
dW0geworICAgIFBST1BfMCwKKworICAgIFBST1BfVVJJLAorICAgIFBST1BfTUVTU0FHRSwKK307
CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQogewogICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05F
VFdPUktfUkVRVUVTVChvYmplY3QpOwpAQCAtNjIsOSArNzQsODAgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X25ldHdvcmtfcmVxdWVzdF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShv
YmplY3QpOwogfQogCitzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SUQsIEdWYWx1ZSogdmFsdWUsIEdQ
YXJhbVNwZWMqIHBzcGVjKQoreworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0g
V0VCS0lUX05FVFdPUktfUkVRVUVTVChvYmplY3QpOworCisgICAgc3dpdGNoKHByb3BlcnR5SUQp
IHsKKyAgICBjYXNlIFBST1BfVVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUFJPUF9NRVNTQUdFOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFs
dWUsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCkpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP
UEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBwc3BlYyk7CisgICAgfQorfQorCitzdGF0aWMg
dm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SUQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVj
KQoreworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktf
UkVRVUVTVChvYmplY3QpOworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9
IHJlcXVlc3QtPnByaXY7CisKKyAgICBzd2l0Y2gocHJvcGVydHlJRCkgeworICAgIGNhc2UgUFJP
UF9VUkk6CisgICAgICAgIGlmIChwcml2LT5pc0NvbnN0cnVjdGVkKSB7CisgICAgICAgICAgICB3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgZ192YWx1ZV9nZXRfc3RyaW5n
KHZhbHVlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkKKyAgICAgICAgICAgIHByaXYtPnVyaSA9IGdfdmFsdWVf
ZHVwX3N0cmluZyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRVNTQUdF
OgorICAgICAgICBwcml2LT5tZXNzYWdlID0gU09VUF9NRVNTQUdFKGdfdmFsdWVfZHVwX29iamVj
dCh2YWx1ZSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBwc3BlYyk7Cisg
ICAgfQorfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NsYXNzX2luaXQo
V2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyogcmVxdWVzdENsYXNzKQogewotICAgIEdfT0JKRUNU
X0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9m
aW5hbGl6ZTsKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
cmVxdWVzdENsYXNzKTsKKworICAgIG9iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfY29uc3RydWN0b3I7CisgICAgb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0g
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9maW5hbGl6ZTsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3By
b3BlcnR5ID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHk7CisgICAgb2JqZWN0
Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3Byb3BlcnR5
OworCisgICAgLyoqCisgICAgICogV2ViS2l0TmV0d29ya1JlcXVlc3Q6dXJpOgorICAgICAqCisg
ICAgICogVGhlIFVSSSB0byB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlIG1hZGUuCisgICAgICoK
KyAgICAgKiBTaW5jZTogMS4xLjkKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVSSSIpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUg
VVJJIHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdQYXJhbUZs
YWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fQ09OU1RSVUNUKSkpOworCisgICAg
LyoqCisgICAgICogV2ViS2l0TmV0d29ya1JlcXVlc3Q6bWVzc2FnZToKKyAgICAgKgorICAgICAq
IFRoZSAjU291cE1lc3NhZ2UgdGhhdCBiYWNrcyB0aGUgcmVxdWVzdC4KKyAgICAgKgorICAgICAq
IFNpbmNlOiAxLjEuOQorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkob2JqZWN0Q2xhc3MsIFBST1BfTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoIm1lc3NhZ2UiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJNZXNzYWdlIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlRoZSBTb3VwTWVzc2FnZSB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0LiIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1VQX1RZUEVfTUVT
U0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fQ09OU1RS
VUNUX09OTFkpKSk7CiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNz
LCBzaXplb2YoV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKSk7CiB9CkBAIC03MywyMCArMTU2
LDUwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfaW5pdChXZWJLaXROZXR3
b3JrUmVxdWVzdCogcmVxdWVzdCkKIHsKICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUq
IHByaXYgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOwogICAg
IHJlcXVlc3QtPnByaXYgPSBwcml2OworICAgIHByaXYtPmlzQ29uc3RydWN0ZWQgPSBGQUxTRTsK
K30KKworLy8gVGhpcyBjb25zdHJ1Y3RvciBpcyB1c2VkIHRvIHNhbml0eSBjaGVjayB0aGUgY3Jl
YXRpb24gb2YgdGhlCisvLyBvYmplY3QsIG1ha2luZyBzdXJlIHRoYXQgb25seSBvbmUgb2YgVVJJ
IGFuZCBTb3VwTWVzc2FnZSBhcmUgZ2l2ZW4sCisvLyBhbmQgZ3JhY2VmdWxseSBoYW5kbGluZyB0
aGUgY2FzZXMgaW4gd2hpY2ggYSBiYWQgVVJJIGlzIGdpdmVuLCBieQorLy8gcmV0dXJuaW5nIE5V
TEwuCitzdGF0aWMgR09iamVjdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jb25zdHJ1Y3RvcihH
VHlwZSBndHlwZSwgZ3VpbnQgbnVtZXJPZlByb3BlcnRpZXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJh
bSAqcHJvcGVydGllcykKK3sKKyAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKGd0eXBlLCBu
dW1lck9mUHJvcGVydGllcywgcHJvcGVydGllcyk7CisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQ
cml2YXRlKiBwcml2ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChvYmplY3QpLT5wcml2OworCisg
ICAgcHJpdi0+aXNDb25zdHJ1Y3RlZCA9IFRSVUU7CisKKyAgICBpZiAoKHByaXYtPnVyaSAmJiBw
cml2LT5tZXNzYWdlKSB8fCAoIXByaXYtPnVyaSAmJiAhcHJpdi0+bWVzc2FnZSkpIHsKKyAgICAg
ICAgZ19mcmVlKHByaXYtPnVyaSk7CisKKyAgICAgICAgaWYgKHByaXYtPm1lc3NhZ2UpCisgICAg
ICAgICAgICBnX29iamVjdF91bnJlZihwcml2LT5tZXNzYWdlKTsKKworICAgICAgICBnX2NyaXRp
Y2FsKCJXZWJLaXROZXR3b3JrTWVzc2FnZSBuZWVkcyB0byBiZSBpbml0aWFsaXplZCB3aXRoIG9u
ZSAoYW5kIG9ubHkgb25lKSBvZiBhIFVSSSBvciBhIFNvdXBNZXNzYWdlLiIpOworICAgICAgICBn
X29iamVjdF91bnJlZihvYmplY3QpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAg
ICBpZiAocHJpdi0+bWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKKworICAgIHByaXYt
Pm1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KCJHRVQiLCBwcml2LT51cmkpOworICAgIGlmICgh
cHJpdi0+bWVzc2FnZSkgeworICAgICAgICBnX2NyaXRpY2FsKCJUcmllZCB0byBpbml0aWFsaXpl
IGEgV2ViS2l0TmV0d29ya1JlcXVlc3Qgd2l0aCBhbiBpbnZhbGlkIFVSSTogJXMiLCBwcml2LT51
cmkpOworICAgICAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7Cisg
ICAgfQorCisgICAgcmV0dXJuIG9iamVjdDsKIH0KIAogLy8gZm9yIGludGVybmFsIHVzZSBvbmx5
CiBXZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9j
b3JlX3JlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QpCiB7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09S
S19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsIE5VTEwp
KTsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OwotCiAgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gcmVzb3VyY2VSZXF1ZXN0LnNvdXBN
ZXNzYWdlKCk7Ci0gICAgaWYgKHNvdXBNZXNzYWdlKQotICAgICAgICBwcml2LT5tZXNzYWdlID0g
U09VUF9NRVNTQUdFKGdfb2JqZWN0X3JlZihzb3VwTWVzc2FnZSkpOwotICAgIHByaXYtPnVyaSA9
IGdfc3RyZHVwKHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
IAotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFVRVNU
KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgc291
cE1lc3NhZ2UsIE5VTEwpKTsKIH0KIAogLyoqCkBAIC0xMDIsMTYgKzIxNSw3IEBAIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhjb25zdCBnY2hhciogdXJp
KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgTlVMTCk7CiAKLSAgICBXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3Rf
bmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgTlVMTCkpOwotICAgIFdlYktpdE5ldHdv
cmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0KLSAgICBwcml2LT5tZXNz
YWdlID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwgdXJpKTsKLSAgICBpZiAoIXByaXYtPm1lc3Nh
Z2UpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcHJpdi0+dXJpID0gZ19zdHJkdXAodXJp
KTsKLQotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmkiLCB1cmks
IE5VTEwpKTsKIH0KIAogLyoqCkBAIC0xMjAsNiArMjI0LDcgQEAgV2ViS2l0TmV0d29ya1JlcXVl
c3QqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KGNvbnN0IGdjaGFyKiB1cmkpCiAgKiBAdXJp
OiBhbiBVUkkKICAqCiAgKiBTZXRzIHRoZSBVUkkgaGVsZCBhbmQgdXNlZCBieSB0aGUgZ2l2ZW4g
cmVxdWVzdC4KKyAqCiAgKi8KIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpKFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQogewpAQCAtMTI4
LDggKzIzMywxNyBAQCB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaShXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqCiAKICAgICBXZWJLaXROZXR3b3Jr
UmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCi0gICAgZ19mcmVlKHByaXYt
PnVyaSk7Ci0gICAgcHJpdi0+dXJpID0gZ19zdHJkdXAodXJpKTsKKyAgICBTb3VwVVJJKiBzb3Vw
VVJJID0gc291cF91cmlfbmV3KHVyaSk7CisgICAgaWYgKCFzb3VwVVJJKSB7CisgICAgICAgIGdf
Y3JpdGljYWwoIlRyaWVkIHRvIHNldCBhbiBpbnZhbGlkIFVSSSB0byBhIFdlYktpdE5ldHdvcmtS
ZXF1ZXN0IG9iamVjdDogJXMiLCB1cmkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKHByaXYtPnVyaSkKKyAgICAgICAgZ19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBzb3VwX21l
c3NhZ2Vfc2V0X3VyaShwcml2LT5tZXNzYWdlLCBzb3VwVVJJKTsKKyAgICBzb3VwX3VyaV9mcmVl
KHNvdXBVUkkpOwogfQogCiAvKioKQEAgLTE0NSwxOCArMjU5LDI2IEBAIEdfQ09OU1RfUkVUVVJO
IGdjaGFyKiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkoV2ViS2l0TmV0d29ya1JlcXVl
c3QqIHJlcXVlCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05FVFdPUktfUkVR
VUVTVChyZXF1ZXN0KSwgTlVMTCk7CiAKICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUq
IHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgaWYgKHByaXYtPnVyaSkKKyAgICAgICAgcmV0
dXJuIHByaXYtPnVyaTsKKworICAgIFNvdXBVUkkqIHNvdXBVUkkgPSBzb3VwX21lc3NhZ2VfZ2V0
X3VyaShwcml2LT5tZXNzYWdlKTsKKyAgICBwcml2LT51cmkgPSBzb3VwX3VyaV90b19zdHJpbmco
c291cFVSSSwgRkFMU0UpOwogICAgIHJldHVybiBwcml2LT51cmk7CiB9CiAKLS8vIE5PVCBZRVQg
QVBJOyBGb3IgaW50ZXJuYWwgdXNlIG9ubHksIGZvciBub3cKLS8vIHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfZ2V0X3NvdXBfbWVzc2FnZToKLS8vIEByZXF1ZXN0OiBhICNXZWJLaXROZXR3b3JrUmVx
dWVzdAotLy8KLS8vIE9idGFpbnMgdGhlICNTb3VwTWVzc2FnZSBoZWxkIGFuZCB1c2VkIGJ5IHRo
ZSBnaXZlbiByZXF1ZXN0LiBOb3RpY2UKLS8vIHRoYXQgbW9kaWZpY2F0aW9uIG9mIHRoZSBTb3Vw
TWVzc2FnZSBvZiBhIHJlcXVlc3QgYnkgc2lnbmFsCi0vLyBoYW5kbGVycyBpcyBvbmx5IHN1cHBv
cnRlZCB3aGVyZSBleHBsaWNpdGx5IGRvY3VtZW50ZWQuCi0vLwotLy8gUmV0dXJuczogdGhlICNT
b3VwTWVzc2FnZQorLyoqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3NvdXBfbWVzc2FnZToK
KyAqIEByZXF1ZXN0OiBhICNXZWJLaXROZXR3b3JrUmVxdWVzdAorICoKKyAqIE9idGFpbnMgdGhl
ICNTb3VwTWVzc2FnZSBoZWxkIGFuZCB1c2VkIGJ5IHRoZSBnaXZlbiByZXF1ZXN0LiBOb3RpY2UK
KyAqIHRoYXQgbW9kaWZpY2F0aW9uIG9mIHRoZSBTb3VwTWVzc2FnZSBvZiBhIHJlcXVlc3QgYnkg
c2lnbmFsCisgKiBoYW5kbGVycyBpcyBvbmx5IHN1cHBvcnRlZCAoYXMgaW4sIHdpbGwgb25seSBh
ZmZlY3Qgd2hhdCBpcworICogYWN0dWFsbHkgc2VudCB0byB0aGUgc2VydmVyKSB3aGVyZSBleHBs
aWNpdGx5IGRvY3VtZW50ZWQuCisgKgorICogUmV0dXJuczogdGhlICNTb3VwTWVzc2FnZQorICog
U2luY2U6IDEuMS45CisgKi8KIFNvdXBNZXNzYWdlKiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dl
dF9tZXNzYWdlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCksIE5VTEwpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmgKaW5kZXggMDFhYjhiYi4uNzhl
MDRhMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3Qu
aAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCkBAIC0yMSw2
ICsyMSw3IEBACiAjZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfSAogCiAjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KIAogI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+CiAKQEAgLTY1LDYgKzY2LDkgQEAgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9zZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QsCiBXRUJLSVRf
QVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFyICoKIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Vy
aSAgKFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsKIAorV0VCS0lUX0FQSSBTb3VwTWVz
c2FnZSAqCit3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKFdlYktpdE5ldHdvcmtS
ZXF1ZXN0KiByZXF1ZXN0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30943</attachid>
            <date>2009-06-04 06:30:31 -0700</date>
            <delta_ts>2009-06-09 08:38:21 -0700</delta_ts>
            <desc>Refactor handling of the SoupMessage</desc>
            <filename>Refactor-handling-of-the-SoupMessage.patch</filename>
            <type>text/plain</type>
            <size>15537</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">OWEyNTgwNzk5ZTRlMzE2NWVjYTM4MDA2ZjVmMDBlYTlmMjcyNmEyMQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNDQ1ODY1Li4zZWVjODQ1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDA5LTA2LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisJaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2
MTA0CisJW0dUS10gTWFrZSBOZXR3b3JrUmVxdWVzdCBhIHByb3BlciBHT2JqZWN0IGFuZCBleHBv
c2UgU291cE1lc3NhZ2UKKworCVJlZmFjdG9yIGhvdyBTb3VwTWVzc2FnZSBpcyBoYW5kbGVkLCBz
byB0aGF0IG91ciBSZXNvdXJjZVJlcXVlc3QKKwlvYmplY3QgZG9lc24ndCBoYXZlIHRvIHN0b3Jl
IGl0IGFzIGEgbWVtYmVyLCB3aGljaCBjb21wbGljYXRlcworCW1hbmFnaW5nIFJlc291cmNlUmVx
dWVzdCdzIGxpZmV0aW1lLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnRIdHRwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJj
ZVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3RTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6dG9Tb3VwTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnNldFNvdXBNZXNzYWdl
KToKKwogMjAwOS0wNi0wMyAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNGZjZDBhZi4u
NmJlMTNlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NjgsNyArNDY4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnRIdHRwKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgU291cFNlc3Npb24qIHNlc3Npb24g
PSBkZWZhdWx0U2Vzc2lvbigpOwogICAgIGVuc3VyZVNlc3Npb25Jc0luaXRpYWxpemVkKHNlc3Np
b24pOwogCi0gICAgZC0+bV9tc2cgPSBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZSo+KGdfb2JqZWN0
X3JlZihyZXF1ZXN0KCkuc291cE1lc3NhZ2UoKSkpOworICAgIGQtPm1fbXNnID0gcmVxdWVzdCgp
LnRvU291cE1lc3NhZ2UoKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KGQtPm1fbXNnLCAicmVzdGFy
dGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3QoZC0+bV9tc2csICJnb3QtaGVhZGVycyIsIEdfQ0FMTEJBQ0soZ290SGVhZGVyc0Nh
bGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChkLT5tX21zZywgImdvdC1jaHVu
ayIsIEdfQ0FMTEJBQ0soZ290Q2h1bmtDYWxsYmFjayksIHRoaXMpOwpAQCAtNTQ1LDEwICs1NDUs
OSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydEh0dHAoU3RyaW5nIHVybFN0cmluZykKICAg
ICAvLyB1c2UgaXQgaGVyZSBpbnN0ZWFkLgogICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX3JlcGxh
Y2UoZC0+bV9tc2ctPnJlcXVlc3RfaGVhZGVycywgIkFjY2VwdC1FbmNvZGluZyIsICJpZGVudGl0
eSIpOwogCi0gICAgLy8gQmFsYW5jZWQgaW4gUmVzb3VyY2VSZXF1ZXN0J3MgZGVzdHJ1Y3Rvcjsg
d2UgbmVlZCB0byBrZWVwIG91cgotICAgIC8vIG93biByZWYsIGJlY2F1c2UgYWZ0ZXIgcXVldWVp
bmcgdGhlIG1lc3NhZ2UsIHRoZSBzZXNzaW9uIG93bnMKLSAgICAvLyB0aGUgaW5pdGlhbCByZWZl
cmVuY2UuIFdlIGNhbm5vdCByZWYgdGhlIG1lc3NhZ2UgaW4KLSAgICAvLyBSZXNvdXJjZVJlcXVl
c3QgYmVjYXVzZSBub3QgYWxsIHJlcXVlc3Qgb2JqZWN0cyBhcmUgcXVldWVkLgorICAgIC8vIEJh
bGFuY2VkIGluIFJlc291cmNlSGFuZGxlSW50ZXJuYWwncyBkZXN0cnVjdG9yOyB3ZSBuZWVkIHRv
CisgICAgLy8ga2VlcCBvdXIgb3duIHJlZiwgYmVjYXVzZSBhZnRlciBxdWV1ZWluZyB0aGUgbWVz
c2FnZSwgdGhlCisgICAgLy8gc2Vzc2lvbiBvd25zIHRoZSBpbml0aWFsIHJlZmVyZW5jZS4KICAg
ICBnX29iamVjdF9yZWYoZC0+bV9tc2cpOwogICAgIHNvdXBfc2Vzc2lvbl9xdWV1ZV9tZXNzYWdl
KHNlc3Npb24sIGQtPm1fbXNnLCBmaW5pc2hlZENhbGxiYWNrLCB0aGlzKTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCA2NWM0MGMy
Li45NGU0OTBiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlcXVlc3QuaApAQCAtMzcsNTYgKzM3LDM5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgICAgICAgICA6IFJl
c291cmNlUmVxdWVzdEJhc2UoS1VSTCh1cmwpLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KQotICAg
ICAgICAgICAgLCBtX3NvdXBNZXNzYWdlKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgICAgICA6IFJlc291
cmNlUmVxdWVzdEJhc2UodXJsLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KQotICAgICAgICAgICAg
LCBtX3NvdXBNZXNzYWdlKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCiAgICAgICAgIFJlc291
cmNlUmVxdWVzdChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlc291
cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSA9IFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpCiAg
ICAgICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UodXJsLCBwb2xpY3kpCi0gICAgICAgICAg
ICAsIG1fc291cE1lc3NhZ2UoMCkKICAgICAgICAgewogICAgICAgICAgICAgc2V0SFRUUFJlZmVy
cmVyKHJlZmVycmVyKTsKICAgICAgICAgfQogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCgpCiAg
ICAgICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UoS1VSTCgpLCBVc2VQcm90b2NvbENhY2hl
UG9saWN5KQotICAgICAgICAgICAgLCBtX3NvdXBNZXNzYWdlKDApCiAgICAgICAgIHsKICAgICAg
ICAgfQogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdChTb3VwTWVzc2FnZSogc291cE1lc3NhZ2Up
Ci0gICAgICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UoKQotICAgICAgICAgICAgLCBtX3Nv
dXBNZXNzYWdlKHNvdXBNZXNzYWdlKQotICAgICAgICB7Ci0gICAgICAgICAgICBnX29iamVjdF9y
ZWYoc291cE1lc3NhZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gV2UgZm9yY2UgY29waWVz
IG9mIFJlc291cmNlUmVxdWVzdCB0byBjcmVhdGUgdGhlaXIgb3duCi0gICAgICAgIC8vIFNvdXBN
ZXNzYWdlLCBpZiBuZWVkZWQuCi0gICAgICAgIFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCk7Ci0KLSAgICAgICAgflJlc291cmNlUmVxdWVzdCgp
CisgICAgICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UoS1VSTCgpLCBVc2VQcm90b2NvbENh
Y2hlUG9saWN5KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobV9zb3VwTWVzc2FnZSkgewot
ICAgICAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmKG1fc291cE1lc3NhZ2UpOwotICAgICAgICAg
ICAgICAgIG1fc291cE1lc3NhZ2UgPSAwOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0
U291cE1lc3NhZ2Uoc291cE1lc3NhZ2UpOwogICAgICAgICB9CiAKLSAgICAgICAgU291cE1lc3Nh
Z2UqIHNvdXBNZXNzYWdlKCkgY29uc3Q7CisgICAgICAgIFNvdXBNZXNzYWdlKiB0b1NvdXBNZXNz
YWdlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0U291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNvdXBNZXNzYWdlKiBtX3NvdXBN
ZXNzYWdlOwotICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0QmFzZTsKKyAgICAg
ICAgZnJpZW5kIHN0cnVjdCBSZXNvdXJjZVJlcXVlc3RCYXNlOwogCi0gICAgICAgIHZvaWQgZG9V
cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKLSAgICAgICAgdm9pZCBkb1VwZGF0ZVJlc291cmNlUmVx
dWVzdCgpOworICAgICAgICB2b2lkIGRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkge307CisgICAg
ICAgIHZvaWQgZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKSB7fTsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCmluZGV4IGYxMjFiZmMuLjI5YTI5ZTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwCkBAIC0yOCwxMDggKzI4LDQ4IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLW5hbWVz
cGFjZSBXVEYgewotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8U291cFVSST4oU291
cFVSSSogdXJpKQotewotICAgIGlmICh1cmkpCi0gICAgICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsK
LX0KLQotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNvdXBNZXNzYWdlKiBSZXNvdXJjZVJl
cXVlc3Q6OnNvdXBNZXNzYWdlKCkgY29uc3QKLXsKLSAgICB1cGRhdGVQbGF0Zm9ybVJlcXVlc3Qo
KTsKLQotICAgIHJldHVybiBtX3NvdXBNZXNzYWdlOwotfQotCi0vLyBCYXNlZCBvbiBSZXNvdXJj
ZVJlcXVlc3RCYXNlOjpjb3B5RGF0YSBhbmQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6YWRvcHQuCi1S
ZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCkKLSAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UocmVzb3VyY2VSZXF1ZXN0
KQotICAgICwgbV9zb3VwTWVzc2FnZSgwKQorU291cE1lc3NhZ2UqIFJlc291cmNlUmVxdWVzdDo6
dG9Tb3VwTWVzc2FnZSgpIGNvbnN0CiB7Ci0gICAgbV91cmwgPSByZXNvdXJjZVJlcXVlc3QudXJs
KCkuY29weSgpOwotICAgIG1fZmlyc3RQYXJ0eUZvckNvb2tpZXMgPSByZXNvdXJjZVJlcXVlc3Qu
Zmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5jb3B5KCk7Ci0gICAgbV9odHRwTWV0aG9kID0gcmVzb3Vy
Y2VSZXF1ZXN0Lmh0dHBNZXRob2QoKS5jb3B5KCk7Ci0gICAgbV9odHRwSGVhZGVyRmllbGRzLmFk
b3B0KGF1dG9fcHRyPENyb3NzVGhyZWFkSFRUUEhlYWRlck1hcERhdGE+KHJlc291cmNlUmVxdWVz
dC5tX2h0dHBIZWFkZXJGaWVsZHMuY29weURhdGEoKS5yZWxlYXNlKCkpKTsKKyAgICBTb3VwTWVz
c2FnZSogc291cE1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KGh0dHBNZXRob2QoKS51dGY4KCku
ZGF0YSgpLCB1cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBBU1NFUlQoc291cE1l
c3NhZ2UpOwogCi0gICAgc2l6ZV90IGVuY29kaW5nQ291bnQgPSByZXNvdXJjZVJlcXVlc3QubV9y
ZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheS5zaXplKCk7Ci0g
ICAgaWYgKGVuY29kaW5nQ291bnQgPiAwKSB7Ci0gICAgICAgIFN0cmluZyBlbmNvZGluZzEgPSBy
ZXNvdXJjZVJlcXVlc3QubV9yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJh
Y2tBcnJheVswXTsKLSAgICAgICAgU3RyaW5nIGVuY29kaW5nMjsKLSAgICAgICAgU3RyaW5nIGVu
Y29kaW5nMzsKLSAgICAgICAgaWYgKGVuY29kaW5nQ291bnQgPiAxKSB7Ci0gICAgICAgICAgICBl
bmNvZGluZzIgPSByZXNvdXJjZVJlcXVlc3QubV9yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVu
Y29kaW5nRmFsbGJhY2tBcnJheVsxXTsKLSAgICAgICAgICAgIGlmIChlbmNvZGluZ0NvdW50ID4g
MikKLSAgICAgICAgICAgICAgICBlbmNvZGluZzMgPSByZXNvdXJjZVJlcXVlc3QubV9yZXNwb25z
ZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheVsyXTsKLSAgICAgICAgfQot
ICAgICAgICBBU1NFUlQoZW5jb2RpbmdDb3VudCA8PSAzKTsKLSAgICAgICAgc2V0UmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkoZW5jb2RpbmcxLCBlbmNvZGlu
ZzIsIGVuY29kaW5nMyk7CisgICAgSFRUUEhlYWRlck1hcCBoZWFkZXJzID0gaHR0cEhlYWRlckZp
ZWxkcygpOworICAgIFNvdXBNZXNzYWdlSGVhZGVycyogc291cEhlYWRlcnMgPSBzb3VwTWVzc2Fn
ZS0+cmVxdWVzdF9oZWFkZXJzOworICAgIGlmICghaGVhZGVycy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gaGVhZGVycy5lbmQoKTsKKyAg
ICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlcnMuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNf
YXBwZW5kKHNvdXBIZWFkZXJzLCBpdC0+Zmlyc3Quc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXQt
PnNlY29uZC51dGY4KCkuZGF0YSgpKTsKICAgICB9Ci0gICAgaWYgKHJlc291cmNlUmVxdWVzdC5t
X2h0dHBCb2R5KQotICAgICAgICBzZXRIVFRQQm9keShyZXNvdXJjZVJlcXVlc3QuaHR0cEJvZHko
KSk7CiAKLSAgICBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQgPSB0cnVlOwotICAgIG1fcGxhdGZv
cm1SZXF1ZXN0VXBkYXRlZCA9IGZhbHNlOworICAgIC8vIEJvZHkgZGF0YSBpcyBvbmx5IGhhbmRs
ZWQgYXQgUmVzb3VyY2VIYW5kbGVTb3VwOjpzdGFydEh0dHAgZm9yCisgICAgLy8gbm93OyB0aGlz
IGlzIGJlY2F1c2UgdGhpcyBtYXkgbm90IGJlIGEgZ29vZCBwbGFjZSB0byBnbworICAgIC8vIG9w
ZW5uaW5nIGFuZCBtbWFwcGluZyBmaWxlcy4gV2Ugc2hvdWxkIG1heWJlIHJldmlzaXQgdGhpcy4K
KyAgICByZXR1cm4gc291cE1lc3NhZ2U7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1Vw
ZGF0ZVJlc291cmNlUmVxdWVzdCgpCit2b2lkIFJlc291cmNlUmVxdWVzdDo6c2V0U291cE1lc3Nh
Z2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKQogewotICAgIGlmICghbV9zb3VwTWVzc2FnZSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgU291cFVSSSogc291cFVSSSA9IHNvdXBfbWVzc2FnZV9n
ZXRfdXJpKG1fc291cE1lc3NhZ2UpOworICAgIFNvdXBVUkkqIHNvdXBVUkkgPSBzb3VwX21lc3Nh
Z2VfZ2V0X3VyaShzb3VwTWVzc2FnZSk7CiAgICAgR093blB0cjxnY2hhcj4gdXJpKHNvdXBfdXJp
X3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOwogICAgIG1fdXJsID0gS1VSTChLVVJMKCksIFN0
cmluZzo6ZnJvbVVURjgodXJpLmdldCgpKSk7CiAKLSAgICBtX2h0dHBNZXRob2QgPSBTdHJpbmc6
OmZyb21VVEY4KG1fc291cE1lc3NhZ2UtPm1ldGhvZCk7CisgICAgbV9odHRwTWV0aG9kID0gU3Ry
aW5nOjpmcm9tVVRGOChzb3VwTWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIFNvdXBNZXNzYWdlSGVh
ZGVyc0l0ZXIgaGVhZGVyc0l0ZXI7CiAgICAgY29uc3QgY2hhciogaGVhZGVyTmFtZTsKICAgICBj
b25zdCBjaGFyKiBoZWFkZXJWYWx1ZTsKIAotICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJf
aW5pdCgmaGVhZGVyc0l0ZXIsIG1fc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7CisgICAg
c291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9pbml0KCZoZWFkZXJzSXRlciwgc291cE1lc3NhZ2Ut
PnJlcXVlc3RfaGVhZGVycyk7CiAgICAgd2hpbGUgKHNvdXBfbWVzc2FnZV9oZWFkZXJzX2l0ZXJf
bmV4dCgmaGVhZGVyc0l0ZXIsICZoZWFkZXJOYW1lLCAmaGVhZGVyVmFsdWUpKQogICAgICAgICBt
X2h0dHBIZWFkZXJGaWVsZHMuc2V0KFN0cmluZzo6ZnJvbVVURjgoaGVhZGVyTmFtZSksIFN0cmlu
Zzo6ZnJvbVVURjgoaGVhZGVyVmFsdWUpKTsKIAotICAgIG1faHR0cEJvZHkgPSBGb3JtRGF0YTo6
Y3JlYXRlKG1fc291cE1lc3NhZ2UtPnJlcXVlc3RfYm9keS0+ZGF0YSwgbV9zb3VwTWVzc2FnZS0+
cmVxdWVzdF9ib2R5LT5sZW5ndGgpOworICAgIG1faHR0cEJvZHkgPSBGb3JtRGF0YTo6Y3JlYXRl
KHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2JvZHktPmRhdGEsIHNvdXBNZXNzYWdlLT5yZXF1ZXN0X2Jv
ZHktPmxlbmd0aCk7CiAKICAgICAvLyBGSVhNRTogbV9hbGxvd0hUVFBDb29raWVzIGFuZCBtX2Zp
cnN0UGFydHlGb3JDb29raWVzIHNob3VsZAogICAgIC8vIHByb2JhYmx5IGJlIGhhbmRsZWQgaGVy
ZSBhbmQgb24gZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QKICAgICAvLyBzb21laG93LgogfQogCi12
b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQotewotICAgIEdP
d25QdHI8U291cFVSST4gc291cFVSSShzb3VwX3VyaV9uZXcodXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOwotICAgIEFTU0VSVChzb3VwVVJJKTsKLQotICAgIGlmICghbV9zb3VwTWVzc2Fn
ZSkgewotICAgICAgICBtX3NvdXBNZXNzYWdlID0gc291cF9tZXNzYWdlX25ld19mcm9tX3VyaSho
dHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgc291cFVSSS5nZXQoKSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgc291cF9tZXNzYWdlX3NldF91cmkobV9zb3VwTWVzc2FnZSwgc291cFVSSS5nZXQo
KSk7Ci0KLSAgICAgICAgZ19vYmplY3Rfc2V0KG1fc291cE1lc3NhZ2UsICJtZXRob2QiLCBodHRw
TWV0aG9kKCkudXRmOCgpLmRhdGEoKSwgTlVMTCk7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9oZWFk
ZXJzX2NsZWFyKG1fc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVhZGVycyk7Ci0gICAgfQotCi0gICAg
QVNTRVJUKG1fc291cE1lc3NhZ2UpOwotCi0gICAgSFRUUEhlYWRlck1hcCBoZWFkZXJzID0gaHR0
cEhlYWRlckZpZWxkcygpOwotICAgIFNvdXBNZXNzYWdlSGVhZGVycyogc291cEhlYWRlcnMgPSBt
X3NvdXBNZXNzYWdlLT5yZXF1ZXN0X2hlYWRlcnM7Ci0gICAgaWYgKCFoZWFkZXJzLmlzRW1wdHko
KSkgewotICAgICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJz
LmVuZCgpOwotICAgICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
aGVhZGVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBzb3VwX21lc3Nh
Z2VfaGVhZGVyc19hcHBlbmQoc291cEhlYWRlcnMsIGl0LT5maXJzdC5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCBpdC0+c2Vjb25kLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQotICAgIC8vIEJvZHkg
ZGF0YSBpcyBvbmx5IGhhbmRsZWQgYXQgUmVzb3VyY2VIYW5kbGVTb3VwOjpzdGFydEh0dHAgZm9y
Ci0gICAgLy8gbm93OyB0aGlzIGlzIGJlY2F1c2UgdGhpcyBtYXkgbm90IGJlIGEgZ29vZCBwbGFj
ZSB0byBnbwotICAgIC8vIG9wZW5uaW5nIGFuZCBtbWFwcGluZyBmaWxlcy4gV2Ugc2hvdWxkIG1h
eWJlIHJldmlzaXQgdGhpcy4KLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3ZDgzMTk4Li42NTk0ZThkIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDA5LTA2LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNjEwNAorICAgICAgICBbR1RLXSBNYWtlIE5ldHdvcmtSZXF1ZXN0IGEgcHJvcGVyIEdPYmpl
Y3QgYW5kIGV4cG9zZSBTb3VwTWVzc2FnZQorCisgICAgICAgIFJlZmFjdG9yIGhvdyBTb3VwTWVz
c2FnZSBpcyBoYW5kbGVkLCBzbyB0aGF0IG91ciBSZXNvdXJjZVJlcXVlc3QKKyAgICAgICAgb2Jq
ZWN0IGRvZXNuJ3QgaGF2ZSB0byBzdG9yZSBpdCBhcyBhIG1lbWJlciwgd2hpY2ggY29tcGxpY2F0
ZXMKKyAgICAgICAgbWFuYWdpbmcgUmVzb3VyY2VSZXF1ZXN0J3MgbGlmZXRpbWUuCisKKyAgICAg
ICAgKiB0ZXN0cy90ZXN0aHR0cGJhY2tlbmQuYzoKKyAgICAgICAgKG5hdmlnYXRpb25fcG9saWN5
X2RlY2lzaW9uX3JlcXVlc3RlZF9jYik6CisgICAgICAgICh0ZXN0X3NvdXBfbWVzc2FnZV9saWZl
dGltZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdURjo6U291cE1lc3NhZ2UpOgorICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9u
ZXdfd2l0aF9jb3JlX3JlcXVlc3QpOgorCiAyMDA5LTA1LTI5ICBKYW4gTWljaGFlbCBBbG9uem8g
IDxqbWFsb256b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmMgYi9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RodHRwYmFja2VuZC5jCmluZGV4IGRjMWE4YjUuLjhjMDRmM2Mg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmMKKysrIGIvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0aHR0cGJhY2tlbmQuYwpAQCAtMjYsOCArMjYsNiBAQAogCiAjaWYg
R0xJQl9DSEVDS19WRVJTSU9OKDIsIDE2LCAwKSAmJiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwg
MCkKIAotU291cE1lc3NhZ2UqIG1lc3NhZ2U7Ci0KIC8vIE5vdCB5ZXQgcHVibGljIEFQSQogU291
cE1lc3NhZ2UqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QpOwogCkBAIC0zNywzNiArMzUsMjAgQEAgc3RhdGljIGdib29sZWFu
IG5hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3JlcXVlc3RlZF9jYihXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEp
CiB7Ci0gICAgbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVx
dWVzdCk7CisgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X2dldF9tZXNzYWdlKHJlcXVlc3QpOwogCi0gICAgLyogMSAtPiBzb3VwX21lc3NhZ2VfbmV3X2Zy
b21fdXJpCi0gICAgICogMiAtPiBnX29iamVjdF9yZWYKLSAgICAgKiAzIC0+IHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3Rfd2l0aF9jb3JlX3JlcXVlc3QKKyAgICAvKiAxIC0+IHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3Rfd2l0aF9jb3JlX3JlcXVlc3QKICAgICAgKgotICAgICAqIDEsIGFuZCAyIGFyZSBj
YXVzZWQgYnkgdGhlIGNyZWF0aW9uIG9mIHRoZSBSZXNvdXJjZVJlcXVlc3QKLSAgICAgKiBvYmpl
Y3Q7IDMgaXMgY2F1c2VkIGJ5IHRoZSBlbWlzc2lvbiBvZiB0aGlzIHNpZ25hbCEKKyAgICAgKiBU
aGUgU291cE1lc3NhZ2UgaXMgY3JlYXRlZCBleGNsdXNpdmVseSBmb3IgdGhlIGVtaXNzaW9uIG9m
IHRoaXMKKyAgICAgKiBzaWduYWwuCiAgICAgICovCi0gICAgZ19hc3NlcnRfY21waW50KEdfT0JK
RUNUKG1lc3NhZ2UpLT5yZWZfY291bnQsID09LCAyKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19P
QkpFQ1QobWVzc2FnZSktPnJlZl9jb3VudCwgPT0sIDEpOwogCiAgICAgcmV0dXJuIEZBTFNFOwog
fQogCi1zdGF0aWMgdm9pZCBsb2FkX2ZpbmlzaGVkX2NiKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
LCBXZWJLaXRXZWJGcmFtZSogd2ViX2ZyYW1lLCBHTWFpbkxvb3AqIGxvb3ApCi17Ci0gICAgLyog
MSAtPiBSZXNvdXJjZVJlcXVlc3QncwotICAgICAqIDIgLT4gUmVzb3VyY2VIYW5kbGUncyAocmVm
IGluIHN0YXJ0SHR0cCkKLSAgICAgKgotICAgICAqIEF0IHRoaXMgcG9pbnQsIGFsdGhvdWdoIHRo
ZSBTb3VwU2Vzc2lvbiBkcm9wcGVkIGl0cyByZWZlcmVuY2UsCi0gICAgICogUmVzb3VyY2VIYW5k
bGUgaXMgc3RpbGwgdGhlcmUsIGFzIGlzIHRoZSBSZXNvdXJjZVJlcXVlc3QsIHNvIHdlCi0gICAg
ICogc3RpbGwgaGF2ZSAyLgotICAgICAqLwotICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVCht
ZXNzYWdlKS0+cmVmX2NvdW50LCA9PSwgMSk7Ci0gICAgZ19tYWluX2xvb3BfcXVpdChsb29wKTsK
LX0KLQogc3RhdGljIHZvaWQgdGVzdF9zb3VwX21lc3NhZ2VfbGlmZXRpbWUoKQogewotICAgIEdN
YWluTG9vcCogbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBGQUxTRSk7CiAgICAgV2ViS2l0
V2ViVmlldyogd2ViX3ZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygp
KTsKIAogICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYl92aWV3KTsKQEAgLTc1LDMwICs1NywxMiBA
QCBzdGF0aWMgdm9pZCB0ZXN0X3NvdXBfbWVzc2FnZV9saWZldGltZSgpCiAgICAgICAgICAgICAg
ICAgICAgICBHX0NBTExCQUNLKG5hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3JlcXVlc3RlZF9j
YiksCiAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAotICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
d2ViX3ZpZXcsICJsb2FkLWZpbmlzaGVkIiwKLSAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJB
Q0sobG9hZF9maW5pc2hlZF9jYiksCi0gICAgICAgICAgICAgICAgICAgICBsb29wKTsKLQogICAg
IC8qIGxvYWRfdXJpIHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24t
cmVxdWVzdGVkCiAgICAgICogc2lnbmFsIGVtaXNzaW9uOwogICAgICAqLwogICAgIHdlYmtpdF93
ZWJfdmlld19sb2FkX3VyaSh3ZWJfdmlldywgImh0dHA6Ly8xMjcuMC4wLjEvIik7CiAKLSAgICAv
KiB0byB3YWl0IGZvciBsb2FkLWZpbmlzaGVkICovCi0gICAgZ19tYWluX2xvb3BfcnVuKGxvb3Ap
OwotCi0gICAgLyoga2VlcCBvdXIgb3duIHJlZmVyZW5jZSAyLT4zICovCi0gICAgZ19vYmplY3Rf
cmVmKG1lc3NhZ2UpOwotICAgIGdfYXNzZXJ0X2NtcGludChHX09CSkVDVChtZXNzYWdlKS0+cmVm
X2NvdW50LCA9PSwgMik7Ci0KLSAgICAvKiB0aGlzIHNob3VsZCBtYWtlIHRoZSBSZXNvdXJjZUhh
bmRsZSBhbmQgUmVzb3VyY2VSZXF1ZXN0IGdvCi0gICAgICogYXdheSwgc28gd2Ugd2lsbCBnbyBk
b3duIHRvIDEKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkod2ViX3ZpZXcs
ICJhYm91dDpibGFuayIpOwogICAgIGdfb2JqZWN0X3VucmVmKHdlYl92aWV3KTsKLQotICAgIGdf
YXNzZXJ0X2NtcGludChHX09CSkVDVChtZXNzYWdlKS0+cmVmX2NvdW50LCA9PSwgMSk7Ci0gICAg
Z19vYmplY3RfdW5yZWYobWVzc2FnZSk7CiB9CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCBm
ZWVmM2VjLi4yZjgwZGZiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwCkBAIC0yMiw5ICsyMiwyMiBAQAogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0
LmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiR093blB0ci5oIgogI2luY2x1
ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKIAorI2lu
Y2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZSA8
PiB2b2lkIGZyZWVPd25lZEdQdHI8U291cE1lc3NhZ2U+KFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSkKK3sKKyAgICBpZiAoc291cE1lc3NhZ2UpCisgICAgICAgIGdfb2JqZWN0X3VucmVmKHNvdXBN
ZXNzYWdlKTsKK30KKworfQorCiAvKioKICAqIFNFQ1RJT046d2Via2l0bmV0d29ya3JlcXVlc3QK
ICAqIEBzaG9ydF9kZXNjcmlwdGlvbjogVGhlIHRhcmdldCBvZiBhIG5hdmlnYXRpb24gcmVxdWVz
dApAQCAtODEsOSArOTQsOSBAQCBXZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVlc3QoY29uc3QgV2ViQ29yZQogICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBOVUxMKSk7CiAgICAgV2ViS2l0TmV0d29y
a1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIFNvdXBNZXNzYWdl
KiBzb3VwTWVzc2FnZSA9IHJlc291cmNlUmVxdWVzdC5zb3VwTWVzc2FnZSgpOworICAgIEdPd25Q
dHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKHJlc291cmNlUmVxdWVzdC50b1NvdXBNZXNzYWdl
KCkpOwogICAgIGlmIChzb3VwTWVzc2FnZSkKLSAgICAgICAgcHJpdi0+bWVzc2FnZSA9IFNPVVBf
TUVTU0FHRShnX29iamVjdF9yZWYoc291cE1lc3NhZ2UpKTsKKyAgICAgICAgcHJpdi0+bWVzc2Fn
ZSA9IFNPVVBfTUVTU0FHRShnX29iamVjdF9yZWYoc291cE1lc3NhZ2UuZ2V0KCkpKTsKICAgICBw
cml2LT51cmkgPSBnX3N0cmR1cChyZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsK
</data>
<flag name="review"
          id="15732"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30944</attachid>
            <date>2009-06-04 06:30:38 -0700</date>
            <delta_ts>2009-06-09 07:31:07 -0700</delta_ts>
            <desc>Make WebKitNetworkRequest a proper GObject</desc>
            <filename>Make-WebKitNetworkRequest-a-proper-GObject.patch</filename>
            <type>text/plain</type>
            <size>18062</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">NTU0ZTYzZDZjODdlNzY3OTI3ZDA0MTkxZGIzNDAwNjJjOGJhY2NjZgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE5NDZkNTYuLjU3YzZlMDEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wNS0zMSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3Igb3VyIFdlYktp
dE5ldHdvcmtSZXF1ZXN0IG9iamVjdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAy
MDA5LTA1LTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBi
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4N2VlNDkuLmVhZjg4NjMgMTAwNjQ0Ci0tLSBhL0dOVW1h
a2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01MjQsNiArNTI0LDcgQEAgd2Via2l0
X3Rlc3RzX2xkZmxhZ3MgPSBcCiAJLW5vLWZhc3QtaW5zdGFsbAogCiBURVNUX1BST0dTICs9IFBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0aHR0cGJhY2tlbmQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90
ZXN0bmV0d29ya3JlcXVlc3QgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUgXAog
CVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFtcy91
bml0dGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKQEAgLTUzNiw2ICs1MzcsMTEgQEAgUHJvZ3Jh
bXNfdW5pdHRlc3RzX3Rlc3RodHRwYmFja2VuZF9DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xEQUREID0gJCh3ZWJraXRf
dGVzdHNfbGRhZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xERkxBR1Mg
PSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQogCitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdv
cmtyZXF1ZXN0X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5j
CitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdvcmtyZXF1ZXN0X0NGTEFHUyA9ICQod2Via2l0
X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29ya3JlcXVlc3RfTERB
REQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29y
a3JlcXVlc3RfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0d2ViZnJhbWVfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmZy
YW1lLmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViZnJhbWVfQ0ZMQUdTID0gJCh3ZWJraXRf
dGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFtZV9MREFERCA9ICQo
d2Via2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2NTk0ZThkLi5jNjcxYWMxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDA5LTA2LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
V2ViS2l0TmV0d29ya1JlcXVlc3QgYSBwcm9wZXIgR09iamVjdCwgbWFraW5nIFVSSSBhbmQKKyAg
ICAgICAgU291cE1lc3NhZ2UgcHJvcGVydGllcy4gQWxzbyBhZGRpbmcgdW5pdCB0ZXN0cyBmb3Ig
Y3JlYXRpb24gYW5kCisgICAgICAgIGRlc3RydWN0aW9uLgorCisgICAgICAgICogdGVzdHMvdGVz
dG5ldHdvcmtyZXF1ZXN0LmM6IEFkZGVkLgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3Rf
Y3JlYXRlX2Rlc3Ryb3kpOgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGll
cyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkpOgor
ICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkpOgorICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfaW5pdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0
cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9y
ZXF1ZXN0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KToKKyAgICAgICAg
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2dldF91cmkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oOgorCiAyMDA5LTA2LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0bmV0d29ya3JlcXVlc3QuYyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdG5ldHdvcmtyZXF1ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTYwOTZjZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvdGVz
dHMvdGVzdG5ldHdvcmtyZXF1ZXN0LmMKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR3VzdGF2byBOb3JvbmhhIFNpbHZhCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2lu
Y2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnbGliL2dzdGRp
by5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0Lmg+CisKKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApICYm
IEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQorCitzdGF0aWMgdm9pZCB0ZXN0X25ldHdvcmtf
cmVxdWVzdF9jcmVhdGVfZGVzdHJveSgpCit7CisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJl
cXVlc3Q7CisgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2U7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9u
IHdpdGggVVJJICovCisgICAgcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsICJodHRwOi8vZGViaWFu
Lm9yZy8iLCBOVUxMKSk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChy
ZXF1ZXN0KSk7CisgICAgbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3Nh
Z2UocmVxdWVzdCk7CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKG1lc3NhZ2UpLT5yZWZf
Y291bnQsID09LCAxKTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKKworICAgIC8qIFRl
c3QgY3JlYXRpb24gd2l0aCBTb3VwTWVzc2FnZSAqLworICAgIG1lc3NhZ2UgPSBzb3VwX21lc3Nh
Z2VfbmV3KCJHRVQiLCAiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgcmVxdWVzdCA9IFdFQktJ
VF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVT
VCwgIm1lc3NhZ2UiLCBtZXNzYWdlLCBOVUxMKSk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX05F
VFdPUktfUkVRVUVTVChyZXF1ZXN0KSk7CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKG1l
c3NhZ2UpLT5yZWZfY291bnQsID09LCAyKTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QobWVzc2FnZSktPnJlZl9jb3VudCwgPT0sIDEp
OworICAgIGdfb2JqZWN0X3VucmVmKG1lc3NhZ2UpOworCisgICAgLyogVGVzdCBjcmVhdGlvbiB3
aXRoIGJvdGggVVJJIGFuZCBTb3VwTWVzc2FnZTsgc2hvdWxkIGZhaWwgKi8KKyAgICBpZiAoZ190
ZXN0X3RyYXBfZm9yaygwLCBHX1RFU1RfVFJBUF9TSUxFTkNFX1NURE9VVHxHX1RFU1RfVFJBUF9T
SUxFTkNFX1NUREVSUikpIHsKKyAgICAgICAgbWVzc2FnZSA9IHNvdXBfbWVzc2FnZV9uZXcoIkdF
VCIsICJodHRwOi8vZGViaWFuLm9yZy8iKTsKKyAgICAgICAgcmVxdWVzdCA9IGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmkiLCAiaHR0cDovL2RlYmlhbi5vcmcv
IiwgIm1lc3NhZ2UiLCBtZXNzYWdlLCBOVUxMKTsKKyAgICAgICAgZXhpdCgwKTsKKyAgICB9CisK
KyAgICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkKCk7CisgICAgZ190ZXN0X3RyYXBfYXNzZXJ0
X3N0ZGVycigiKldlYktpdE5ldHdvcmtNZXNzYWdlIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIHdp
dGggb25lIChhbmQgb25seSBvbmUpIG9mIGEgVVJJIG9yIGEgU291cE1lc3NhZ2UuKiIpOworCisg
ICAgLyogVGVzdCBjcmVhdGlvbiB3aXRoIG5vIFVSSSBvciBTb3VwTWVzc2FnZTsgc2hvdWxkIGZh
aWwgKi8KKyAgICBpZiAoZ190ZXN0X3RyYXBfZm9yaygwLCBHX1RFU1RfVFJBUF9TSUxFTkNFX1NU
RE9VVHxHX1RFU1RfVFJBUF9TSUxFTkNFX1NUREVSUikpIHsKKyAgICAgICAgcmVxdWVzdCA9IGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsIE5VTEwpOworICAgICAgICBl
eGl0KDApOworICAgIH0KKworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQoKTsKKyAgICBn
X3Rlc3RfdHJhcF9hc3NlcnRfc3RkZXJyKCIqV2ViS2l0TmV0d29ya01lc3NhZ2UgbmVlZHMgdG8g
YmUgaW5pdGlhbGl6ZWQgd2l0aCBvbmUgKGFuZCBvbmx5IG9uZSkgb2YgYSBVUkkgb3IgYSBTb3Vw
TWVzc2FnZS4qIik7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9uIHdpdGggYmFkIFVSSTsgc2hvdWxk
IGZhaWwgKi8KKyAgICBpZiAoZ190ZXN0X3RyYXBfZm9yaygwLCBHX1RFU1RfVFJBUF9TSUxFTkNF
X1NURE9VVHxHX1RFU1RfVFJBUF9TSUxFTkNFX1NUREVSUikpIHsKKyAgICAgICAgcmVxdWVzdCA9
IGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmkiLCAid29vaG9v
IiwgTlVMTCk7CisgICAgICAgIGV4aXQoMCk7CisgICAgfQorCisgICAgZ190ZXN0X3RyYXBfYXNz
ZXJ0X2ZhaWxlZCgpOworICAgIGdfdGVzdF90cmFwX2Fzc2VydF9zdGRlcnIoIipUcmllZCB0byBp
bml0aWFsaXplIGEgV2ViS2l0TmV0d29ya1JlcXVlc3Qgd2l0aCBhbiBpbnZhbGlkIFVSSTogd29v
aG9vKiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X25ldHdvcmtfcmVxdWVzdF9wcm9wZXJ0aWVz
KCkKK3sKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdDsKKyAgICBTb3VwTWVzc2Fn
ZSogbWVzc2FnZTsKKyAgICBnY2hhciogc291cFVSSTsKKworICAgIC8qIFRlc3QgVVJJIGlzIHNl
dCBjb3JyZWN0bHkgd2hlbiBjcmVhdGluZyB3aXRoIFVSSSAqLworICAgIHJlcXVlc3QgPSB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X25ldygiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgZ19hc3Nl
cnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0KSk7CisgICAgbWVzc2FnZSA9IHdl
YmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisKKyAgICBzb3VwVVJJ
ID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1lc3NhZ2UpLCBGQUxT
RSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHNvdXBVUkksID09LCAiaHR0cDovL2RlYmlhbi5vcmcv
Iik7CisgICAgZ19mcmVlKHNvdXBVUkkpOworCisgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sICJodHRwOi8vZGViaWFuLm9yZy8i
KTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKKworICAgIC8qIFRlc3QgVVJJIGlzIHNl
dCBjb3JyZWN0bHkgd2hlbiBjcmVhdGluZyB3aXRoIE1lc3NhZ2UgKi8KKyAgICBtZXNzYWdlID0g
c291cF9tZXNzYWdlX25ldygiR0VUIiwgImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIHJlcXVl
c3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRX
T1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgbWVzc2FnZSwgTlVMTCkpOworICAgIGdfYXNzZXJ0KFdF
QktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfb2JqZWN0X3VucmVmKG1l
c3NhZ2UpOworCisgICAgbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3Nh
Z2UocmVxdWVzdCk7CisgICAgc291cFVSSSA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwX21lc3Nh
Z2VfZ2V0X3VyaShtZXNzYWdlKSwgRkFMU0UpOworICAgIGdfYXNzZXJ0X2NtcHN0cihzb3VwVVJJ
LCA9PSwgImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIGdfZnJlZShzb3VwVVJJKTsKKworICAg
IGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCks
ID09LCAiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7
Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBnX3RocmVhZF9p
bml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKworICAg
IGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7CisgICAgZ190ZXN0
X2FkZF9mdW5jKCIvd2Via2l0L25ldHdvcmtyZXF1ZXN0L2NyZWF0ZWRlc3Ryb3kiLCB0ZXN0X25l
dHdvcmtfcmVxdWVzdF9jcmVhdGVfZGVzdHJveSk7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Vi
a2l0L25ldHdvcmtyZXF1ZXN0L3Byb3BlcnRpZXMiLCB0ZXN0X25ldHdvcmtfcmVxdWVzdF9wcm9w
ZXJ0aWVzKTsKKyAgICByZXR1cm4gZ190ZXN0X3J1biAoKTsKK30KKworI2Vsc2UKK2ludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVk
IGF0IGxlYXN0IGdsaWItMi4xNi4wIGFuZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0
cy4gRG9pbmcgbm90aGluZyBub3cuIik7CisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCmluZGV4IDJmODBkZmIuLmVk
MTViZjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKQEAg
LTU0LDEyICs1NCwyMiBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8U291cE1lc3Nh
Z2U+KFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKIEdfREVGSU5FX1RZUEUoV2ViS2l0TmV0d29y
a1JlcXVlc3QsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpOwogCiBzdHJ1
Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSB7CisgICAgZ2Jvb2xlYW4gaXNDb25zdHJ1
Y3RlZDsKICAgICBnY2hhciogdXJpOwogICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlOwogfTsKIAog
I2RlZmluZSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBX
ZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUpKQogCitzdGF0aWMgR09iamVjdCogd2Via2l0X25l
dHdvcmtfcmVxdWVzdF9jb25zdHJ1Y3RvcihHVHlwZSBndHlwZSwgZ3VpbnQgbnVtYmVyT2ZQcm9w
ZXJ0aWVzLCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIHByb3BlcnRpZXMpOworCitlbnVtIHsKKyAg
ICBQUk9QXzAsCisKKyAgICBQUk9QX1VSSSwKKyAgICBQUk9QX01FU1NBR0UsCit9OworCiBzdGF0
aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkK
IHsKICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JF
UVVFU1Qob2JqZWN0KTsKQEAgLTc1LDkgKzg1LDgwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NMQVNT
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsK
IH0KIAorc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlELCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9O
RVRXT1JLX1JFUVVFU1Qob2JqZWN0KTsKKworICAgIHN3aXRjaChwcm9wZXJ0eUlEKSB7CisgICAg
Y2FzZSBQUk9QX1VSSToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfTUVTU0FHRToKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sKKyAg
ICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qo
b2JqZWN0KTsKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OworCisgICAgc3dpdGNoKHByb3BlcnR5SUQpIHsKKyAgICBjYXNlIFBST1BfVVJJOgor
ICAgICAgICBpZiAocHJpdi0+aXNDb25zdHJ1Y3RlZCkgeworICAgICAgICAgICAgd2Via2l0X25l
dHdvcmtfcmVxdWVzdF9zZXRfdXJpKHJlcXVlc3QsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGdfdmFsdWVfZ2V0
X3N0cmluZyh2YWx1ZSkpCisgICAgICAgICAgICBwcml2LT51cmkgPSBnX3ZhbHVlX2R1cF9zdHJp
bmcodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfTUVTU0FHRToKKyAgICAg
ICAgcHJpdi0+bWVzc2FnZSA9IFNPVVBfTUVTU0FHRShnX3ZhbHVlX2R1cF9vYmplY3QodmFsdWUp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9J
TlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOworICAgIH0KK30K
Kwogc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdE5l
dHdvcmtSZXF1ZXN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKIHsKLSAgICBHX09CSkVDVF9DTEFTUyhy
ZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemU7
CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RD
bGFzcyk7CisKKyAgICBvYmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2NvbnN0cnVjdG9yOworICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZmluYWxpemU7CisgICAgb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5OworICAgIG9iamVjdENsYXNzLT5z
ZXRfcHJvcGVydHkgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF9wcm9wZXJ0eTsKKworICAg
IC8qKgorICAgICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0OnVyaToKKyAgICAgKgorICAgICAqIFRo
ZSBVUkkgdG8gd2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZSBtYWRlLgorICAgICAqCisgICAgICog
U2luY2U6IDEuMS45CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShvYmplY3RDbGFzcywgUFJPUF9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJ1cmkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVUkkiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFVSSSB0byB3
aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlIG1hZGUuIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VC
S0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVCkpKTsKKworICAgIC8qKgorICAg
ICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0Om1lc3NhZ2U6CisgICAgICoKKyAgICAgKiBUaGUgI1Nv
dXBNZXNzYWdlIHRoYXQgYmFja3MgdGhlIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS4xLjkKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX01FU1NBR0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJtZXNzYWdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTWVzc2FnZSIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgU291
cE1lc3NhZ2UgdGhhdCBiYWNrcyB0aGUgcmVxdWVzdC4iKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9UWVBFX01FU1NBR0UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChH
UGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVF9PTkxZ
KSkpOwogCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9m
KFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpOwogfQpAQCAtODYsMjAgKzE2Nyw0OSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2luaXQoV2ViS2l0TmV0d29ya1JlcXVl
c3QqIHJlcXVlc3QpCiB7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0g
V0VCS0lUX05FVFdPUktfUkVRVUVTVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKICAgICByZXF1ZXN0
LT5wcml2ID0gcHJpdjsKKyAgICBwcml2LT5pc0NvbnN0cnVjdGVkID0gRkFMU0U7Cit9CisKKy8v
IFRoaXMgY29uc3RydWN0b3IgaXMgdXNlZCB0byBzYW5pdHkgY2hlY2sgdGhlIGNyZWF0aW9uIG9m
IHRoZQorLy8gb2JqZWN0LCBtYWtpbmcgc3VyZSB0aGF0IG9ubHkgb25lIG9mIFVSSSBhbmQgU291
cE1lc3NhZ2UgYXJlIGdpdmVuLAorLy8gYW5kIGdyYWNlZnVsbHkgaGFuZGxpbmcgdGhlIGNhc2Vz
IGluIHdoaWNoIGEgYmFkIFVSSSBpcyBnaXZlbiwgYnkKKy8vIHJldHVybmluZyBOVUxMLgorc3Rh
dGljIEdPYmplY3QqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY29uc3RydWN0b3IoR1R5cGUgZ3R5
cGUsIGd1aW50IG51bWVyT2ZQcm9wZXJ0aWVzLCBHT2JqZWN0Q29uc3RydWN0UGFyYW0gKnByb3Bl
cnRpZXMpCit7CisgICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X25l
dHdvcmtfcmVxdWVzdF9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3RvcihndHlwZSwgbnVtZXJPZlBy
b3BlcnRpZXMsIHByb3BlcnRpZXMpOworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2JqZWN0KS0+cHJpdjsKKworICAgIHByaXYt
PmlzQ29uc3RydWN0ZWQgPSBUUlVFOworCisgICAgaWYgKChwcml2LT51cmkgJiYgcHJpdi0+bWVz
c2FnZSkgfHwgKCFwcml2LT51cmkgJiYgIXByaXYtPm1lc3NhZ2UpKSB7CisgICAgICAgIGdfZnJl
ZShwcml2LT51cmkpOworCisgICAgICAgIGlmIChwcml2LT5tZXNzYWdlKQorICAgICAgICAgICAg
Z19vYmplY3RfdW5yZWYocHJpdi0+bWVzc2FnZSk7CisKKyAgICAgICAgZ19jcml0aWNhbCgiV2Vi
S2l0TmV0d29ya01lc3NhZ2UgbmVlZHMgdG8gYmUgaW5pdGlhbGl6ZWQgd2l0aCBvbmUgKGFuZCBv
bmx5IG9uZSkgb2YgYSBVUkkgb3IgYSBTb3VwTWVzc2FnZS4iKTsKKyAgICAgICAgZ19vYmplY3Rf
dW5yZWYob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKHBy
aXYtPm1lc3NhZ2UpCisgICAgICAgIHJldHVybiBvYmplY3Q7CisKKyAgICBwcml2LT5tZXNzYWdl
ID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwgcHJpdi0+dXJpKTsKKyAgICBpZiAoIXByaXYtPm1l
c3NhZ2UpIHsKKyAgICAgICAgZ19jcml0aWNhbCgiVHJpZWQgdG8gaW5pdGlhbGl6ZSBhIFdlYktp
dE5ldHdvcmtSZXF1ZXN0IHdpdGggYW4gaW52YWxpZCBVUkk6ICVzIiwgcHJpdi0+dXJpKTsKKyAg
ICAgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKwor
ICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIC8vIGZvciBpbnRlcm5hbCB1c2Ugb25seQogV2ViS2l0
TmV0d29ya1JlcXVlc3QqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9yZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewot
ICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktfUkVRVUVT
VChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBOVUxMKSk7Ci0gICAg
V2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKLQogICAg
IEdPd25QdHI8U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKHJlc291cmNlUmVxdWVzdC50b1NvdXBN
ZXNzYWdlKCkpOwotICAgIGlmIChzb3VwTWVzc2FnZSkKLSAgICAgICAgcHJpdi0+bWVzc2FnZSA9
IFNPVVBfTUVTU0FHRShnX29iamVjdF9yZWYoc291cE1lc3NhZ2UuZ2V0KCkpKTsKLSAgICBwcml2
LT51cmkgPSBnX3N0cmR1cChyZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0KLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gV0VCS0lUX05FVFdPUktf
UkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAibWVzc2Fn
ZSIsIHNvdXBNZXNzYWdlLCBOVUxMKSk7CiB9CiAKIC8qKgpAQCAtMTE1LDE2ICsyMjUsNyBAQCBX
ZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcoY29uc3QgZ2No
YXIqIHVyaSkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbCh1cmksIE5VTEwpOwogCi0gICAg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsIE5VTEwpKTsKLSAgICBXZWJL
aXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwotCi0gICAgcHJp
di0+bWVzc2FnZSA9IHNvdXBfbWVzc2FnZV9uZXcoIkdFVCIsIHVyaSk7Ci0gICAgaWYgKCFwcml2
LT5tZXNzYWdlKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHByaXYtPnVyaSA9IGdfc3Ry
ZHVwKHVyaSk7Ci0KLSAgICByZXR1cm4gcmVxdWVzdDsKKyAgICByZXR1cm4gV0VCS0lUX05FVFdP
UktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAidXJp
IiwgdXJpLCBOVUxMKSk7CiB9CiAKIC8qKgpAQCAtMTMzLDYgKzIzNCw3IEBAIFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhjb25zdCBnY2hhciogdXJpKQog
ICogQHVyaTogYW4gVVJJCiAgKgogICogU2V0cyB0aGUgVVJJIGhlbGQgYW5kIHVzZWQgYnkgdGhl
IGdpdmVuIHJlcXVlc3QuCisgKgogICovCiB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0
X3VyaShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKIHsK
QEAgLTE0MSw4ICsyNDMsMTcgQEAgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmko
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGdjaGFyKgogCiAgICAgV2ViS2l0
TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIGdfZnJl
ZShwcml2LT51cmkpOwotICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVyaSk7CisgICAgU291cFVS
SSogc291cFVSSSA9IHNvdXBfdXJpX25ldyh1cmkpOworICAgIGlmICghc291cFVSSSkgeworICAg
ICAgICBnX2NyaXRpY2FsKCJUcmllZCB0byBzZXQgYW4gaW52YWxpZCBVUkkgdG8gYSBXZWJLaXRO
ZXR3b3JrUmVxdWVzdCBvYmplY3Q6ICVzIiwgdXJpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChwcml2LT51cmkpCisgICAgICAgIGdfZnJlZShwcml2LT51cmkpOworCisgICAg
c291cF9tZXNzYWdlX3NldF91cmkocHJpdi0+bWVzc2FnZSwgc291cFVSSSk7CisgICAgc291cF91
cmlfZnJlZShzb3VwVVJJKTsKIH0KIAogLyoqCkBAIC0xNTgsMTggKzI2OSwyNiBAQCBHX0NPTlNU
X1JFVFVSTiBnY2hhciogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiByZXF1ZQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ORVRX
T1JLX1JFUVVFU1QocmVxdWVzdCksIE5VTEwpOwogCiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQ
cml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIGlmIChwcml2LT51cmkpCisgICAg
ICAgIHJldHVybiBwcml2LT51cmk7CisKKyAgICBTb3VwVVJJKiBzb3VwVVJJID0gc291cF9tZXNz
YWdlX2dldF91cmkocHJpdi0+bWVzc2FnZSk7CisgICAgcHJpdi0+dXJpID0gc291cF91cmlfdG9f
c3RyaW5nKHNvdXBVUkksIEZBTFNFKTsKICAgICByZXR1cm4gcHJpdi0+dXJpOwogfQogCi0vLyBO
T1QgWUVUIEFQSTsgRm9yIGludGVybmFsIHVzZSBvbmx5LCBmb3Igbm93Ci0vLyB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2dldF9zb3VwX21lc3NhZ2U6Ci0vLyBAcmVxdWVzdDogYSAjV2ViS2l0TmV0
d29ya1JlcXVlc3QKLS8vCi0vLyBPYnRhaW5zIHRoZSAjU291cE1lc3NhZ2UgaGVsZCBhbmQgdXNl
ZCBieSB0aGUgZ2l2ZW4gcmVxdWVzdC4gTm90aWNlCi0vLyB0aGF0IG1vZGlmaWNhdGlvbiBvZiB0
aGUgU291cE1lc3NhZ2Ugb2YgYSByZXF1ZXN0IGJ5IHNpZ25hbAotLy8gaGFuZGxlcnMgaXMgb25s
eSBzdXBwb3J0ZWQgd2hlcmUgZXhwbGljaXRseSBkb2N1bWVudGVkLgotLy8KLS8vIFJldHVybnM6
IHRoZSAjU291cE1lc3NhZ2UKKy8qKiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9zb3VwX21l
c3NhZ2U6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0TmV0d29ya1JlcXVlc3QKKyAqCisgKiBPYnRh
aW5zIHRoZSAjU291cE1lc3NhZ2UgaGVsZCBhbmQgdXNlZCBieSB0aGUgZ2l2ZW4gcmVxdWVzdC4g
Tm90aWNlCisgKiB0aGF0IG1vZGlmaWNhdGlvbiBvZiB0aGUgU291cE1lc3NhZ2Ugb2YgYSByZXF1
ZXN0IGJ5IHNpZ25hbAorICogaGFuZGxlcnMgaXMgb25seSBzdXBwb3J0ZWQgKGFzIGluLCB3aWxs
IG9ubHkgYWZmZWN0IHdoYXQgaXMKKyAqIGFjdHVhbGx5IHNlbnQgdG8gdGhlIHNlcnZlcikgd2hl
cmUgZXhwbGljaXRseSBkb2N1bWVudGVkLgorICoKKyAqIFJldHVybnM6IHRoZSAjU291cE1lc3Nh
Z2UKKyAqIFNpbmNlOiAxLjEuOQorICovCiBTb3VwTWVzc2FnZSogd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfbWVzc2FnZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKIHsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpLCBO
VUxMKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCmluZGV4IDAxYWI4
YmIuLjc4ZTA0YTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaApA
QCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0gKIAogI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKICNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogCkBAIC02NSw2ICs2Niw5IEBAIHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSAgKFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0LAog
V0VCS0lUX0FQSSBHX0NPTlNUX1JFVFVSTiBnY2hhciAqCiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X2dldF91cmkgIChXZWJLaXROZXR3b3JrUmVxdWVzdCAqcmVxdWVzdCk7CiAKK1dFQktJVF9BUEkg
U291cE1lc3NhZ2UgKgord2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgo=
</data>
<flag name="review"
          id="15733"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30945</attachid>
            <date>2009-06-04 06:47:25 -0700</date>
            <delta_ts>2009-06-04 06:47:25 -0700</delta_ts>
            <desc>Map the willSendRequest delegate to the &apos;outgoing-request&apos; signal</desc>
            <filename>Map-the-willSendRequest-delegate-to-the-outgoing-request-signal.patch</filename>
            <type>text/plain</type>
            <size>3150</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">YTNiMDZhYzgyMzcxYTM3MTllODFhODZlMjJkYjM4YWE1NTc5MGU4NApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBkNDdhZGRi
Li41MzU3MGJmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcApAQCAtMjQ3LDkgKzI0NywyMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9h
ZGVyKgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCog
bmV0d29ya1JlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVx
dWVzdChyZXF1ZXN0KTsKKworICAgIGlmICghbmV0d29ya1JlcXVlc3QpCisgICAgICByZXR1cm47
CisKKyAgICBnYm9vbGVhbiBpc0hhbmRsZWQ7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdl
YlZpZXcsICJvdXRnb2luZy1yZXF1ZXN0IiwgbV9mcmFtZSwgbmV0d29ya1JlcXVlc3QsICZpc0hh
bmRsZWQpOworCisgICAgcmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCh3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tZXNzYWdlKG5ldHdvcmtSZXF1ZXN0KSk7CisKKyAgICBnX29iamVjdF91bnJl
ZihuZXR3b3JrUmVxdWVzdCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmFzc2lnbklk
ZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0bmV0d29ya3JlcXVlc3QuY3BwCmluZGV4IGVkMTViZjguLmM3NThlMjcgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKQEAgLTI0OSw4ICsyNDksOCBAQCB2
b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaShXZWJLaXROZXR3b3JrUmVxdWVzdCog
cmVxdWVzdCwgY29uc3QgZ2NoYXIqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
cHJpdi0+dXJpKQotICAgICAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKyAgICBnX2ZyZWUocHJpdi0+
dXJpKTsKKyAgICBwcml2LT51cmkgPSBOVUxMOwogCiAgICAgc291cF9tZXNzYWdlX3NldF91cmko
cHJpdi0+bWVzc2FnZSwgc291cFVSSSk7CiAgICAgc291cF91cmlfZnJlZShzb3VwVVJJKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggNDBjMzgyMi4uODM4MjYxZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE0MSw2ICsxNDEsNyBAQCBlbnVtIHsKICAg
ICBNT1ZFX0NVUlNPUiwKICAgICBQUklOVF9SRVFVRVNURUQsCiAgICAgUExVR0lOX1dJREdFVCwK
KyAgICBPVVRHT0lOR19SRVFVRVNULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0xNzE1LDYg
KzE3MTYsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0
V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBHVEtfVFlQRV9XSURHRVQs
IDMsCiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfSEFT
SF9UQUJMRSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpvdXRnb2luZy1yZXF1
ZXN0OgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2ln
bmFsCisgICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB3aG9zZSBsb2FkIGRp
c3BhdGNoZWQgdGhpcyByZXF1ZXN0CisgICAgICogQHJlcXVlc3Q6IHRoZSAjV2ViS2l0TmV0d29y
a1JlcXVlc3QgdGhhdCB3aWxsIGJlIGRpc3BhdGNoZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQg
d2hlbiBhIHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudC4KKyAgICAgKgorICAgICAqIFNpbmNl
OiAxLjEuOQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW09VVEdPSU5HX1JF
UVVFU1RdID0gZ19zaWduYWxfbmV3KCJvdXRnb2luZy1yZXF1ZXN0IiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURf
X09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAg
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktf
UkVRVUVTVCk7CisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1l
dGhvZHMKICAgICAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31116</attachid>
            <date>2009-06-09 17:32:32 -0700</date>
            <delta_ts>2009-06-10 12:15:26 -0700</delta_ts>
            <desc>Make WebKitNetworkRequest a proper GObject</desc>
            <filename>Make-WebKitNetworkRequest-a-proper-GObject.patch</filename>
            <type>text/plain</type>
            <size>14770</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">YjBjZjJlNmZiOTZiMjQ0NDQ1ZWI4MjU3Yjk5Mjk4ZmFkMjM0OGM1ZgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE5NDZkNTYuLjU3YzZlMDEgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAwOS0wNS0zMSAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3Igb3VyIFdlYktp
dE5ldHdvcmtSZXF1ZXN0IG9iamVjdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAy
MDA5LTA1LTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBi
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGM4N2VlNDkuLmVhZjg4NjMgMTAwNjQ0Ci0tLSBhL0dOVW1h
a2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01MjQsNiArNTI0LDcgQEAgd2Via2l0
X3Rlc3RzX2xkZmxhZ3MgPSBcCiAJLW5vLWZhc3QtaW5zdGFsbAogCiBURVNUX1BST0dTICs9IFBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0aHR0cGJhY2tlbmQgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90
ZXN0bmV0d29ya3JlcXVlc3QgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViZnJhbWUgXAog
CVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0IFwKIAlQcm9ncmFtcy91
bml0dGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtIFwKQEAgLTUzNiw2ICs1MzcsMTEgQEAgUHJvZ3Jh
bXNfdW5pdHRlc3RzX3Rlc3RodHRwYmFja2VuZF9DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxh
Z3MpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xEQUREID0gJCh3ZWJraXRf
dGVzdHNfbGRhZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGh0dHBiYWNrZW5kX0xERkxBR1Mg
PSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQogCitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdv
cmtyZXF1ZXN0X1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5j
CitQcm9ncmFtc191bml0dGVzdHNfdGVzdG5ldHdvcmtyZXF1ZXN0X0NGTEFHUyA9ICQod2Via2l0
X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29ya3JlcXVlc3RfTERB
REQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c190ZXN0bmV0d29y
a3JlcXVlc3RfTERGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2xkZmxhZ3MpCisKIFByb2dyYW1zX3Vu
aXR0ZXN0c190ZXN0d2ViZnJhbWVfU09VUkNFUyA9IFdlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmZy
YW1lLmMKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2ViZnJhbWVfQ0ZMQUdTID0gJCh3ZWJraXRf
dGVzdHNfY2ZsYWdzKQogUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3R3ZWJmcmFtZV9MREFERCA9ICQo
d2Via2l0X3Rlc3RzX2xkYWRkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4ZGY2NmUwLi5hYjI4ZTJkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDA5LTA2LTEwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
V2ViS2l0TmV0d29ya1JlcXVlc3QgYSBwcm9wZXIgR09iamVjdCwgbWFraW5nIFVSSSBhbmQKKyAg
ICAgICAgU291cE1lc3NhZ2UgcHJvcGVydGllcy4gQWxzbyBhZGRpbmcgdW5pdCB0ZXN0cyBmb3Ig
Y3JlYXRpb24gYW5kCisgICAgICAgIGRlc3RydWN0aW9uLgorCisgICAgICAgICogdGVzdHMvdGVz
dG5ldHdvcmtyZXF1ZXN0LmM6IEFkZGVkLgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3Rf
Y3JlYXRlX2Rlc3Ryb3kpOgorICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3RfcHJvcGVydGll
cyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwOgorICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkpOgor
ICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkpOgorICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfaW5pdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NvbnN0
cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9y
ZXF1ZXN0KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3KToKKyAgICAgICAg
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSk6CisgICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2dldF91cmkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oOgorCiAyMDA5LTA2LTA5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdG5ldHdvcmtyZXF1ZXN0LmMgYi9XZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjMzYmRkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RuZXR3b3JrcmVxdWVzdC5jCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR3VzdGF2byBOb3JvbmhhIFNpbHZhCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg
PHVuaXN0ZC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0Lmg+CisKKyNpZiBHTElCX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApICYmIEdUS19D
SEVDS19WRVJTSU9OKDIsIDE0LCAwKQorCitzdGF0aWMgdm9pZCB0ZXN0X25ldHdvcmtfcmVxdWVz
dF9jcmVhdGVfZGVzdHJveSgpCit7CisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3Q7
CisgICAgU291cE1lc3NhZ2UqIG1lc3NhZ2U7CisKKyAgICAvKiBUZXN0IGNyZWF0aW9uIHdpdGgg
VVJJICovCisgICAgcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3
KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsICJodHRwOi8vZGViaWFuLm9yZy8i
LCBOVUxMKSk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0
KSk7CisgICAgbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVx
dWVzdCk7CisgICAgZ19hc3NlcnRfY21waW50KG1lc3NhZ2UsID09LCBOVUxMKTsKKyAgICBnX29i
amVjdF91bnJlZihyZXF1ZXN0KTsKKworICAgIC8qIFRlc3QgY3JlYXRpb24gd2l0aCBTb3VwTWVz
c2FnZSAqLworICAgIG1lc3NhZ2UgPSBzb3VwX21lc3NhZ2VfbmV3KCJHRVQiLCAiaHR0cDovL2Rl
Ymlhbi5vcmcvIik7CisgICAgcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBtZXNzYWdlLCBO
VUxMKSk7CisgICAgZ19hc3NlcnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0KSk7
CisgICAgZ19hc3NlcnRfY21waW50KEdfT0JKRUNUKG1lc3NhZ2UpLT5yZWZfY291bnQsID09LCAy
KTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19P
QkpFQ1QobWVzc2FnZSktPnJlZl9jb3VudCwgPT0sIDEpOworICAgIGdfb2JqZWN0X3VucmVmKG1l
c3NhZ2UpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X25ldHdvcmtfcmVxdWVzdF9wcm9wZXJ0aWVz
KCkKK3sKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdDsKKyAgICBTb3VwTWVzc2Fn
ZSogbWVzc2FnZTsKKyAgICBnY2hhciogc291cFVSSTsKKworICAgIC8qIFRlc3QgVVJJIGlzIHNl
dCBjb3JyZWN0bHkgd2hlbiBjcmVhdGluZyB3aXRoIFVSSSAqLworICAgIHJlcXVlc3QgPSB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X25ldygiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgZ19hc3Nl
cnQoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0KSk7CisgICAgZ19hc3NlcnRfY21w
c3RyKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KSwgPT0sICJodHRwOi8v
ZGViaWFuLm9yZy8iKTsKKyAgICBnX29iamVjdF91bnJlZihyZXF1ZXN0KTsKKworICAgIC8qIFRl
c3QgVVJJIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBjcmVhdGluZyB3aXRoIE1lc3NhZ2UgKi8KKyAg
ICBtZXNzYWdlID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwgImh0dHA6Ly9kZWJpYW4ub3JnLyIp
OworICAgIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgbWVzc2FnZSwgTlVMTCkpOworICAg
IGdfYXNzZXJ0KFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOworICAgIGdfb2Jq
ZWN0X3VucmVmKG1lc3NhZ2UpOworCisgICAgbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisgICAgc291cFVSSSA9IHNvdXBfdXJpX3RvX3N0cmlu
Zyhzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSwgRkFMU0UpOworICAgIGdfYXNzZXJ0X2Nt
cHN0cihzb3VwVVJJLCA9PSwgImh0dHA6Ly9kZWJpYW4ub3JnLyIpOworICAgIGdfZnJlZShzb3Vw
VVJJKTsKKworICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91
cmkocmVxdWVzdCksID09LCAiaHR0cDovL2RlYmlhbi5vcmcvIik7CisgICAgZ19vYmplY3RfdW5y
ZWYocmVxdWVzdCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAg
ICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCBO
VUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7
CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L25ldHdvcmtyZXF1ZXN0L2NyZWF0ZWRlc3Ry
b3kiLCB0ZXN0X25ldHdvcmtfcmVxdWVzdF9jcmVhdGVfZGVzdHJveSk7CisgICAgZ190ZXN0X2Fk
ZF9mdW5jKCIvd2Via2l0L25ldHdvcmtyZXF1ZXN0L3Byb3BlcnRpZXMiLCB0ZXN0X25ldHdvcmtf
cmVxdWVzdF9wcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gZ190ZXN0X3J1biAoKTsKK30KKworI2Vs
c2UKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBnX2NyaXRpY2FsKCJZ
b3Ugd2lsbCBuZWVkIGF0IGxlYXN0IGdsaWItMi4xNi4wIGFuZCBndGstMi4xNC4wIHRvIHJ1biB0
aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7CisgICAgcmV0dXJuIDA7Cit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCmluZGV4
IDJmODBkZmIuLmMxYjc2ZjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVx
dWVzdC5jcHAKQEAgLTYwLDYgKzYwLDEzIEBAIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQ
cml2YXRlIHsKIAogI2RlZmluZSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9QUklWQVRFKG9i
aikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfTkVUV09S
S19SRVFVRVNULCBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUpKQogCitlbnVtIHsKKyAgICBQ
Uk9QXzAsCisKKyAgICBQUk9QX1VSSSwKKyAgICBQUk9QX01FU1NBR0UsCit9OworCiBzdGF0aWMg
dm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsK
ICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVF
U1Qob2JqZWN0KTsKQEAgLTc1LDkgKzgyLDc0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9uZXR3b3JrX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0K
IAorc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlELCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBw
c3BlYykKK3sKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRX
T1JLX1JFUVVFU1Qob2JqZWN0KTsKKworICAgIHN3aXRjaChwcm9wZXJ0eUlEKSB7CisgICAgY2Fz
ZSBQUk9QX1VSSToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBST1BfTUVTU0FHRToKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgd2Via2l0
X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9w
ZXJ0eUlELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sKKyAgICBX
ZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2Jq
ZWN0KTsKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5w
cml2OworCisgICAgc3dpdGNoKHByb3BlcnR5SUQpIHsKKyAgICBjYXNlIFBST1BfVVJJOgorICAg
ICAgICB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgZ192YWx1ZV9nZXRf
c3RyaW5nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NRVNTQUdFOgor
ICAgICAgICBwcml2LT5tZXNzYWdlID0gU09VUF9NRVNTQUdFKGdfdmFsdWVfZHVwX29iamVjdCh2
YWx1ZSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBwc3BlYyk7CisgICAg
fQorfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NsYXNzX2luaXQoV2Vi
S2l0TmV0d29ya1JlcXVlc3RDbGFzcyogcmVxdWVzdENsYXNzKQogewotICAgIEdfT0JKRUNUX0NM
QVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9maW5h
bGl6ZTsKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKTsKKworICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZmluYWxpemU7CisgICAgb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5OworICAgIG9iamVjdENsYXNzLT5zZXRfcHJv
cGVydHkgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF9wcm9wZXJ0eTsKKworICAgIC8qKgor
ICAgICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0OnVyaToKKyAgICAgKgorICAgICAqIFRoZSBVUkkg
dG8gd2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZSBtYWRlLgorICAgICAqCisgICAgICogU2luY2U6
IDEuMS45CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfc3RyaW5nKCJ1cmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVUkkiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFVSSSB0byB3aGljaCB0
aGUgcmVxdWVzdCB3aWxsIGJlIG1hZGUuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpKTsKKworICAgIC8qKgorICAgICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0
Om1lc3NhZ2U6CisgICAgICoKKyAgICAgKiBUaGUgI1NvdXBNZXNzYWdlIHRoYXQgYmFja3MgdGhl
IHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS4xLjkKKyAgICAgKi8KKyAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX01FU1NBR0UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJt
ZXNzYWdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiTWVzc2FnZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgU291cE1lc3NhZ2UgdGhhdCBiYWNrcyB0aGUg
cmVxdWVzdC4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU09VUF9UWVBFX01FU1NBR0UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFN
X1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwogCiAgICAgZ190eXBlX2NsYXNz
X2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJp
dmF0ZSkpOwogfQpAQCAtOTEsMTUgKzE2MywxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2luaXQoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCiAvLyBmb3IgaW50
ZXJuYWwgdXNlIG9ubHkKIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiB3ZWJraXRfbmV0d29ya19yZXF1
ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKIHsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9
IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktf
UkVRVUVTVCwgTlVMTCkpOwotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9
IHJlcXVlc3QtPnByaXY7Ci0KICAgICBHT3duUHRyPFNvdXBNZXNzYWdlPiBzb3VwTWVzc2FnZShy
ZXNvdXJjZVJlcXVlc3QudG9Tb3VwTWVzc2FnZSgpKTsKICAgICBpZiAoc291cE1lc3NhZ2UpCi0g
ICAgICAgIHByaXYtPm1lc3NhZ2UgPSBTT1VQX01FU1NBR0UoZ19vYmplY3RfcmVmKHNvdXBNZXNz
YWdlLmdldCgpKSk7Ci0gICAgcHJpdi0+dXJpID0gZ19zdHJkdXAocmVzb3VyY2VSZXF1ZXN0LnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdP
UktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCAibWVz
c2FnZSIsIHNvdXBNZXNzYWdlLmdldCgpLCBOVUxMKSk7CiAKLSAgICByZXR1cm4gcmVxdWVzdDsK
KyAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfTkVUV09SS19SRVFVRVNULCAidXJpIiwgcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIE5VTEwpKTsKIH0KIAogLyoqCkBAIC0xMTUsMTYgKzE4Myw3IEBAIFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhjb25zdCBnY2hh
ciogdXJpKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgTlVMTCk7CiAKLSAgICBX
ZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgTlVMTCkpOwotICAgIFdlYktp
dE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0KLSAgICBwcml2
LT5tZXNzYWdlID0gc291cF9tZXNzYWdlX25ldygiR0VUIiwgdXJpKTsKLSAgICBpZiAoIXByaXYt
Pm1lc3NhZ2UpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcHJpdi0+dXJpID0gZ19zdHJk
dXAodXJpKTsKLQotICAgIHJldHVybiByZXF1ZXN0OworICAgIHJldHVybiBXRUJLSVRfTkVUV09S
S19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmki
LCB1cmksIE5VTEwpKTsKIH0KIAogLyoqCkBAIC0xMzIsNyArMTkxLDEwIEBAIFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyhjb25zdCBnY2hhciogdXJpKQog
ICogQHJlcXVlc3Q6IGEgI1dlYktpdE5ldHdvcmtSZXF1ZXN0CiAgKiBAdXJpOiBhbiBVUkkKICAq
Ci0gKiBTZXRzIHRoZSBVUkkgaGVsZCBhbmQgdXNlZCBieSB0aGUgZ2l2ZW4gcmVxdWVzdC4KKyAq
IFNldHMgdGhlIFVSSSBoZWxkIGFuZCB1c2VkIGJ5IHRoZSBnaXZlbiByZXF1ZXN0LiBXaGVuIHRo
ZSByZXF1ZXN0CisgKiBoYXMgYW4gYXNzb2NpYXRlZCAjU291cE1lc3NhZ2UsIGl0cyBVUkkgd2ls
bCBhbHNvIGJlIHNldCBieSB0aGlzCisgKiBjYWxsLgorICoKICAqLwogdm9pZCB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X3NldF91cmkoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0
IGdjaGFyKiB1cmkpCiB7CkBAIC0xNDEsOCArMjAzLDIxIEBAIHZvaWQgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9zZXRfdXJpKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBnY2hh
cioKIAogICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnBy
aXY7CiAKLSAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKyAgICBpZiAocHJpdi0+dXJpKQorICAgICAg
ICBnX2ZyZWUocHJpdi0+dXJpKTsKICAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworCisg
ICAgaWYgKCFwcml2LT5tZXNzYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBTb3VwVVJJKiBz
b3VwVVJJID0gc291cF91cmlfbmV3KHVyaSk7CisgICAgaWYgKCFzb3VwVVJJKSB7CisgICAgICAg
IGdfd2FybmluZygiSW52YWxpZCBVUkk6ICVzIiwgdXJpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJpKHByaXYtPm1lc3NhZ2UsIHNvdXBVUkkpOwor
ICAgIHNvdXBfdXJpX2ZyZWUoc291cFVSSSk7CiB9CiAKIC8qKgpAQCAtMTU4LDE4ICsyMzMsMjcg
QEAgR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShX
ZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWUKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpLCBOVUxMKTsKIAogICAgIFdlYktpdE5ldHdv
cmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBpZiAocHJpdi0+
dXJpKQorICAgICAgICByZXR1cm4gcHJpdi0+dXJpOworCisgICAgU291cFVSSSogc291cFVSSSA9
IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHByaXYtPm1lc3NhZ2UpOworICAgIHByaXYtPnVyaSA9IHNv
dXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSk7CiAgICAgcmV0dXJuIHByaXYtPnVyaTsK
IH0KIAotLy8gTk9UIFlFVCBBUEk7IEZvciBpbnRlcm5hbCB1c2Ugb25seSwgZm9yIG5vdwotLy8g
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfc291cF9tZXNzYWdlOgotLy8gQHJlcXVlc3Q6IGEg
I1dlYktpdE5ldHdvcmtSZXF1ZXN0Ci0vLwotLy8gT2J0YWlucyB0aGUgI1NvdXBNZXNzYWdlIGhl
bGQgYW5kIHVzZWQgYnkgdGhlIGdpdmVuIHJlcXVlc3QuIE5vdGljZQotLy8gdGhhdCBtb2RpZmlj
YXRpb24gb2YgdGhlIFNvdXBNZXNzYWdlIG9mIGEgcmVxdWVzdCBieSBzaWduYWwKLS8vIGhhbmRs
ZXJzIGlzIG9ubHkgc3VwcG9ydGVkIHdoZXJlIGV4cGxpY2l0bHkgZG9jdW1lbnRlZC4KLS8vCi0v
LyBSZXR1cm5zOiB0aGUgI1NvdXBNZXNzYWdlCisvKioKKyAqIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfZ2V0X3NvdXBfbWVzc2FnZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXROZXR3b3JrUmVxdWVz
dAorICoKKyAqIE9idGFpbnMgdGhlICNTb3VwTWVzc2FnZSBoZWxkIGFuZCB1c2VkIGJ5IHRoZSBn
aXZlbiByZXF1ZXN0LiBOb3RpY2UKKyAqIHRoYXQgbW9kaWZpY2F0aW9uIG9mIHRoZSBTb3VwTWVz
c2FnZSBvZiBhIHJlcXVlc3QgYnkgc2lnbmFsCisgKiBoYW5kbGVycyBpcyBvbmx5IHN1cHBvcnRl
ZCAoYXMgaW4sIHdpbGwgb25seSBhZmZlY3Qgd2hhdCBpcworICogYWN0dWFsbHkgc2VudCB0byB0
aGUgc2VydmVyKSB3aGVyZSBleHBsaWNpdGx5IGRvY3VtZW50ZWQuCisgKgorICogUmV0dXJuczog
dGhlICNTb3VwTWVzc2FnZQorICogU2luY2U6IDEuMS45CisgKi8KIFNvdXBNZXNzYWdlKiB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1
ZXN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVF
U1QocmVxdWVzdCksIE5VTEwpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmgKaW5kZXggMDFhYjhiYi4uNzhlMDRhMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0bmV0d29ya3JlcXVlc3QuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JF
UVVFU1RfSAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAuaD4KIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAKQEAgLTY1LDYgKzY2
LDkgQEAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QsCiBXRUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFyICoKIHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaSAgKFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsK
IAorV0VCS0lUX0FQSSBTb3VwTWVzc2FnZSAqCit3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9t
ZXNzYWdlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmCg==
</data>
<flag name="review"
          id="15854"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>