<?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>91747</bug_id>
          
          <creation_ts>2012-07-19 08:41:42 -0700</creation_ts>
          <short_desc>[EFL] Proxy configuration should honor the no_proxy environment variable</short_desc>
          <delta_ts>2012-07-20 07:40:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>91639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdumez</cc>
    
    <cc>danw</cc>
    
    <cc>dpranke</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>keunsoon.lee</cc>
    
    <cc>levin</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>673536</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-19 08:41:42 -0700</bug_when>
    <thetext>Currently the proxy settings are hardcoded on the WebProcess. For EFL, only the http_proxy environment variable is honored. There is no way to add exceptions to the proxy, like localhost and domains at your intranet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673632</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-19 10:21:04 -0700</bug_when>
    <thetext>Thiago. Just so you know, I discussed this issue with the libsoup maintainer and he would be willing to accept a patch to that libsoup does not try to use the proxy for localhost. I&apos;m looking into this.

This is not exactly the same thing as you want, but I have an idea how to do the no_proxy thing too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673675</commentid>
    <comment_count>2</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-19 10:54:36 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Thiago. Just so you know, I discussed this issue with the libsoup maintainer and he would be willing to accept a patch to that libsoup does not try to use the proxy for localhost. I&apos;m looking into this.
&gt; 
&gt; This is not exactly the same thing as you want, but I have an idea how to do the no_proxy thing too.

Honoring the &quot;no_proxy&quot; maybe might not be the best solution, agree. Now that I have a more clear understanding of the problem, what I think should be done is the implementation of ProxyServer.h interface for libsoup. In a second patch, we can make it configurable via an API at the UIProcess.

Anyway, I think this work is independent from patching libsoup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673781</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-19 12:25:24 -0700</bug_when>
    <thetext>Thiago, since this is libsoup oriented. Do you mind if I take over? I have experience with libsoup and I know how to proceed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673868</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-19 13:32:36 -0700</bug_when>
    <thetext>All yours. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674265</commentid>
    <comment_count>5</comment_count>
      <attachid>153433</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 00:29:23 -0700</bug_when>
    <thetext>Created attachment 153433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674276</commentid>
    <comment_count>6</comment_count>
      <attachid>153433</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-20 00:40:03 -0700</bug_when>
    <thetext>Comment on attachment 153433
Patch

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

I wonder whether can we share this file with GTK port ?

Anyway, if you wanna use XXXEfl.cpp/h, I think you need to reduce glib variable type.

&gt; Source/WebKit2/WebProcess/efl/SoupProxyResolverEfl.cpp:128
&gt; +static gboolean idle_return_proxy_uri(void* data)

In EFL port, we don&apos;t use glib type. s/gboolean/bool/g ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674280</commentid>
    <comment_count>7</comment_count>
      <attachid>153433</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 00:44:19 -0700</bug_when>
    <thetext>Comment on attachment 153433
Patch

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

No need to share with GTK port since they are using the GNOME resolver which uses GNOME settings. Also I&apos;m not sure how I can get rid of &quot;g&quot; types here. It has to be a GObject and we are using libsoup. I&apos;m already not using the g_* functions.

&gt;&gt; Source/WebKit2/WebProcess/efl/SoupProxyResolverEfl.cpp:128
&gt;&gt; +static gboolean idle_return_proxy_uri(void* data)
&gt; 
&gt; In EFL port, we don&apos;t use glib type. s/gboolean/bool/g ?

No, this is a callback for soup_add_completion() so I have to use gboolean here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674291</commentid>
    <comment_count>8</comment_count>
      <attachid>153433</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-20 00:55:26 -0700</bug_when>
    <thetext>Comment on attachment 153433
Patch

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

If so, I can understand. BTW, as you know, EFL port needs to use our network library based on EFL library. But, it looks there is no network library in EFL. I hope EFL also supports network library in near future.

&gt; Source/WebKit2/WebProcess/efl/SoupProxyResolverEfl.cpp:142
&gt; +    return FALSE;

Is this one can&apos;t be replaced with false ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674292</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 00:57:45 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 153433 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=153433&amp;action=review
&gt; 
&gt; If so, I can understand. BTW, as you know, EFL port needs to use our network library based on EFL library. But, it looks there is no network library in EFL. I hope EFL also supports network library in near future.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/efl/SoupProxyResolverEfl.cpp:142
&gt; &gt; +    return FALSE;
&gt; 
&gt; Is this one can&apos;t be replaced with false ?

Yes, I think this one can be replaced. I&apos;ll make another pass and get rid of as much glib&apos;ism as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674318</commentid>
    <comment_count>10</comment_count>
      <attachid>153446</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 01:32:15 -0700</bug_when>
    <thetext>Created attachment 153446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674321</commentid>
    <comment_count>11</comment_count>
      <attachid>153433</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-20 01:34:44 -0700</bug_when>
    <thetext>Comment on attachment 153433
Patch

Thanks for the patch.

IMO in addition to no_proxy, you should add localhost and 127.0.0.1 as non-proxy&apos;ed domains by default. no_proxy is not exactly a standard and everyone running the unit tests will have them timeouting util realizing that these 2 domains have to be exported to the environment via no_proxy.

Another thing is the Resolver code fits better at WebCore/platform/network/efl/ or maybe WebCore/platform/network/soup/efl/. It is purely network code and it could be reused by WK1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674350</commentid>
    <comment_count>12</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-20 02:08:42 -0700</bug_when>
    <thetext>I am not sure whether proxy_resolver works well in tizen.

Anyway, now we are controlling proxy using API like webkit1/efl.

Add keunsoon in CCs.
keunsoon, can you check this ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674353</commentid>
    <comment_count>13</comment_count>
      <attachid>153452</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:10:09 -0700</bug_when>
    <thetext>Created attachment 153452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674358</commentid>
    <comment_count>14</comment_count>
      <attachid>153452</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:23:14 -0700</bug_when>
    <thetext>Comment on attachment 153452
Patch

Will use the resolver in WK1 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674365</commentid>
    <comment_count>15</comment_count>
      <attachid>153454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:26:21 -0700</bug_when>
    <thetext>Created attachment 153454
Patch

Use the proxy resolver in WebKit1 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674367</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:29:20 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I am not sure whether proxy_resolver works well in tizen.
&gt; 
&gt; Anyway, now we are controlling proxy using API like webkit1/efl.
&gt; 
&gt; Add keunsoon in CCs.
&gt; keunsoon, can you check this ?

Sure, the proxy_resolver will work. This is internal libsoup stuff so it is unrelated to tizen.  Just because you are using an API for controlling the proxy does not mean that the resolver cannot be used. The API can set/get the proxy settings to/from the resolver as shown in my patch for the WK1/EFL API.

We could even add an API in WK1-EFL to add proxy exceptions now (if we want to). In any case, that would be in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674370</commentid>
    <comment_count>17</comment_count>
      <attachid>153454</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-20 02:33:54 -0700</bug_when>
    <thetext>Comment on attachment 153454
Patch

LGTM, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674374</commentid>
    <comment_count>18</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-07-20 02:35:57 -0700</bug_when>
    <thetext>I&apos;m not agree this patch because there can be multiple applications to use WebKit with differenct proxy address. 

I guess every application using WebKit should do export to set proxy address with your patch, am I right? (Fix me if I&apos;m wrong.)
And, is it possible they set their own proxy address without &apos;export&apos;?

One more thing, how does act ewk_proxy_set/get() with your patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674378</commentid>
    <comment_count>19</comment_count>
      <attachid>153454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:40:04 -0700</bug_when>
    <thetext>Comment on attachment 153454
Patch

Somehow the proxy does not get ignored by default for localhost. I need to debug this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674382</commentid>
    <comment_count>20</comment_count>
      <attachid>153454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:41:56 -0700</bug_when>
    <thetext>Comment on attachment 153454
Patch

Nevermind, it is working. Setting r? again.

export no_proxy=&quot;&quot; means no exception
unset no_proxy means default behavior (localhost as exception).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674389</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 02:51:12 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m not agree this patch because there can be multiple applications to use WebKit with differenct proxy address. 
&gt; 
&gt; I guess every application using WebKit should do export to set proxy address with your patch, am I right? (Fix me if I&apos;m wrong.)

Ok, I fix you :)
My patch is not really related to the environment variables. My patch adds a proxy resolver which can be used to customize the behavior (in particular, add proxy exceptions which was not supported before). As you can see from my patch, the resolver can be used by the ewk_network_proxy_set/get() API just fine, without the need for environment variables.

&gt; And, is it possible they set their own proxy address without &apos;export&apos;?
With WK1-EFL, you need to use the ewk_network_proxy_set/get() API, as you did before my patch.

With WK2-EFL, you need to export the environment variables, as you did before my patch. The reason is that there is no ewk_network_proxy_set/get() API in WK2-EFL yet (as stated by Thiago). This should be addressed in a separate patch.

For now, the only visible difference with my patch is that the proxy is not used by default for &quot;localhost,127,0,0,1&quot;. This *is* needed for our unit tests to pass on a machine that has an HTTP proxy set.
Another benefit of my patch is that we can add support for a ewk_network_proxy_exceptions_set()/get() API later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674399</commentid>
    <comment_count>22</comment_count>
      <attachid>153454</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-20 02:58:49 -0700</bug_when>
    <thetext>Comment on attachment 153454
Patch

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

Can&apos;t all this be written so that it can be reused by as many ports as possible? Ie. keep the soup dependencies as minimal as possible? I am pretty sure Qt also doesn&apos;t parse the environment variables correctly... so at least that parsing part can be shared across EFL, GTK and Qt.

&gt; Source/WebCore/platform/network/soup/efl/SoupProxyResolverEfl.cpp:88
&gt; +        priv-&gt;proxyExceptions.clear();
&gt; +        String::fromUTF8(priv-&gt;noProxy.data()).split(&apos;,&apos;, priv-&gt;proxyExceptions);
&gt; +        break;

wget used to have a bug that it didn&apos;t remove spaces. You seem to have the same problem here

&gt; Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:71
&gt; -    const char* httpProxy = g_getenv(&quot;http_proxy&quot;);
&gt; +    const char* httpProxy = getenv(&quot;http_proxy&quot;);

What about https_proxy? I know some also use all_proxy for setting both http_proxy and https_proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674419</commentid>
    <comment_count>23</comment_count>
      <attachid>153454</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 03:29:50 -0700</bug_when>
    <thetext>Comment on attachment 153454
Patch

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

The parsing of the no_proxy environment variable is once line of code so I&apos;m not sure how useful it would be to move the parsing out of SoupProxyResolverEfl and into a generic class. There is really no other parsing involved here. SoupProxyResolverEfl is actually just a lot of GObject boiler-plate code which is required by libsoup.

&gt;&gt; Source/WebCore/platform/network/soup/efl/SoupProxyResolverEfl.cpp:88
&gt;&gt; +        break;
&gt; 
&gt; wget used to have a bug that it didn&apos;t remove spaces. You seem to have the same problem here

Good point. I&apos;ll fix this now.

&gt;&gt; Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:71
&gt;&gt; +    const char* httpProxy = getenv(&quot;http_proxy&quot;);
&gt; 
&gt; What about https_proxy? I know some also use all_proxy for setting both http_proxy and https_proxy

There is not 100% related to this patch (adding support for &quot;no_proxy&quot;). Sure, we have a limitation: currently, it is not possible to set a different proxy for http and https (the http_proxy will be used for both). However, I&apos;m not sure how useful this would be really. If we do think there is a need, it can be easily added in a separate patch later (since this is not strictly related to my bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674420</commentid>
    <comment_count>24</comment_count>
      <attachid>153466</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 03:31:14 -0700</bug_when>
    <thetext>Created attachment 153466
Patch

Correctly handle white spaces in the http_proxy environment variable, as spotted by Kenneth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674423</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 03:35:10 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Created an attachment (id=153466) [details]
&gt; Patch
&gt; 
&gt; Correctly handle white spaces in the http_proxy environment variable, as spotted by Kenneth.

I meant in &quot;no_proxy&quot; environment variable, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674439</commentid>
    <comment_count>26</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-07-20 03:59:09 -0700</bug_when>
    <thetext>Christophe, thank you for fixing me and sorry for my humble understanding.

I have several more question.

I can understand getting environment is a kind of temporary solution until creating ewk_network_proxy_get/set() on WK2. Then, what is default proxy address if application does not set any environment variable for proxy on your latest patch? I&apos;m sorry but I&apos;m confusing it is localhost or system&apos;s default (even if it is not adopted to evironment variable.).

And how is it going if proxy address is changed while loading something? Loaded libsoup session is canceled automatically or it is a another issue besides of this?

I like your idea but I hope my question can help you to improve your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674447</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 04:13:17 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Christophe, thank you for fixing me and sorry for my humble understanding.
&gt; 
&gt; I have several more question.
&gt; 
&gt; I can understand getting environment is a kind of temporary solution until creating ewk_network_proxy_get/set() on WK2. Then, what is default proxy address if application does not set any environment variable for proxy on your latest patch? I&apos;m sorry but I&apos;m confusing it is localhost or system&apos;s default (even if it is not adopted to evironment variable.).

Yes, I agree that the environment variable is a temporary solution until we have a proper API.

However, note that my patch has NO impact on which proxy is being used. You seem to be talking about WK2 so here is what happens with and without my patch:
- If the user has set the http_proxy variable before the WebProcess is spawned, then it will be used.
- If the user has not set the http_proxy variable before the WebProcess is spawned, then NO proxy will be used.

Here is what my patch changes:
- If the user has set the http_proxy variable before the WebProcess is spawned, then it will be used, except if the destination URI is 127.0.0.1/localhost (because it is usually pointless).
In addition, the user can set the &quot;no_proxy&quot; environment variable to something like: export no_proxy=&quot;localhost,127.0.0.1,.intel.com&quot; in order to disable the proxy for localhost and intel.com domain.

&gt; 
&gt; And how is it going if proxy address is changed while loading something? Loaded libsoup session is canceled automatically or it is a another issue besides of this?

Currently, the http_proxy environment variable is only checked when the WebProcess is spawned. Therefore, if the client changes the http_proxy during run time, the change will only be taken into account for new WebProcesses (e.g. for new tabs opened by the client). We cannot get any notifications on environment variable changes.

Yes, this is a limitation when using the environment variables. But then again, this behavior is not introduced by my patch and we know that the environment variable usage is temporary for WK2-EFL. Once we have a proper Ewk API for setting the proxy, this issue will be resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674461</commentid>
    <comment_count>28</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-20 04:41:42 -0700</bug_when>
    <thetext>I think you should keep the environment variable support even after you get api for the browser itself. It can be quite useful for simple debugging etc and it should override what the application sets in that case.

like `http_proxy=http... MiniBrowser`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674462</commentid>
    <comment_count>29</comment_count>
      <attachid>153466</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-20 04:43:44 -0700</bug_when>
    <thetext>Comment on attachment 153466
Patch

I am ok with this, though I still think it should not necessarily be EFL specific but just Soup specific. EFL can then use it, but GTK can decide whether they want or not. This is soup and not really EFL specific</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674463</commentid>
    <comment_count>30</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-07-20 04:44:36 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; Christophe, thank you for fixing me and sorry for my humble understanding.
&gt; &gt; 
&gt; &gt; I have several more question.
&gt; &gt; 
&gt; &gt; I can understand getting environment is a kind of temporary solution until creating ewk_network_proxy_get/set() on WK2. Then, what is default proxy address if application does not set any environment variable for proxy on your latest patch? I&apos;m sorry but I&apos;m confusing it is localhost or system&apos;s default (even if it is not adopted to evironment variable.).
&gt; 
&gt; Yes, I agree that the environment variable is a temporary solution until we have a proper API.
&gt; 
&gt; However, note that my patch has NO impact on which proxy is being used. You seem to be talking about WK2 so here is what happens with and without my patch:
&gt; - If the user has set the http_proxy variable before the WebProcess is spawned, then it will be used.
&gt; - If the user has not set the http_proxy variable before the WebProcess is spawned, then NO proxy will be used.
&gt; 
&gt; Here is what my patch changes:
&gt; - If the user has set the http_proxy variable before the WebProcess is spawned, then it will be used, except if the destination URI is 127.0.0.1/localhost (because it is usually pointless).
&gt; In addition, the user can set the &quot;no_proxy&quot; environment variable to something like: export no_proxy=&quot;localhost,127.0.0.1,.intel.com&quot; in order to disable the proxy for localhost and intel.com domain.
&gt; 
Thank you for your explain. But I still cannot get the answer for default proxy if there is no setting for proxy. Could you mention this for stupid me?
Here is my question again. If some application does not set http_proxy and no_proxy variable at all before spawning WebProcess, and it also does not call any ewk_network_proxy_set(). Then how WebKit does behave? I guess SoupProxyURIResolver is not created and inserted to libsoup as soup session feature, so, it is upto libsoup&apos;s default behavior, am I right? (Fix me again if I&apos;m wrong.)

And one more question for patch&apos;s structure.
SoupProxyURIResolver on your patch is implementing soup session feature&apos;s interface, which has no dependency to Efl port. If so, I guess it is better to put Soup port rather than Efl port. What do you think so?

Thank you in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674464</commentid>
    <comment_count>31</comment_count>
      <attachid>153466</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-20 04:45:32 -0700</bug_when>
    <thetext>Comment on attachment 153466
Patch

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

&gt; Source/WebCore/ChangeLog:20
&gt; +        * platform/network/soup/efl/SoupProxyResolverEfl.cpp: Added.

Can&apos;t we not just add a network/soup/ProxyResolver.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674466</commentid>
    <comment_count>32</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 04:48:33 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 153466 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=153466&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:20
&gt; &gt; +        * platform/network/soup/efl/SoupProxyResolverEfl.cpp: Added.
&gt; 
&gt; Can&apos;t we not just add a network/soup/ProxyResolver.cpp?

Ok, I&apos;ll do that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674467</commentid>
    <comment_count>33</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 04:52:18 -0700</bug_when>
    <thetext>&gt; Thank you for your explain. But I still cannot get the answer for default proxy if there is no setting for proxy. Could you mention this for stupid me?
&gt; Here is my question again. If some application does not set http_proxy and no_proxy variable at all before spawning WebProcess, and it also does not call any ewk_network_proxy_set(). Then how WebKit does behave? I guess SoupProxyURIResolver is not created and inserted to libsoup as soup session feature, so, it is upto libsoup&apos;s default behavior, am I right? (Fix me again if I&apos;m wrong.)

You are right, if the http_proxy environment variable is not set and if the application does not call ewk_network_proxy_set(), then the SoupProxyURIResolver is not created and it becomes libsoup&apos;s default behavior.

Is that a problem? As far as I understand, it was the same behavior before my patch.

&gt; 
&gt; And one more question for patch&apos;s structure.
&gt; SoupProxyURIResolver on your patch is implementing soup session feature&apos;s interface, which has no dependency to Efl port. If so, I guess it is better to put Soup port rather than Efl port. What do you think so?

Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674468</commentid>
    <comment_count>34</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-07-20 04:55:45 -0700</bug_when>
    <thetext>(In reply to comment #33)

&gt; You are right, if the http_proxy environment variable is not set and if the application does not call ewk_network_proxy_set(), then the SoupProxyURIResolver is not created and it becomes libsoup&apos;s default behavior.
&gt; 
&gt; Is that a problem? As far as I understand, it was the same behavior before my patch.
&gt; 
No problem. I just wanted to double check to be sure your patch is working on Tizen platform.

&gt; &gt; 
&gt; &gt; And one more question for patch&apos;s structure.
&gt; &gt; SoupProxyURIResolver on your patch is implementing soup session feature&apos;s interface, which has no dependency to Efl port. If so, I guess it is better to put Soup port rather than Efl port. What do you think so?
&gt; 
&gt; Agreed.

Thank you again!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674470</commentid>
    <comment_count>35</comment_count>
      <attachid>153481</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 05:17:48 -0700</bug_when>
    <thetext>Created attachment 153481
Patch

Take feedback into consideration, hopefully we are all in agreement now :)

The resolver is no longer EFL-specific and I clarified the Changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674482</commentid>
    <comment_count>36</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-07-20 05:37:32 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Created an attachment (id=153481) [details]
&gt; Patch
&gt; 
&gt; Take feedback into consideration, hopefully we are all in agreement now :)
&gt; 
&gt; The resolver is no longer EFL-specific and I clarified the Changelogs.

LGTM from my side. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674489</commentid>
    <comment_count>37</comment_count>
      <attachid>153481</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-20 05:57:14 -0700</bug_when>
    <thetext>Comment on attachment 153481
Patch

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

LGTM. Sorry for not pointing out the nit before.

&gt; Source/WebCore/platform/network/soup/ProxyResolverSoup.cpp:83
&gt; +        uri = static_cast&lt;SoupURI*&gt;(g_value_get_boxed(value));
&gt; +        if (priv-&gt;proxyURI)
&gt; +            soup_uri_free(priv-&gt;proxyURI);
&gt; +
&gt; +        priv-&gt;proxyURI = uri ? soup_uri_copy(uri) : 0;
&gt; +        break;

nit: uri could have been define here since it&apos;s used inside this condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674492</commentid>
    <comment_count>38</comment_count>
      <attachid>153486</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 06:04:03 -0700</bug_when>
    <thetext>Created attachment 153486
Patch

Fix Thiago&apos;s nit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674495</commentid>
    <comment_count>39</comment_count>
      <attachid>153488</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-20 06:06:16 -0700</bug_when>
    <thetext>Created attachment 153488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674497</commentid>
    <comment_count>40</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-20 06:10:16 -0700</bug_when>
    <thetext>LGTM, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674562</commentid>
    <comment_count>41</comment_count>
      <attachid>153488</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 07:39:54 -0700</bug_when>
    <thetext>Comment on attachment 153488
Patch

Clearing flags on attachment: 153488

Committed r123218: &lt;http://trac.webkit.org/changeset/123218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674563</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 07:40:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153433</attachid>
            <date>2012-07-20 00:29:23 -0700</date>
            <delta_ts>2012-07-20 02:10:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>16334</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyN2RmNTBhLi4wY2FkMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgRUZMIHBvcnQKKyAgICAgICAgYW5kIGFzayB0aGUgU291cFNlc3Npb24gdG8gdXNl
IGl0LiBUaGlzIGN1c3RvbQorICAgICAgICByZXNvbHZlciB0YWtlcyBpbnRvIGFjY291bnQgdGhl
ICJub19wcm94eSIKKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdCB0aGUgY2xp
ZW50IGNhbiBzZXQKKyAgICAgICAgZXhjZXB0aW9ucyBmb3IgdGhlIHByb3h5LgorCisgICAgICAg
IFlvdSBjYW4gbm93IGJ5cGFzcyB0aGUgcHJveHkgZm9yIGxvY2FsaG9zdCBieQorICAgICAgICBk
b2luZzogZXhwb3J0IG5vX3Byb3h5PSJsb2NhbGhvc3QsMTI3LjAuMC4xIi4KKworICAgICAgICAq
IFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFdlYlByb2Nlc3MvZWZsL1NvdXBQcm94eVJl
c29sdmVyRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9p
bml0KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsRmluYWxpemUpOgorICAgICAgICAo
c291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eSk6CisgICAgICAgIChzb3VwUHJveHlSZXNv
bHZlckVmbEdldFByb3BlcnR5KToKKyAgICAgICAgKHNob3VsZEJ5cGFzc1Byb3h5KToKKyAgICAg
ICAgKGlkbGVfcmV0dXJuX3Byb3h5X3VyaSk6CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlckVm
bEdldFByb3h5VVJJQXN5bmMpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94
eVVSSVN5bmMpOgorICAgICAgICAoc291cF9wcm94eV9yZXNvbHZlcl9lZmxfY2xhc3NfaW5pdCk6
CisgICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZhY2VfaW5pdCk6CisgICAg
ICAgIChzb3VwUHJveHlSZXNvbHZlckVmbE5ldyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwv
U291cFByb3h5UmVzb2x2ZXJFZmwuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwv
V2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVm
bCk6CisKIDIwMTItMDctMTkgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVu
aUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW1dLMl0gQWRkIG1ldGhvZHMgdG8g
Z2V0L3NldCBhIGN1c3RvbSB0ZXh0IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IDk3ZjcwOTUuLmFiYWNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03NCw2
ICs3NCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAKKyAgICBXZWJQcm9jZXNzL2VmbC9Tb3VwUHJv
eHlSZXNvbHZlckVmbC5jcHAKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAog
ICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI2ZWIzNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmNw
cApAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNvdXBQcm94eVJlc29sdmVyRWZsLmgiCisKKyNpbmNsdWRlIDxsaWJz
b3VwL3NvdXAuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291cFVSSSogcHJveHlVUkk7CisgICAg
Q1N0cmluZyBub1Byb3h5OworICAgIFZlY3RvcjxTdHJpbmc+IHByb3h5RXhjZXB0aW9uczsKK30g
U291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlOworCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xW
RVJfRUZMX0dFVF9QUklWQVRFKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG8pLCBT
T1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUp
KQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZhY2VfaW5pdChT
b3VwUHJveHlVUklSZXNvbHZlckludGVyZmFjZSogcHJveHlSZXNvbHZlckludGVyZmFjZSk7CisK
K0dfREVGSU5FX1RZUEVfRVhURU5ERUQoU291cFByb3h5UmVzb2x2ZXJFZmwsIHNvdXBfcHJveHlf
cmVzb2x2ZXJfZWZsLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAgICAgICAgICAgICAgICAgICBH
X0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwgMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQRV9QUk9YWV9V
UklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KSkKKwor
ZW51bSB7CisgICAgUFJPUF8wLAorICAgIFBST1BfUFJPWFlfVVJJLAorICAgIFBST1BfTk9fUFJP
WFksCisgICAgTEFTVF9QUk9QCit9OworCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVy
X2VmbF9pbml0KFNvdXBQcm94eVJlc29sdmVyRWZsKiByZXNvbHZlckVmbCkKK3sKK30KKworc3Rh
dGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNP
TFZFUl9FRkxfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIGdfY2xlYXJfcG9pbnRlcigmcHJp
di0+cHJveHlVUkksIHNvdXBfdXJpX2ZyZWUpOworCisgICAgR19PQkpFQ1RfQ0xBU1Moc291cF9w
cm94eV9yZXNvbHZlcl9lZmxfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BJRCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMp
Cit7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9S
RVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUob2JqZWN0KTsKKyAgICBTb3VwVVJJKiB1cmk7CisKKyAg
ICBzd2l0Y2ggKHByb3BJRCkgeworICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAgICAgIHVy
aSA9IHN0YXRpY19jYXN0PFNvdXBVUkkqPihnX3ZhbHVlX2dldF9ib3hlZCh2YWx1ZSkpOworICAg
ICAgICBpZiAocHJpdi0+cHJveHlVUkkpCisgICAgICAgICAgICBzb3VwX3VyaV9mcmVlKHByaXYt
PnByb3h5VVJJKTsKKworICAgICAgICBwcml2LT5wcm94eVVSSSA9IHVyaSA/IHNvdXBfdXJpX2Nv
cHkodXJpKSA6IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9OT19QUk9YWToKKyAg
ICAgICAgcHJpdi0+bm9Qcm94eSA9IGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSk7CisgICAgICAg
IHByaXYtPnByb3h5RXhjZXB0aW9ucy5jbGVhcigpOworICAgICAgICBTdHJpbmc6OmZyb21VVEY4
KHByaXYtPm5vUHJveHkuZGF0YSgpKS5zcGxpdCgnLCcsIHByaXYtPnByb3h5RXhjZXB0aW9ucyk7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJRCwgcHNwZWMpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSUQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMq
IHBzcGVjKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJpdmF0ZSogcHJpdiA9IFNPVVBf
UFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKG9iamVjdCk7CisKKyAgICBzd2l0Y2ggKHBy
b3BJRCkgeworICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAgICAgIGdfdmFsdWVfc2V0X2Jv
eGVkKHZhbHVlLCBwcml2LT5wcm94eVVSSSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJP
UF9OT19QUk9YWToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5ub1By
b3h5LmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJRCwgcHNwZWMpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHNob3VsZEJ5cGFzc1Byb3h5KFNv
dXBQcm94eVJlc29sdmVyRWZsUHJpdmF0ZSogcHJpdiwgU291cFVSSSogdXJpKQoreworICAgIGNv
bnN0IHNpemVfdCBleGNlcHRpb25Db3VudCA9IHByaXYtPnByb3h5RXhjZXB0aW9ucy5zaXplKCk7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGNlcHRpb25Db3VudDsgKytpKSB7CisgICAg
ICAgIGlmIChTdHJpbmc6OmZyb21VVEY4KHVyaS0+aG9zdCkuZW5kc1dpdGgocHJpdi0+cHJveHlF
eGNlcHRpb25zW2ldLCBmYWxzZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBTb3VwUHJveHlV
UklSZXNvbHZlciogcHJveHlSZXNvbHZlcjsKKyAgICBTb3VwVVJJKiB1cmk7CisgICAgU291cFBy
b3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjazsKKyAgICBncG9pbnRlciB1c2VyRGF0YTsK
K30gU291cEVmbEFzeW5jRGF0YTsKKworc3RhdGljIGdib29sZWFuIGlkbGVfcmV0dXJuX3Byb3h5
X3VyaSh2b2lkKiBkYXRhKQoreworICAgIFNvdXBFZmxBc3luY0RhdGEqIHNzYWQgPSBzdGF0aWNf
Y2FzdDxTb3VwRWZsQXN5bmNEYXRhKj4oZGF0YSk7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQ
cml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUoc3NhZC0+
cHJveHlSZXNvbHZlcik7CisKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IDA7CisgICAgaWYgKCFz
aG91bGRCeXBhc3NQcm94eShwcml2LCBzc2FkLT51cmkpKQorICAgICAgICBwcm94eVVSSSA9IHBy
aXYtPnByb3h5VVJJOworCisgICAgc3NhZC0+Y2FsbGJhY2soc3NhZC0+cHJveHlSZXNvbHZlciwg
U09VUF9TVEFUVVNfT0ssIHByb3h5VVJJLCBzc2FkLT51c2VyRGF0YSk7CisgICAgZ19vYmplY3Rf
dW5yZWYoc3NhZC0+cHJveHlSZXNvbHZlcik7CisgICAgc291cF91cmlfZnJlZShzc2FkLT51cmkp
OworICAgIGdfc2xpY2VfZnJlZShTb3VwRWZsQXN5bmNEYXRhLCBzc2FkKTsKKworICAgIHJldHVy
biBGQUxTRTsKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVS
SUFzeW5jKFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmks
IEdNYWluQ29udGV4dCogYXN5bmNDb250ZXh0LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBT
b3VwUHJveHlVUklSZXNvbHZlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKK3sK
KyAgICBTb3VwRWZsQXN5bmNEYXRhKiBzc2FkOworCisgICAgc3NhZCA9IGdfc2xpY2VfbmV3MChT
b3VwRWZsQXN5bmNEYXRhKTsKKyAgICBzc2FkLT5wcm94eVJlc29sdmVyID0gU09VUF9QUk9YWV9V
UklfUkVTT0xWRVIoZ19vYmplY3RfcmVmKHByb3h5UmVzb2x2ZXIpKTsKKyAgICBzc2FkLT51cmkg
PSBzb3VwX3VyaV9jb3B5KHVyaSk7CisgICAgc3NhZC0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKKyAg
ICBzc2FkLT51c2VyRGF0YSA9IHVzZXJEYXRhOworICAgIHNvdXBfYWRkX2NvbXBsZXRpb24oYXN5
bmNDb250ZXh0LCBpZGxlX3JldHVybl9wcm94eV91cmksIHNzYWQpOworfQorCitzdGF0aWMgZ3Vp
bnQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVzb2x2
ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJs
ZSwgU291cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJpdmF0
ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHByb3h5UmVzb2x2
ZXIpOworCisgICAgaWYgKCFzaG91bGRCeXBhc3NQcm94eShwcml2LCB1cmkpKQorICAgICAgICAq
cHJveHlVUkkgPSBzb3VwX3VyaV9jb3B5KHByaXYtPnByb3h5VVJJKTsKKworICAgIHJldHVybiBT
T1VQX1NUQVRVU19PSzsKK30KKworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl9lZmxf
Y2xhc3NfaW5pdChTb3VwUHJveHlSZXNvbHZlckVmbENsYXNzKiBlZmxDbGFzcykKK3sKKyAgICBH
T2JqZWN0Q2xhc3MqIG9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGVmbENsYXNzKTsKKwor
ICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShlZmxDbGFzcywgc2l6ZW9mKFNvdXBQcm94eVJl
c29sdmVyRWZsUHJpdmF0ZSkpOworCisgICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBz
b3VwUHJveHlSZXNvbHZlckVmbFNldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0X3By
b3BlcnR5ID0gc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RfY2xh
c3MtPmZpbmFsaXplID0gc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZTsKKworICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX1BST1hZX1VSSSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hlZChT
T1VQX1BST1hZX1JFU09MVkVSX0VGTF9QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQIFBy
b3h5IHRvIHVzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU09VUF9UWVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJB
TV9SRUFEV1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9i
amVjdF9jbGFzcywgUFJPUF9OT19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJP
WFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlByb3h5IGV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDb21tYS1zZXBhcmF0ZWQgcHJveHkgZXhjZXB0aW9ucyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUpKSk7Cit9CisKK3N0
YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KFNvdXBQcm94
eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eV91cmlfcmVzb2x2ZXJfaW50ZXJmYWNlKQorewor
ICAgIHByb3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZhY2UtPmdldF9wcm94eV91cmlfYXN5bmMgPSBz
b3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJQXN5bmM7CisgICAgcHJveHlfdXJpX3Jlc29s
dmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0gc291cFByb3h5UmVzb2x2ZXJFZmxH
ZXRQcm94eVVSSVN5bmM7Cit9CisKK1NvdXBQcm94eVVSSVJlc29sdmVyKiBzb3VwUHJveHlSZXNv
bHZlckVmbE5ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNvbnN0IGNoYXIqIG5vUHJveHkpCit7
CisgICAgU291cFVSSSogcHJveHlVUkkgPSBzb3VwX3VyaV9uZXcoaHR0cFByb3h5KTsKKyAgICBT
b3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXIgPSBTT1VQX1BST1hZX1VSSV9SRVNPTFZFUihn
X29iamVjdF9uZXcoU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfUFJPWFlfVVJJLCBwcm94eVVSSSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJPWFksIG5vUHJveHksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDApKTsKKyAgICBzb3VwX3VyaV9mcmVlKHByb3h5VVJJKTsKKworICAgIHJl
dHVybiByZXNvbHZlcjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
ZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Vm
bC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjFkODIzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgU291cFByb3h5UmVzb2x2ZXJFZmxfaAorI2RlZmluZSBTb3VwUHJv
eHlSZXNvbHZlckVmbF9oCisKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtcHJveHktdXJpLXJlc29s
dmVyLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLXVyaS5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCAgICAgICAgICAgICAgIChzb3Vw
X3Byb3h5X3Jlc29sdmVyX2VmbF9nZXRfdHlwZSAoKSkKKyNkZWZpbmUgU09VUF9QUk9YWV9SRVNP
TFZFUl9FRkwob2JqZWN0KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAo
KG9iamVjdCksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9FRkwsIFNvdXBQcm94eVJlc29sdmVy
RWZsKSkKKyNkZWZpbmUgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfQ0xBU1Moa2xhc3MpICAgICAg
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgU09VUF9UWVBFX1BST1hZX1JFU09M
VkVSX0VGTCwgU291cFByb3h5UmVzb2x2ZXJFZmxDbGFzcykpCisjZGVmaW5lIFNPVVBfSVNfUFJP
WFlfUkVTT0xWRVJfRUZMKG9iamVjdCkgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZ
UEUgKChvYmplY3QpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMKSkKKyNkZWZpbmUgU09V
UF9JU19QUk9YWV9SRVNPTFZFUl9FRkxfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSAoKGtsYXNzKSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCkpCisjZGVmaW5l
IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9DTEFTUyhvYmopICAgICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUyAoKG9iaiksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9FRkwsIFNvdXBQ
cm94eVJlc29sdmVyRWZsQ2xhc3MpKQorCitzdGF0aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JF
U09MVkVSX0VGTF9QUk9YWV9VUklbXSA9ICJwcm94eS11cmkiOworc3RhdGljIGNvbnN0IGNoYXIg
U09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJPWFlbXSA9ICJuby1wcm94eSI7CisKK3R5cGVk
ZWYgc3RydWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKK30gU291cFByb3h5UmVzb2x2ZXJFZmw7
CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfSBT
b3VwUHJveHlSZXNvbHZlckVmbENsYXNzOworCitHVHlwZSBzb3VwX3Byb3h5X3Jlc29sdmVyX2Vm
bF9nZXRfdHlwZSh2b2lkKTsKKworU291cFByb3h5VVJJUmVzb2x2ZXIqIHNvdXBQcm94eVJlc29s
dmVyRWZsTmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3QgY2hhciogbm9Qcm94eSk7CisK
K0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvLyBTb3VwUHJveHlSZXNvbHZlckVmbF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5k
ZXggOTJkMzUxNi4uYjQzN2ZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluRWZsLmgiCiAKKyNpbmNsdWRlICJT
b3VwUHJveHlSZXNvbHZlckVmbC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVj
b3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNjcsMTEgKzY4
LDEyIEBAIFdLX0VYUE9SVCBpbnQgV2ViUHJvY2Vzc01haW5FZmwoaW50IGFyZ2MsIGNoYXIqIGFy
Z3ZbXSkKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIFNvdXBT
ZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9u
KCk7Ci0gICAgY29uc3QgY2hhciogaHR0cFByb3h5ID0gZ19nZXRlbnYoImh0dHBfcHJveHkiKTsK
KyAgICBjb25zdCBjaGFyKiBodHRwUHJveHkgPSBnZXRlbnYoImh0dHBfcHJveHkiKTsKICAgICBp
ZiAoaHR0cFByb3h5KSB7Ci0gICAgICAgIFNvdXBVUkkqIHByb3h5VXJpID0gc291cF91cmlfbmV3
KGh0dHBQcm94eSk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLCBTT1VQX1NFU1NJT05f
UFJPWFlfVVJJLCBwcm94eVVyaSwgTlVMTCk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUocHJveHlV
cmkpOworICAgICAgICBjb25zdCBjaGFyKiBub1Byb3h5ID0gZ2V0ZW52KCJub19wcm94eSIpOwor
ICAgICAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlSZXNv
bHZlckVmbE5ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25fYWRk
X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAg
ICAgICAgZ19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBzb2Nr
ZXQgPSBhdG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGIxNjNjYmEuLmM3MjlmODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0yMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZp
cm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYXJrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsLyBhcyBmb2xsb3dpbmcg
RUZMIHN0eWxlIGluCisgICAgICAgIHN0eWxlIGNoZWNrZXIgdG8gYXZvaWQgd2FybmluZ3MuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisKIDIwMTItMDct
MTkgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gW1dLMl0gQWRkIG1ldGhvZHMgdG8gZ2V0L3NldCBhIGN1c3Rv
bSB0ZXh0IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5k
ZXggNDJhYjcxNS4uMDE2MmMwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
ci5weQpAQCAtMTkwLDcgKzE5MCw4IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAg
ICMgYm90aCBsb3dlci1jYXNlZCBhbmQgY2FtZWwtY2FzZWQsIHVuZGVyc2NvcmUtc3BhcmF0ZWQK
ICAgICAgICMgdmFsdWVzLgogICAgICAgIlNvdXJjZS9XZWJLaXQvZWZsL2V3ay8iLAotICAgICAg
IlNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsLyJdLAorICAgICAgIlNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsLyIsCisgICAgICAiU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9lZmwvIl0sCiAgICAgIFsiLXJlYWRhYmlsaXR5L25hbWluZyIsCiAgICAgICAiLXJlYWRhYmls
aXR5L3BhcmFtZXRlcl9uYW1lIl0pLAogICAgIChbIyBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93
c2VyIGFyZSBFRkwgc2ltcGxlIGFwcGxpY2F0aW9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153446</attachid>
            <date>2012-07-20 01:32:15 -0700</date>
            <delta_ts>2012-07-20 02:10:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>16328</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyN2RmNTBhLi4wY2FkMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgRUZMIHBvcnQKKyAgICAgICAgYW5kIGFzayB0aGUgU291cFNlc3Npb24gdG8gdXNl
IGl0LiBUaGlzIGN1c3RvbQorICAgICAgICByZXNvbHZlciB0YWtlcyBpbnRvIGFjY291bnQgdGhl
ICJub19wcm94eSIKKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdCB0aGUgY2xp
ZW50IGNhbiBzZXQKKyAgICAgICAgZXhjZXB0aW9ucyBmb3IgdGhlIHByb3h5LgorCisgICAgICAg
IFlvdSBjYW4gbm93IGJ5cGFzcyB0aGUgcHJveHkgZm9yIGxvY2FsaG9zdCBieQorICAgICAgICBk
b2luZzogZXhwb3J0IG5vX3Byb3h5PSJsb2NhbGhvc3QsMTI3LjAuMC4xIi4KKworICAgICAgICAq
IFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFdlYlByb2Nlc3MvZWZsL1NvdXBQcm94eVJl
c29sdmVyRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9p
bml0KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsRmluYWxpemUpOgorICAgICAgICAo
c291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eSk6CisgICAgICAgIChzb3VwUHJveHlSZXNv
bHZlckVmbEdldFByb3BlcnR5KToKKyAgICAgICAgKHNob3VsZEJ5cGFzc1Byb3h5KToKKyAgICAg
ICAgKGlkbGVfcmV0dXJuX3Byb3h5X3VyaSk6CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlckVm
bEdldFByb3h5VVJJQXN5bmMpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94
eVVSSVN5bmMpOgorICAgICAgICAoc291cF9wcm94eV9yZXNvbHZlcl9lZmxfY2xhc3NfaW5pdCk6
CisgICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZhY2VfaW5pdCk6CisgICAg
ICAgIChzb3VwUHJveHlSZXNvbHZlckVmbE5ldyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwv
U291cFByb3h5UmVzb2x2ZXJFZmwuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwv
V2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVm
bCk6CisKIDIwMTItMDctMTkgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVu
aUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW1dLMl0gQWRkIG1ldGhvZHMgdG8g
Z2V0L3NldCBhIGN1c3RvbSB0ZXh0IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IDk3ZjcwOTUuLmFiYWNkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03NCw2
ICs3NCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvRG93
bmxvYWRzL2VmbC9Eb3dubG9hZFNvdXBFcnJvcnNFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9Eb3du
bG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAKKyAgICBXZWJQcm9jZXNzL2VmbC9Tb3VwUHJv
eHlSZXNvbHZlckVmbC5jcHAKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAog
ICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMyZGMzYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmNw
cApAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNvdXBQcm94eVJlc29sdmVyRWZsLmgiCisKKyNpbmNsdWRlIDxsaWJz
b3VwL3NvdXAuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291cFVSSSogcHJveHlVUkk7CisgICAg
Q1N0cmluZyBub1Byb3h5OworICAgIFZlY3RvcjxTdHJpbmc+IHByb3h5RXhjZXB0aW9uczsKK30g
U291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlOworCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xW
RVJfRUZMX0dFVF9QUklWQVRFKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG8pLCBT
T1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUp
KQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZhY2VfaW5pdChT
b3VwUHJveHlVUklSZXNvbHZlckludGVyZmFjZSogcHJveHlSZXNvbHZlckludGVyZmFjZSk7CisK
K0dfREVGSU5FX1RZUEVfRVhURU5ERUQoU291cFByb3h5UmVzb2x2ZXJFZmwsIHNvdXBfcHJveHlf
cmVzb2x2ZXJfZWZsLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAgICAgICAgICAgICAgICAgICBH
X0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwgMCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQRV9QUk9YWV9V
UklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KSkKKwor
ZW51bSB7CisgICAgUFJPUF8wLAorICAgIFBST1BfUFJPWFlfVVJJLAorICAgIFBST1BfTk9fUFJP
WFksCisgICAgTEFTVF9QUk9QCit9OworCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVy
X2VmbF9pbml0KFNvdXBQcm94eVJlc29sdmVyRWZsKiByZXNvbHZlckVmbCkKK3sKK30KKworc3Rh
dGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNP
TFZFUl9FRkxfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIGdfY2xlYXJfcG9pbnRlcigmcHJp
di0+cHJveHlVUkksIHNvdXBfdXJpX2ZyZWUpOworCisgICAgR19PQkpFQ1RfQ0xBU1Moc291cF9w
cm94eV9yZXNvbHZlcl9lZmxfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykK
K3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYgPSBTT1VQX1BST1hZX1JF
U09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworICAgIFNvdXBVUkkqIHVyaTsKKworICAg
IHN3aXRjaCAocHJvcElEKSB7CisgICAgY2FzZSBQUk9QX1BST1hZX1VSSToKKyAgICAgICAgdXJp
ID0gc3RhdGljX2Nhc3Q8U291cFVSSSo+KGdfdmFsdWVfZ2V0X2JveGVkKHZhbHVlKSk7CisgICAg
ICAgIGlmIChwcml2LT5wcm94eVVSSSkKKyAgICAgICAgICAgIHNvdXBfdXJpX2ZyZWUocHJpdi0+
cHJveHlVUkkpOworCisgICAgICAgIHByaXYtPnByb3h5VVJJID0gdXJpID8gc291cF91cmlfY29w
eSh1cmkpIDogMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX05PX1BST1hZOgorICAg
ICAgICBwcml2LT5ub1Byb3h5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKKyAgICAgICAg
cHJpdi0+cHJveHlFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgICAgIFN0cmluZzo6ZnJvbVVURjgo
cHJpdi0+bm9Qcm94eS5kYXRhKCkpLnNwbGl0KCcsJywgcHJpdi0+cHJveHlFeGNlcHRpb25zKTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZB
TElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElELCBwc3BlYyk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBw
c3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYgPSBTT1VQX1BS
T1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgc3dpdGNoIChwcm9w
SUQpIHsKKyAgICBjYXNlIFBST1BfUFJPWFlfVVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9ib3hl
ZCh2YWx1ZSwgcHJpdi0+cHJveHlVUkkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1Bf
Tk9fUFJPWFk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJpdi0+bm9Qcm94
eS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBzaG91bGRCeXBhc3NQcm94eShTb3Vw
UHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYsIFNvdXBVUkkqIHVyaSkKK3sKKyAgICBjb25z
dCBzaXplX3QgZXhjZXB0aW9uQ291bnQgPSBwcml2LT5wcm94eUV4Y2VwdGlvbnMuc2l6ZSgpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhjZXB0aW9uQ291bnQ7ICsraSkgeworICAgICAg
ICBpZiAoU3RyaW5nOjpmcm9tVVRGOCh1cmktPmhvc3QpLmVuZHNXaXRoKHByaXYtPnByb3h5RXhj
ZXB0aW9uc1tpXSwgZmFsc2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291cFByb3h5VVJJ
UmVzb2x2ZXIqIHByb3h5UmVzb2x2ZXI7CisgICAgU291cFVSSSogdXJpOworICAgIFNvdXBQcm94
eVVSSVJlc29sdmVyQ2FsbGJhY2sgY2FsbGJhY2s7CisgICAgdm9pZCogdXNlckRhdGE7Cit9IFNv
dXBFZmxBc3luY0RhdGE7CisKK3N0YXRpYyBnYm9vbGVhbiBpZGxlX3JldHVybl9wcm94eV91cmko
dm9pZCogZGF0YSkKK3sKKyAgICBTb3VwRWZsQXN5bmNEYXRhKiBzc2FkID0gc3RhdGljX2Nhc3Q8
U291cEVmbEFzeW5jRGF0YSo+KGRhdGEpOworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJpdmF0
ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHNzYWQtPnByb3h5
UmVzb2x2ZXIpOworCisgICAgU291cFVSSSogcHJveHlVUkkgPSAwOworICAgIGlmICghc2hvdWxk
QnlwYXNzUHJveHkocHJpdiwgc3NhZC0+dXJpKSkKKyAgICAgICAgcHJveHlVUkkgPSBwcml2LT5w
cm94eVVSSTsKKworICAgIHNzYWQtPmNhbGxiYWNrKHNzYWQtPnByb3h5UmVzb2x2ZXIsIFNPVVBf
U1RBVFVTX09LLCBwcm94eVVSSSwgc3NhZC0+dXNlckRhdGEpOworICAgIGdfb2JqZWN0X3VucmVm
KHNzYWQtPnByb3h5UmVzb2x2ZXIpOworICAgIHNvdXBfdXJpX2ZyZWUoc3NhZC0+dXJpKTsKKyAg
ICBnX3NsaWNlX2ZyZWUoU291cEVmbEFzeW5jRGF0YSwgc3NhZCk7CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJveHlVUklBc3lu
YyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSogdXJpLCBHTWFp
bkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291cFBy
b3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCit7CisgICAg
U291cEVmbEFzeW5jRGF0YSogc3NhZDsKKworICAgIHNzYWQgPSBnX3NsaWNlX25ldzAoU291cEVm
bEFzeW5jRGF0YSk7CisgICAgc3NhZC0+cHJveHlSZXNvbHZlciA9IFNPVVBfUFJPWFlfVVJJX1JF
U09MVkVSKGdfb2JqZWN0X3JlZihwcm94eVJlc29sdmVyKSk7CisgICAgc3NhZC0+dXJpID0gc291
cF91cmlfY29weSh1cmkpOworICAgIHNzYWQtPmNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgc3Nh
ZC0+dXNlckRhdGEgPSB1c2VyRGF0YTsKKyAgICBzb3VwX2FkZF9jb21wbGV0aW9uKGFzeW5jQ29u
dGV4dCwgaWRsZV9yZXR1cm5fcHJveHlfdXJpLCBzc2FkKTsKK30KKworc3RhdGljIHVpbnQgc291
cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHBy
b3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291
cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJpdmF0ZSogcHJp
diA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHByb3h5UmVzb2x2ZXIpOwor
CisgICAgaWYgKCFzaG91bGRCeXBhc3NQcm94eShwcml2LCB1cmkpKQorICAgICAgICAqcHJveHlV
UkkgPSBzb3VwX3VyaV9jb3B5KHByaXYtPnByb3h5VVJJKTsKKworICAgIHJldHVybiBTT1VQX1NU
QVRVU19PSzsKK30KKworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl9lZmxfY2xhc3Nf
aW5pdChTb3VwUHJveHlSZXNvbHZlckVmbENsYXNzKiBlZmxDbGFzcykKK3sKKyAgICBHT2JqZWN0
Q2xhc3MqIG9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGVmbENsYXNzKTsKKworICAgIGdf
dHlwZV9jbGFzc19hZGRfcHJpdmF0ZShlZmxDbGFzcywgc2l6ZW9mKFNvdXBQcm94eVJlc29sdmVy
RWZsUHJpdmF0ZSkpOworCisgICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBzb3VwUHJv
eHlSZXNvbHZlckVmbFNldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5
ID0gc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RfY2xhc3MtPmZp
bmFsaXplID0gc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZTsKKworICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX1BST1hZX1VSSSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hlZChTT1VQX1BS
T1hZX1JFU09MVkVSX0VGTF9QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQIFByb3h5IHRv
IHVzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU09VUF9UWVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFE
V1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9j
bGFzcywgUFJPUF9OT19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJPWFksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBy
b3h5IGV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJDb21tYS1zZXBhcmF0ZWQgcHJveHkgZXhjZXB0aW9ucyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUpKSk7Cit9CisKK3N0YXRpYyB2
b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJl
c29sdmVySW50ZXJmYWNlKiBwcm94eV91cmlfcmVzb2x2ZXJfaW50ZXJmYWNlKQoreworICAgIHBy
b3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZhY2UtPmdldF9wcm94eV91cmlfYXN5bmMgPSBzb3VwUHJv
eHlSZXNvbHZlckVmbEdldFByb3h5VVJJQXN5bmM7CisgICAgcHJveHlfdXJpX3Jlc29sdmVyX2lu
dGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0gc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94
eVVSSVN5bmM7Cit9CisKK1NvdXBQcm94eVVSSVJlc29sdmVyKiBzb3VwUHJveHlSZXNvbHZlckVm
bE5ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNvbnN0IGNoYXIqIG5vUHJveHkpCit7CisgICAg
U291cFVSSSogcHJveHlVUkkgPSBzb3VwX3VyaV9uZXcoaHR0cFByb3h5KTsKKyAgICBTb3VwUHJv
eHlVUklSZXNvbHZlciogcmVzb2x2ZXIgPSBTT1VQX1BST1hZX1VSSV9SRVNPTFZFUihnX29iamVj
dF9uZXcoU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09V
UF9QUk9YWV9SRVNPTFZFUl9FRkxfUFJPWFlfVVJJLCBwcm94eVVSSSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJPWFksIG5vUHJveHksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDApKTsKKyAgICBzb3VwX3VyaV9mcmVlKHByb3h5VVJJKTsKKworICAgIHJldHVybiBy
ZXNvbHZlcjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1Nv
dXBQcm94eVJlc29sdmVyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9Tb3Vw
UHJveHlSZXNvbHZlckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFk
ODIzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9T
b3VwUHJveHlSZXNvbHZlckVmbC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgU291cFByb3h5UmVzb2x2ZXJFZmxfaAorI2RlZmluZSBTb3VwUHJveHlSZXNv
bHZlckVmbF9oCisKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtcHJveHktdXJpLXJlc29sdmVyLmg+
CisjaW5jbHVkZSA8bGlic291cC9zb3VwLXVyaS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCAgICAgICAgICAgICAgIChzb3VwX3Byb3h5
X3Jlc29sdmVyX2VmbF9nZXRfdHlwZSAoKSkKKyNkZWZpbmUgU09VUF9QUk9YWV9SRVNPTFZFUl9F
Rkwob2JqZWN0KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iamVj
dCksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9FRkwsIFNvdXBQcm94eVJlc29sdmVyRWZsKSkK
KyNkZWZpbmUgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfQ0xBU1Moa2xhc3MpICAgICAgIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VG
TCwgU291cFByb3h5UmVzb2x2ZXJFZmxDbGFzcykpCisjZGVmaW5lIFNPVVBfSVNfUFJPWFlfUkVT
T0xWRVJfRUZMKG9iamVjdCkgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChv
YmplY3QpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMKSkKKyNkZWZpbmUgU09VUF9JU19Q
Uk9YWV9SRVNPTFZFUl9FRkxfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQ
RSAoKGtsYXNzKSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCkpCisjZGVmaW5lIFNPVVBf
UFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9DTEFTUyhvYmopICAgICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUyAoKG9iaiksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9FRkwsIFNvdXBQcm94eVJl
c29sdmVyRWZsQ2xhc3MpKQorCitzdGF0aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVS
X0VGTF9QUk9YWV9VUklbXSA9ICJwcm94eS11cmkiOworc3RhdGljIGNvbnN0IGNoYXIgU09VUF9Q
Uk9YWV9SRVNPTFZFUl9FRkxfTk9fUFJPWFlbXSA9ICJuby1wcm94eSI7CisKK3R5cGVkZWYgc3Ry
dWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKK30gU291cFByb3h5UmVzb2x2ZXJFZmw7CisKK3R5
cGVkZWYgc3RydWN0IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfSBTb3VwUHJv
eHlSZXNvbHZlckVmbENsYXNzOworCitHVHlwZSBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9nZXRf
dHlwZSh2b2lkKTsKKworU291cFByb3h5VVJJUmVzb2x2ZXIqIHNvdXBQcm94eVJlc29sdmVyRWZs
TmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3QgY2hhciogbm9Qcm94eSk7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZiAvLyBTb3VwUHJveHlSZXNvbHZlckVmbF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5kZXggOTJk
MzUxNi4uYjQzN2ZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwv
V2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluRWZsLmgiCiAKKyNpbmNsdWRlICJTb3VwUHJv
eHlSZXNvbHZlckVmbC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVjb3JlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNjcsMTEgKzY4LDEyIEBA
IFdLX0VYUE9SVCBpbnQgV2ViUHJvY2Vzc01haW5FZmwoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIFNvdXBTZXNzaW9u
KiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0g
ICAgY29uc3QgY2hhciogaHR0cFByb3h5ID0gZ19nZXRlbnYoImh0dHBfcHJveHkiKTsKKyAgICBj
b25zdCBjaGFyKiBodHRwUHJveHkgPSBnZXRlbnYoImh0dHBfcHJveHkiKTsKICAgICBpZiAoaHR0
cFByb3h5KSB7Ci0gICAgICAgIFNvdXBVUkkqIHByb3h5VXJpID0gc291cF91cmlfbmV3KGh0dHBQ
cm94eSk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLCBTT1VQX1NFU1NJT05fUFJPWFlf
VVJJLCBwcm94eVVyaSwgTlVMTCk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUocHJveHlVcmkpOwor
ICAgICAgICBjb25zdCBjaGFyKiBub1Byb3h5ID0gZ2V0ZW52KCJub19wcm94eSIpOworICAgICAg
ICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlSZXNvbHZlckVm
bE5ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1
cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICAgICAg
Z19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBzb2NrZXQgPSBh
dG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGIxNjNjYmEuLmM3MjlmODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxd
IFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVu
dCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYXJrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsLyBhcyBmb2xsb3dpbmcgRUZMIHN0
eWxlIGluCisgICAgICAgIHN0eWxlIGNoZWNrZXIgdG8gYXZvaWQgd2FybmluZ3MuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisKIDIwMTItMDctMTkgIFN1
ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF0gW1dLMl0gQWRkIG1ldGhvZHMgdG8gZ2V0L3NldCBhIGN1c3RvbSB0ZXh0
IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggNDJh
YjcxNS4uMDE2MmMwMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpA
QCAtMTkwLDcgKzE5MCw4IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAgICMgYm90
aCBsb3dlci1jYXNlZCBhbmQgY2FtZWwtY2FzZWQsIHVuZGVyc2NvcmUtc3BhcmF0ZWQKICAgICAg
ICMgdmFsdWVzLgogICAgICAgIlNvdXJjZS9XZWJLaXQvZWZsL2V3ay8iLAotICAgICAgIlNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsLyJdLAorICAgICAgIlNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsLyIsCisgICAgICAiU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwv
Il0sCiAgICAgIFsiLXJlYWRhYmlsaXR5L25hbWluZyIsCiAgICAgICAiLXJlYWRhYmlsaXR5L3Bh
cmFtZXRlcl9uYW1lIl0pLAogICAgIChbIyBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2VyIGFy
ZSBFRkwgc2ltcGxlIGFwcGxpY2F0aW9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153452</attachid>
            <date>2012-07-20 02:10:09 -0700</date>
            <delta_ts>2012-07-20 02:26:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>18651</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzI1NDBlLi5jMWNjNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgRUZMIHBvcnQKKyAgICAgICAgYW5kIGFzayB0aGUgU291cFNlc3Npb24gdG8gdXNl
IGl0LiBUaGlzIGN1c3RvbQorICAgICAgICByZXNvbHZlciB0YWtlcyBpbnRvIGFjY291bnQgdGhl
ICJub19wcm94eSIKKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdCB0aGUgY2xp
ZW50IGNhbiBzZXQKKyAgICAgICAgZXhjZXB0aW9ucyBmb3IgdGhlIHByb3h5LgorCisgICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBwcm94eSBpcyBub3QgdXNlZCBmb3IgbG9jYWxob3N0IGFuZAorICAg
ICAgICAxMjcuMC4wLjEuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2UgZm9yIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2luaXQpOgorICAgICAg
ICAoc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZSk6CisgICAgICAgIChzb3VwUHJveHlSZXNv
bHZlckVmbFNldFByb3BlcnR5KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJv
cGVydHkpOgorICAgICAgICAoc2hvdWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1
cm5fcHJveHlfdXJpKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJveHlVUklB
c3luYyk6CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJU3luYyk6Cisg
ICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9jbGFzc19pbml0KToKKyAgICAgICAgKHNv
dXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHNvdXBQcm94
eVJlc29sdmVyRWZsTmV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1Nv
dXBQcm94eVJlc29sdmVyRWZsLmg6IEFkZGVkLgorCiAyMDEyLTA3LTE5ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIEFUU1VJLWJhc2VkIGNvbXBsZXggdGV4
dCBjb2RlIGlzIHVudXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTUwZGRkLi44
YTBlNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTEsNiArMTEsNyBAQCBMSVNU
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2xpbnV4IgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyIgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbCIKICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3RleHQvZWZsIgogICAiJHtXRUJDT1JFX0RJUn0vcGx1Z2lucy9lZmwiCiAgICIk
e1dFQktJVF9ESVJ9L2VmbC9XZWJDb3JlU3VwcG9ydCIKQEAgLTkxLDYgKzkyLDcgQEAgTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
c3BvbnNlU291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRs
ZVNvdXAuY3BwCiAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCisgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuY3BwCiAgIHBsYXRm
b3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAgcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcAogICBwbGF0Zm9ybS90ZXh0L2VmbC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wMjdmZGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAK
QEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTb3VwUHJveHlSZXNvbHZlckVmbC5oIgorCisjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdE5vUHJveHlWYWx1ZVtdID0gImxvY2Fs
aG9zdCwxMjcuMC4wLjEiOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291cFVSSSogcHJveHlV
Ukk7CisgICAgQ1N0cmluZyBub1Byb3h5OworICAgIFZlY3RvcjxTdHJpbmc+IHByb3h5RXhjZXB0
aW9uczsKK30gU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlOworCisjZGVmaW5lIFNPVVBfUFJP
WFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoKG8pLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVm
bFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZh
Y2VfaW5pdChTb3VwUHJveHlVUklSZXNvbHZlckludGVyZmFjZSogcHJveHlSZXNvbHZlckludGVy
ZmFjZSk7CisKK0dfREVGSU5FX1RZUEVfRVhURU5ERUQoU291cFByb3h5UmVzb2x2ZXJFZmwsIHNv
dXBfcHJveHlfcmVzb2x2ZXJfZWZsLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwg
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQ
RV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9p
bml0KSkKKworZW51bSB7CisgICAgUFJPUF8wLAorICAgIFBST1BfUFJPWFlfVVJJLAorICAgIFBS
T1BfTk9fUFJPWFksCisgICAgTEFTVF9QUk9QCit9OworCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5
X3Jlc29sdmVyX2VmbF9pbml0KFNvdXBQcm94eVJlc29sdmVyRWZsKiByZXNvbHZlckVmbCkKK3sK
K30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZShHT2JqZWN0KiBv
YmplY3QpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09VUF9Q
Uk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIGdfY2xlYXJfcG9p
bnRlcigmcHJpdi0+cHJveHlVUkksIHNvdXBfdXJpX2ZyZWUpOworCisgICAgR19PQkpFQ1RfQ0xB
U1Moc291cF9wcm94eV9yZXNvbHZlcl9lZmxfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0
KTsKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYgPSBTT1VQ
X1BST1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworICAgIFNvdXBVUkkqIHVy
aTsKKworICAgIHN3aXRjaCAocHJvcElEKSB7CisgICAgY2FzZSBQUk9QX1BST1hZX1VSSToKKyAg
ICAgICAgdXJpID0gc3RhdGljX2Nhc3Q8U291cFVSSSo+KGdfdmFsdWVfZ2V0X2JveGVkKHZhbHVl
KSk7CisgICAgICAgIGlmIChwcml2LT5wcm94eVVSSSkKKyAgICAgICAgICAgIHNvdXBfdXJpX2Zy
ZWUocHJpdi0+cHJveHlVUkkpOworCisgICAgICAgIHByaXYtPnByb3h5VVJJID0gdXJpID8gc291
cF91cmlfY29weSh1cmkpIDogMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX05PX1BS
T1hZOgorICAgICAgICBwcml2LT5ub1Byb3h5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsK
KyAgICAgICAgcHJpdi0+cHJveHlFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgICAgIFN0cmluZzo6
ZnJvbVVURjgocHJpdi0+bm9Qcm94eS5kYXRhKCkpLnNwbGl0KCcsJywgcHJpdi0+cHJveHlFeGNl
cHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElELCBwc3BlYyk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBHVmFsdWUqIHZhbHVlLCBHUGFy
YW1TcGVjKiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYg
PSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgc3dp
dGNoIChwcm9wSUQpIHsKKyAgICBjYXNlIFBST1BfUFJPWFlfVVJJOgorICAgICAgICBnX3ZhbHVl
X3NldF9ib3hlZCh2YWx1ZSwgcHJpdi0+cHJveHlVUkkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfTk9fUFJPWFk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJp
di0+bm9Qcm94eS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVj
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBzaG91bGRCeXBhc3NQ
cm94eShTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYsIFNvdXBVUkkqIHVyaSkKK3sK
KyAgICBjb25zdCBzaXplX3QgZXhjZXB0aW9uQ291bnQgPSBwcml2LT5wcm94eUV4Y2VwdGlvbnMu
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhjZXB0aW9uQ291bnQ7ICsraSkg
eworICAgICAgICBpZiAoU3RyaW5nOjpmcm9tVVRGOCh1cmktPmhvc3QpLmVuZHNXaXRoKHByaXYt
PnByb3h5RXhjZXB0aW9uc1tpXSwgZmFsc2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291
cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5UmVzb2x2ZXI7CisgICAgU291cFVSSSogdXJpOworICAg
IFNvdXBQcm94eVVSSVJlc29sdmVyQ2FsbGJhY2sgY2FsbGJhY2s7CisgICAgdm9pZCogdXNlckRh
dGE7Cit9IFNvdXBFZmxBc3luY0RhdGE7CisKK3N0YXRpYyBnYm9vbGVhbiBpZGxlX3JldHVybl9w
cm94eV91cmkodm9pZCogZGF0YSkKK3sKKyAgICBTb3VwRWZsQXN5bmNEYXRhKiBzc2FkID0gc3Rh
dGljX2Nhc3Q8U291cEVmbEFzeW5jRGF0YSo+KGRhdGEpOworICAgIFNvdXBQcm94eVJlc29sdmVy
RWZsUHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHNz
YWQtPnByb3h5UmVzb2x2ZXIpOworCisgICAgU291cFVSSSogcHJveHlVUkkgPSAwOworICAgIGlm
ICghc2hvdWxkQnlwYXNzUHJveHkocHJpdiwgc3NhZC0+dXJpKSkKKyAgICAgICAgcHJveHlVUkkg
PSBwcml2LT5wcm94eVVSSTsKKworICAgIHNzYWQtPmNhbGxiYWNrKHNzYWQtPnByb3h5UmVzb2x2
ZXIsIFNPVVBfU1RBVFVTX09LLCBwcm94eVVSSSwgc3NhZC0+dXNlckRhdGEpOworICAgIGdfb2Jq
ZWN0X3VucmVmKHNzYWQtPnByb3h5UmVzb2x2ZXIpOworICAgIHNvdXBfdXJpX2ZyZWUoc3NhZC0+
dXJpKTsKKyAgICBnX3NsaWNlX2ZyZWUoU291cEVmbEFzeW5jRGF0YSwgc3NhZCk7CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJv
eHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSog
dXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJs
ZSwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEp
Cit7CisgICAgU291cEVmbEFzeW5jRGF0YSogc3NhZDsKKworICAgIHNzYWQgPSBnX3NsaWNlX25l
dzAoU291cEVmbEFzeW5jRGF0YSk7CisgICAgc3NhZC0+cHJveHlSZXNvbHZlciA9IFNPVVBfUFJP
WFlfVVJJX1JFU09MVkVSKGdfb2JqZWN0X3JlZihwcm94eVJlc29sdmVyKSk7CisgICAgc3NhZC0+
dXJpID0gc291cF91cmlfY29weSh1cmkpOworICAgIHNzYWQtPmNhbGxiYWNrID0gY2FsbGJhY2s7
CisgICAgc3NhZC0+dXNlckRhdGEgPSB1c2VyRGF0YTsKKyAgICBzb3VwX2FkZF9jb21wbGV0aW9u
KGFzeW5jQ29udGV4dCwgaWRsZV9yZXR1cm5fcHJveHlfdXJpLCBzc2FkKTsKK30KKworc3RhdGlj
IHVpbnQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVz
b2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxs
YWJsZSwgU291cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJp
dmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHByb3h5UmVz
b2x2ZXIpOworCisgICAgaWYgKCFzaG91bGRCeXBhc3NQcm94eShwcml2LCB1cmkpKQorICAgICAg
ICAqcHJveHlVUkkgPSBzb3VwX3VyaV9jb3B5KHByaXYtPnByb3h5VVJJKTsKKworICAgIHJldHVy
biBTT1VQX1NUQVRVU19PSzsKK30KKworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl9l
ZmxfY2xhc3NfaW5pdChTb3VwUHJveHlSZXNvbHZlckVmbENsYXNzKiBlZmxDbGFzcykKK3sKKyAg
ICBHT2JqZWN0Q2xhc3MqIG9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGVmbENsYXNzKTsK
KworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShlZmxDbGFzcywgc2l6ZW9mKFNvdXBQcm94
eVJlc29sdmVyRWZsUHJpdmF0ZSkpOworCisgICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkg
PSBzb3VwUHJveHlSZXNvbHZlckVmbFNldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0
X3Byb3BlcnR5ID0gc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3Rf
Y2xhc3MtPmZpbmFsaXplID0gc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZTsKKworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX1BST1hZX1VS
SSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hl
ZChTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQ
IFByb3h5IHRvIHVzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU09VUF9UWVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19Q
QVJBTV9SRUFEV1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KG9iamVjdF9jbGFzcywgUFJPUF9OT19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9f
UFJPWFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlByb3h5IGV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tYS1zZXBhcmF0ZWQgcHJveHkgZXhjZXB0aW9u
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdE5vUHJveHlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9S
RUFEV1JJVEUpKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2lu
dGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eV91cmlfcmVz
b2x2ZXJfaW50ZXJmYWNlKQoreworICAgIHByb3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZhY2UtPmdl
dF9wcm94eV91cmlfYXN5bmMgPSBzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJQXN5bmM7
CisgICAgcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0g
c291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmM7Cit9CisKK1NvdXBQcm94eVVSSVJl
c29sdmVyKiBzb3VwUHJveHlSZXNvbHZlckVmbE5ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNv
bnN0IGNoYXIqIG5vUHJveHkpCit7CisgICAgU291cFVSSSogcHJveHlVUkkgPSBzb3VwX3VyaV9u
ZXcoaHR0cFByb3h5KTsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXIgPSBTT1VQ
X1BST1hZX1VSSV9SRVNPTFZFUihnX29iamVjdF9uZXcoU09VUF9UWVBFX1BST1hZX1JFU09MVkVS
X0VGTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfUFJPWFlfVVJJ
LCBwcm94eVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9f
UFJPWFksIG5vUHJveHkgPyBub1Byb3h5IDogZGVmYXVsdE5vUHJveHlWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCkpOworICAgIHNvdXBfdXJpX2ZyZWUocHJveHlVUkkpOworCisgICAgcmV0dXJu
IHJlc29sdmVyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkODIzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb3VwUHJveHlS
ZXNvbHZlckVmbF9oCisjZGVmaW5lIFNvdXBQcm94eVJlc29sdmVyRWZsX2gKKworI2luY2x1ZGUg
PGxpYnNvdXAvc291cC1wcm94eS11cmktcmVzb2x2ZXIuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAtdXJpLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBTT1VQX1RZUEVfUFJPWFlfUkVT
T0xWRVJfRUZMICAgICAgICAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2dldF90eXBl
ICgpKQorI2RlZmluZSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTChvYmplY3QpICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqZWN0KSwgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX0VGTCwgU291cFByb3h5UmVzb2x2ZXJFZmwpKQorI2RlZmluZSBTT1VQX1BST1hZX1JF
U09MVkVSX0VGTF9DTEFTUyhrbGFzcykgICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgo
a2xhc3MpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVm
bENsYXNzKSkKKyNkZWZpbmUgU09VUF9JU19QUk9YWV9SRVNPTFZFUl9FRkwob2JqZWN0KSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iamVjdCksIFNPVVBfVFlQRV9QUk9Y
WV9SRVNPTFZFUl9FRkwpKQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX0VGTF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3MpLCBTT1VQX1RZUEVf
UFJPWFlfUkVTT0xWRVJfRUZMKSkKKyNkZWZpbmUgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VU
X0NMQVNTKG9iaikgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwgU09VUF9U
WVBFX1BST1hZX1JFU09MVkVSX0VGTCwgU291cFByb3h5UmVzb2x2ZXJFZmxDbGFzcykpCisKK3N0
YXRpYyBjb25zdCBjaGFyIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX1BST1hZX1VSSVtdID0gInBy
b3h5LXVyaSI7CitzdGF0aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9OT19Q
Uk9YWVtdID0gIm5vLXByb3h5IjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdPYmplY3QgcGFy
ZW50OworfSBTb3VwUHJveHlSZXNvbHZlckVmbDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9IFNvdXBQcm94eVJlc29sdmVyRWZsQ2xhc3M7CisK
K0dUeXBlIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2dldF90eXBlKHZvaWQpOworCitTb3VwUHJv
eHlVUklSZXNvbHZlciogc291cFByb3h5UmVzb2x2ZXJFZmxOZXcoY29uc3QgY2hhciogaHR0cFBy
b3h5LCBjb25zdCBjaGFyKiBub1Byb3h5KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIFNv
dXBQcm94eVJlc29sdmVyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyN2RmNTBhLi41ZDFlZjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1
cmF0aW9uIHNob3VsZCBob25vciB0aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcg
Y3VzdG9tIHByb3h5IHJlc29sdmVyIGZyb20gV2ViQ29yZSBpbgorICAgICAgICBXZWJLaXQyLUVG
TCBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIGZvciB0aGUgY2xpZW50CisgICAgICAgIHRvIHNldCBw
cm94eSBleGNlcHRpb25zIHZpYSB0aGUgIm5vX3Byb3h5IgorICAgICAgICBlbnZpcm9ubWVudCB2
YXJpYWJsZS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc01haW5FZmwpOgorCiAyMDEyLTA3LTE5ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNh
bmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFtXSzJdIEFkZCBt
ZXRob2RzIHRvIGdldC9zZXQgYSBjdXN0b20gdGV4dCBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZQppbmRleCA5N2Y3MDk1Li44MGRkNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMTAyLDYgKzEwMiw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291
cC9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAK
aW5kZXggOTJkMzUxNi4uYjQzN2ZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluRWZsLmgiCiAKKyNpbmNsdWRl
ICJTb3VwUHJveHlSZXNvbHZlckVmbC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUg
PEVjb3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNjcsMTEg
KzY4LDEyIEBAIFdLX0VYUE9SVCBpbnQgV2ViUHJvY2Vzc01haW5FZmwoaW50IGFyZ2MsIGNoYXIq
IGFyZ3ZbXSkKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIFNv
dXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNz
aW9uKCk7Ci0gICAgY29uc3QgY2hhciogaHR0cFByb3h5ID0gZ19nZXRlbnYoImh0dHBfcHJveHki
KTsKKyAgICBjb25zdCBjaGFyKiBodHRwUHJveHkgPSBnZXRlbnYoImh0dHBfcHJveHkiKTsKICAg
ICBpZiAoaHR0cFByb3h5KSB7Ci0gICAgICAgIFNvdXBVUkkqIHByb3h5VXJpID0gc291cF91cmlf
bmV3KGh0dHBQcm94eSk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLCBTT1VQX1NFU1NJ
T05fUFJPWFlfVVJJLCBwcm94eVVyaSwgTlVMTCk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUocHJv
eHlVcmkpOworICAgICAgICBjb25zdCBjaGFyKiBub1Byb3h5ID0gZ2V0ZW52KCJub19wcm94eSIp
OworICAgICAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlS
ZXNvbHZlckVmbE5ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25f
YWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBz
b2NrZXQgPSBhdG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGIxNjNjYmEuLmUxYzQ3YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0y
MCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAg
ICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBl
bnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgU291cFByb3h5UmVzb2x2ZXJFZmwgdG8gdGhlIGxpc3Qgb2YgY2xhc3Nl
cyB0aGF0IGNvbnRhaW4gR09iamVjdHMKKyAgICAgICAgaW4gc3R5bGUgY2hlY2tlciBzY3JpcHQg
c28gdGhhdCBpdCBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBuYW1pbmcKKyAgICAgICAgY29udmVu
dGlvbiBpc3N1ZXMgdGhhdCBhcmUgbWFuZGF0ZWQgYnkgR09iamVjdC4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKwogMjAxMi0wNy0xOSAgU3VkYXJzYW5h
IE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAg
ICBbRUZMXSBbV0syXSBBZGQgbWV0aG9kcyB0byBnZXQvc2V0IGEgY3VzdG9tIHRleHQgZW5jb2Rp
bmcKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCA0MmFiNzE1Li5l
ZWI4MWVhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0yMjAs
NyArMjIwLDkgQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICAgIlNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIxLmNwcCIs
CiAgICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
U2lua0dTdHJlYW1lci5jcHAiLAogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIiwKLSAgICAgICJTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VH
U3RyZWFtZXIuY3BwIl0sCisgICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCIsCisgICAgICAiU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5j
cHAiLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291
cFByb3h5UmVzb2x2ZXJFZmwuaCJdLAogICAgICBbIi1yZWFkYWJpbGl0eS9uYW1pbmciXSksCiAK
ICAgICAjIEZvciB0aGlyZC1wYXJ0eSBQeXRob24gY29kZSwga2VlcCBvbmx5IHRoZSBmb2xsb3dp
bmcgY2hlY2tzLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153454</attachid>
            <date>2012-07-20 02:26:21 -0700</date>
            <delta_ts>2012-07-20 03:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>21948</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzI1NDBlLi5jMWNjNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgRUZMIHBvcnQKKyAgICAgICAgYW5kIGFzayB0aGUgU291cFNlc3Npb24gdG8gdXNl
IGl0LiBUaGlzIGN1c3RvbQorICAgICAgICByZXNvbHZlciB0YWtlcyBpbnRvIGFjY291bnQgdGhl
ICJub19wcm94eSIKKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdCB0aGUgY2xp
ZW50IGNhbiBzZXQKKyAgICAgICAgZXhjZXB0aW9ucyBmb3IgdGhlIHByb3h5LgorCisgICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBwcm94eSBpcyBub3QgdXNlZCBmb3IgbG9jYWxob3N0IGFuZAorICAg
ICAgICAxMjcuMC4wLjEuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2UgZm9yIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2luaXQpOgorICAgICAg
ICAoc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZSk6CisgICAgICAgIChzb3VwUHJveHlSZXNv
bHZlckVmbFNldFByb3BlcnR5KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJv
cGVydHkpOgorICAgICAgICAoc2hvdWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1
cm5fcHJveHlfdXJpKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJveHlVUklB
c3luYyk6CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJU3luYyk6Cisg
ICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9jbGFzc19pbml0KToKKyAgICAgICAgKHNv
dXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHNvdXBQcm94
eVJlc29sdmVyRWZsTmV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1Nv
dXBQcm94eVJlc29sdmVyRWZsLmg6IEFkZGVkLgorCiAyMDEyLTA3LTE5ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIEFUU1VJLWJhc2VkIGNvbXBsZXggdGV4
dCBjb2RlIGlzIHVudXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTUwZGRkLi44
YTBlNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTEsNiArMTEsNyBAQCBMSVNU
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2xpbnV4IgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyIgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbCIKICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3RleHQvZWZsIgogICAiJHtXRUJDT1JFX0RJUn0vcGx1Z2lucy9lZmwiCiAgICIk
e1dFQktJVF9ESVJ9L2VmbC9XZWJDb3JlU3VwcG9ydCIKQEAgLTkxLDYgKzkyLDcgQEAgTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
c3BvbnNlU291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRs
ZVNvdXAuY3BwCiAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwVVJJVXRpbHMuY3BwCisgIHBs
YXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuY3BwCiAgIHBsYXRm
b3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAgcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcAogICBwbGF0Zm9ybS90ZXh0L2VmbC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wMjdmZGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAK
QEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTb3VwUHJveHlSZXNvbHZlckVmbC5oIgorCisjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVsdE5vUHJveHlWYWx1ZVtdID0gImxvY2Fs
aG9zdCwxMjcuMC4wLjEiOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291cFVSSSogcHJveHlV
Ukk7CisgICAgQ1N0cmluZyBub1Byb3h5OworICAgIFZlY3RvcjxTdHJpbmc+IHByb3h5RXhjZXB0
aW9uczsKK30gU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlOworCisjZGVmaW5lIFNPVVBfUFJP
WFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoKG8pLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVm
bFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZh
Y2VfaW5pdChTb3VwUHJveHlVUklSZXNvbHZlckludGVyZmFjZSogcHJveHlSZXNvbHZlckludGVy
ZmFjZSk7CisKK0dfREVGSU5FX1RZUEVfRVhURU5ERUQoU291cFByb3h5UmVzb2x2ZXJFZmwsIHNv
dXBfcHJveHlfcmVzb2x2ZXJfZWZsLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwg
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQ
RV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9p
bml0KSkKKworZW51bSB7CisgICAgUFJPUF8wLAorICAgIFBST1BfUFJPWFlfVVJJLAorICAgIFBS
T1BfTk9fUFJPWFksCisgICAgTEFTVF9QUk9QCit9OworCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5
X3Jlc29sdmVyX2VmbF9pbml0KFNvdXBQcm94eVJlc29sdmVyRWZsKiByZXNvbHZlckVmbCkKK3sK
K30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZShHT2JqZWN0KiBv
YmplY3QpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09VUF9Q
Uk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIGdfY2xlYXJfcG9p
bnRlcigmcHJpdi0+cHJveHlVUkksIHNvdXBfdXJpX2ZyZWUpOworCisgICAgR19PQkpFQ1RfQ0xB
U1Moc291cF9wcm94eV9yZXNvbHZlcl9lZmxfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0
KTsKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYgPSBTT1VQ
X1BST1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworICAgIFNvdXBVUkkqIHVy
aTsKKworICAgIHN3aXRjaCAocHJvcElEKSB7CisgICAgY2FzZSBQUk9QX1BST1hZX1VSSToKKyAg
ICAgICAgdXJpID0gc3RhdGljX2Nhc3Q8U291cFVSSSo+KGdfdmFsdWVfZ2V0X2JveGVkKHZhbHVl
KSk7CisgICAgICAgIGlmIChwcml2LT5wcm94eVVSSSkKKyAgICAgICAgICAgIHNvdXBfdXJpX2Zy
ZWUocHJpdi0+cHJveHlVUkkpOworCisgICAgICAgIHByaXYtPnByb3h5VVJJID0gdXJpID8gc291
cF91cmlfY29weSh1cmkpIDogMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX05PX1BS
T1hZOgorICAgICAgICBwcml2LT5ub1Byb3h5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsK
KyAgICAgICAgcHJpdi0+cHJveHlFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgICAgIFN0cmluZzo6
ZnJvbVVURjgocHJpdi0+bm9Qcm94eS5kYXRhKCkpLnNwbGl0KCcsJywgcHJpdi0+cHJveHlFeGNl
cHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElELCBwc3BlYyk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBHVmFsdWUqIHZhbHVlLCBHUGFy
YW1TcGVjKiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYg
PSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgc3dp
dGNoIChwcm9wSUQpIHsKKyAgICBjYXNlIFBST1BfUFJPWFlfVVJJOgorICAgICAgICBnX3ZhbHVl
X3NldF9ib3hlZCh2YWx1ZSwgcHJpdi0+cHJveHlVUkkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfTk9fUFJPWFk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJp
di0+bm9Qcm94eS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVj
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBzaG91bGRCeXBhc3NQ
cm94eShTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUqIHByaXYsIFNvdXBVUkkqIHVyaSkKK3sK
KyAgICBjb25zdCBzaXplX3QgZXhjZXB0aW9uQ291bnQgPSBwcml2LT5wcm94eUV4Y2VwdGlvbnMu
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhjZXB0aW9uQ291bnQ7ICsraSkg
eworICAgICAgICBpZiAoU3RyaW5nOjpmcm9tVVRGOCh1cmktPmhvc3QpLmVuZHNXaXRoKHByaXYt
PnByb3h5RXhjZXB0aW9uc1tpXSwgZmFsc2UpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgU291
cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5UmVzb2x2ZXI7CisgICAgU291cFVSSSogdXJpOworICAg
IFNvdXBQcm94eVVSSVJlc29sdmVyQ2FsbGJhY2sgY2FsbGJhY2s7CisgICAgdm9pZCogdXNlckRh
dGE7Cit9IFNvdXBFZmxBc3luY0RhdGE7CisKK3N0YXRpYyBnYm9vbGVhbiBpZGxlX3JldHVybl9w
cm94eV91cmkodm9pZCogZGF0YSkKK3sKKyAgICBTb3VwRWZsQXN5bmNEYXRhKiBzc2FkID0gc3Rh
dGljX2Nhc3Q8U291cEVmbEFzeW5jRGF0YSo+KGRhdGEpOworICAgIFNvdXBQcm94eVJlc29sdmVy
RWZsUHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHNz
YWQtPnByb3h5UmVzb2x2ZXIpOworCisgICAgU291cFVSSSogcHJveHlVUkkgPSAwOworICAgIGlm
ICghc2hvdWxkQnlwYXNzUHJveHkocHJpdiwgc3NhZC0+dXJpKSkKKyAgICAgICAgcHJveHlVUkkg
PSBwcml2LT5wcm94eVVSSTsKKworICAgIHNzYWQtPmNhbGxiYWNrKHNzYWQtPnByb3h5UmVzb2x2
ZXIsIFNPVVBfU1RBVFVTX09LLCBwcm94eVVSSSwgc3NhZC0+dXNlckRhdGEpOworICAgIGdfb2Jq
ZWN0X3VucmVmKHNzYWQtPnByb3h5UmVzb2x2ZXIpOworICAgIHNvdXBfdXJpX2ZyZWUoc3NhZC0+
dXJpKTsKKyAgICBnX3NsaWNlX2ZyZWUoU291cEVmbEFzeW5jRGF0YSwgc3NhZCk7CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJv
eHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSog
dXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJs
ZSwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEp
Cit7CisgICAgU291cEVmbEFzeW5jRGF0YSogc3NhZDsKKworICAgIHNzYWQgPSBnX3NsaWNlX25l
dzAoU291cEVmbEFzeW5jRGF0YSk7CisgICAgc3NhZC0+cHJveHlSZXNvbHZlciA9IFNPVVBfUFJP
WFlfVVJJX1JFU09MVkVSKGdfb2JqZWN0X3JlZihwcm94eVJlc29sdmVyKSk7CisgICAgc3NhZC0+
dXJpID0gc291cF91cmlfY29weSh1cmkpOworICAgIHNzYWQtPmNhbGxiYWNrID0gY2FsbGJhY2s7
CisgICAgc3NhZC0+dXNlckRhdGEgPSB1c2VyRGF0YTsKKyAgICBzb3VwX2FkZF9jb21wbGV0aW9u
KGFzeW5jQ29udGV4dCwgaWRsZV9yZXR1cm5fcHJveHlfdXJpLCBzc2FkKTsKK30KKworc3RhdGlj
IHVpbnQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVz
b2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxs
YWJsZSwgU291cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJp
dmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKHByb3h5UmVz
b2x2ZXIpOworCisgICAgaWYgKCFzaG91bGRCeXBhc3NQcm94eShwcml2LCB1cmkpKQorICAgICAg
ICAqcHJveHlVUkkgPSBzb3VwX3VyaV9jb3B5KHByaXYtPnByb3h5VVJJKTsKKworICAgIHJldHVy
biBTT1VQX1NUQVRVU19PSzsKK30KKworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl9l
ZmxfY2xhc3NfaW5pdChTb3VwUHJveHlSZXNvbHZlckVmbENsYXNzKiBlZmxDbGFzcykKK3sKKyAg
ICBHT2JqZWN0Q2xhc3MqIG9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGVmbENsYXNzKTsK
KworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShlZmxDbGFzcywgc2l6ZW9mKFNvdXBQcm94
eVJlc29sdmVyRWZsUHJpdmF0ZSkpOworCisgICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkg
PSBzb3VwUHJveHlSZXNvbHZlckVmbFNldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0
X3Byb3BlcnR5ID0gc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3Rf
Y2xhc3MtPmZpbmFsaXplID0gc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZTsKKworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX1BST1hZX1VS
SSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hl
ZChTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQ
IFByb3h5IHRvIHVzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU09VUF9UWVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19Q
QVJBTV9SRUFEV1JJVEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KG9iamVjdF9jbGFzcywgUFJPUF9OT19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9f
UFJPWFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlByb3h5IGV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJDb21tYS1zZXBhcmF0ZWQgcHJveHkgZXhjZXB0aW9u
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdE5vUHJveHlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9S
RUFEV1JJVEUpKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2lu
dGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eV91cmlfcmVz
b2x2ZXJfaW50ZXJmYWNlKQoreworICAgIHByb3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZhY2UtPmdl
dF9wcm94eV91cmlfYXN5bmMgPSBzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJQXN5bmM7
CisgICAgcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0g
c291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSVN5bmM7Cit9CisKK1NvdXBQcm94eVVSSVJl
c29sdmVyKiBzb3VwUHJveHlSZXNvbHZlckVmbE5ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNv
bnN0IGNoYXIqIG5vUHJveHkpCit7CisgICAgU291cFVSSSogcHJveHlVUkkgPSBzb3VwX3VyaV9u
ZXcoaHR0cFByb3h5KTsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXIgPSBTT1VQ
X1BST1hZX1VSSV9SRVNPTFZFUihnX29iamVjdF9uZXcoU09VUF9UWVBFX1BST1hZX1JFU09MVkVS
X0VGTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfUFJPWFlfVVJJ
LCBwcm94eVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfTk9f
UFJPWFksIG5vUHJveHkgPyBub1Byb3h5IDogZGVmYXVsdE5vUHJveHlWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCkpOworICAgIHNvdXBfdXJpX2ZyZWUocHJveHlVUkkpOworCisgICAgcmV0dXJu
IHJlc29sdmVyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkODIzMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb3VwUHJveHlS
ZXNvbHZlckVmbF9oCisjZGVmaW5lIFNvdXBQcm94eVJlc29sdmVyRWZsX2gKKworI2luY2x1ZGUg
PGxpYnNvdXAvc291cC1wcm94eS11cmktcmVzb2x2ZXIuaD4KKyNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAtdXJpLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBTT1VQX1RZUEVfUFJPWFlfUkVT
T0xWRVJfRUZMICAgICAgICAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2dldF90eXBl
ICgpKQorI2RlZmluZSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTChvYmplY3QpICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqZWN0KSwgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX0VGTCwgU291cFByb3h5UmVzb2x2ZXJFZmwpKQorI2RlZmluZSBTT1VQX1BST1hZX1JF
U09MVkVSX0VGTF9DTEFTUyhrbGFzcykgICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgo
a2xhc3MpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVm
bENsYXNzKSkKKyNkZWZpbmUgU09VUF9JU19QUk9YWV9SRVNPTFZFUl9FRkwob2JqZWN0KSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iamVjdCksIFNPVVBfVFlQRV9QUk9Y
WV9SRVNPTFZFUl9FRkwpKQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX0VGTF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3MpLCBTT1VQX1RZUEVf
UFJPWFlfUkVTT0xWRVJfRUZMKSkKKyNkZWZpbmUgU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VU
X0NMQVNTKG9iaikgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwgU09VUF9U
WVBFX1BST1hZX1JFU09MVkVSX0VGTCwgU291cFByb3h5UmVzb2x2ZXJFZmxDbGFzcykpCisKK3N0
YXRpYyBjb25zdCBjaGFyIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX1BST1hZX1VSSVtdID0gInBy
b3h5LXVyaSI7CitzdGF0aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9OT19Q
Uk9YWVtdID0gIm5vLXByb3h5IjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdPYmplY3QgcGFy
ZW50OworfSBTb3VwUHJveHlSZXNvbHZlckVmbDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9IFNvdXBQcm94eVJlc29sdmVyRWZsQ2xhc3M7CisK
K0dUeXBlIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2dldF90eXBlKHZvaWQpOworCitTb3VwUHJv
eHlVUklSZXNvbHZlciogc291cFByb3h5UmVzb2x2ZXJFZmxOZXcoY29uc3QgY2hhciogaHR0cFBy
b3h5LCBjb25zdCBjaGFyKiBub1Byb3h5KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8vIFNv
dXBQcm94eVJlc29sdmVyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDI0OWNmOC4uMmNhNTEzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRp
b24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvZWZsIHRvIElOQ0xVREUgcGF0aHMuCisKKyAgICAgICAgKiBQbGF0
Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0wNy0xOCAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KIAog
ICAgICAgICBbQmxhY2tCZXJyeV0gTW92ZSBhYm91dDogVVJMIGhhbmRsaW5nIG91dCBvZiBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBjNjI0M2RhLi4wNDEzZTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTEzLDYgKzEzLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvZWZsIgogICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQogICAgICR7RUNP
UkVfWF9JTkNMVURFX0RJUlN9CiAgICAgJHtFREpFX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwppbmRleCAyOTc4MTBhLi5iNjMwYWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgY3VzdG9tIHByb3h5IHJlc29sdmVy
IGZyb20gV2ViQ29yZSBpbgorICAgICAgICBXZWJLaXQxLUVGTCBzbyB0aGF0IGl0IGlzIHBvc3Np
YmxlIGZvciB0aGUgY2xpZW50CisgICAgICAgIHRvIHNldCBwcm94eSBleGNlcHRpb25zIHZpYSB0
aGUgIm5vX3Byb3h5IgorICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKworICAgICAgICAq
IGV3ay9ld2tfbmV0d29yay5jcHA6CisgICAgICAgIChld2tfbmV0d29ya19wcm94eV91cmlfc2V0
KToKKyAgICAgICAgKGV3a19uZXR3b3JrX3Byb3h5X3VyaV9nZXQpOgorCiAyMDEyLTA3LTE5ICBL
aWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEVu
YWJsZSBpbnRlcmFjdGl2ZSBmb3JtIHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfbmV0d29yay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25l
dHdvcmsuY3BwCmluZGV4IDhhZDNjNDkuLmMwMzUxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfbmV0d29yay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19uZXR3b3JrLmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRl
Tm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlNvdXBQ
cm94eVJlc29sdmVyRWZsLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxF
aW5hLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CkBAIC0zNywxOCArMzgsMjAgQEAgdm9p
ZCBld2tfbmV0d29ya19wcm94eV91cmlfc2V0KGNvbnN0IGNoYXIqIHByb3h5KQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgU291cFVSSSogdXJpID0gc291cF91cmlfbmV3KHByb3h5KTsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih1cmkpOwotCi0gICAgZ19vYmplY3Rfc2V0
KHNlc3Npb24sIFNPVVBfU0VTU0lPTl9QUk9YWV9VUkksIHVyaSwgTlVMTCk7Ci0gICAgc291cF91
cmlfZnJlZSh1cmkpOworICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiByZXNvbHZlckVmbCA9IHNv
dXBQcm94eVJlc29sdmVyRWZsTmV3KHByb3h5LCAwKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2Zl
YXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICBn
X29iamVjdF91bnJlZihyZXNvbHZlckVmbCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19uZXR3b3Jr
X3Byb3h5X3VyaV9nZXQodm9pZCkKIHsKICAgICBTb3VwVVJJKiB1cmk7CiAgICAgU291cFNlc3Np
b24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsK
LSAgICBnX29iamVjdF9nZXQoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX1BST1hZX1VSSSwgJnVyaSwg
TlVMTCk7CisgICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyID0gU09VUF9QUk9YWV9V
UklfUkVTT0xWRVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9Q
Uk9YWV9SRVNPTFZFUikpOworICAgIGlmICghcmVzb2x2ZXIpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgZ19vYmplY3RfZ2V0KHJlc29sdmVyLCBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9QUk9Y
WV9VUkksICZ1cmksIE5VTEwpOwogCiAgICAgaWYgKCF1cmkpIHsKICAgICAgICAgRVJSKCJubyBw
cm94eSB1cmkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyN2RmNTBhLi41ZDFlZjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNo
b3VsZCBob25vciB0aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgY3VzdG9tIHBy
b3h5IHJlc29sdmVyIGZyb20gV2ViQ29yZSBpbgorICAgICAgICBXZWJLaXQyLUVGTCBzbyB0aGF0
IGl0IGlzIHBvc3NpYmxlIGZvciB0aGUgY2xpZW50CisgICAgICAgIHRvIHNldCBwcm94eSBleGNl
cHRpb25zIHZpYSB0aGUgIm5vX3Byb3h5IgorICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4K
KworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFdlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW5F
ZmwpOgorCiAyMDEyLTA3LTE5ICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5l
bmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFtXSzJdIEFkZCBtZXRob2RzIHRv
IGdldC9zZXQgYSBjdXN0b20gdGV4dCBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCA5N2Y3MDk1Li44MGRkNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTAy
LDYgKzEwMiw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cC9lZmwiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5kZXggOTJk
MzUxNi4uYjQzN2ZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwv
V2ViUHJvY2Vzc01haW5FZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZs
L1dlYlByb2Nlc3NNYWluRWZsLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluRWZsLmgiCiAKKyNpbmNsdWRlICJTb3VwUHJv
eHlSZXNvbHZlckVmbC5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVjb3JlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgpAQCAtNjcsMTEgKzY4LDEyIEBA
IFdLX0VYUE9SVCBpbnQgV2ViUHJvY2Vzc01haW5FZmwoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAogICAgIFNvdXBTZXNzaW9u
KiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0g
ICAgY29uc3QgY2hhciogaHR0cFByb3h5ID0gZ19nZXRlbnYoImh0dHBfcHJveHkiKTsKKyAgICBj
b25zdCBjaGFyKiBodHRwUHJveHkgPSBnZXRlbnYoImh0dHBfcHJveHkiKTsKICAgICBpZiAoaHR0
cFByb3h5KSB7Ci0gICAgICAgIFNvdXBVUkkqIHByb3h5VXJpID0gc291cF91cmlfbmV3KGh0dHBQ
cm94eSk7Ci0gICAgICAgIGdfb2JqZWN0X3NldChzZXNzaW9uLCBTT1VQX1NFU1NJT05fUFJPWFlf
VVJJLCBwcm94eVVyaSwgTlVMTCk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUocHJveHlVcmkpOwor
ICAgICAgICBjb25zdCBjaGFyKiBub1Byb3h5ID0gZ2V0ZW52KCJub19wcm94eSIpOworICAgICAg
ICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlSZXNvbHZlckVm
bE5ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1
cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICAgICAg
Z19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBzb2NrZXQgPSBh
dG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGIxNjNjYmEuLmUxYzQ3YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxd
IFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVu
dCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgU291cFByb3h5UmVzb2x2ZXJFZmwgdG8gdGhlIGxpc3Qgb2YgY2xhc3NlcyB0aGF0IGNv
bnRhaW4gR09iamVjdHMKKyAgICAgICAgaW4gc3R5bGUgY2hlY2tlciBzY3JpcHQgc28gdGhhdCBp
dCBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBuYW1pbmcKKyAgICAgICAgY29udmVudGlvbiBpc3N1
ZXMgdGhhdCBhcmUgbWFuZGF0ZWQgYnkgR09iamVjdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weToKKwogMjAxMi0wNy0xOSAgU3VkYXJzYW5hIE5hZ2luZW5p
ICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBb
V0syXSBBZGQgbWV0aG9kcyB0byBnZXQvc2V0IGEgY3VzdG9tIHRleHQgZW5jb2RpbmcKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCA0MmFiNzE1Li5lZWI4MWVhIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0yMjAsNyArMjIwLDkg
QEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIxLmNwcCIsCiAgICAgICAi
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJl
YW1lci5jcHAiLAogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIiwKLSAgICAgICJTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwIl0sCisgICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCIsCisgICAgICAiU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAiLAorICAg
ICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVz
b2x2ZXJFZmwuaCJdLAogICAgICBbIi1yZWFkYWJpbGl0eS9uYW1pbmciXSksCiAKICAgICAjIEZv
ciB0aGlyZC1wYXJ0eSBQeXRob24gY29kZSwga2VlcCBvbmx5IHRoZSBmb2xsb3dpbmcgY2hlY2tz
LS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153466</attachid>
            <date>2012-07-20 03:31:14 -0700</date>
            <delta_ts>2012-07-20 05:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>21973</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTQ0NWIyLi5jYjVhNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgRUZMIHBvcnQKKyAgICAgICAgYW5kIGFzayB0aGUgU291cFNlc3Npb24gdG8gdXNl
IGl0LiBUaGlzIGN1c3RvbQorICAgICAgICByZXNvbHZlciB0YWtlcyBpbnRvIGFjY291bnQgdGhl
ICJub19wcm94eSIKKyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gdGhhdCB0aGUgY2xp
ZW50IGNhbiBzZXQKKyAgICAgICAgZXhjZXB0aW9ucyBmb3IgdGhlIHByb3h5LgorCisgICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBwcm94eSBpcyBub3QgdXNlZCBmb3IgbG9jYWxob3N0IGFuZAorICAg
ICAgICAxMjcuMC4wLjEuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2UgZm9yIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsX2luaXQpOgorICAgICAg
ICAoc291cFByb3h5UmVzb2x2ZXJFZmxGaW5hbGl6ZSk6CisgICAgICAgIChzb3VwUHJveHlSZXNv
bHZlckVmbFNldFByb3BlcnR5KToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJv
cGVydHkpOgorICAgICAgICAoc2hvdWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1
cm5fcHJveHlfdXJpKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJveHlVUklB
c3luYyk6CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3h5VVJJU3luYyk6Cisg
ICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9jbGFzc19pbml0KToKKyAgICAgICAgKHNv
dXBfcHJveHlfcmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHNvdXBQcm94
eVJlc29sdmVyRWZsTmV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1Nv
dXBQcm94eVJlc29sdmVyRWZsLmg6IEFkZGVkLgorCiAyMDEyLTA3LTIwICBFdWdlbmUgS2x5dWNo
bmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBU
aW1lbGluZTogZm9yd2FyZCBjb21wYXRpYmlsaXR5IGZvciBsb2FkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVm
bC5jbWFrZQppbmRleCBkYTUwZGRkLi44YTBlNmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMTEsNiArMTEsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2xpbnV4IgogICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyIgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9zb3VwIgorICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3Vw
L2VmbCIKICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZWZsIgogICAiJHtXRUJDT1JF
X0RJUn0vcGx1Z2lucy9lZmwiCiAgICIke1dFQktJVF9ESVJ9L2VmbC9XZWJDb3JlU3VwcG9ydCIK
QEAgLTkxLDYgKzkyLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlU291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZVNvdXAuY3BwCiAgIHBsYXRmb3JtL25ldHdvcmsvc291
cC9Tb3VwVVJJVXRpbHMuY3BwCisgIHBsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFByb3h5
UmVzb2x2ZXJFZmwuY3BwCiAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKICAgcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAogICBwbGF0Zm9ybS90ZXh0L2VmbC9UZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVRWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9Tb3VwUHJveHlSZXNvbHZlckVmbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVy
RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWEwNDM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL2VmbC9T
b3VwUHJveHlSZXNvbHZlckVmbC5jcHAKQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3VwUHJveHlSZXNvbHZlckVm
bC5oIgorCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworc3RhdGljIGNvbnN0IGNoYXIgZGVmYXVs
dE5vUHJveHlWYWx1ZVtdID0gImxvY2FsaG9zdCwxMjcuMC4wLjEiOworCit0eXBlZGVmIHN0cnVj
dCB7CisgICAgU291cFVSSSogcHJveHlVUkk7CisgICAgQ1N0cmluZyBub1Byb3h5OworICAgIFZl
Y3RvcjxTdHJpbmc+IHByb3h5RXhjZXB0aW9uczsKK30gU291cFByb3h5UmVzb2x2ZXJFZmxQcml2
YXRlOworCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0dFVF9QUklWQVRFKG8pIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG8pLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJf
RUZMLCBTb3VwUHJveHlSZXNvbHZlckVmbFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3By
b3h5X3Jlc29sdmVyX2VmbF9pbnRlcmZhY2VfaW5pdChTb3VwUHJveHlVUklSZXNvbHZlckludGVy
ZmFjZSogcHJveHlSZXNvbHZlckludGVyZmFjZSk7CisKK0dfREVGSU5FX1RZUEVfRVhURU5ERUQo
U291cFByb3h5UmVzb2x2ZXJFZmwsIHNvdXBfcHJveHlfcmVzb2x2ZXJfZWZsLCBHX1RZUEVfT0JK
RUNULCAwLAorICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09V
UF9UWVBFX1NFU1NJT05fRkVBVFVSRSwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBM
RU1FTlRfSU5URVJGQUNFKFNPVVBfVFlQRV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlf
cmVzb2x2ZXJfZWZsX2ludGVyZmFjZV9pbml0KSkKKworZW51bSB7CisgICAgUFJPUF8wLAorICAg
IFBST1BfUFJPWFlfVVJJLAorICAgIFBST1BfTk9fUFJPWFksCisgICAgTEFTVF9QUk9QCit9Owor
CitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9pbml0KFNvdXBQcm94eVJlc29s
dmVyRWZsKiByZXNvbHZlckVmbCkKK3sKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2
ZXJFZmxGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJF
ZmxQcml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUob2Jq
ZWN0KTsKKworICAgIGdfY2xlYXJfcG9pbnRlcigmcHJpdi0+cHJveHlVUkksIHNvdXBfdXJpX2Zy
ZWUpOworCisgICAgR19PQkpFQ1RfQ0xBU1Moc291cF9wcm94eV9yZXNvbHZlcl9lZmxfcGFyZW50
X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVz
b2x2ZXJFZmxTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZl
ckVmbFByaXZhdGUqIHByaXYgPSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9HRVRfUFJJVkFURShv
YmplY3QpOworICAgIFNvdXBVUkkqIHVyaTsKKworICAgIHN3aXRjaCAocHJvcElEKSB7CisgICAg
Y2FzZSBQUk9QX1BST1hZX1VSSToKKyAgICAgICAgdXJpID0gc3RhdGljX2Nhc3Q8U291cFVSSSo+
KGdfdmFsdWVfZ2V0X2JveGVkKHZhbHVlKSk7CisgICAgICAgIGlmIChwcml2LT5wcm94eVVSSSkK
KyAgICAgICAgICAgIHNvdXBfdXJpX2ZyZWUocHJpdi0+cHJveHlVUkkpOworCisgICAgICAgIHBy
aXYtPnByb3h5VVJJID0gdXJpID8gc291cF91cmlfY29weSh1cmkpIDogMDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQUk9QX05PX1BST1hZOgorICAgICAgICBwcml2LT5ub1Byb3h5ID0gZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpdi0+cHJveHlFeGNlcHRpb25zLmNs
ZWFyKCk7CisgICAgICAgIFN0cmluZzo6ZnJvbVVURjgocHJpdi0+bm9Qcm94eS5kYXRhKCkpLnJl
cGxhY2UoJyAnLCAiIikuc3BsaXQoJywnLCBwcml2LT5wcm94eUV4Y2VwdGlvbnMpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP
UEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlckVmbEdldFByb3BlcnR5KEdPYmplY3Qq
IG9iamVjdCwgdWludCBwcm9wSUQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKQor
eworICAgIFNvdXBQcm94eVJlc29sdmVyRWZsUHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVT
T0xWRVJfRUZMX0dFVF9QUklWQVRFKG9iamVjdCk7CisKKyAgICBzd2l0Y2ggKHByb3BJRCkgewor
ICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVl
LCBwcml2LT5wcm94eVVSSSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9OT19QUk9Y
WToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5ub1Byb3h5LmRhdGEo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJRCwgcHNwZWMpOworICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHNob3VsZEJ5cGFzc1Byb3h5KFNvdXBQcm94eVJl
c29sdmVyRWZsUHJpdmF0ZSogcHJpdiwgU291cFVSSSogdXJpKQoreworICAgIGNvbnN0IHNpemVf
dCBleGNlcHRpb25Db3VudCA9IHByaXYtPnByb3h5RXhjZXB0aW9ucy5zaXplKCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBleGNlcHRpb25Db3VudDsgKytpKSB7CisgICAgICAgIGlmIChT
dHJpbmc6OmZyb21VVEY4KHVyaS0+aG9zdCkuZW5kc1dpdGgocHJpdi0+cHJveHlFeGNlcHRpb25z
W2ldLCBmYWxzZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZl
ciogcHJveHlSZXNvbHZlcjsKKyAgICBTb3VwVVJJKiB1cmk7CisgICAgU291cFByb3h5VVJJUmVz
b2x2ZXJDYWxsYmFjayBjYWxsYmFjazsKKyAgICB2b2lkKiB1c2VyRGF0YTsKK30gU291cEVmbEFz
eW5jRGF0YTsKKworc3RhdGljIGdib29sZWFuIGlkbGVfcmV0dXJuX3Byb3h5X3VyaSh2b2lkKiBk
YXRhKQoreworICAgIFNvdXBFZmxBc3luY0RhdGEqIHNzYWQgPSBzdGF0aWNfY2FzdDxTb3VwRWZs
QXN5bmNEYXRhKj4oZGF0YSk7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2
ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUoc3NhZC0+cHJveHlSZXNvbHZl
cik7CisKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IDA7CisgICAgaWYgKCFzaG91bGRCeXBhc3NQ
cm94eShwcml2LCBzc2FkLT51cmkpKQorICAgICAgICBwcm94eVVSSSA9IHByaXYtPnByb3h5VVJJ
OworCisgICAgc3NhZC0+Y2FsbGJhY2soc3NhZC0+cHJveHlSZXNvbHZlciwgU09VUF9TVEFUVVNf
T0ssIHByb3h5VVJJLCBzc2FkLT51c2VyRGF0YSk7CisgICAgZ19vYmplY3RfdW5yZWYoc3NhZC0+
cHJveHlSZXNvbHZlcik7CisgICAgc291cF91cmlfZnJlZShzc2FkLT51cmkpOworICAgIGdfc2xp
Y2VfZnJlZShTb3VwRWZsQXN5bmNEYXRhLCBzc2FkKTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJFZmxHZXRQcm94eVVSSUFzeW5jKFNvdXBQ
cm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmksIEdNYWluQ29udGV4
dCogYXN5bmNDb250ZXh0LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBTb3VwUHJveHlVUklS
ZXNvbHZlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKK3sKKyAgICBTb3VwRWZs
QXN5bmNEYXRhKiBzc2FkOworCisgICAgc3NhZCA9IGdfc2xpY2VfbmV3MChTb3VwRWZsQXN5bmNE
YXRhKTsKKyAgICBzc2FkLT5wcm94eVJlc29sdmVyID0gU09VUF9QUk9YWV9VUklfUkVTT0xWRVIo
Z19vYmplY3RfcmVmKHByb3h5UmVzb2x2ZXIpKTsKKyAgICBzc2FkLT51cmkgPSBzb3VwX3VyaV9j
b3B5KHVyaSk7CisgICAgc3NhZC0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBzc2FkLT51c2Vy
RGF0YSA9IHVzZXJEYXRhOworICAgIHNvdXBfYWRkX2NvbXBsZXRpb24oYXN5bmNDb250ZXh0LCBp
ZGxlX3JldHVybl9wcm94eV91cmksIHNzYWQpOworfQorCitzdGF0aWMgdWludCBzb3VwUHJveHlS
ZXNvbHZlckVmbEdldFByb3h5VVJJU3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNv
bHZlciwgU291cFVSSSogdXJpLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBTb3VwVVJJKiog
cHJveHlVUkkpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJFZmxQcml2YXRlKiBwcml2ID0gU09V
UF9QUk9YWV9SRVNPTFZFUl9FRkxfR0VUX1BSSVZBVEUocHJveHlSZXNvbHZlcik7CisKKyAgICBp
ZiAoIXNob3VsZEJ5cGFzc1Byb3h5KHByaXYsIHVyaSkpCisgICAgICAgICpwcm94eVVSSSA9IHNv
dXBfdXJpX2NvcHkocHJpdi0+cHJveHlVUkkpOworCisgICAgcmV0dXJuIFNPVVBfU1RBVFVTX09L
OworfQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX2VmbF9jbGFzc19pbml0KFNv
dXBQcm94eVJlc29sdmVyRWZsQ2xhc3MqIGVmbENsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyog
b2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZWZsQ2xhc3MpOworCisgICAgZ190eXBlX2Ns
YXNzX2FkZF9wcml2YXRlKGVmbENsYXNzLCBzaXplb2YoU291cFByb3h5UmVzb2x2ZXJFZmxQcml2
YXRlKSk7CisKKyAgICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHNvdXBQcm94eVJlc29s
dmVyRWZsU2V0UHJvcGVydHk7CisgICAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBzb3Vw
UHJveHlSZXNvbHZlckVmbEdldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+ZmluYWxpemUg
PSBzb3VwUHJveHlSZXNvbHZlckVmbEZpbmFsaXplOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBST1BfUFJPWFlfVVJJLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVkKFNPVVBfUFJPWFlfUkVT
T0xWRVJfRUZMX1BST1hZX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiUHJveHkgVVJJIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIEhUVFAgUHJveHkgdG8gdXNlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
T1VQX1RZUEVfVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSkp
KTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQ
Uk9QX05PX1BST1hZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX3N0cmluZyhTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9OT19QUk9YWSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHJveHkgZXhj
ZXB0aW9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkNvbW1hLXNlcGFyYXRlZCBwcm94eSBleGNlcHRpb25zIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Tm9Qcm94
eVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSkpKTsKK30K
Kworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl9lZmxfaW50ZXJmYWNlX2luaXQoU291
cFByb3h5VVJJUmVzb2x2ZXJJbnRlcmZhY2UqIHByb3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZhY2Up
Cit7CisgICAgcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9hc3lu
YyA9IHNvdXBQcm94eVJlc29sdmVyRWZsR2V0UHJveHlVUklBc3luYzsKKyAgICBwcm94eV91cmlf
cmVzb2x2ZXJfaW50ZXJmYWNlLT5nZXRfcHJveHlfdXJpX3N5bmMgPSBzb3VwUHJveHlSZXNvbHZl
ckVmbEdldFByb3h5VVJJU3luYzsKK30KKworU291cFByb3h5VVJJUmVzb2x2ZXIqIHNvdXBQcm94
eVJlc29sdmVyRWZsTmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3QgY2hhciogbm9Qcm94
eSkKK3sKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IHNvdXBfdXJpX25ldyhodHRwUHJveHkpOwor
ICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiByZXNvbHZlciA9IFNPVVBfUFJPWFlfVVJJX1JFU09M
VkVSKGdfb2JqZWN0X25ldyhTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9QUk9YWV9VUkksIHByb3h5VVJJLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9OT19QUk9YWSwgbm9Qcm94eSA/
IG5vUHJveHkgOiBkZWZhdWx0Tm9Qcm94eVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7Cisg
ICAgc291cF91cmlfZnJlZShwcm94eVVSSSk7CisKKyAgICByZXR1cm4gcmVzb2x2ZXI7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvZWZsL1NvdXBQ
cm94eVJlc29sdmVyRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
ZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWQ4MjMyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9lZmwvU291cFByb3h5UmVzb2x2ZXJFZmwuaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNvdXBQcm94eVJlc29sdmVyRWZsX2gKKyNk
ZWZpbmUgU291cFByb3h5UmVzb2x2ZXJFZmxfaAorCisjaW5jbHVkZSA8bGlic291cC9zb3VwLXBy
b3h5LXVyaS1yZXNvbHZlci5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC11cmkuaD4KKworR19C
RUdJTl9ERUNMUworCisjZGVmaW5lIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9FRkwgICAgICAg
ICAgICAgICAoc291cF9wcm94eV9yZXNvbHZlcl9lZmxfZ2V0X3R5cGUgKCkpCisjZGVmaW5lIFNP
VVBfUFJPWFlfUkVTT0xWRVJfRUZMKG9iamVjdCkgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QgKChvYmplY3QpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfRUZMLCBTb3Vw
UHJveHlSZXNvbHZlckVmbCkpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX0NMQVNT
KGtsYXNzKSAgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIFNPVVBfVFlQ
RV9QUk9YWV9SRVNPTFZFUl9FRkwsIFNvdXBQcm94eVJlc29sdmVyRWZsQ2xhc3MpKQorI2RlZmlu
ZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX0VGTChvYmplY3QpICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9UWVBFICgob2JqZWN0KSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX0VGTCkp
CisjZGVmaW5lIFNPVVBfSVNfUFJPWFlfUkVTT0xWRVJfRUZMX0NMQVNTKGtsYXNzKSAgICAoR19U
WVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFzcyksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9F
RkwpKQorI2RlZmluZSBTT1VQX1BST1hZX1JFU09MVkVSX0VGTF9HRVRfQ0xBU1Mob2JqKSAgICAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xW
RVJfRUZMLCBTb3VwUHJveHlSZXNvbHZlckVmbENsYXNzKSkKKworc3RhdGljIGNvbnN0IGNoYXIg
U09VUF9QUk9YWV9SRVNPTFZFUl9FRkxfUFJPWFlfVVJJW10gPSAicHJveHktdXJpIjsKK3N0YXRp
YyBjb25zdCBjaGFyIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX05PX1BST1hZW10gPSAibm8tcHJv
eHkiOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgR09iamVjdCBwYXJlbnQ7Cit9IFNvdXBQcm94
eVJlc29sdmVyRWZsOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgR09iamVjdENsYXNzIHBhcmVu
dF9jbGFzczsKK30gU291cFByb3h5UmVzb2x2ZXJFZmxDbGFzczsKKworR1R5cGUgc291cF9wcm94
eV9yZXNvbHZlcl9lZmxfZ2V0X3R5cGUodm9pZCk7CisKK1NvdXBQcm94eVVSSVJlc29sdmVyKiBz
b3VwUHJveHlSZXNvbHZlckVmbE5ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNvbnN0IGNoYXIq
IG5vUHJveHkpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLy8gU291cFByb3h5UmVzb2x2ZXJF
ZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBkMjQ5Y2Y4Li4yY2E1MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTA3LTIwICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gUHJveHkgY29uZmlndXJhdGlvbiBzaG91bGQgaG9ub3Ig
dGhlIG5vX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9lZmwgdG8gSU5DTFVERSBwYXRocy4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgor
CiAyMDEyLTA3LTE4ICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBNb3ZlIGFib3V0OiBVUkwgaGFuZGxpbmcgb3V0IG9mIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IGM2MjQzZGEuLjA0MTNlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMTMsNiArMTMsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cC9l
ZmwiCiAgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9YX0lOQ0xVREVfRElS
U30KICAgICAke0VESkVfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDI5NzgxMGEu
LmI2MzBhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNy0yMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZp
cm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2UgdGhlIG5ldyBjdXN0b20gcHJveHkgcmVzb2x2ZXIgZnJvbSBXZWJDb3JlIGlu
CisgICAgICAgIFdlYktpdDEtRUZMIHNvIHRoYXQgaXQgaXMgcG9zc2libGUgZm9yIHRoZSBjbGll
bnQKKyAgICAgICAgdG8gc2V0IHByb3h5IGV4Y2VwdGlvbnMgdmlhIHRoZSAibm9fcHJveHkiCisg
ICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgorCisgICAgICAgICogZXdrL2V3a19uZXR3b3Jr
LmNwcDoKKyAgICAgICAgKGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQpOgorICAgICAgICAoZXdr
X25ldHdvcmtfcHJveHlfdXJpX2dldCk6CisKIDIwMTItMDctMTkgIEtpaG9uZyBLd29uICA8a2lo
b25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIGludGVyYWN0aXZl
IGZvcm0gdmFsaWRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19u
ZXR3b3JrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5jcHAKaW5kZXgg
OGFkM2M0OS4uYzAzNTEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19u
ZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuY3BwCkBA
IC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiU291cFByb3h5UmVzb2x2ZXJFZmwu
aCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAuaD4KQEAgLTM3LDE4ICszOCwyMCBAQCB2b2lkIGV3a19uZXR3b3JrX3By
b3h5X3VyaV9zZXQoY29uc3QgY2hhciogcHJveHkpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcocHJveHkpOwotICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOKHVyaSk7Ci0KLSAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwgU09VUF9T
RVNTSU9OX1BST1hZX1VSSSwgdXJpLCBOVUxMKTsKLSAgICBzb3VwX3VyaV9mcmVlKHVyaSk7Cisg
ICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyRWZsID0gc291cFByb3h5UmVzb2x2ZXJF
ZmxOZXcocHJveHksIDApOworICAgIHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShzZXNzaW9uLCBT
T1VQX1NFU1NJT05fRkVBVFVSRShyZXNvbHZlckVmbCkpOworICAgIGdfb2JqZWN0X3VucmVmKHJl
c29sdmVyRWZsKTsKIH0KIAogY29uc3QgY2hhciogZXdrX25ldHdvcmtfcHJveHlfdXJpX2dldCh2
b2lkKQogewogICAgIFNvdXBVUkkqIHVyaTsKICAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotICAgIGdfb2JqZWN0X2dl
dChzZXNzaW9uLCBTT1VQX1NFU1NJT05fUFJPWFlfVVJJLCAmdXJpLCBOVUxMKTsKKyAgICBTb3Vw
UHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXIgPSBTT1VQX1BST1hZX1VSSV9SRVNPTFZFUihzb3Vw
X3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSKSk7
CisgICAgaWYgKCFyZXNvbHZlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBnX29iamVjdF9n
ZXQocmVzb2x2ZXIsIFNPVVBfUFJPWFlfUkVTT0xWRVJfRUZMX1BST1hZX1VSSSwgJnVyaSwgTlVM
TCk7CiAKICAgICBpZiAoIXVyaSkgewogICAgICAgICBFUlIoIm5vIHByb3h5IHVyaSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDQ5N2EzOTQuLjJiNzc1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgorCisgICAgICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBu
b19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5ldyBjdXN0b20gcHJveHkgcmVzb2x2ZXIgZnJv
bSBXZWJDb3JlIGluCisgICAgICAgIFdlYktpdDItRUZMIHNvIHRoYXQgaXQgaXMgcG9zc2libGUg
Zm9yIHRoZSBjbGllbnQKKyAgICAgICAgdG8gc2V0IHByb3h5IGV4Y2VwdGlvbnMgdmlhIHRoZSAi
bm9fcHJveHkiCisgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgorCisgICAgICAgICogUGxh
dGZvcm1FZmwuY21ha2U6CisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5F
ZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVmbCk6CisKIDIwMTItMDct
MTkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFj
dG9yaW5nXSBSZXBsYWNlIE5vZGUncyBEb2N1bWVudCBwb2ludGVyIHdpdGggYSBUcmVlU2NvcGUg
cG9pbnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA5N2Y3MDk1Li44MGRkNzYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTAyLDYgKzEwMiw3IEBAIExJU1QoQVBQRU5E
IFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cC9lZmwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9n
cmFwaGljcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL2VmbCIKICAgICAiJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL3NvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKaW5kZXggOTJkMzUxNi4uYjQzN2ZhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNYWluRWZsLmgiCiAKKyNpbmNsdWRlICJTb3VwUHJveHlSZXNvbHZlckVmbC5oIgogI2luY2x1
ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgpAQCAtNjcsMTEgKzY4LDEyIEBAIFdLX0VYUE9SVCBpbnQgV2ViUHJvY2Vz
c01haW5FZmwoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKIAogICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgY29uc3QgY2hhciogaHR0cFByb3h5
ID0gZ19nZXRlbnYoImh0dHBfcHJveHkiKTsKKyAgICBjb25zdCBjaGFyKiBodHRwUHJveHkgPSBn
ZXRlbnYoImh0dHBfcHJveHkiKTsKICAgICBpZiAoaHR0cFByb3h5KSB7Ci0gICAgICAgIFNvdXBV
UkkqIHByb3h5VXJpID0gc291cF91cmlfbmV3KGh0dHBQcm94eSk7Ci0gICAgICAgIGdfb2JqZWN0
X3NldChzZXNzaW9uLCBTT1VQX1NFU1NJT05fUFJPWFlfVVJJLCBwcm94eVVyaSwgTlVMTCk7Ci0g
ICAgICAgIHNvdXBfdXJpX2ZyZWUocHJveHlVcmkpOworICAgICAgICBjb25zdCBjaGFyKiBub1By
b3h5ID0gZ2V0ZW52KCJub19wcm94eSIpOworICAgICAgICBTb3VwUHJveHlVUklSZXNvbHZlciog
cmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlSZXNvbHZlckVmbE5ldyhodHRwUHJveHksIG5vUHJveHkp
OworICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9O
X0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYocmVzb2x2ZXJF
ZmwpOwogICAgIH0KIAogICAgIGludCBzb2NrZXQgPSBhdG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAzOGUxM2YuLjY5NjY5
MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hv
dWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgU291cFByb3h5UmVzb2x2ZXJF
ZmwgdG8gdGhlIGxpc3Qgb2YgY2xhc3NlcyB0aGF0IGNvbnRhaW4gR09iamVjdHMKKyAgICAgICAg
aW4gc3R5bGUgY2hlY2tlciBzY3JpcHQgc28gdGhhdCBpdCBkb2VzIG5vdCBjb21wbGFpbiBhYm91
dCBuYW1pbmcKKyAgICAgICAgY29udmVudGlvbiBpc3N1ZXMgdGhhdCBhcmUgbWFuZGF0ZWQgYnkg
R09iamVjdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToK
KwogMjAxMi0wNy0yMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtXVFJdIEFkZCAqZXhwbGljaXQqIGtleXdvcmQgdG8gY29uc3RydWN0b3Igd2hp
Y2ggaGFzIGEgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkK
aW5kZXggNDJhYjcxNS4uZWViODFlYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weQpAQCAtMjIwLDcgKzIyMCw5IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAg
ICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5r
R1N0cmVhbWVyMS5jcHAiLAogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIiwKICAgICAgICJTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cCIsCi0gICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCJdLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAi
LAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9lZmwvU291cFBy
b3h5UmVzb2x2ZXJFZmwuY3BwIiwKKyAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvZWZsL1NvdXBQcm94eVJlc29sdmVyRWZsLmgiXSwKICAgICAgWyItcmVhZGFiaWxp
dHkvbmFtaW5nIl0pLAogCiAgICAgIyBGb3IgdGhpcmQtcGFydHkgUHl0aG9uIGNvZGUsIGtlZXAg
b25seSB0aGUgZm9sbG93aW5nIGNoZWNrcy0tCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153481</attachid>
            <date>2012-07-20 05:17:48 -0700</date>
            <delta_ts>2012-07-20 06:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>20994</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTQ0NWIyLi43NzNjMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgbGlic291cAorICAgICAgICBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgaW4gRUZMIHBv
cnQuIFRoaXMgY3VzdG9tCisgICAgICAgIHByb3h5IHJlc29sdmVyIGJyaW5ncyBzdXBwb3J0IGZv
ciBzZXR0aW5nCisgICAgICAgIGV4Y2VwdGlvbnMgc28gdGhhdCB0aGUgcHJveHkgaXMgbm90IHVz
ZWQgZm9yIHRoZQorICAgICAgICBzcGVjaWZpZWQgaG9zdHMuCisKKyAgICAgICAgQnkgZGVmYXVs
dCwgdGhlIHByb3h5IGlzIG5vdCB1c2VkIGZvciBsb2NhbGhvc3QgYW5kCisgICAgICAgIDEyNy4w
LjAuMS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZSBmb3IgbGF5
b3V0IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcDogQWRkZWQuCisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0ZpbmFsaXplKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eSk6
CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJvcGVydHkpOgorICAgICAgICAoc2hv
dWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1cm5fcHJveHlfdXJpKToKKyAgICAg
ICAgKHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jKToKKyAgICAgICAgKHNvdXBQ
cm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMpOgorICAgICAgICAoc291cF9wcm94eV9yZXNv
bHZlcl93a19jbGFzc19pbml0KToKKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa05ldyk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmg6IEFkZGVkLgorCiAy
MDEyLTA3LTIwICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogZm9yd2FyZCBjb21wYXRpYmlsaXR5IGZv
ciBsb2FkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTUwZGRkLi5hOWE0ZjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtODUsNiArODUsNyBAQCBMSVNUKEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NyZWRlbnRpYWxTdG9yYWdl
U291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCiAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9HT3duUHRyU291cC5jcHAKKyAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1By
b3h5UmVzb2x2ZXJTb3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlTZXJ2ZXJT
b3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAog
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZl
clNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZTZhMWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJv
eHlSZXNvbHZlclNvdXAuY3BwCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKKwor
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3N0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHROb1Byb3h5
VmFsdWVbXSA9ICJsb2NhbGhvc3QsMTI3LjAuMC4xIjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAg
IFNvdXBVUkkqIHByb3h5VVJJOworICAgIENTdHJpbmcgbm9Qcm94eTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBwcm94eUV4Y2VwdGlvbnM7Cit9IFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlOworCisj
ZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUobykgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfUFJJVkFURSgobyksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywgU291cFBy
b3h5UmVzb2x2ZXJXa1ByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVy
X3drX2ludGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eVJl
c29sdmVySW50ZXJmYWNlKTsKKworR19ERUZJTkVfVFlQRV9FWFRFTkRFRChTb3VwUHJveHlSZXNv
bHZlcldrLCBzb3VwX3Byb3h5X3Jlc29sdmVyX3drLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAg
ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05f
RkVBVFVSRSwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNF
KFNPVVBfVFlQRV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpKQorCitlbnVtIHsKKyAgICBQUk9QXzAsCisgICAgUFJPUF9QUk9YWV9VUkks
CisgICAgUFJPUF9OT19QUk9YWSwKKyAgICBMQVNUX1BST1AKK307CisKK3N0YXRpYyB2b2lkIHNv
dXBfcHJveHlfcmVzb2x2ZXJfd2tfaW5pdChTb3VwUHJveHlSZXNvbHZlcldrKiByZXNvbHZlcldr
KQoreworfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrRmluYWxpemUoR09iamVj
dCogb2JqZWN0KQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2ID0gU09V
UF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgZ19jbGVhcl9w
b2ludGVyKCZwcml2LT5wcm94eVVSSSwgc291cF91cmlfZnJlZSk7CisKKyAgICBHX09CSkVDVF9D
TEFTUyhzb3VwX3Byb3h5X3Jlc29sdmVyX3drX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlcldrUHJpdmF0ZSogcHJpdiA9IFNPVVBf
UFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUob2JqZWN0KTsKKyAgICBTb3VwVVJJKiB1cmk7
CisKKyAgICBzd2l0Y2ggKHByb3BJRCkgeworICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAg
ICAgIHVyaSA9IHN0YXRpY19jYXN0PFNvdXBVUkkqPihnX3ZhbHVlX2dldF9ib3hlZCh2YWx1ZSkp
OworICAgICAgICBpZiAocHJpdi0+cHJveHlVUkkpCisgICAgICAgICAgICBzb3VwX3VyaV9mcmVl
KHByaXYtPnByb3h5VVJJKTsKKworICAgICAgICBwcml2LT5wcm94eVVSSSA9IHVyaSA/IHNvdXBf
dXJpX2NvcHkodXJpKSA6IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9OT19QUk9Y
WToKKyAgICAgICAgcHJpdi0+bm9Qcm94eSA9IGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSk7Cisg
ICAgICAgIHByaXYtPnByb3h5RXhjZXB0aW9ucy5jbGVhcigpOworICAgICAgICBTdHJpbmc6OmZy
b21VVEY4KHByaXYtPm5vUHJveHkuZGF0YSgpKS5yZXBsYWNlKCcgJywgIiIpLnNwbGl0KCcsJywg
cHJpdi0+cHJveHlFeGNlcHRpb25zKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElELCBw
c3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgc291cFByb3h5
UmVzb2x2ZXJXa0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgdWludCBwcm9wSUQsIEdWYWx1
ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQ
cml2YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShvYmplY3Qp
OworCisgICAgc3dpdGNoIChwcm9wSUQpIHsKKyAgICBjYXNlIFBST1BfUFJPWFlfVVJJOgorICAg
ICAgICBnX3ZhbHVlX3NldF9ib3hlZCh2YWx1ZSwgcHJpdi0+cHJveHlVUkkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBST1BfTk9fUFJPWFk6CisgICAgICAgIGdfdmFsdWVfc2V0X3N0cmlu
Zyh2YWx1ZSwgcHJpdi0+bm9Qcm94eS5kYXRhKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBw
cm9wSUQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBz
aG91bGRCeXBhc3NQcm94eShTb3VwUHJveHlSZXNvbHZlcldrUHJpdmF0ZSogcHJpdiwgU291cFVS
SSogdXJpKQoreworICAgIGNvbnN0IHNpemVfdCBleGNlcHRpb25Db3VudCA9IHByaXYtPnByb3h5
RXhjZXB0aW9ucy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGNlcHRpb25D
b3VudDsgKytpKSB7CisgICAgICAgIGlmIChTdHJpbmc6OmZyb21VVEY4KHVyaS0+aG9zdCkuZW5k
c1dpdGgocHJpdi0+cHJveHlFeGNlcHRpb25zW2ldLCBmYWxzZSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3R5cGVkZWYgc3RydWN0
IHsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlcjsKKyAgICBTb3VwVVJJ
KiB1cmk7CisgICAgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjazsKKyAgICB2
b2lkKiB1c2VyRGF0YTsKK30gU291cFdrQXN5bmNEYXRhOworCitzdGF0aWMgZ2Jvb2xlYW4gaWRs
ZV9yZXR1cm5fcHJveHlfdXJpKHZvaWQqIGRhdGEpCit7CisgICAgU291cFdrQXN5bmNEYXRhKiBz
c2FkID0gc3RhdGljX2Nhc3Q8U291cFdrQXN5bmNEYXRhKj4oZGF0YSk7CisgICAgU291cFByb3h5
UmVzb2x2ZXJXa1ByaXZhdGUqIHByaXYgPSBTT1VQX1BST1hZX1JFU09MVkVSX1dLX0dFVF9QUklW
QVRFKHNzYWQtPnByb3h5UmVzb2x2ZXIpOworCisgICAgU291cFVSSSogcHJveHlVUkkgPSAwOwor
ICAgIGlmICghc2hvdWxkQnlwYXNzUHJveHkocHJpdiwgc3NhZC0+dXJpKSkKKyAgICAgICAgcHJv
eHlVUkkgPSBwcml2LT5wcm94eVVSSTsKKworICAgIHNzYWQtPmNhbGxiYWNrKHNzYWQtPnByb3h5
UmVzb2x2ZXIsIFNPVVBfU1RBVFVTX09LLCBwcm94eVVSSSwgc3NhZC0+dXNlckRhdGEpOworICAg
IGdfb2JqZWN0X3VucmVmKHNzYWQtPnByb3h5UmVzb2x2ZXIpOworICAgIHNvdXBfdXJpX2ZyZWUo
c3NhZC0+dXJpKTsKKyAgICBnX3NsaWNlX2ZyZWUoU291cFdrQXN5bmNEYXRhLCBzc2FkKTsKKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgc291cFByb3h5UmVzb2x2ZXJXa0dl
dFByb3h5VVJJQXN5bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBV
UkkqIHVyaSwgR01haW5Db250ZXh0KiBhc3luY0NvbnRleHQsIEdDYW5jZWxsYWJsZSogY2FuY2Vs
bGFibGUsIFNvdXBQcm94eVVSSVJlc29sdmVyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIHVzZXJE
YXRhKQoreworICAgIFNvdXBXa0FzeW5jRGF0YSogc3NhZDsKKworICAgIHNzYWQgPSBnX3NsaWNl
X25ldzAoU291cFdrQXN5bmNEYXRhKTsKKyAgICBzc2FkLT5wcm94eVJlc29sdmVyID0gU09VUF9Q
Uk9YWV9VUklfUkVTT0xWRVIoZ19vYmplY3RfcmVmKHByb3h5UmVzb2x2ZXIpKTsKKyAgICBzc2Fk
LT51cmkgPSBzb3VwX3VyaV9jb3B5KHVyaSk7CisgICAgc3NhZC0+Y2FsbGJhY2sgPSBjYWxsYmFj
azsKKyAgICBzc2FkLT51c2VyRGF0YSA9IHVzZXJEYXRhOworICAgIHNvdXBfYWRkX2NvbXBsZXRp
b24oYXN5bmNDb250ZXh0LCBpZGxlX3JldHVybl9wcm94eV91cmksIHNzYWQpOworfQorCitzdGF0
aWMgdWludCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklTeW5jKFNvdXBQcm94eVVSSVJl
c29sdmVyKiBwcm94eVJlc29sdmVyLCBTb3VwVVJJKiB1cmksIEdDYW5jZWxsYWJsZSogY2FuY2Vs
bGFibGUsIFNvdXBVUkkqKiBwcm94eVVSSSkKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlcldrUHJp
dmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUocHJveHlSZXNv
bHZlcik7CisKKyAgICBpZiAoIXNob3VsZEJ5cGFzc1Byb3h5KHByaXYsIHVyaSkpCisgICAgICAg
ICpwcm94eVVSSSA9IHNvdXBfdXJpX2NvcHkocHJpdi0+cHJveHlVUkkpOworCisgICAgcmV0dXJu
IFNPVVBfU1RBVFVTX09LOworfQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVyX3dr
X2NsYXNzX2luaXQoU291cFByb3h5UmVzb2x2ZXJXa0NsYXNzKiB3a0NsYXNzKQoreworICAgIEdP
YmplY3RDbGFzcyogb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1Mod2tDbGFzcyk7CisKKyAg
ICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUod2tDbGFzcywgc2l6ZW9mKFNvdXBQcm94eVJlc29s
dmVyV2tQcml2YXRlKSk7CisKKyAgICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHNvdXBQ
cm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0
eSA9IHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RfY2xhc3MtPmZp
bmFsaXplID0gc291cFByb3h5UmVzb2x2ZXJXa0ZpbmFsaXplOworCisgICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBST1BfUFJPWFlfVVJJLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2JveGVkKFNPVVBfUFJP
WFlfUkVTT0xWRVJfV0tfUFJPWFlfVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJQcm94eSBVUkkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgSFRUUCBQcm94eSB0byB1
c2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNPVVBfVFlQRV9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1fUkVBRFdS
SVRFKSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xh
c3MsIFBST1BfTk9fUFJPWFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfc3RyaW5nKFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfTk9fUFJPWFksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5
IGV4Y2VwdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJDb21tYS1zZXBhcmF0ZWQgcHJveHkgZXhjZXB0aW9ucyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE5v
UHJveHlWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUpKSk7
Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50ZXJmYWNlX2luaXQo
U291cFByb3h5VVJJUmVzb2x2ZXJJbnRlcmZhY2UqIHByb3h5X3VyaV9yZXNvbHZlcl9pbnRlcmZh
Y2UpCit7CisgICAgcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9h
c3luYyA9IHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jOworICAgIHByb3h5X3Vy
aV9yZXNvbHZlcl9pbnRlcmZhY2UtPmdldF9wcm94eV91cmlfc3luYyA9IHNvdXBQcm94eVJlc29s
dmVyV2tHZXRQcm94eVVSSVN5bmM7Cit9CisKK1NvdXBQcm94eVVSSVJlc29sdmVyKiBzb3VwUHJv
eHlSZXNvbHZlcldrTmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3QgY2hhciogbm9Qcm94
eSkKK3sKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IHNvdXBfdXJpX25ldyhodHRwUHJveHkpOwor
ICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiByZXNvbHZlciA9IFNPVVBfUFJPWFlfVVJJX1JFU09M
VkVSKGdfb2JqZWN0X25ldyhTT1VQX1RZUEVfUFJPWFlfUkVTT0xWRVJfV0ssCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfUFJPWFlfVVJJLCBwcm94eVVSSSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9XS19OT19QUk9YWSwgbm9Qcm94eSA/IG5v
UHJveHkgOiBkZWZhdWx0Tm9Qcm94eVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7CisgICAg
c291cF91cmlfZnJlZShwcm94eVVSSSk7CisKKyAgICByZXR1cm4gcmVzb2x2ZXI7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZl
clNvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29s
dmVyU291cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYmQxYmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJv
eHlSZXNvbHZlclNvdXAuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFByb3h5UmVzb2x2ZXJTb3VwX2gKKyNkZWZpbmUgUHJveHlSZXNvbHZlclNvdXBfaAor
CisjaW5jbHVkZSA8bGlic291cC9zb3VwLXByb3h5LXVyaS1yZXNvbHZlci5oPgorI2luY2x1ZGUg
PGxpYnNvdXAvc291cC11cmkuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFNPVVBfVFlQ
RV9QUk9YWV9SRVNPTFZFUl9XSyAgICAgICAgICAgICAgIChzb3VwX3Byb3h5X3Jlc29sdmVyX3dr
X2dldF90eXBlICgpKQorI2RlZmluZSBTT1VQX1BST1hZX1JFU09MVkVSX1dLKG9iamVjdCkgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmplY3QpLCBTT1VQX1RZUEVf
UFJPWFlfUkVTT0xWRVJfV0ssIFNvdXBQcm94eVJlc29sdmVyV2spKQorI2RlZmluZSBTT1VQX1BS
T1hZX1JFU09MVkVSX1dLX0NMQVNTKGtsYXNzKSAgICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QgKChrbGFzcyksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywgU291cFByb3h5UmVzb2x2
ZXJXa0NsYXNzKSkKKyNkZWZpbmUgU09VUF9JU19QUk9YWV9SRVNPTFZFUl9XSyhvYmplY3QpICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqZWN0KSwgU09VUF9UWVBFX1BS
T1hZX1JFU09MVkVSX1dLKSkKKyNkZWZpbmUgU09VUF9JU19QUk9YWV9SRVNPTFZFUl9XS19DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3MpLCBTT1VQX1RZUEVf
UFJPWFlfUkVTT0xWRVJfV0spKQorI2RlZmluZSBTT1VQX1BST1hZX1JFU09MVkVSX1dLX0dFVF9D
TEFTUyhvYmopICAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iaiksIFNPVVBfVFlQ
RV9QUk9YWV9SRVNPTFZFUl9XSywgU291cFByb3h5UmVzb2x2ZXJXa0NsYXNzKSkKKworc3RhdGlj
IGNvbnN0IGNoYXIgU09VUF9QUk9YWV9SRVNPTFZFUl9XS19QUk9YWV9VUklbXSA9ICJwcm94eS11
cmkiOworc3RhdGljIGNvbnN0IGNoYXIgU09VUF9QUk9YWV9SRVNPTFZFUl9XS19OT19QUk9YWVtd
ID0gIm5vLXByb3h5IjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdPYmplY3QgcGFyZW50Owor
fSBTb3VwUHJveHlSZXNvbHZlcldrOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgR09iamVjdENs
YXNzIHBhcmVudF9jbGFzczsKK30gU291cFByb3h5UmVzb2x2ZXJXa0NsYXNzOworCitHVHlwZSBz
b3VwX3Byb3h5X3Jlc29sdmVyX3drX2dldF90eXBlKHZvaWQpOworCitTb3VwUHJveHlVUklSZXNv
bHZlciogc291cFByb3h5UmVzb2x2ZXJXa05ldyhjb25zdCBjaGFyKiBodHRwUHJveHksIGNvbnN0
IGNoYXIqIG5vUHJveHkpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLy8gUHJveHlSZXNvbHZl
clNvdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBkMjQ5Y2Y4Li43MmE4N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEyLTA3LTIwICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBp
bnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gUHJveHkgY29uZmlndXJhdGlvbiBzaG91bGQgaG9u
b3IgdGhlIG5vX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cCB0byBJTkNMVURFIHBhdGhzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisK
IDIwMTItMDctMTggIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIE1vdmUgYWJvdXQ6IFVSTCBoYW5kbGluZyBvdXQgb2YgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggYzYyNDNkYS4uYzZlY2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0xMyw2ICsxMyw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2VmbCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dy
YXBoaWNzL2VmbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgog
ICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQogICAgICR7RUNPUkVfWF9JTkNMVURFX0RJUlN9CiAg
ICAgJHtFREpFX0lOQ0xVREVfRElSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBiOWMzNWU0Li42OWNj
MDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDctMjAgIENocmlz
dG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZM
XSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0aGUgbm9fcHJveHkgZW52aXJvbm1l
bnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIHRoZSBuZXcgY3VzdG9tIHByb3h5IHJlc29sdmVyIGZyb20gV2ViQ29yZSBpbgorICAg
ICAgICBXZWJLaXQxLUVGTCdzIGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQoKSAvIGdldCgpLAor
ICAgICAgICBpbnN0ZWFkIG9mIHRoZSBsZXNzIGZsZXhpYmxlIFNPVVBfU0VTU0lPTl9QUk9YWV9V
UkkKKyAgICAgICAgU291cFNlc3Npb24gcHJvcGVydHkuCisKKyAgICAgICAgKiBld2svZXdrX25l
dHdvcmsuY3BwOgorICAgICAgICAoZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldCk6CisgICAgICAg
IChld2tfbmV0d29ya19wcm94eV91cmlfZ2V0KToKKwogMjAxMi0wNy0yMCAgS2lob25nIEt3b24g
IDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBDaGVjayBwYXJhbWV0
ZXJzIG9mIGV3ayBBUElzIGluIGV3a19zZWN1cml0eV9vcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX25ldHdvcmsuY3BwCmluZGV4IDhhZDNjNDkuLjc4MWU5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29yay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19uZXR3b3JrLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImV3a19uZXR3
b3JrLmgiCiAKICNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgIlBy
b3h5UmVzb2x2ZXJTb3VwLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRl
ICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEVpbmEuaD4KQEAgLTM3LDE4ICszOCwyMCBAQCB2
b2lkIGV3a19uZXR3b3JrX3Byb3h5X3VyaV9zZXQoY29uc3QgY2hhciogcHJveHkpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcocHJveHkp
OwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHVyaSk7Ci0KLSAgICBnX29iamVjdF9z
ZXQoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX1BST1hZX1VSSSwgdXJpLCBOVUxMKTsKLSAgICBzb3Vw
X3VyaV9mcmVlKHVyaSk7CisgICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyRWZsID0g
c291cFByb3h5UmVzb2x2ZXJXa05ldyhwcm94eSwgMCk7CisgICAgc291cF9zZXNzaW9uX2FkZF9m
ZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKHJlc29sdmVyRWZsKSk7CisgICAg
Z19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogfQogCiBjb25zdCBjaGFyKiBld2tfbmV0d29y
a19wcm94eV91cmlfZ2V0KHZvaWQpCiB7CiAgICAgU291cFVSSSogdXJpOwogICAgIFNvdXBTZXNz
aW9uKiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7
Ci0gICAgZ19vYmplY3RfZ2V0KHNlc3Npb24sIFNPVVBfU0VTU0lPTl9QUk9YWV9VUkksICZ1cmks
IE5VTEwpOworICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiByZXNvbHZlciA9IFNPVVBfUFJPWFlf
VVJJX1JFU09MVkVSKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShzZXNzaW9uLCBTT1VQX1RZUEVf
UFJPWFlfUkVTT0xWRVIpKTsKKyAgICBpZiAoIXJlc29sdmVyKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGdfb2JqZWN0X2dldChyZXNvbHZlciwgU09VUF9QUk9YWV9SRVNPTFZFUl9XS19QUk9Y
WV9VUkksICZ1cmksIE5VTEwpOwogCiAgICAgaWYgKCF1cmkpIHsKICAgICAgICAgRVJSKCJubyBw
cm94eSB1cmkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlOTJlNGFmLi41OGNiMzIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhl
LmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNo
b3VsZCBob25vciB0aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgY3VzdG9tIHBy
b3h5IHJlc29sdmVyIGZyb20gV2ViQ29yZSBpbgorICAgICAgICBXZWJLaXQyLUVGTCBzbyB0aGF0
IGl0IGlzIHBvc3NpYmxlIGZvciB0aGUgY2xpZW50CisgICAgICAgIHRvIHNldCBwcm94eSBleGNl
cHRpb25zIHZpYSB0aGUgIm5vX3Byb3h5IgorICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZS4K
KworICAgICAgICBCeSBkZWZhdWx0LCB0aGUgcHJveHkgc2V0IGluIHRoZSAiaHR0cF9wcm94eSIK
KyAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBub3QgYmUgdXNlZCBmb3IgcmVxdWVz
dHMKKyAgICAgICAgdG8gbG9jYWxob3N0IG9yIDEyNy4wLjAuMS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc01haW5FZmwpOgorCiAyMDEyLTA3LTIwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzA4NS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWlu
RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZs
LmNwcAppbmRleCA5MmQzNTE2Li4xNjI3OGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01haW5FZmwuaCIKIAorI2lu
Y2x1ZGUgIlByb3h5UmVzb2x2ZXJTb3VwLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVk
ZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CkBAIC02Nywx
MSArNjgsMTIgQEAgV0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFpbkVmbChpbnQgYXJnYywgY2hh
ciogYXJndltdKQogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogCiAgICAg
U291cFNlc3Npb24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNl
c3Npb24oKTsKLSAgICBjb25zdCBjaGFyKiBodHRwUHJveHkgPSBnX2dldGVudigiaHR0cF9wcm94
eSIpOworICAgIGNvbnN0IGNoYXIqIGh0dHBQcm94eSA9IGdldGVudigiaHR0cF9wcm94eSIpOwog
ICAgIGlmIChodHRwUHJveHkpIHsKLSAgICAgICAgU291cFVSSSogcHJveHlVcmkgPSBzb3VwX3Vy
aV9uZXcoaHR0cFByb3h5KTsKLSAgICAgICAgZ19vYmplY3Rfc2V0KHNlc3Npb24sIFNPVVBfU0VT
U0lPTl9QUk9YWV9VUkksIHByb3h5VXJpLCBOVUxMKTsKLSAgICAgICAgc291cF91cmlfZnJlZShw
cm94eVVyaSk7CisgICAgICAgIGNvbnN0IGNoYXIqIG5vUHJveHkgPSBnZXRlbnYoIm5vX3Byb3h5
Iik7CisgICAgICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiByZXNvbHZlckVmbCA9IHNvdXBQcm94
eVJlc29sdmVyV2tOZXcoaHR0cFByb3h5LCBub1Byb3h5KTsKKyAgICAgICAgc291cF9zZXNzaW9u
X2FkZF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJFKHJlc29sdmVyRWZsKSk7
CisgICAgICAgIGdfb2JqZWN0X3VucmVmKHJlc29sdmVyRWZsKTsKICAgICB9CiAKICAgICBpbnQg
c29ja2V0ID0gYXRvaShhcmd2WzFdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBlZDk4YWNjLi45ZDk5NTc2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDct
MjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0aGUgbm9fcHJveHkg
ZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIFByb3h5UmVzb2x2ZXJTb3VwIHRvIHRoZSBsaXN0IG9mIGNsYXNzZXMg
dGhhdCBjb250YWluIEdPYmplY3RzCisgICAgICAgIGluIHN0eWxlIGNoZWNrZXIgc2NyaXB0IHNv
IHRoYXQgaXQgZG9lcyBub3QgY29tcGxhaW4gYWJvdXQgbmFtaW5nCisgICAgICAgIGNvbnZlbnRp
b24gaXNzdWVzIHRoYXQgYXJlIG1hbmRhdGVkIGJ5IEdPYmplY3QuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisKIDIwMTItMDctMjAgIEthbmdpbCBIYW4g
IDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl1bV1RSXSBJbXBs
ZW1lbnQgRXZlbnRTZW5kZXJQcm94eQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CmluZGV4IDQyYWI3MTUuLjEwZjM0NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXIucHkKQEAgLTIyMCw3ICsyMjAsOSBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBb
CiAgICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVv
U2lua0dTdHJlYW1lcjEuY3BwIiwKICAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNwcCIsCiAgICAgICAiU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAiLAotICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9X
ZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAiXSwKKyAgICAgICJTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwIiwKKyAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlS
ZXNvbHZlclNvdXAuY3BwIiwKKyAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUHJveHlSZXNvbHZlclNvdXAuaCJdLAogICAgICBbIi1yZWFkYWJpbGl0eS9uYW1pbmci
XSksCiAKICAgICAjIEZvciB0aGlyZC1wYXJ0eSBQeXRob24gY29kZSwga2VlcCBvbmx5IHRoZSBm
b2xsb3dpbmcgY2hlY2tzLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153486</attachid>
            <date>2012-07-20 06:04:03 -0700</date>
            <delta_ts>2012-07-20 06:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>20984</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTQ0NWIyLi43NzNjMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgbGlic291cAorICAgICAgICBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgaW4gRUZMIHBv
cnQuIFRoaXMgY3VzdG9tCisgICAgICAgIHByb3h5IHJlc29sdmVyIGJyaW5ncyBzdXBwb3J0IGZv
ciBzZXR0aW5nCisgICAgICAgIGV4Y2VwdGlvbnMgc28gdGhhdCB0aGUgcHJveHkgaXMgbm90IHVz
ZWQgZm9yIHRoZQorICAgICAgICBzcGVjaWZpZWQgaG9zdHMuCisKKyAgICAgICAgQnkgZGVmYXVs
dCwgdGhlIHByb3h5IGlzIG5vdCB1c2VkIGZvciBsb2NhbGhvc3QgYW5kCisgICAgICAgIDEyNy4w
LjAuMS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZSBmb3IgbGF5
b3V0IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcDogQWRkZWQuCisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0ZpbmFsaXplKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eSk6
CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJvcGVydHkpOgorICAgICAgICAoc2hv
dWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1cm5fcHJveHlfdXJpKToKKyAgICAg
ICAgKHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jKToKKyAgICAgICAgKHNvdXBQ
cm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMpOgorICAgICAgICAoc291cF9wcm94eV9yZXNv
bHZlcl93a19jbGFzc19pbml0KToKKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa05ldyk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmg6IEFkZGVkLgorCiAy
MDEyLTA3LTIwICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogZm9yd2FyZCBjb21wYXRpYmlsaXR5IGZv
ciBsb2FkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTUwZGRkLi5hOWE0ZjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtODUsNiArODUsNyBAQCBMSVNUKEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NyZWRlbnRpYWxTdG9yYWdl
U291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCiAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9HT3duUHRyU291cC5jcHAKKyAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1By
b3h5UmVzb2x2ZXJTb3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlTZXJ2ZXJT
b3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAog
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZl
clNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5NDNhZDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJv
eHlSZXNvbHZlclNvdXAuY3BwCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKKwor
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3N0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHROb1Byb3h5
VmFsdWVbXSA9ICJsb2NhbGhvc3QsMTI3LjAuMC4xIjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAg
IFNvdXBVUkkqIHByb3h5VVJJOworICAgIENTdHJpbmcgbm9Qcm94eTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBwcm94eUV4Y2VwdGlvbnM7Cit9IFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlOworCisj
ZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUobykgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfUFJJVkFURSgobyksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywgU291cFBy
b3h5UmVzb2x2ZXJXa1ByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVy
X3drX2ludGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eVJl
c29sdmVySW50ZXJmYWNlKTsKKworR19ERUZJTkVfVFlQRV9FWFRFTkRFRChTb3VwUHJveHlSZXNv
bHZlcldrLCBzb3VwX3Byb3h5X3Jlc29sdmVyX3drLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAg
ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05f
RkVBVFVSRSwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNF
KFNPVVBfVFlQRV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpKQorCitlbnVtIHsKKyAgICBQUk9QXzAsCisgICAgUFJPUF9QUk9YWV9VUkks
CisgICAgUFJPUF9OT19QUk9YWSwKKyAgICBMQVNUX1BST1AKK307CisKK3N0YXRpYyB2b2lkIHNv
dXBfcHJveHlfcmVzb2x2ZXJfd2tfaW5pdChTb3VwUHJveHlSZXNvbHZlcldrKiByZXNvbHZlcldr
KQoreworfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrRmluYWxpemUoR09iamVj
dCogb2JqZWN0KQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2ID0gU09V
UF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgZ19jbGVhcl9w
b2ludGVyKCZwcml2LT5wcm94eVVSSSwgc291cF91cmlfZnJlZSk7CisKKyAgICBHX09CSkVDVF9D
TEFTUyhzb3VwX3Byb3h5X3Jlc29sdmVyX3drX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlcldrUHJpdmF0ZSogcHJpdiA9IFNPVVBf
UFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJv
cElEKSB7CisgICAgY2FzZSBQUk9QX1BST1hZX1VSSToKKyAgICAgICAgU291cFVSSSogdXJpID0g
c3RhdGljX2Nhc3Q8U291cFVSSSo+KGdfdmFsdWVfZ2V0X2JveGVkKHZhbHVlKSk7CisgICAgICAg
IGlmIChwcml2LT5wcm94eVVSSSkKKyAgICAgICAgICAgIHNvdXBfdXJpX2ZyZWUocHJpdi0+cHJv
eHlVUkkpOworCisgICAgICAgIHByaXYtPnByb3h5VVJJID0gdXJpID8gc291cF91cmlfY29weSh1
cmkpIDogMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX05PX1BST1hZOgorICAgICAg
ICBwcml2LT5ub1Byb3h5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJp
di0+cHJveHlFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgICAgIFN0cmluZzo6ZnJvbVVURjgocHJp
di0+bm9Qcm94eS5kYXRhKCkpLnJlcGxhY2UoJyAnLCAiIikuc3BsaXQoJywnLCBwcml2LT5wcm94
eUV4Y2VwdGlvbnMpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBzcGVjKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldr
R2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCB1aW50IHByb3BJRCwgR1ZhbHVlKiB2YWx1ZSwg
R1BhcmFtU3BlYyogcHNwZWMpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJXa1ByaXZhdGUqIHBy
aXYgPSBTT1VQX1BST1hZX1JFU09MVkVSX1dLX0dFVF9QUklWQVRFKG9iamVjdCk7CisKKyAgICBz
d2l0Y2ggKHByb3BJRCkgeworICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAgICAgIGdfdmFs
dWVfc2V0X2JveGVkKHZhbHVlLCBwcml2LT5wcm94eVVSSSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUFJPUF9OT19QUk9YWToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBw
cml2LT5ub1Byb3h5LmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJRCwgcHNw
ZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHNob3VsZEJ5cGFz
c1Byb3h5KFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2LCBTb3VwVVJJKiB1cmkpCit7
CisgICAgY29uc3Qgc2l6ZV90IGV4Y2VwdGlvbkNvdW50ID0gcHJpdi0+cHJveHlFeGNlcHRpb25z
LnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4Y2VwdGlvbkNvdW50OyArK2kp
IHsKKyAgICAgICAgaWYgKFN0cmluZzo6ZnJvbVVURjgodXJpLT5ob3N0KS5lbmRzV2l0aChwcml2
LT5wcm94eUV4Y2VwdGlvbnNbaV0sIGZhbHNlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFNv
dXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyOworICAgIFNvdXBVUkkqIHVyaTsKKyAg
ICBTb3VwUHJveHlVUklSZXNvbHZlckNhbGxiYWNrIGNhbGxiYWNrOworICAgIHZvaWQqIHVzZXJE
YXRhOworfSBTb3VwV2tBc3luY0RhdGE7CisKK3N0YXRpYyBnYm9vbGVhbiBpZGxlX3JldHVybl9w
cm94eV91cmkodm9pZCogZGF0YSkKK3sKKyAgICBTb3VwV2tBc3luY0RhdGEqIHNzYWQgPSBzdGF0
aWNfY2FzdDxTb3VwV2tBc3luY0RhdGEqPihkYXRhKTsKKyAgICBTb3VwUHJveHlSZXNvbHZlcldr
UHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUoc3NhZC0+
cHJveHlSZXNvbHZlcik7CisKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IDA7CisgICAgaWYgKCFz
aG91bGRCeXBhc3NQcm94eShwcml2LCBzc2FkLT51cmkpKQorICAgICAgICBwcm94eVVSSSA9IHBy
aXYtPnByb3h5VVJJOworCisgICAgc3NhZC0+Y2FsbGJhY2soc3NhZC0+cHJveHlSZXNvbHZlciwg
U09VUF9TVEFUVVNfT0ssIHByb3h5VVJJLCBzc2FkLT51c2VyRGF0YSk7CisgICAgZ19vYmplY3Rf
dW5yZWYoc3NhZC0+cHJveHlSZXNvbHZlcik7CisgICAgc291cF91cmlfZnJlZShzc2FkLT51cmkp
OworICAgIGdfc2xpY2VfZnJlZShTb3VwV2tBc3luY0RhdGEsIHNzYWQpOworCisgICAgcmV0dXJu
IGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJveHlVUklB
c3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVSSSogdXJpLCBH
TWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291
cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCit7Cisg
ICAgU291cFdrQXN5bmNEYXRhKiBzc2FkOworCisgICAgc3NhZCA9IGdfc2xpY2VfbmV3MChTb3Vw
V2tBc3luY0RhdGEpOworICAgIHNzYWQtPnByb3h5UmVzb2x2ZXIgPSBTT1VQX1BST1hZX1VSSV9S
RVNPTFZFUihnX29iamVjdF9yZWYocHJveHlSZXNvbHZlcikpOworICAgIHNzYWQtPnVyaSA9IHNv
dXBfdXJpX2NvcHkodXJpKTsKKyAgICBzc2FkLT5jYWxsYmFjayA9IGNhbGxiYWNrOworICAgIHNz
YWQtPnVzZXJEYXRhID0gdXNlckRhdGE7CisgICAgc291cF9hZGRfY29tcGxldGlvbihhc3luY0Nv
bnRleHQsIGlkbGVfcmV0dXJuX3Byb3h5X3VyaSwgc3NhZCk7Cit9CisKK3N0YXRpYyB1aW50IHNv
dXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVzb2x2ZXIqIHBy
b3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgU291
cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2
ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShwcm94eVJlc29sdmVyKTsKKwor
ICAgIGlmICghc2hvdWxkQnlwYXNzUHJveHkocHJpdiwgdXJpKSkKKyAgICAgICAgKnByb3h5VVJJ
ID0gc291cF91cmlfY29weShwcml2LT5wcm94eVVSSSk7CisKKyAgICByZXR1cm4gU09VUF9TVEFU
VVNfT0s7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfY2xhc3NfaW5p
dChTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3MqIHdrQ2xhc3MpCit7CisgICAgR09iamVjdENsYXNz
KiBvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3a0NsYXNzKTsKKworICAgIGdfdHlwZV9j
bGFzc19hZGRfcHJpdmF0ZSh3a0NsYXNzLCBzaXplb2YoU291cFByb3h5UmVzb2x2ZXJXa1ByaXZh
dGUpKTsKKworICAgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gc291cFByb3h5UmVzb2x2
ZXJXa1NldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gc291cFBy
b3h5UmVzb2x2ZXJXa0dldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+ZmluYWxpemUgPSBz
b3VwUHJveHlSZXNvbHZlcldrRmluYWxpemU7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9QUk9YWV9VUkksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoU09VUF9QUk9YWV9SRVNPTFZF
Ul9XS19QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQIFByb3h5IHRvIHVzZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9U
WVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUpKSk7CisK
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9O
T19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9XS19OT19QUk9YWSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHJveHkgZXhjZXB0aW9u
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkNvbW1hLXNlcGFyYXRlZCBwcm94eSBleGNlcHRpb25zIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Tm9Qcm94eVZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSkpKTsKK30KKworc3Rh
dGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl93a19pbnRlcmZhY2VfaW5pdChTb3VwUHJveHlV
UklSZXNvbHZlckludGVyZmFjZSogcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFjZSkKK3sKKyAg
ICBwcm94eV91cmlfcmVzb2x2ZXJfaW50ZXJmYWNlLT5nZXRfcHJveHlfdXJpX2FzeW5jID0gc291
cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJQXN5bmM7CisgICAgcHJveHlfdXJpX3Jlc29sdmVy
X2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0gc291cFByb3h5UmVzb2x2ZXJXa0dldFBy
b3h5VVJJU3luYzsKK30KKworU291cFByb3h5VVJJUmVzb2x2ZXIqIHNvdXBQcm94eVJlc29sdmVy
V2tOZXcoY29uc3QgY2hhciogaHR0cFByb3h5LCBjb25zdCBjaGFyKiBub1Byb3h5KQoreworICAg
IFNvdXBVUkkqIHByb3h5VVJJID0gc291cF91cmlfbmV3KGh0dHBQcm94eSk7CisgICAgU291cFBy
b3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyID0gU09VUF9QUk9YWV9VUklfUkVTT0xWRVIoZ19vYmpl
Y3RfbmV3KFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09V
UF9QUk9YWV9SRVNPTFZFUl9XS19QUk9YWV9VUkksIHByb3h5VVJJLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTT1VQX1BST1hZX1JFU09MVkVSX1dLX05PX1BST1hZLCBub1Byb3h5ID8gbm9Qcm94eSA6IGRl
ZmF1bHROb1Byb3h5VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKTsKKyAgICBzb3VwX3VyaV9m
cmVlKHByb3h5VVJJKTsKKworICAgIHJldHVybiByZXNvbHZlcjsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291cC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBiZDFiYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVy
U291cC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJv
eHlSZXNvbHZlclNvdXBfaAorI2RlZmluZSBQcm94eVJlc29sdmVyU291cF9oCisKKyNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAtcHJveHktdXJpLXJlc29sdmVyLmg+CisjaW5jbHVkZSA8bGlic291cC9z
b3VwLXVyaS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX1dLICAgICAgICAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfZ2V0X3R5cGUg
KCkpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0sob2JqZWN0KSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iamVjdCksIFNPVVBfVFlQRV9QUk9YWV9SRVNP
TFZFUl9XSywgU291cFByb3h5UmVzb2x2ZXJXaykpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xW
RVJfV0tfQ0xBU1Moa2xhc3MpICAgICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNz
KSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX1dLLCBTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3Mp
KQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX1dLKG9iamVjdCkgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmplY3QpLCBTT1VQX1RZUEVfUFJPWFlfUkVTT0xW
RVJfV0spKQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX1dLX0NMQVNTKGtsYXNzKSAg
ICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFzcyksIFNPVVBfVFlQRV9QUk9YWV9SRVNP
TFZFUl9XSykpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX0NMQVNTKG9iaikg
ICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwgU09VUF9UWVBFX1BST1hZX1JF
U09MVkVSX1dLLCBTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3MpKQorCitzdGF0aWMgY29uc3QgY2hh
ciBTT1VQX1BST1hZX1JFU09MVkVSX1dLX1BST1hZX1VSSVtdID0gInByb3h5LXVyaSI7CitzdGF0
aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVSX1dLX05PX1BST1hZW10gPSAibm8tcHJv
eHkiOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgR09iamVjdCBwYXJlbnQ7Cit9IFNvdXBQcm94
eVJlc29sdmVyV2s7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOworfSBTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3M7CisKK0dUeXBlIHNvdXBfcHJveHlf
cmVzb2x2ZXJfd2tfZ2V0X3R5cGUodm9pZCk7CisKK1NvdXBQcm94eVVSSVJlc29sdmVyKiBzb3Vw
UHJveHlSZXNvbHZlcldrTmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3QgY2hhciogbm9Q
cm94eSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvLyBQcm94eVJlc29sdmVyU291cF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGQyNDljZjguLjcyYTg3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0aGUgbm9f
cHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwIHRvIElO
Q0xVREUgcGF0aHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0wNy0x
OCAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gTW92ZSBh
Ym91dDogVVJMIGhhbmRsaW5nIG91dCBvZiBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCBjNjI0M2RhLi5jNmVjZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEzLDYg
KzEzLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgJHtDQUlS
T19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9YX0lOQ0xVREVfRElSU30KICAgICAke0VESkVf
SU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGI5YzM1ZTQuLjY5Y2MwMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIFByb3h5IGNv
bmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhl
IG5ldyBjdXN0b20gcHJveHkgcmVzb2x2ZXIgZnJvbSBXZWJDb3JlIGluCisgICAgICAgIFdlYktp
dDEtRUZMJ3MgZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldCgpIC8gZ2V0KCksCisgICAgICAgIGlu
c3RlYWQgb2YgdGhlIGxlc3MgZmxleGlibGUgU09VUF9TRVNTSU9OX1BST1hZX1VSSQorICAgICAg
ICBTb3VwU2Vzc2lvbiBwcm9wZXJ0eS4KKworICAgICAgICAqIGV3ay9ld2tfbmV0d29yay5jcHA6
CisgICAgICAgIChld2tfbmV0d29ya19wcm94eV91cmlfc2V0KToKKyAgICAgICAgKGV3a19uZXR3
b3JrX3Byb3h5X3VyaV9nZXQpOgorCiAyMDEyLTA3LTIwICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5r
d29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIENoZWNrIHBhcmFtZXRlcnMgb2YgZXdr
IEFQSXMgaW4gZXdrX3NlY3VyaXR5X29yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19uZXR3b3JrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbmV0d29y
ay5jcHAKaW5kZXggOGFkM2M0OS4uNzgxZTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19uZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25l
dHdvcmsuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiZXdrX25ldHdvcmsuaCIKIAog
I2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisjaW5jbHVkZSAiUHJveHlSZXNvbHZl
clNvdXAuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgImV3a19wcml2
YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtMzcsMTggKzM4LDIwIEBAIHZvaWQgZXdrX25l
dHdvcmtfcHJveHlfdXJpX3NldChjb25zdCBjaGFyKiBwcm94eSkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyhwcm94eSk7Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odXJpKTsKLQotICAgIGdfb2JqZWN0X3NldChzZXNzaW9u
LCBTT1VQX1NFU1NJT05fUFJPWFlfVVJJLCB1cmksIE5VTEwpOwotICAgIHNvdXBfdXJpX2ZyZWUo
dXJpKTsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBzb3VwUHJveHlS
ZXNvbHZlcldrTmV3KHByb3h5LCAwKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vz
c2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICBnX29iamVjdF91
bnJlZihyZXNvbHZlckVmbCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19uZXR3b3JrX3Byb3h5X3Vy
aV9nZXQodm9pZCkKIHsKICAgICBTb3VwVVJJKiB1cmk7CiAgICAgU291cFNlc3Npb24qIHNlc3Np
b24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsKLSAgICBnX29i
amVjdF9nZXQoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX1BST1hZX1VSSSwgJnVyaSwgTlVMTCk7Cisg
ICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyID0gU09VUF9QUk9YWV9VUklfUkVTT0xW
RVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9QUk9YWV9SRVNP
TFZFUikpOworICAgIGlmICghcmVzb2x2ZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAgZ19v
YmplY3RfZ2V0KHJlc29sdmVyLCBTT1VQX1BST1hZX1JFU09MVkVSX1dLX1BST1hZX1VSSSwgJnVy
aSwgTlVMTCk7CiAKICAgICBpZiAoIXVyaSkgewogICAgICAgICBFUlIoIm5vIHByb3h5IHVyaSIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGU5MmU0YWYuLjU4Y2IzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgorCisgICAgICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9y
IHRoZSBub19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5ldyBjdXN0b20gcHJveHkgcmVzb2x2
ZXIgZnJvbSBXZWJDb3JlIGluCisgICAgICAgIFdlYktpdDItRUZMIHNvIHRoYXQgaXQgaXMgcG9z
c2libGUgZm9yIHRoZSBjbGllbnQKKyAgICAgICAgdG8gc2V0IHByb3h5IGV4Y2VwdGlvbnMgdmlh
IHRoZSAibm9fcHJveHkiCisgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgorCisgICAgICAg
IEJ5IGRlZmF1bHQsIHRoZSBwcm94eSBzZXQgaW4gdGhlICJodHRwX3Byb3h5IgorICAgICAgICBl
bnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBiZSB1c2VkIGZvciByZXF1ZXN0cworICAgICAg
ICB0byBsb2NhbGhvc3Qgb3IgMTI3LjAuMC4xLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9lZmwv
V2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzTWFpbkVm
bCk6CisKIDIwMTItMDctMjAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzMDg1LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwCmluZGV4
IDkyZDM1MTYuLjE2Mjc4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
ZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbkVmbC5oIgogCisjaW5jbHVkZSAiUHJv
eHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDxFY29yZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KQEAgLTY3LDExICs2OCwxMiBA
QCBXS19FWFBPUlQgaW50IFdlYlByb2Nlc3NNYWluRWZsKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBTb3VwU2Vzc2lv
biogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwot
ICAgIGNvbnN0IGNoYXIqIGh0dHBQcm94eSA9IGdfZ2V0ZW52KCJodHRwX3Byb3h5Iik7CisgICAg
Y29uc3QgY2hhciogaHR0cFByb3h5ID0gZ2V0ZW52KCJodHRwX3Byb3h5Iik7CiAgICAgaWYgKGh0
dHBQcm94eSkgewotICAgICAgICBTb3VwVVJJKiBwcm94eVVyaSA9IHNvdXBfdXJpX25ldyhodHRw
UHJveHkpOwotICAgICAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX1BST1hZ
X1VSSSwgcHJveHlVcmksIE5VTEwpOwotICAgICAgICBzb3VwX3VyaV9mcmVlKHByb3h5VXJpKTsK
KyAgICAgICAgY29uc3QgY2hhciogbm9Qcm94eSA9IGdldGVudigibm9fcHJveHkiKTsKKyAgICAg
ICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyRWZsID0gc291cFByb3h5UmVzb2x2ZXJX
a05ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1
cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICAgICAg
Z19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBzb2NrZXQgPSBh
dG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGVkOThhY2MuLjlkOTk1NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxd
IFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVu
dCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgUHJveHlSZXNvbHZlclNvdXAgdG8gdGhlIGxpc3Qgb2YgY2xhc3NlcyB0aGF0IGNvbnRh
aW4gR09iamVjdHMKKyAgICAgICAgaW4gc3R5bGUgY2hlY2tlciBzY3JpcHQgc28gdGhhdCBpdCBk
b2VzIG5vdCBjb21wbGFpbiBhYm91dCBuYW1pbmcKKyAgICAgICAgY29udmVudGlvbiBpc3N1ZXMg
dGhhdCBhcmUgbWFuZGF0ZWQgYnkgR09iamVjdC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weToKKwogMjAxMi0wNy0yMCAgS2FuZ2lsIEhhbiAgPGthbmdpbC5o
YW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXVtXVFJdIEltcGxlbWVudCBFdmVu
dFNlbmRlclByb3h5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2No
ZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXgg
NDJhYjcxNS4uMTBmMzQ0OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eQpAQCAtMjIwLDcgKzIyMCw5IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAgICJT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVh
bWVyMS5jcHAiLAogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIiwKICAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCIsCi0g
ICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1
ZGlvU291cmNlR1N0cmVhbWVyLmNwcCJdLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAiLAorICAg
ICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291
cC5jcHAiLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94
eVJlc29sdmVyU291cC5oIl0sCiAgICAgIFsiLXJlYWRhYmlsaXR5L25hbWluZyJdKSwKIAogICAg
ICMgRm9yIHRoaXJkLXBhcnR5IFB5dGhvbiBjb2RlLCBrZWVwIG9ubHkgdGhlIGZvbGxvd2luZyBj
aGVja3MtLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153488</attachid>
            <date>2012-07-20 06:06:16 -0700</date>
            <delta_ts>2012-07-20 07:39:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>91747_no_proxy.patch</filename>
            <type>text/plain</type>
            <size>20993</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NTQ0NWIyLi43NzNjMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25vciB0
aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGEgY3VzdG9tIFByb3h5IFVSSSBSZXNv
bHZlciBmb3IgbGlic291cAorICAgICAgICBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgaW4gRUZMIHBv
cnQuIFRoaXMgY3VzdG9tCisgICAgICAgIHByb3h5IHJlc29sdmVyIGJyaW5ncyBzdXBwb3J0IGZv
ciBzZXR0aW5nCisgICAgICAgIGV4Y2VwdGlvbnMgc28gdGhhdCB0aGUgcHJveHkgaXMgbm90IHVz
ZWQgZm9yIHRoZQorICAgICAgICBzcGVjaWZpZWQgaG9zdHMuCisKKyAgICAgICAgQnkgZGVmYXVs
dCwgdGhlIHByb3h5IGlzIG5vdCB1c2VkIGZvciBsb2NhbGhvc3QgYW5kCisgICAgICAgIDEyNy4w
LjAuMS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZSBmb3IgbGF5
b3V0IHRlc3RzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmNwcDogQWRkZWQuCisgICAgICAg
IChzb3VwX3Byb3h5X3Jlc29sdmVyX3drX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2
ZXJXa0ZpbmFsaXplKToKKyAgICAgICAgKHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eSk6
CisgICAgICAgIChzb3VwUHJveHlSZXNvbHZlcldrR2V0UHJvcGVydHkpOgorICAgICAgICAoc2hv
dWxkQnlwYXNzUHJveHkpOgorICAgICAgICAoaWRsZV9yZXR1cm5fcHJveHlfdXJpKToKKyAgICAg
ICAgKHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSUFzeW5jKToKKyAgICAgICAgKHNvdXBQ
cm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMpOgorICAgICAgICAoc291cF9wcm94eV9yZXNv
bHZlcl93a19jbGFzc19pbml0KToKKyAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpOgorICAgICAgICAoc291cFByb3h5UmVzb2x2ZXJXa05ldyk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2ZXJTb3VwLmg6IEFkZGVkLgorCiAy
MDEyLTA3LTIwICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZTogZm9yd2FyZCBjb21wYXRpYmlsaXR5IGZv
ciBsb2FkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBkYTUwZGRkLi5hOWE0ZjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtODUsNiArODUsNyBAQCBMSVNUKEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NyZWRlbnRpYWxTdG9yYWdl
U291cC5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCiAgIHBsYXRmb3Jt
L25ldHdvcmsvc291cC9HT3duUHRyU291cC5jcHAKKyAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1By
b3h5UmVzb2x2ZXJTb3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlTZXJ2ZXJT
b3VwLmNwcAogICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAog
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVyU291
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJveHlSZXNvbHZl
clNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NDA2ZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUHJv
eHlSZXNvbHZlclNvdXAuY3BwCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKKwor
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3N0YXRpYyBjb25zdCBjaGFyIGRlZmF1bHROb1Byb3h5
VmFsdWVbXSA9ICJsb2NhbGhvc3QsMTI3LjAuMC4xIjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAg
IFNvdXBVUkkqIHByb3h5VVJJOworICAgIENTdHJpbmcgbm9Qcm94eTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBwcm94eUV4Y2VwdGlvbnM7Cit9IFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlOworCisj
ZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUobykgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfUFJJVkFURSgobyksIFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywgU291cFBy
b3h5UmVzb2x2ZXJXa1ByaXZhdGUpKQorCitzdGF0aWMgdm9pZCBzb3VwX3Byb3h5X3Jlc29sdmVy
X3drX2ludGVyZmFjZV9pbml0KFNvdXBQcm94eVVSSVJlc29sdmVySW50ZXJmYWNlKiBwcm94eVJl
c29sdmVySW50ZXJmYWNlKTsKKworR19ERUZJTkVfVFlQRV9FWFRFTkRFRChTb3VwUHJveHlSZXNv
bHZlcldrLCBzb3VwX3Byb3h5X3Jlc29sdmVyX3drLCBHX1RZUEVfT0JKRUNULCAwLAorICAgICAg
ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoU09VUF9UWVBFX1NFU1NJT05f
RkVBVFVSRSwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNF
KFNPVVBfVFlQRV9QUk9YWV9VUklfUkVTT0xWRVIsIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tfaW50
ZXJmYWNlX2luaXQpKQorCitlbnVtIHsKKyAgICBQUk9QXzAsCisgICAgUFJPUF9QUk9YWV9VUkks
CisgICAgUFJPUF9OT19QUk9YWSwKKyAgICBMQVNUX1BST1AKK307CisKK3N0YXRpYyB2b2lkIHNv
dXBfcHJveHlfcmVzb2x2ZXJfd2tfaW5pdChTb3VwUHJveHlSZXNvbHZlcldrKiByZXNvbHZlcldr
KQoreworfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrRmluYWxpemUoR09iamVj
dCogb2JqZWN0KQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2ID0gU09V
UF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShvYmplY3QpOworCisgICAgZ19jbGVhcl9w
b2ludGVyKCZwcml2LT5wcm94eVVSSSwgc291cF91cmlfZnJlZSk7CisKKyAgICBHX09CSkVDVF9D
TEFTUyhzb3VwX3Byb3h5X3Jlc29sdmVyX3drX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBQcm94eVJlc29sdmVyV2tTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIHVpbnQgcHJvcElELCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBTb3VwUHJveHlSZXNvbHZlcldrUHJpdmF0ZSogcHJpdiA9IFNPVVBf
UFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZBVEUob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJv
cElEKSB7CisgICAgY2FzZSBQUk9QX1BST1hZX1VSSTogeworICAgICAgICBTb3VwVVJJKiB1cmkg
PSBzdGF0aWNfY2FzdDxTb3VwVVJJKj4oZ192YWx1ZV9nZXRfYm94ZWQodmFsdWUpKTsKKyAgICAg
ICAgaWYgKHByaXYtPnByb3h5VVJJKQorICAgICAgICAgICAgc291cF91cmlfZnJlZShwcml2LT5w
cm94eVVSSSk7CisKKyAgICAgICAgcHJpdi0+cHJveHlVUkkgPSB1cmkgPyBzb3VwX3VyaV9jb3B5
KHVyaSkgOiAwOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX05PX1BST1hZ
OgorICAgICAgICBwcml2LT5ub1Byb3h5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKKyAg
ICAgICAgcHJpdi0+cHJveHlFeGNlcHRpb25zLmNsZWFyKCk7CisgICAgICAgIFN0cmluZzo6ZnJv
bVVURjgocHJpdi0+bm9Qcm94eS5kYXRhKCkpLnJlcGxhY2UoJyAnLCAiIikuc3BsaXQoJywnLCBw
cml2LT5wcm94eUV4Y2VwdGlvbnMpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSUQsIHBz
cGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlS
ZXNvbHZlcldrR2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCB1aW50IHByb3BJRCwgR1ZhbHVl
KiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCit7CisgICAgU291cFByb3h5UmVzb2x2ZXJXa1By
aXZhdGUqIHByaXYgPSBTT1VQX1BST1hZX1JFU09MVkVSX1dLX0dFVF9QUklWQVRFKG9iamVjdCk7
CisKKyAgICBzd2l0Y2ggKHByb3BJRCkgeworICAgIGNhc2UgUFJPUF9QUk9YWV9VUkk6CisgICAg
ICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCBwcml2LT5wcm94eVVSSSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9OT19QUk9YWToKKyAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5n
KHZhbHVlLCBwcml2LT5ub1Byb3h5LmRhdGEoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHBy
b3BJRCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sIHNo
b3VsZEJ5cGFzc1Byb3h5KFNvdXBQcm94eVJlc29sdmVyV2tQcml2YXRlKiBwcml2LCBTb3VwVVJJ
KiB1cmkpCit7CisgICAgY29uc3Qgc2l6ZV90IGV4Y2VwdGlvbkNvdW50ID0gcHJpdi0+cHJveHlF
eGNlcHRpb25zLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4Y2VwdGlvbkNv
dW50OyArK2kpIHsKKyAgICAgICAgaWYgKFN0cmluZzo6ZnJvbVVURjgodXJpLT5ob3N0KS5lbmRz
V2l0aChwcml2LT5wcm94eUV4Y2VwdGlvbnNbaV0sIGZhbHNlKSkKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordHlwZWRlZiBzdHJ1Y3Qg
eworICAgIFNvdXBQcm94eVVSSVJlc29sdmVyKiBwcm94eVJlc29sdmVyOworICAgIFNvdXBVUkkq
IHVyaTsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlckNhbGxiYWNrIGNhbGxiYWNrOworICAgIHZv
aWQqIHVzZXJEYXRhOworfSBTb3VwV2tBc3luY0RhdGE7CisKK3N0YXRpYyBnYm9vbGVhbiBpZGxl
X3JldHVybl9wcm94eV91cmkodm9pZCogZGF0YSkKK3sKKyAgICBTb3VwV2tBc3luY0RhdGEqIHNz
YWQgPSBzdGF0aWNfY2FzdDxTb3VwV2tBc3luY0RhdGEqPihkYXRhKTsKKyAgICBTb3VwUHJveHlS
ZXNvbHZlcldrUHJpdmF0ZSogcHJpdiA9IFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX1BSSVZB
VEUoc3NhZC0+cHJveHlSZXNvbHZlcik7CisKKyAgICBTb3VwVVJJKiBwcm94eVVSSSA9IDA7Cisg
ICAgaWYgKCFzaG91bGRCeXBhc3NQcm94eShwcml2LCBzc2FkLT51cmkpKQorICAgICAgICBwcm94
eVVSSSA9IHByaXYtPnByb3h5VVJJOworCisgICAgc3NhZC0+Y2FsbGJhY2soc3NhZC0+cHJveHlS
ZXNvbHZlciwgU09VUF9TVEFUVVNfT0ssIHByb3h5VVJJLCBzc2FkLT51c2VyRGF0YSk7CisgICAg
Z19vYmplY3RfdW5yZWYoc3NhZC0+cHJveHlSZXNvbHZlcik7CisgICAgc291cF91cmlfZnJlZShz
c2FkLT51cmkpOworICAgIGdfc2xpY2VfZnJlZShTb3VwV2tBc3luY0RhdGEsIHNzYWQpOworCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBzb3VwUHJveHlSZXNvbHZlcldrR2V0
UHJveHlVUklBc3luYyhTb3VwUHJveHlVUklSZXNvbHZlciogcHJveHlSZXNvbHZlciwgU291cFVS
SSogdXJpLCBHTWFpbkNvbnRleHQqIGFzeW5jQ29udGV4dCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxs
YWJsZSwgU291cFByb3h5VVJJUmVzb2x2ZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogdXNlckRh
dGEpCit7CisgICAgU291cFdrQXN5bmNEYXRhKiBzc2FkOworCisgICAgc3NhZCA9IGdfc2xpY2Vf
bmV3MChTb3VwV2tBc3luY0RhdGEpOworICAgIHNzYWQtPnByb3h5UmVzb2x2ZXIgPSBTT1VQX1BS
T1hZX1VSSV9SRVNPTFZFUihnX29iamVjdF9yZWYocHJveHlSZXNvbHZlcikpOworICAgIHNzYWQt
PnVyaSA9IHNvdXBfdXJpX2NvcHkodXJpKTsKKyAgICBzc2FkLT5jYWxsYmFjayA9IGNhbGxiYWNr
OworICAgIHNzYWQtPnVzZXJEYXRhID0gdXNlckRhdGE7CisgICAgc291cF9hZGRfY29tcGxldGlv
bihhc3luY0NvbnRleHQsIGlkbGVfcmV0dXJuX3Byb3h5X3VyaSwgc3NhZCk7Cit9CisKK3N0YXRp
YyB1aW50IHNvdXBQcm94eVJlc29sdmVyV2tHZXRQcm94eVVSSVN5bmMoU291cFByb3h5VVJJUmVz
b2x2ZXIqIHByb3h5UmVzb2x2ZXIsIFNvdXBVUkkqIHVyaSwgR0NhbmNlbGxhYmxlKiBjYW5jZWxs
YWJsZSwgU291cFVSSSoqIHByb3h5VVJJKQoreworICAgIFNvdXBQcm94eVJlc29sdmVyV2tQcml2
YXRlKiBwcml2ID0gU09VUF9QUk9YWV9SRVNPTFZFUl9XS19HRVRfUFJJVkFURShwcm94eVJlc29s
dmVyKTsKKworICAgIGlmICghc2hvdWxkQnlwYXNzUHJveHkocHJpdiwgdXJpKSkKKyAgICAgICAg
KnByb3h5VVJJID0gc291cF91cmlfY29weShwcml2LT5wcm94eVVSSSk7CisKKyAgICByZXR1cm4g
U09VUF9TVEFUVVNfT0s7Cit9CisKK3N0YXRpYyB2b2lkIHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tf
Y2xhc3NfaW5pdChTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3MqIHdrQ2xhc3MpCit7CisgICAgR09i
amVjdENsYXNzKiBvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3a0NsYXNzKTsKKworICAg
IGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSh3a0NsYXNzLCBzaXplb2YoU291cFByb3h5UmVzb2x2
ZXJXa1ByaXZhdGUpKTsKKworICAgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gc291cFBy
b3h5UmVzb2x2ZXJXa1NldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5
ID0gc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3BlcnR5OworICAgIG9iamVjdF9jbGFzcy0+Zmlu
YWxpemUgPSBzb3VwUHJveHlSZXNvbHZlcldrRmluYWxpemU7CisKKyAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9QUk9YWV9VUkksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoU09VUF9QUk9Y
WV9SRVNPTFZFUl9XS19QUk9YWV9VUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlByb3h5IFVSSSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBIVFRQIFByb3h5IHRvIHVz
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU09VUF9UWVBFX1VSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJ
VEUpKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9jbGFz
cywgUFJPUF9OT19QUk9YWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoU09VUF9QUk9YWV9SRVNPTFZFUl9XS19OT19QUk9YWSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHJveHkg
ZXhjZXB0aW9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkNvbW1hLXNlcGFyYXRlZCBwcm94eSBleGNlcHRpb25zIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Tm9Q
cm94eVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSkpKTsK
K30KKworc3RhdGljIHZvaWQgc291cF9wcm94eV9yZXNvbHZlcl93a19pbnRlcmZhY2VfaW5pdChT
b3VwUHJveHlVUklSZXNvbHZlckludGVyZmFjZSogcHJveHlfdXJpX3Jlc29sdmVyX2ludGVyZmFj
ZSkKK3sKKyAgICBwcm94eV91cmlfcmVzb2x2ZXJfaW50ZXJmYWNlLT5nZXRfcHJveHlfdXJpX2Fz
eW5jID0gc291cFByb3h5UmVzb2x2ZXJXa0dldFByb3h5VVJJQXN5bmM7CisgICAgcHJveHlfdXJp
X3Jlc29sdmVyX2ludGVyZmFjZS0+Z2V0X3Byb3h5X3VyaV9zeW5jID0gc291cFByb3h5UmVzb2x2
ZXJXa0dldFByb3h5VVJJU3luYzsKK30KKworU291cFByb3h5VVJJUmVzb2x2ZXIqIHNvdXBQcm94
eVJlc29sdmVyV2tOZXcoY29uc3QgY2hhciogaHR0cFByb3h5LCBjb25zdCBjaGFyKiBub1Byb3h5
KQoreworICAgIFNvdXBVUkkqIHByb3h5VVJJID0gc291cF91cmlfbmV3KGh0dHBQcm94eSk7Cisg
ICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyID0gU09VUF9QUk9YWV9VUklfUkVTT0xW
RVIoZ19vYmplY3RfbmV3KFNPVVBfVFlQRV9QUk9YWV9SRVNPTFZFUl9XSywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU09VUF9QUk9YWV9SRVNPTFZFUl9XS19QUk9YWV9VUkksIHByb3h5VVJJLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTT1VQX1BST1hZX1JFU09MVkVSX1dLX05PX1BST1hZLCBub1Byb3h5ID8gbm9Q
cm94eSA6IGRlZmF1bHROb1Byb3h5VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKTsKKyAgICBz
b3VwX3VyaV9mcmVlKHByb3h5VVJJKTsKKworICAgIHJldHVybiByZXNvbHZlcjsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJlc29sdmVy
U291cC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5UmVzb2x2
ZXJTb3VwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBiZDFiYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94
eVJlc29sdmVyU291cC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUHJveHlSZXNvbHZlclNvdXBfaAorI2RlZmluZSBQcm94eVJlc29sdmVyU291cF9oCisK
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAtcHJveHktdXJpLXJlc29sdmVyLmg+CisjaW5jbHVkZSA8
bGlic291cC9zb3VwLXVyaS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgU09VUF9UWVBF
X1BST1hZX1JFU09MVkVSX1dLICAgICAgICAgICAgICAgKHNvdXBfcHJveHlfcmVzb2x2ZXJfd2tf
Z2V0X3R5cGUgKCkpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0sob2JqZWN0KSAgICAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iamVjdCksIFNPVVBfVFlQRV9Q
Uk9YWV9SRVNPTFZFUl9XSywgU291cFByb3h5UmVzb2x2ZXJXaykpCisjZGVmaW5lIFNPVVBfUFJP
WFlfUkVTT0xWRVJfV0tfQ0xBU1Moa2xhc3MpICAgICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FT
VCAoKGtsYXNzKSwgU09VUF9UWVBFX1BST1hZX1JFU09MVkVSX1dLLCBTb3VwUHJveHlSZXNvbHZl
cldrQ2xhc3MpKQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX1dLKG9iamVjdCkgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmplY3QpLCBTT1VQX1RZUEVfUFJP
WFlfUkVTT0xWRVJfV0spKQorI2RlZmluZSBTT1VQX0lTX1BST1hZX1JFU09MVkVSX1dLX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFzcyksIFNPVVBfVFlQRV9Q
Uk9YWV9SRVNPTFZFUl9XSykpCisjZGVmaW5lIFNPVVBfUFJPWFlfUkVTT0xWRVJfV0tfR0VUX0NM
QVNTKG9iaikgICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwgU09VUF9UWVBF
X1BST1hZX1JFU09MVkVSX1dLLCBTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3MpKQorCitzdGF0aWMg
Y29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVSX1dLX1BST1hZX1VSSVtdID0gInByb3h5LXVy
aSI7CitzdGF0aWMgY29uc3QgY2hhciBTT1VQX1BST1hZX1JFU09MVkVSX1dLX05PX1BST1hZW10g
PSAibm8tcHJveHkiOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgR09iamVjdCBwYXJlbnQ7Cit9
IFNvdXBQcm94eVJlc29sdmVyV2s7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOworfSBTb3VwUHJveHlSZXNvbHZlcldrQ2xhc3M7CisKK0dUeXBlIHNv
dXBfcHJveHlfcmVzb2x2ZXJfd2tfZ2V0X3R5cGUodm9pZCk7CisKK1NvdXBQcm94eVVSSVJlc29s
dmVyKiBzb3VwUHJveHlSZXNvbHZlcldrTmV3KGNvbnN0IGNoYXIqIGh0dHBQcm94eSwgY29uc3Qg
Y2hhciogbm9Qcm94eSk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvLyBQcm94eVJlc29sdmVy
U291cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGQyNDljZjguLjcyYTg3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTItMDctMjAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGlu
dGVsLmNvbT4KKworICAgICAgICBbRUZMXSBQcm94eSBjb25maWd1cmF0aW9uIHNob3VsZCBob25v
ciB0aGUgbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwIHRvIElOQ0xVREUgcGF0aHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwog
MjAxMi0wNy0xOCAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJy
eV0gTW92ZSBhYm91dDogVVJMIGhhbmRsaW5nIG91dCBvZiBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVm
bC5jbWFrZQppbmRleCBjNjI0M2RhLi5jNmVjZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTEzLDYgKzEzLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAg
ICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAgJHtFQ09SRV9YX0lOQ0xVREVfRElSU30KICAg
ICAke0VESkVfSU5DTFVERV9ESVJTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGI5YzM1ZTQuLjY5Y2Mw
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxd
IFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVu
dCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgdGhlIG5ldyBjdXN0b20gcHJveHkgcmVzb2x2ZXIgZnJvbSBXZWJDb3JlIGluCisgICAg
ICAgIFdlYktpdDEtRUZMJ3MgZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldCgpIC8gZ2V0KCksCisg
ICAgICAgIGluc3RlYWQgb2YgdGhlIGxlc3MgZmxleGlibGUgU09VUF9TRVNTSU9OX1BST1hZX1VS
SQorICAgICAgICBTb3VwU2Vzc2lvbiBwcm9wZXJ0eS4KKworICAgICAgICAqIGV3ay9ld2tfbmV0
d29yay5jcHA6CisgICAgICAgIChld2tfbmV0d29ya19wcm94eV91cmlfc2V0KToKKyAgICAgICAg
KGV3a19uZXR3b3JrX3Byb3h5X3VyaV9nZXQpOgorCiAyMDEyLTA3LTIwICBLaWhvbmcgS3dvbiAg
PGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIENoZWNrIHBhcmFtZXRl
cnMgb2YgZXdrIEFQSXMgaW4gZXdrX3NlY3VyaXR5X29yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfbmV0d29yay5jcHAKaW5kZXggOGFkM2M0OS4uNzgxZTk0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX25ldHdvcmsuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiZXdrX25ldHdv
cmsuaCIKIAogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisjaW5jbHVkZSAiUHJv
eHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUg
ImV3a19wcml2YXRlLmgiCiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtMzcsMTggKzM4LDIwIEBAIHZv
aWQgZXdrX25ldHdvcmtfcHJveHlfdXJpX3NldChjb25zdCBjaGFyKiBwcm94eSkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNvdXBVUkkqIHVyaSA9IHNvdXBfdXJpX25ldyhwcm94eSk7
Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odXJpKTsKLQotICAgIGdfb2JqZWN0X3Nl
dChzZXNzaW9uLCBTT1VQX1NFU1NJT05fUFJPWFlfVVJJLCB1cmksIE5VTEwpOwotICAgIHNvdXBf
dXJpX2ZyZWUodXJpKTsKKyAgICBTb3VwUHJveHlVUklSZXNvbHZlciogcmVzb2x2ZXJFZmwgPSBz
b3VwUHJveHlSZXNvbHZlcldrTmV3KHByb3h5LCAwKTsKKyAgICBzb3VwX3Nlc3Npb25fYWRkX2Zl
YXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICBn
X29iamVjdF91bnJlZihyZXNvbHZlckVmbCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19uZXR3b3Jr
X3Byb3h5X3VyaV9nZXQodm9pZCkKIHsKICAgICBTb3VwVVJJKiB1cmk7CiAgICAgU291cFNlc3Np
b24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKTsK
LSAgICBnX29iamVjdF9nZXQoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX1BST1hZX1VSSSwgJnVyaSwg
TlVMTCk7CisgICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyID0gU09VUF9QUk9YWV9V
UklfUkVTT0xWRVIoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9Q
Uk9YWV9SRVNPTFZFUikpOworICAgIGlmICghcmVzb2x2ZXIpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgZ19vYmplY3RfZ2V0KHJlc29sdmVyLCBTT1VQX1BST1hZX1JFU09MVkVSX1dLX1BST1hZ
X1VSSSwgJnVyaSwgTlVMTCk7CiAKICAgICBpZiAoIXVyaSkgewogICAgICAgICBFUlIoIm5vIHBy
b3h5IHVyaSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU5MmU0YWYuLjU4Y2IzMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wNy0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hv
dWxkIGhvbm9yIHRoZSBub19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIG5ldyBjdXN0b20gcHJv
eHkgcmVzb2x2ZXIgZnJvbSBXZWJDb3JlIGluCisgICAgICAgIFdlYktpdDItRUZMIHNvIHRoYXQg
aXQgaXMgcG9zc2libGUgZm9yIHRoZSBjbGllbnQKKyAgICAgICAgdG8gc2V0IHByb3h5IGV4Y2Vw
dGlvbnMgdmlhIHRoZSAibm9fcHJveHkiCisgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgor
CisgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBwcm94eSBzZXQgaW4gdGhlICJodHRwX3Byb3h5Igor
ICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBiZSB1c2VkIGZvciByZXF1ZXN0
cworICAgICAgICB0byBsb2NhbGhvc3Qgb3IgMTI3LjAuMC4xLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzTWFpbkVmbCk6CisKIDIwMTItMDctMjAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzMDg1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5F
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9lZmwvV2ViUHJvY2Vzc01haW5FZmwu
Y3BwCmluZGV4IDkyZDM1MTYuLjE2Mjc4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzTWFpbkVmbC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbkVmbC5oIgogCisjaW5j
bHVkZSAiUHJveHlSZXNvbHZlclNvdXAuaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRl
IDxFY29yZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KQEAgLTY3LDEx
ICs2OCwxMiBAQCBXS19FWFBPUlQgaW50IFdlYlByb2Nlc3NNYWluRWZsKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CiAKICAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOwotICAgIGNvbnN0IGNoYXIqIGh0dHBQcm94eSA9IGdfZ2V0ZW52KCJodHRwX3Byb3h5
Iik7CisgICAgY29uc3QgY2hhciogaHR0cFByb3h5ID0gZ2V0ZW52KCJodHRwX3Byb3h5Iik7CiAg
ICAgaWYgKGh0dHBQcm94eSkgewotICAgICAgICBTb3VwVVJJKiBwcm94eVVyaSA9IHNvdXBfdXJp
X25ldyhodHRwUHJveHkpOwotICAgICAgICBnX29iamVjdF9zZXQoc2Vzc2lvbiwgU09VUF9TRVNT
SU9OX1BST1hZX1VSSSwgcHJveHlVcmksIE5VTEwpOwotICAgICAgICBzb3VwX3VyaV9mcmVlKHBy
b3h5VXJpKTsKKyAgICAgICAgY29uc3QgY2hhciogbm9Qcm94eSA9IGdldGVudigibm9fcHJveHki
KTsKKyAgICAgICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJlc29sdmVyRWZsID0gc291cFByb3h5
UmVzb2x2ZXJXa05ldyhodHRwUHJveHksIG5vUHJveHkpOworICAgICAgICBzb3VwX3Nlc3Npb25f
YWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUocmVzb2x2ZXJFZmwpKTsK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwpOwogICAgIH0KIAogICAgIGludCBz
b2NrZXQgPSBhdG9pKGFyZ3ZbMV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGVkOThhY2MuLjlkOTk1NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0y
MCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAg
ICAgIFtFRkxdIFByb3h5IGNvbmZpZ3VyYXRpb24gc2hvdWxkIGhvbm9yIHRoZSBub19wcm94eSBl
bnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTE3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgUHJveHlSZXNvbHZlclNvdXAgdG8gdGhlIGxpc3Qgb2YgY2xhc3NlcyB0
aGF0IGNvbnRhaW4gR09iamVjdHMKKyAgICAgICAgaW4gc3R5bGUgY2hlY2tlciBzY3JpcHQgc28g
dGhhdCBpdCBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBuYW1pbmcKKyAgICAgICAgY29udmVudGlv
biBpc3N1ZXMgdGhhdCBhcmUgbWFuZGF0ZWQgYnkgR09iamVjdC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKwogMjAxMi0wNy0yMCAgS2FuZ2lsIEhhbiAg
PGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXVtXVFJdIEltcGxl
bWVudCBFdmVudFNlbmRlclByb3h5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKaW5kZXggNDJhYjcxNS4uMTBmMzQ0OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQpAQCAtMjIwLDcgKzIyMCw5IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsK
ICAgICAgICJTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9T
aW5rR1N0cmVhbWVyMS5jcHAiLAogICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1NpbmtHU3RyZWFtZXIuY3BwIiwKICAgICAgICJTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcCIsCi0gICAgICAiU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dl
YktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCJdLAorICAgICAgIlNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5j
cHAiLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVJl
c29sdmVyU291cC5jcHAiLAorICAgICAgIlNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9Qcm94eVJlc29sdmVyU291cC5oIl0sCiAgICAgIFsiLXJlYWRhYmlsaXR5L25hbWluZyJd
KSwKIAogICAgICMgRm9yIHRoaXJkLXBhcnR5IFB5dGhvbiBjb2RlLCBrZWVwIG9ubHkgdGhlIGZv
bGxvd2luZyBjaGVja3MtLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>