<?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>73743</bug_id>
          
          <creation_ts>2011-12-03 06:04:00 -0800</creation_ts>
          <short_desc>[GStreamer] webkitwebsrc: use SubResourceLoader</short_desc>
          <delta_ts>2013-12-02 23:23:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          <dependson>115804</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>andrunko</cc>
    
    <cc>beidson</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>514489</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-12-03 06:04:00 -0800</bug_when>
    <thetext>Instead of directly using a ResourceHandle we should investigate the possibility to use the SubResourceLoader.

These tests are failing, partly because of this missing feature:

http/tests/security/mixedContent/insecure-video-in-main-frame.html
http/tests/security/mixedContent/redirect-http-to-https-video-in-main-frame.html
http/tests/security/mixedContent/redirect-https-to-http-video-in-main-frame.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514490</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-12-03 06:07:53 -0800</bug_when>
    <thetext>Skipped in r101927</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610477</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2012-04-26 03:46:12 -0700</bug_when>
    <thetext>It seems that these tests are no longer available.

They were removed in r102300: &lt;http://trac.webkit.org/changeset/102300&gt;

Can you recommend other ways to test the SubResourceLoader issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610490</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-04-26 04:04:56 -0700</bug_when>
    <thetext>Well then let&apos;s wait for the original feature to land again from bug 72178 (Not sure why it was closed actually... Seems like Aaron wanted to rework the patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888163</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-13 02:59:50 -0700</bug_when>
    <thetext>Adding Carlos, perhaps we can retitle this bug wrt the work you&apos;re doing on the http source element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>888165</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-13 03:09:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Adding Carlos, perhaps we can retitle this bug wrt the work you&apos;re doing on the http source element?

My plan is to use CachedLoader, that could also be used for loading other URL types that are not HTTP family like blob. I have a patch already but it depends on bug #115804, to make sure we can still use our GST buffer directly. 

CacheLoader uses Subresource loader so there&apos;s no need to rename the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893287</commentid>
    <comment_count>6</comment_count>
      <attachid>202810</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-24 06:43:27 -0700</bug_when>
    <thetext>Created attachment 202810
Patch

This patch depends on bug #115804, otherwise we will assert in debug builds because when using soup the buffer won&apos;t be the one allocated by us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901871</commentid>
    <comment_count>7</comment_count>
      <attachid>205022</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-06-19 11:26:42 -0700</bug_when>
    <thetext>Created attachment 205022
Updated patch

Rebased to apply on current git master and added error check in notifyFinished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901886</commentid>
    <comment_count>8</comment_count>
      <attachid>205022</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-06-19 11:51:35 -0700</bug_when>
    <thetext>Comment on attachment 205022
Updated patch

Attachment 205022 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/850562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>901887</commentid>
    <comment_count>9</comment_count>
      <attachid>205025</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-06-19 12:05:16 -0700</bug_when>
    <thetext>Created attachment 205025
Try to fix efl build

Also added the new file to the GTK+ cmake file too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902051</commentid>
    <comment_count>10</comment_count>
      <attachid>205025</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-06-20 01:54:37 -0700</bug_when>
    <thetext>Comment on attachment 205025
Try to fix efl build

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

&gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1027
&gt; +    if (resource-&gt;loadFailedOrCanceled()) {

Ok, what about errorOccured()? Shouldn&apos;t it be checked too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902055</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-06-20 02:37:06 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 205025 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205025&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:1027
&gt; &gt; +    if (resource-&gt;loadFailedOrCanceled()) {
&gt; 
&gt; Ok, what about errorOccured()? Shouldn&apos;t it be checked too?

This should be covered already, error handling of cached resources is a bit confusing, I think. errorOccurred() checks id status is LoadError or DecodeError. DecodeError is only used by Font and Image subresources, so we only need to care about load errors. When a subresource fails to load, setResourceError is called (so loadFailedOrCanceled() is true) and then LoadError is set (so errorOccured() is true). When a subresource is cancelled, willCancel calls setResourceError and didCancel calls didCancelLoad that sets the status to LoadError. 

What we could do is get the actual ResourceError to provide some more information like current code does. I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902064</commentid>
    <comment_count>12</comment_count>
      <attachid>205066</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-06-20 03:32:03 -0700</bug_when>
    <thetext>Created attachment 205066
Updated patch

Improved error handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905282</commentid>
    <comment_count>13</comment_count>
      <attachid>205876</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-02 01:11:36 -0700</bug_when>
    <thetext>Created attachment 205876
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908781</commentid>
    <comment_count>14</comment_count>
      <attachid>205876</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-07-16 02:59:10 -0700</bug_when>
    <thetext>Comment on attachment 205876
Rebased patch

LGTM, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909261</commentid>
    <comment_count>15</comment_count>
      <attachid>206869</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-17 02:20:17 -0700</bug_when>
    <thetext>Created attachment 206869
Patch for landing

I&apos;ve moved the soup specific code from CachedRawResource.cpp to its own file in loader/soup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909266</commentid>
    <comment_count>16</comment_count>
      <attachid>206869</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-07-17 02:29:57 -0700</bug_when>
    <thetext>Comment on attachment 206869
Patch for landing

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909267</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-17 02:38:23 -0700</bug_when>
    <thetext>Committed r152778: &lt;http://trac.webkit.org/changeset/152778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909406</commentid>
    <comment_count>18</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-17 12:07:48 -0700</bug_when>
    <thetext>SubresourceLoader and CachedResource(*) are not platform-specific dumping grounds.

ResourceHandle(Client) was, in fact, a valid place for this intensely GStreamer specific code.

Please rework this quickly or roll it out until it can be revisited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909407</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-17 12:09:00 -0700</bug_when>
    <thetext>Note - I&apos;m not saying you shouldn&apos;t be using SubresourceLoader, which is the entire premise of this bug.

I&apos;m saying you need to find a way to do it without leaking in platform specific details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909608</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-18 00:05:00 -0700</bug_when>
    <thetext>The platform specific code is indeed part of the ResourceHandle, the soup implementation allows the client to provide its own read buffer, which is used by the gstreamer backend to avoid buffer copies while loading media, but it&apos;s not a gstreamer feature. The same way the mac port has platform specific support for loading the data in a CFArrayRef. Except for the headers, all other platform specific code is in platform-specific files. I don&apos;t see how the gstreamer loader can provide the read buffer without using the CachedRawResource client. I agree that ideally, there shouldn&apos;t be platform ifdefs in those files. Another possibility is adding getOrCreateReadBuffer unconditionally, but unimplemented in other platforms, since the method itself doesn&apos;t have any platform specific types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909774</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-18 09:28:29 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; The platform specific code is indeed part of the ResourceHandle, the soup implementation allows the client to provide its own read buffer, which is used by the gstreamer backend to avoid buffer copies while loading media, but it&apos;s not a gstreamer feature. 

But you just said that it&apos;s a gstreamer feature.

Each media backend tends to do things radically differently from each other, but we&apos;ve successfully kept the implementation details of ours out of the general purpose, cross-platform loader code.

&gt; The same way the mac port has platform specific support for loading the data in a CFArrayRef. 

Which is an unfortunate case and one that we hope to rectify going forward.

But also, note that this callback is *only* in SubresourceLoader, and it was not necessary to pipe it through to the entire CachedResource/CachedRawResource/CachedRawResourceClient stack of classes.

They are absolutely *not* a place for platform loading details.  It&apos;s wrong wrong wrong.

&gt; Except for the headers, all other platform specific code is in platform-specific files. I don&apos;t see how the gstreamer loader can provide the read buffer without using the CachedRawResource client. I agree that ideally, there shouldn&apos;t be platform ifdefs in those files. Another possibility is adding getOrCreateReadBuffer unconditionally, but unimplemented in other platforms, since the method itself doesn&apos;t have any platform specific types.

Let me ask this - What advantage is gained by this bug?  The bug is titled &quot;use SubresourceLoader&quot;, but why is that important?  Didn&apos;t things work just fine when this code was in ResourceHandle?  Why is this move important to even be contemplating?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909783</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-18 09:57:38 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; The platform specific code is indeed part of the ResourceHandle, the soup implementation allows the client to provide its own read buffer, which is used by the gstreamer backend to avoid buffer copies while loading media, but it&apos;s not a gstreamer feature. 
&gt; 
&gt; But you just said that it&apos;s a gstreamer feature.

It&apos;s a ResourceHandleSoup feature used by the streamer media backend.

&gt; Each media backend tends to do things radically differently from each other, but we&apos;ve successfully kept the implementation details of ours out of the general purpose, cross-platform loader code.
&gt; 
&gt; &gt; The same way the mac port has platform specific support for loading the data in a CFArrayRef. 
&gt; 
&gt; Which is an unfortunate case and one that we hope to rectify going forward.
&gt; 
&gt; But also, note that this callback is *only* in SubresourceLoader, and it was not necessary to pipe it through to the entire CachedResource/CachedRawResource/CachedRawResourceClient stack of classes.
&gt; 
&gt; They are absolutely *not* a place for platform loading details.  It&apos;s wrong wrong wrong.

That was just an example, there&apos;s also a mac platform ifdef in CachedResource, tryReplaceEncodedData, that is only used by the network process. But anyway, as I said, I agree with you that ideally there shouldn&apos;t be platform ifdefs there. And that&apos;s why I also proposed to simply remove the #ifdefs, and leave it unimplemented in platforms that don&apos;t need it, or even add a feature flag. I think letting the client provide the read buffer is useful feature in any case.

&gt; &gt; Except for the headers, all other platform specific code is in platform-specific files. I don&apos;t see how the gstreamer loader can provide the read buffer without using the CachedRawResource client. I agree that ideally, there shouldn&apos;t be platform ifdefs in those files. Another possibility is adding getOrCreateReadBuffer unconditionally, but unimplemented in other platforms, since the method itself doesn&apos;t have any platform specific types.
&gt; 
&gt; Let me ask this - What advantage is gained by this bug?  The bug is titled &quot;use SubresourceLoader&quot;, but why is that important?  Didn&apos;t things work just fine when this code was in ResourceHandle?  Why is this move important to even be contemplating?

Phil can probably answer it better than me. I started to work on this to reduce the amount of layering violations in gstreamer media player. Using CachedResourceLoader is still a layering violation, but also used by mac port, so it would be a common point to look for a solution valid for both ports. 
It gives us more control over mixed content and security related stuff, so It should allow us to unskip some layout tests (which I forgot to do it).
It also allows to track the progress of the media loaded in the inspector like any other resource. 
And also allows us to easily support other non HTTP sources like data or blob urls, see bug #102586.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909785</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-18 10:07:43 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; The platform specific code is indeed part of the ResourceHandle, the soup implementation allows the client to provide its own read buffer, which is used by the gstreamer backend to avoid buffer copies while loading media, but it&apos;s not a gstreamer feature. 
&gt; &gt; 
&gt; &gt; But you just said that it&apos;s a gstreamer feature.
&gt; 
&gt; It&apos;s a ResourceHandleSoup feature used by the streamer media backend.

Right.  Again, not something that adds to the argument that this belongs at a higher level than that platform specific networking layer.

&gt; &gt; &gt; Each media backend tends to do things radically differently from each other, but we&apos;ve successfully kept the implementation details of ours out of the general purpose, cross-platform loader code.
&gt; &gt; 
&gt; &gt; &gt; The same way the mac port has platform specific support for loading the data in a CFArrayRef. 
&gt; &gt; 
&gt; &gt; Which is an unfortunate case and one that we hope to rectify going forward.
&gt; &gt; 
&gt; &gt; But also, note that this callback is *only* in SubresourceLoader, and it was not necessary to pipe it through to the entire CachedResource/CachedRawResource/CachedRawResourceClient stack of classes.
&gt; &gt; 
&gt; &gt; They are absolutely *not* a place for platform loading details.  It&apos;s wrong wrong wrong.
&gt; 
&gt; That was just an example, there&apos;s also a mac platform ifdef in CachedResource, tryReplaceEncodedData, that is only used by the network process. 

Actually, there is literally nothing platform dependent about that, and we have it working in generic WebKit1 implementations experimentally.  That will be upstreamed sometime soon.  The only reason it was #if PLATFORM(MAC)&apos;ed was to keep from having to give empty implementations to other platforms.

This new thing that was added throughout the entire SubresourceLoader and memory cache machinery is not something that is generically usable, nor does it belong in CachedResource* code at all.

&gt; But anyway, as I said, I agree with you that ideally there shouldn&apos;t be platform ifdefs there. And that&apos;s why I also proposed to simply remove the #ifdefs, and leave it unimplemented in platforms that don&apos;t need it, or even add a feature flag. I think letting the client provide the read buffer is useful feature in any case.

Perhaps implementing a feature where WebCore provides a buffer to the networking layer is useful.  This is the wrong form to do it in.  We would not implement it using raw pointers and it would not be implemented in CachedResource* code.

&gt; &gt; &gt; Except for the headers, all other platform specific code is in platform-specific files. I don&apos;t see how the gstreamer loader can provide the read buffer without using the CachedRawResource client. I agree that ideally, there shouldn&apos;t be platform ifdefs in those files. Another possibility is adding getOrCreateReadBuffer unconditionally, but unimplemented in other platforms, since the method itself doesn&apos;t have any platform specific types.
&gt; &gt; 
&gt; &gt; Let me ask this - What advantage is gained by this bug?  The bug is titled &quot;use SubresourceLoader&quot;, but why is that important?  Didn&apos;t things work just fine when this code was in ResourceHandle?  Why is this move important to even be contemplating?
&gt; 
&gt; Phil can probably answer it better than me. I started to work on this to reduce the amount of layering violations in gstreamer media player. Using CachedResourceLoader is still a layering violation, but also used by mac port, so it would be a common point to look for a solution valid for both ports. 

Can you tell me how using CachedResourceLoader for the gstreamer media backend is a layering violation for the Mac port?  (I know that&apos;s not what you meant, but I actually have no idea what you mean here, so I&apos;d like clarification)

&gt; It gives us more control over mixed content and security related stuff, so It should allow us to unskip some layout tests (which I forgot to do it).
&gt; It also allows to track the progress of the media loaded in the inspector like any other resource. 
&gt; And also allows us to easily support other non HTTP sources like data or blob urls, see bug #102586.

Thanks.  Those sound like good reasons to do this.  I wouldn&apos;t have had to ask if they were spelled out in the bug.

But good reasons to do this are still not a reason for doing it incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909787</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-18 10:25:55 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; &gt; The platform specific code is indeed part of the ResourceHandle, the soup implementation allows the client to provide its own read buffer, which is used by the gstreamer backend to avoid buffer copies while loading media, but it&apos;s not a gstreamer feature. 
&gt; &gt; &gt; 
&gt; &gt; &gt; But you just said that it&apos;s a gstreamer feature.
&gt; &gt; 
&gt; &gt; It&apos;s a ResourceHandleSoup feature used by the streamer media backend.
&gt; 
&gt; Right.  Again, not something that adds to the argument that this belongs at a higher level than that platform specific networking layer.
&gt; 
&gt; &gt; &gt; &gt; Each media backend tends to do things radically differently from each other, but we&apos;ve successfully kept the implementation details of ours out of the general purpose, cross-platform loader code.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The same way the mac port has platform specific support for loading the data in a CFArrayRef. 
&gt; &gt; &gt; 
&gt; &gt; &gt; Which is an unfortunate case and one that we hope to rectify going forward.
&gt; &gt; &gt; 
&gt; &gt; &gt; But also, note that this callback is *only* in SubresourceLoader, and it was not necessary to pipe it through to the entire CachedResource/CachedRawResource/CachedRawResourceClient stack of classes.
&gt; &gt; &gt; 
&gt; &gt; &gt; They are absolutely *not* a place for platform loading details.  It&apos;s wrong wrong wrong.
&gt; &gt; 
&gt; &gt; That was just an example, there&apos;s also a mac platform ifdef in CachedResource, tryReplaceEncodedData, that is only used by the network process. 
&gt; 
&gt; Actually, there is literally nothing platform dependent about that, and we have it working in generic WebKit1 implementations experimentally.  That will be upstreamed sometime soon.  The only reason it was #if PLATFORM(MAC)&apos;ed was to keep from having to give empty implementations to other platforms.

Ok, so it&apos;s the same example as getOrCreateReadBuffer, there&apos;s nothing specific to soup, I simply added the ifdefs to avoid empty implementations in other ports.

&gt; This new thing that was added throughout the entire SubresourceLoader and memory cache machinery is not something that is generically usable, nor does it belong in CachedResource* code at all.

Why can&apos;t it be used by other ports? Because the network platform handles the read buffer and doesn&apos;t allow API users to provide their own?

&gt; &gt; But anyway, as I said, I agree with you that ideally there shouldn&apos;t be platform ifdefs there. And that&apos;s why I also proposed to simply remove the #ifdefs, and leave it unimplemented in platforms that don&apos;t need it, or even add a feature flag. I think letting the client provide the read buffer is useful feature in any case.
&gt; 
&gt; Perhaps implementing a feature where WebCore provides a buffer to the networking layer is useful.  This is the wrong form to do it in.  We would not implement it using raw pointers and it would not be implemented in CachedResource* code.

Fair enough.

&gt; &gt; &gt; &gt; Except for the headers, all other platform specific code is in platform-specific files. I don&apos;t see how the gstreamer loader can provide the read buffer without using the CachedRawResource client. I agree that ideally, there shouldn&apos;t be platform ifdefs in those files. Another possibility is adding getOrCreateReadBuffer unconditionally, but unimplemented in other platforms, since the method itself doesn&apos;t have any platform specific types.
&gt; &gt; &gt; 
&gt; &gt; &gt; Let me ask this - What advantage is gained by this bug?  The bug is titled &quot;use SubresourceLoader&quot;, but why is that important?  Didn&apos;t things work just fine when this code was in ResourceHandle?  Why is this move important to even be contemplating?
&gt; &gt; 
&gt; &gt; Phil can probably answer it better than me. I started to work on this to reduce the amount of layering violations in gstreamer media player. Using CachedResourceLoader is still a layering violation, but also used by mac port, so it would be a common point to look for a solution valid for both ports. 
&gt; 
&gt; Can you tell me how using CachedResourceLoader for the gstreamer media backend is a layering violation for the Mac port?  (I know that&apos;s not what you meant, but I actually have no idea what you mean here, so I&apos;d like clarification)

Because the media player is in platform and loader code is not. See bugs #21354 and #21562.

&gt; &gt; It gives us more control over mixed content and security related stuff, so It should allow us to unskip some layout tests (which I forgot to do it).
&gt; &gt; It also allows to track the progress of the media loaded in the inspector like any other resource. 
&gt; &gt; And also allows us to easily support other non HTTP sources like data or blob urls, see bug #102586.
&gt; 
&gt; Thanks.  Those sound like good reasons to do this.  I wouldn&apos;t have had to ask if they were spelled out in the bug.

See bug description and comment #5.

&gt; But good reasons to do this are still not a reason for doing it incorrectly.

I agree. I&apos;ll think of better alternatives, one that come to my mind in this moment would be to add a special loader for media, similar to the plugins stream loader used by PluginStream. I&apos;m adding Eric to the CC since maybe he had other ideas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909789</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-07-18 10:36:40 -0700</bug_when>
    <thetext>(In reply to comment #24)

&gt; &gt; Can you tell me how using CachedResourceLoader for the gstreamer media backend is a layering violation for the Mac port?  (I know that&apos;s not what you meant, but I actually have no idea what you mean here, so I&apos;d like clarification)
&gt; 
&gt; Because the media player is in platform and loader code is not. See bugs #21354 and #21562.

And used by mac port as well in WebCoreAVFResourceLoader, sorry that I misread the question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909796</commentid>
    <comment_count>26</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-18 10:47:26 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; That was just an example, there&apos;s also a mac platform ifdef in CachedResource, tryReplaceEncodedData, that is only used by the network process. 
&gt; &gt; 
&gt; &gt; Actually, there is literally nothing platform dependent about that, and we have it working in generic WebKit1 implementations experimentally.  That will be upstreamed sometime soon.  The only reason it was #if PLATFORM(MAC)&apos;ed was to keep from having to give empty implementations to other platforms.
&gt; 
&gt; Ok, so it&apos;s the same example as getOrCreateReadBuffer, there&apos;s nothing specific to soup, I simply added the ifdefs to avoid empty implementations in other ports.

No.  It&apos;s actually a generic feature of any CachedResource.

What this patch crammed into multiple CachedResource* classes was a something that doesn&apos;t belong in the memory cache at all.

And - if it did - it wouldn&apos;t be implemented with raw pointers like this.

&gt; 
&gt; &gt; This new thing that was added throughout the entire SubresourceLoader and memory cache machinery is not something that is generically usable, nor does it belong in CachedResource* code at all.
&gt; 
&gt; Why can&apos;t it be used by other ports? Because the network platform handles the read buffer and doesn&apos;t allow API users to provide their own?

Because other ports want the right design:
- Loader code (the interface between networking and the notion of per-page subresources) does not belong in the memory cache.
- We try to avoid raw pointers for buffers whenever humanly possible.  That this method is a raw pointer + buffer seems indicative of it&apos;s SOUP-specificness.

&gt; &gt; Can you tell me how using CachedResourceLoader for the gstreamer media backend is a layering violation for the Mac port?  (I know that&apos;s not what you meant, but I actually have no idea what you mean here, so I&apos;d like clarification)
&gt; 
&gt; Because the media player is in platform and loader code is not. See bugs #21354 and #21562.

And we&apos;re not going to untangle that mess by moving platform specific bits out of the platform directory and in to loader code

&gt; &gt; &gt; It gives us more control over mixed content and security related stuff, so It should allow us to unskip some layout tests (which I forgot to do it).
&gt; &gt; &gt; It also allows to track the progress of the media loaded in the inspector like any other resource. 
&gt; &gt; &gt; And also allows us to easily support other non HTTP sources like data or blob urls, see bug #102586.
&gt; &gt; 
&gt; &gt; Thanks.  Those sound like good reasons to do this.  I wouldn&apos;t have had to ask if they were spelled out in the bug.
&gt; 
&gt; See bug description and comment #5.

Some of what you mention is there.  Sorry for missing that

I think a lot of people tend to look at bug titles before anything else.  Maybe the title should be less cryptic and more descriptive.

&gt; &gt; But good reasons to do this are still not a reason for doing it incorrectly.
&gt; 
&gt; I agree. I&apos;ll think of better alternatives, one that come to my mind in this moment would be to add a special loader for media, similar to the plugins stream loader used by PluginStream. I&apos;m adding Eric to the CC since maybe he had other ideas.

Let&apos;s add Jer also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909797</commentid>
    <comment_count>27</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-07-18 10:47:40 -0700</bug_when>
    <thetext>He was already CC&apos;ed  Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914579</commentid>
    <comment_count>28</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-05 08:17:00 -0700</bug_when>
    <thetext>It seems the patch here also solved the bug in 109350 probably because it got rid of the RefPtr&lt;Frame&gt; that WebKitWebSource held, which caused a circular reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916927</commentid>
    <comment_count>29</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-08-13 15:54:27 -0700</bug_when>
    <thetext>I am working on an updated patch for bug #115352 and stumbled upon an issue related to this bug.

The issue is that the webkit source element can be created by any code using gst_element_make_from_uri with the uris supported by the webkit source element (currently http/https uris). This means that the source element may exist without a player involved (e.g. dash gstreamer plugin loading fragments in different threads), in which case we cannot get the CachedResourceLoader from priv-&gt;player which would not be set.

I will try to create a CachedResourceLoader/CachedResource manually (when priv-&gt;player is not set) and see how it goes, otherwise I believe we will have to have 2 code branches (one using CachedResourceLoader as is now and another one using ResourceHandle as it was before).

Please let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916941</commentid>
    <comment_count>30</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-08-13 16:47:51 -0700</bug_when>
    <thetext>Ok, I tried creating a CachedResourceLoader manually (inside the webkit source element when there is no player involved) with CachedResourceLoader::create(0) but when calling requestRawResource() it always returns null. 

I nailed it down to ResourceLoader::init() failing when called from SubresourceLoader::init() called from CachedResourceLoader::requestResource().

Is there a way to create a CachedResourceLoader without a Document/frame involved? If not we should either have 2 code branches in the webkit source as I stated on comment #29 or revert this patch and always use ResourceHandle as it was before.

Please let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917000</commentid>
    <comment_count>31</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-13 22:47:38 -0700</bug_when>
    <thetext>I think the WebKit source element is to load URIs inside WebKit, to load HTTP/HTTPS URIs from any other application not using WebKit I think there&apos;s another implementation based only on libsoup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917019</commentid>
    <comment_count>32</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-08-14 00:11:02 -0700</bug_when>
    <thetext>Yes there is a souphttpsrc element in gst-plugins-good but the issue is that in WebKit we kinda neutralize it by configuring our http element to a higher rank.

So code in gst plugins calling gst_element_make_from_uri(&quot;http&quot;) will indeed get a webkitwebsrc element :) We intend to fix that in bug 108088 . Andre, perhaps you can try the patch from that bug? It&apos;s not ready to land yet but it should help you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917408</commentid>
    <comment_count>33</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-08-14 21:05:02 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; Yes there is a souphttpsrc element in gst-plugins-good but the issue is that in WebKit we kinda neutralize it by configuring our http element to a higher rank.
&gt; 
&gt; So code in gst plugins calling gst_element_make_from_uri(&quot;http&quot;) will indeed get a webkitwebsrc element :) We intend to fix that in bug 108088 . Andre, perhaps you can try the patch from that bug? It&apos;s not ready to land yet but it should help you.

As discussed on IRC, the proposed solution for bug 108088 would break the use case for DASH/MSS and others where a gst plugin creates new source elements internally to download data.

I pushed an updated patch for bug 115352 that attempts to solve the issues I raised on comment #29 by using 2 code branches, one using a CachedResourceLoader when the player is available, and another one using a ResourceHandle when there is no player involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922635</commentid>
    <comment_count>34</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-08-29 13:25:06 -0700</bug_when>
    <thetext>Anything left on this bug? I guess all issues are now handled now that the patch on bug 115352 also landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955786</commentid>
    <comment_count>35</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-12-02 23:23:38 -0800</bug_when>
    <thetext>This can be closed I think.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202810</attachid>
            <date>2013-05-24 06:43:27 -0700</date>
            <delta_ts>2013-06-19 11:26:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-gst-resource-loader.diff</filename>
            <type>text/plain</type>
            <size>16794</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZTU1NDQwLi4wOGYwMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTMtMDUtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogQWRkIFN1YnJlc291cmNlTG9hZGVyU291cC5jcHAgdG8KKyAgICAg
ICAgY29tcGlsYXRpb24uCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6IEFk
ZCBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoKSB3aGVuCisgICAgICAgIHVzaW5nIFNPVVAuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJhd1Jlc291cmNlOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIpOiBJdGVyYXRlIHRo
ZQorICAgICAgICBjbGllbnRzIHVudGlsIG9uZSByZXR1cm5zIGEgdmFsaWQgcmVhZCBidWZmZXIg
b3IgcmV0dXJuIE5VTEwgdG8KKyAgICAgICAgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgcmVhZCBi
dWZmZXIuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZUNsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKTog
QWRkZWQKKyAgICAgICAgdG8gYWxsb3cgdGhlIGNsaWVudCB0byBhbGxvY2F0ZSB0aGUgcmVhZCBi
dWZmZXIuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKToKKyAgICAg
ICAgKiBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIpOiBD
YWxsCisgICAgICAgIENhY2hlZFJlc291cmNlOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudCk6IE1ha2UgdGhpcyBhIENhY2hlZFJh
d1Jlc291cmNlQ2xpZW50LgorICAgICAgICAoX1dlYktpdFdlYlNyY1ByaXZhdGUpOiBSZW1vdmUg
ZnJhbWUgYW5kIHJlc291cmNlSGFuZGxlIGFuZCBhZGQgYQorICAgICAgICBjYWNoZWQgcmVzb3Vy
Y2UgaGFuZGxlLgorICAgICAgICAod2ViS2l0V2ViU3JjRGlzcG9zZSk6IENsZWFyIHRoZSBwbGF5
ZXIgcG9pbnRlci4KKyAgICAgICAgKHdlYktpdFdlYlNyY1N0b3ApOiBSZW1vdmUgdGhlIGNsaWVu
dCBmcm9tIHRoZSBjYWNoZWQgcmVzb3VyY2UuCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6
IFVzZSBDYWNoZWRSZXNvdXJjZUxvYWRlciB0byBzY2hlZHVsZSBhCisgICAgICAgIENhY2hlZFJh
d1Jlc291cmNlIGxvYWQgZm9yIHRoZSBtZWRpYSB3aXRob3V0IGJ1ZmZlcmluZyB0aGUgZGF0YS4K
KyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRhTWFpbkNiKTogQ2FsbCBDYWNoZWRSZXNvdXJj
ZTo6c2V0RGVmZXJzTG9hZGluZy4KKyAgICAgICAgKHdlYktpdFdlYlNyY0Vub3VnaERhdGFNYWlu
Q2IpOiBEaXR0by4KKyAgICAgICAgKHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKTogU2ltcGx5
IHVwZGF0ZSB0aGUgcGxheWVyIHBvaW50ZXIuCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OnJl
c3BvbnNlUmVjZWl2ZWQpOiBVcGRhdGUgdG8gdGhlCisgICAgICAgIENhY2hlZFJhd1Jlc291cmNl
Q2xpZW50IEFQSS4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKTogRGl0
dG8uCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcik6IERp
dHRvLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50Ojpub3RpZnlGaW5pc2hlZCk6IERpdHRvLgor
CiAyMDEzLTA1LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBBdm9pZCB1bm5lY2Vzc2FyeSBkYXRhIGNvcGllcyB3aGVuIGxvYWRpbmcgc3Vi
cmVzb3VyY2VzIHdpdGggRG9Ob3RCdWZmZXJEYXRhIG9wdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggYmFlNWYzOS4uYjVlNmJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC00MTU0LDYgKzQxNTQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnN0aXR1
dGVSZXNvdXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9TdWJyZXNvdXJjZUxv
YWRlclNvdXAuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmggXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCA3YWI2MmY5Li40NGM0ZDhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzIsNiAr
NzIsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3Vy
Y2VzKCkgT1ZFUlJJREU7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9y
Q3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXpl
KSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgYm9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJy
b3IoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwg
RGF0YVBheWxvYWRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IGQ4MmJiN2UuLjlhYTAwMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjU2LDQg
KzI1NiwxNyBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCiAgICAgICAgIG1fbG9h
ZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwogfQogCisjaWYgVVNFKFNPVVApCitjaGFyKiBDYWNo
ZWRSYXdSZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXpl
LCBzaXplX3QmIGFjdHVhbFNpemUpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVk
UmF3UmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hhciogYnVm
ZmVyUHRyID0gYy0+Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUsIGFj
dHVhbFNpemUpKQorICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IGEyMTgzOTMu
LmZkYmMxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5oCkBAIC02NSw2ICs2NSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
d2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpOworI2Vu
ZGlmCisKICAgICB2b2lkIG5vdGlmeURhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaAppbmRl
eCAzMzZmZjE0Li5kZTdhNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaApAQCAtNDEsNiArNDEsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIC8qIGRhdGEgKi8sIGludCAvKiBsZW5ndGggKi8p
IHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQorI2lmIFVTRShT
T1VQKQorICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKENhY2hlZFJlc291
cmNlKiwgc2l6ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNpemVfdCYgLyogYWN0dWFsU2l6ZSAq
LykgeyByZXR1cm4gMDsgfQorI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGFhODQzMjEuLmNhNDQwMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yNTMsNiArMjUz
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRyeVJlcGxhY2VFbmNvZGVkRGF0YShQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4pOwogI2VuZGlmCiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNo
YXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgLyogcmVxdWVzdGVkU2l6ZSAqLywgc2l6
ZV90JiAvKiBhY3R1YWxTaXplICovKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBjaGVja05vdGlmeSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzY3MGEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcApAQCAtMCwwICsx
LDMxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1
YnJlc291cmNlTG9hZGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NoYXIqIFN1YnJlc291cmNlTG9hZGVyOjpnZXRPckNyZWF0ZVJl
YWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZExlbmd0aCwgc2l6ZV90JiBhY3R1YWxMZW5ndGgpCit7
CisgICAgcmV0dXJuIG1fcmVzb3VyY2UtPmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihyZXF1ZXN0ZWRM
ZW5ndGgsIGFjdHVhbExlbmd0aCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggNzYzYjFlMC4uY2Yy
NmY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAg
LTIyLDE2ICsyMiwxNSBAQAogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQog
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKyNpbmNsdWRlICJD
YWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCiAjaW5jbHVk
ZSAiR1N0cmVhbWVyVmVyc2lvbmluZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5j
bHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgot
I2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgpAQCAtNDQs
MjQgKzQzLDE5IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1jbGFzcyBTdHJlYW1p
bmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgeworY2xhc3MgU3RyZWFtaW5n
Q2xpZW50IDogcHVibGljIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShTdHJlYW1pbmdDbGllbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqKTsKICAgICAg
ICAgdmlydHVhbCB+U3RyZWFtaW5nQ2xpZW50KCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLQotICAgICAgICB2
aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwg
c2l6ZV90JiBhY3R1YWxTaXplKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChS
ZXNvdXJjZUhhbmRsZSopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNv
dXJjZUhhbmRsZSopOwotCiAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gQ2FjaGVkUmVzb3VyY2VD
bGllbnQKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3Vy
Y2UqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkYXRh
UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiwgaW50KTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7CisgICAgICAgIHZpcnR1
YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKENhY2hlZFJlc291cmNlKiwgc2l6ZV90IHJl
cXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7CisKICAgICAgICAgV2ViS2l0V2ViU3Jj
KiBtX3NyYzsKIH07CiAKQEAgLTcxLDExICs2NSwxMCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNyY1By
aXZhdGUgewogICAgIEdzdFBhZCogc3JjcGFkOwogICAgIGdjaGFyKiB1cmk7CiAKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6RnJhbWU+IGZyYW1lOwogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5
ZXI7CiAKICAgICBTdHJlYW1pbmdDbGllbnQqIGNsaWVudDsKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IHJlc291cmNlSGFuZGxlOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJh
d1Jlc291cmNlPiByZXNvdXJjZTsKIAogICAgIGd1aW50NjQgb2Zmc2V0OwogICAgIGd1aW50NjQg
c2l6ZTsKQEAgLTI5NCw2ICsyODcsOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNEaXNwb3Nl
KEdPYmplY3QqIG9iamVjdCkKICAgICAgICAgcHJpdi0+YnVmZmVyLmNsZWFyKCk7CiAgICAgfQog
CisgICAgcHJpdi0+cGxheWVyID0gMDsKKwogICAgIEdTVF9DQUxMX1BBUkVOVChHX09CSkVDVF9D
TEFTUywgZGlzcG9zZSwgKG9iamVjdCkpOwogfQogCkBAIC0zNjYsMTYgKzM2MSwxMCBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNyYyogc3JjLCBib29sIHNlZWtpbmcp
CiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIGlm
IChwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZS0+
Y2FuY2VsKCk7Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLnJlbGVhc2UoKTsKKyAgICBp
ZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UtPnJlbW92ZUNsaWVu
dChwcml2LT5jbGllbnQpOworICAgICAgICBwcml2LT5yZXNvdXJjZSA9IDA7CiAgICAgfQotICAg
IHByaXYtPnJlc291cmNlSGFuZGxlID0gMDsKLQotICAgIGlmIChwcml2LT5mcmFtZSAmJiAhc2Vl
a2luZykKLSAgICAgICAgcHJpdi0+ZnJhbWUuY2xlYXIoKTsKLQotICAgIHByaXYtPnBsYXllciA9
IDA7CiAKICAgICBpZiAocHJpdi0+YnVmZmVyKSB7CiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEK
QEAgLTQzNywyMSArNDI2LDE0IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktp
dFdlYlNyYyogc3JjKQogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIk5vIFVSSSBwcm92
aWRlZCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCisgICAgQVNTRVJU
KHByaXYtPnBsYXllcik7CisKICAgICBLVVJMIHVybCA9IEtVUkwoS1VSTCgpLCBwcml2LT51cmkp
OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEFs
bG93Q29va2llcyh0cnVlKTsKLQotICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gMDsK
LSAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUgPyBwcml2LT5mcmFtZS0+bG9h
ZGVyKCkgOiAwOwotICAgIGlmIChsb2FkZXIpIHsKLSAgICAgICAgbG9hZGVyLT5hZGRFeHRyYUZp
ZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwotICAgICAgICBjb250ZXh0ID0gbG9h
ZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpOwotICAgIH0KLQotICAgIGlmIChwcml2LT5wbGF5ZXIp
Ci0gICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHByaXYtPnBsYXllci0+cmVmZXJyZXIo
KSk7CisgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocHJpdi0+cGxheWVyLT5yZWZlcnJlcigp
KTsKIAogICAgIC8vIExldCBBcHBsZSB3ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNz
IHRoZWlyIG5pY2UgbW92aWUgdHJhaWxlcnMuCiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAo
Im1vdmllcy5hcHBsZS5jb20iLCB1cmwuaG9zdCgpLnV0ZjgoKS5kYXRhKCkpCkBAIC00NzIsOCAr
NDU0LDE0IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3Jj
KQogICAgIC8vIE5lZWRlZCB0byB1c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVl
c3Quc2V0SFRUUEhlYWRlckZpZWxkKCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsK
IAotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb250
ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGllbnQsIGZhbHNlLCBmYWxzZSk7Ci0gICAgaWYgKCFwcml2
LT5yZXNvdXJjZUhhbmRsZSkgeworICAgIGlmIChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVy
ID0gcHJpdi0+cGxheWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKSB7CisgICAgICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRp
b25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50LCBEb05vdEJ1ZmZlckRhdGEsIERv
Tm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNy
ZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2spKTsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UgPSBs
b2FkZXItPnJlcXVlc3RSYXdSZXNvdXJjZShjYWNoZVJlcXVlc3QpOworICAgICAgICBpZiAocHJp
di0+cmVzb3VyY2UpCisgICAgICAgICAgICBwcml2LT5yZXNvdXJjZS0+YWRkQ2xpZW50KHByaXYt
PmNsaWVudCk7CisgICAgfQorCisgICAgaWYgKCFwcml2LT5yZXNvdXJjZSkgewogICAgICAgICBH
U1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5kbGUiKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTY3Niw3ICs2NjQsNyBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiB7
CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIHByaXYt
PnJlc291cmNlSGFuZGxlLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICBwcml2LT5yZXNv
dXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc3Jj
KTsKICAgICBwcml2LT5wYXVzZWQgPSBGQUxTRTsKQEAgLTcwNiw3ICs2OTQsNyBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0V2ViU3JjRW5vdWdoRGF0YU1haW5DYihXZWJLaXRXZWJTcmMqIHNyYykK
IHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCi0gICAgcHJp
di0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7CisgICAgcHJpdi0+cmVz
b3VyY2UtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc3Jj
KTsKICAgICBwcml2LT5wYXVzZWQgPSBUUlVFOwpAQCAtNzY5LDE1ICs3NTcsOCBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla0RhdGFDYihHc3RBcHBTcmMqLCBndWludDY0IG9mZnNl
dCwgZ3BvaW50ZXIgdXNlcgogCiB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktp
dFdlYlNyYyogc3JjLCBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIFdlYktp
dFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZy
YW1lID0gMDsKLQotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCA9IHBsYXllci0+bWVk
aWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJPd25pbmdEb2N1bWVudCgpOwotICAgIGlmIChk
b2N1bWVudCkKLSAgICAgICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLQotICAgIHByaXYt
PmZyYW1lID0gZnJhbWU7Ci0gICAgcHJpdi0+cGxheWVyID0gcGxheWVyOworICAgIEFTU0VSVChw
bGF5ZXIpOworICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwogfQogCiBTdHJlYW1pbmdD
bGllbnQ6OlN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYykgOiBtX3NyYyhzcmMpCkBA
IC03OTAsMTEgKzc3MSw3IEBAIFN0cmVhbWluZ0NsaWVudDo6flN0cmVhbWluZ0NsaWVudCgpCiAK
IH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewotfQotCi12
b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6
cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJp
djsKIApAQCAtODgzLDcgKzg2MCw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlCiAgICAgICAg
IG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyksIG1fc3JjLT5wcml2LT5zcmNw
YWQsIHRhZ3MpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQor
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJp
dmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCkBAIC04OTYsNyArODczLDcgQEAgdm9pZCBTdHJl
YW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0
IGNoYXIqIGRhdGEsIGkKICAgICAgICAgdW5tYXBHc3RCdWZmZXIocHJpdi0+YnVmZmVyLmdldCgp
KTsKICNlbmRpZgogCi0gICAgaWYgKHByaXYtPnNlZWtJRCB8fCBoYW5kbGUgIT0gcHJpdi0+cmVz
b3VyY2VIYW5kbGUpIHsKKyAgICBpZiAocHJpdi0+c2Vla0lEIHx8IHJlc291cmNlICE9IHByaXYt
PnJlc291cmNlKSB7CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QobV9zcmMsICJTZWVrIGluIHBy
b2dyZXNzLCBpZ25vcmluZyBkYXRhIik7CiAgICAgICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwog
ICAgICAgICByZXR1cm47CkBAIC05MjQsNyArOTAxLDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEs
IGkKICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIENPUkUsIEZBSUxFRCwgKDApLCAo
MCkpOwogfQogCi1jaGFyKiBTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihz
aXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKQorY2hhciogU3RyZWFtaW5n
Q2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoQ2FjaGVkUmVzb3VyY2UqLCBzaXplX3QgcmVx
dWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIApAQCAtOTQyLDcgKzkxOSw3IEBAIGNoYXIqIFN0cmVh
bWluZ0NsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBz
aXplX3QmIGFjdHVhCiAgICAgcmV0dXJuIGdldEdzdEJ1ZmZlckRhdGFQb2ludGVyKGJ1ZmZlcik7
CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKiwgZG91YmxlKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlKikKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnBy
aXY7CiAKQEAgLTk1MiwyNCArOTI5LDUgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiAgICAgICAgIGdzdF9hcHBfc3JjX2Vu
ZF9vZl9zdHJlYW0obV9zcmMtPnByaXYtPmFwcHNyYyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xp
ZW50OjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
Ci17Ci0gICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIkhhdmUgZmFpbHVyZTogJXMiLCBlcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEdTVF9FTEVNRU5U
X0VSUk9SKG1fc3JjLCBSRVNPVVJDRSwgRkFJTEVELCAoIiVzIiwgZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSwgKDApKTsKLSAgICBnc3RfYXBwX3NyY19lbmRfb2Zf
c3RyZWFtKG1fc3JjLT5wcml2LT5hcHBzcmMpOwotfQotCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6
d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopCi17Ci0gICAgR1NUX0VSUk9SX09CSkVDVChtX3Ny
YywgIlJlcXVlc3Qgd2FzIGJsb2NrZWQiKTsKLSAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywg
UkVTT1VSQ0UsIE9QRU5fUkVBRCwgKCJBY2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgbV9z
cmMtPnByaXYtPnVyaSksICgwKSk7Ci19Ci0KLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpjYW5ub3RT
aG93VVJMKFJlc291cmNlSGFuZGxlKikKLXsKLSAgICBHU1RfRVJST1JfT0JKRUNUKG1fc3JjLCAi
Q2Fubm90IHNob3cgVVJMIik7Ci0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIFJFU09VUkNF
LCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCBtX3NyYy0+cHJpdi0+dXJpKSwgKDAp
KTsKLX0KLQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205022</attachid>
            <date>2013-06-19 11:26:42 -0700</date>
            <delta_ts>2013-06-19 12:05:16 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-gst-subresource-loader.diff</filename>
            <type>text/plain</type>
            <size>18440</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNWY4MTQzLi45YTExNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTMtMDUtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogQWRkIFN1YnJlc291cmNlTG9hZGVyU291cC5jcHAgdG8KKyAgICAg
ICAgY29tcGlsYXRpb24uCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6IEFk
ZCBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoKSB3aGVuCisgICAgICAgIHVzaW5nIFNPVVAuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJhd1Jlc291cmNlOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIpOiBJdGVyYXRlIHRo
ZQorICAgICAgICBjbGllbnRzIHVudGlsIG9uZSByZXR1cm5zIGEgdmFsaWQgcmVhZCBidWZmZXIg
b3IgcmV0dXJuIE5VTEwgdG8KKyAgICAgICAgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgcmVhZCBi
dWZmZXIuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZUNsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKTog
QWRkZWQKKyAgICAgICAgdG8gYWxsb3cgdGhlIGNsaWVudCB0byBhbGxvY2F0ZSB0aGUgcmVhZCBi
dWZmZXIuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKToKKyAgICAg
ICAgKiBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIpOiBD
YWxsCisgICAgICAgIENhY2hlZFJlc291cmNlOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcDoKKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudCk6IE1ha2UgdGhpcyBhIENhY2hlZFJh
d1Jlc291cmNlQ2xpZW50LgorICAgICAgICAoX1dlYktpdFdlYlNyY1ByaXZhdGUpOiBSZW1vdmUg
ZnJhbWUgYW5kIHJlc291cmNlSGFuZGxlIGFuZCBhZGQgYQorICAgICAgICBjYWNoZWQgcmVzb3Vy
Y2UgaGFuZGxlLgorICAgICAgICAod2ViS2l0V2ViU3JjRGlzcG9zZSk6IENsZWFyIHRoZSBwbGF5
ZXIgcG9pbnRlci4KKyAgICAgICAgKHdlYktpdFdlYlNyY1N0b3ApOiBSZW1vdmUgdGhlIGNsaWVu
dCBmcm9tIHRoZSBjYWNoZWQgcmVzb3VyY2UuCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6
IFVzZSBDYWNoZWRSZXNvdXJjZUxvYWRlciB0byBzY2hlZHVsZSBhCisgICAgICAgIENhY2hlZFJh
d1Jlc291cmNlIGxvYWQgZm9yIHRoZSBtZWRpYSB3aXRob3V0IGJ1ZmZlcmluZyB0aGUgZGF0YS4K
KyAgICAgICAgKHdlYktpdFdlYlNyY05lZWREYXRhTWFpbkNiKTogQ2FsbCBDYWNoZWRSZXNvdXJj
ZTo6c2V0RGVmZXJzTG9hZGluZy4KKyAgICAgICAgKHdlYktpdFdlYlNyY0Vub3VnaERhdGFNYWlu
Q2IpOiBEaXR0by4KKyAgICAgICAgKHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKTogU2ltcGx5
IHVwZGF0ZSB0aGUgcGxheWVyIHBvaW50ZXIuCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OnJl
c3BvbnNlUmVjZWl2ZWQpOiBVcGRhdGUgdG8gdGhlCisgICAgICAgIENhY2hlZFJhd1Jlc291cmNl
Q2xpZW50IEFQSS4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKTogRGl0
dG8uCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcik6IERp
dHRvLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50Ojpub3RpZnlGaW5pc2hlZCk6IERpdHRvLgor
CiAyMDEzLTA2LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IElucHV0IHR5cGUgcmFuZ2Ugc2xpZGVyIGlzIG5vdCB1cGRhdGVkIHdoZW4gbWluIG9yIG1heCBh
cmUgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNDBmNGJmOS4uZDE1
YmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MTMxLDYgKzQxMzEsNyBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJj
ZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3RpdHV0ZURhdGEuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnN0aXR1dGVSZXNvdXJjZS5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJl
YWRhYmxlTG9hZGVyQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuaAppbmRleCBhNGE4ZDFjLi41YWVkZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgT1ZFUlJJREU7CiAKKyNpZiBVU0Uo
U09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVx
dWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAg
Ym9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2
ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4s
IGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDQ0
MTI4ZDEuLjBlNjAxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY1LDQgKzI2NSwxNyBAQCB2b2lkIENhY2hlZFJhd1Jl
c291cmNlOjpjbGVhcigpCiAgICAgICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwog
fQogCisjaWYgVVNFKFNPVVApCitjaGFyKiBDYWNoZWRSYXdSZXNvdXJjZTo6Z2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpCit7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHco
bV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5l
eHQoKSkgeworICAgICAgICBpZiAoY2hhciogYnVmZmVyUHRyID0gYy0+Z2V0T3JDcmVhdGVSZWFk
QnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUsIGFjdHVhbFNpemUpKQorICAgICAgICAgICAgcmV0
dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSYXdSZXNvdXJjZS5oCmluZGV4IDE1ZWI2NzAuLjI0NDUwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC02Nyw2ICs2NywxMCBA
QCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGNhbGN1bGF0ZUluY3JlbWVudGFsRGF0YUNodW5r
KFJlc291cmNlQnVmZmVyKiwgdW5zaWduZWQmIGluY3JlbWVudGFsRGF0YUxlbmd0aCk7CiAgICAg
dm9pZCBub3RpZnlDbGllbnRzRGF0YVdhc1JlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCk7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3Jl
YXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKTsK
KyNlbmRpZgorCiAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7CiAKICAgICBzdHJ1Y3Qg
UmVkaXJlY3RQYWlyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKaW5kZXggMzM2ZmYxNC4uZGU3YTQ1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50
LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJl
Y2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiAv
KiBkYXRhICovLCBpbnQgLyogbGVuZ3RoICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJl
Y3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSB7IH0KKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9y
Q3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCAvKiByZXF1ZXN0ZWRTaXpl
ICovLCBzaXplX3QmIC8qIGFjdHVhbFNpemUgKi8pIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRl
eCBlYWNiZmRiLi4xMTI0MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuaApAQCAtMjU1LDYgKzI1NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cnlS
ZXBsYWNlRW5jb2RlZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKICNlbmRpZgogCisj
aWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6
ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNpemVfdCYgLyogYWN0dWFsU2l6ZSAqLykgeyByZXR1
cm4gMDsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOb3Rp
ZnkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvU3VicmVzb3Vy
Y2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291cmNl
TG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc2NzBh
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291
cmNlTG9hZGVyU291cC5jcHAKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgorCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjaGFyKiBTdWJy
ZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRMZW5n
dGgsIHNpemVfdCYgYWN0dWFsTGVuZ3RoKQoreworICAgIHJldHVybiBtX3Jlc291cmNlLT5nZXRP
ckNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVkTGVuZ3RoLCBhY3R1YWxMZW5ndGgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCmluZGV4IDgxZTQ5YmMuLjdjY2UwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiwxNiArMjIsMTUgQEAKIAogI2lmIEVOQUJM
RShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
R1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVu
dC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8
Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAgLTU0LDI0ICs1MywxOSBAQAogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFu
ZGxlQ2xpZW50IHsKK2NsYXNzIFN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNv
dXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyZWFtaW5nQ2xpZW50KTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBTdHJlYW1pbmdD
bGllbnQoV2ViS2l0V2ViU3JjKik7CiAgICAgICAgIHZpcnR1YWwgflN0cmVhbWluZ0NsaWVudCgp
OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUq
LCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7Ci0KLSAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRC
dWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7Ci0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIGludCwgaW50KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLQogICAgIHByaXZhdGU6
CisgICAgICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CisgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29u
c3QgY2hhciosIGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZl
cihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNp
emUpOworCiAgICAgICAgIFdlYktpdFdlYlNyYyogbV9zcmM7CiB9OwogCkBAIC04MSwxMSArNzUs
MTAgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKICAgICBHc3RQYWQqIHNyY3BhZDsK
ICAgICBnY2hhciogdXJpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBmcmFtZTsKICAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyOwogCiAgICAgU3RyZWFtaW5nQ2xpZW50KiBj
bGllbnQ7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiByZXNvdXJjZUhhbmRsZTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVzb3VyY2U7CiAKICAgICBn
dWludDY0IG9mZnNldDsKICAgICBndWludDY0IHNpemU7CkBAIC0zMDMsNiArMjk2LDggQEAgc3Rh
dGljIHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHBy
aXYtPmJ1ZmZlci5jbGVhcigpOwogICAgIH0KIAorICAgIHByaXYtPnBsYXllciA9IDA7CisKICAg
ICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGRpc3Bvc2UsIChvYmplY3QpKTsKIH0K
IApAQCAtMzg3LDIyICszODIsMTYgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1N0b3Ao
V2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgICAgIHByaXYtPnN0YXJ0SUQgPSAwOwogICAgIH0KIAot
ICAgIGlmIChwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBwcml2LT5yZXNvdXJjZUhh
bmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLnJlbGVhc2UoKTsK
KyAgICBpZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UtPnJlbW92
ZUNsaWVudChwcml2LT5jbGllbnQpOworICAgICAgICBwcml2LT5yZXNvdXJjZSA9IDA7CiAgICAg
fQotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gMDsKIAogICAgIGlmIChwcml2LT5jbGllbnQp
IHsKICAgICAgICAgZGVsZXRlIHByaXYtPmNsaWVudDsKICAgICAgICAgcHJpdi0+Y2xpZW50ID0g
MDsKICAgICB9CiAKLSAgICBpZiAocHJpdi0+ZnJhbWUgJiYgIXNlZWtpbmcpCi0gICAgICAgIHBy
aXYtPmZyYW1lLmNsZWFyKCk7Ci0KLSAgICBwcml2LT5wbGF5ZXIgPSAwOwotCiAgICAgaWYgKHBy
aXYtPmJ1ZmZlcikgewogI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAgIHVubWFwR3N0
QnVmZmVyKHByaXYtPmJ1ZmZlci5nZXQoKSk7CkBAIC00NzEsMjAgKzQ2MCwxMyBAQCBzdGF0aWMg
Z2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgICAgIHJl
dHVybiBGQUxTRTsKICAgICB9CiAKKyAgICBBU1NFUlQocHJpdi0+cGxheWVyKTsKKwogICAgIEtV
UkwgdXJsID0gS1VSTChLVVJMKCksIHByaXYtPnVyaSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUpOwotCi0gICAg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSAwOwotICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIg
PSBwcml2LT5mcmFtZSA/IHByaXYtPmZyYW1lLT5sb2FkZXIoKSA6IDA7Ci0gICAgaWYgKGxvYWRl
cikgewotICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3Qo
cmVxdWVzdCk7Ci0gICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdDb250ZXh0KCk7
Ci0gICAgfQotCi0gICAgaWYgKHByaXYtPnBsYXllcikKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
UmVmZXJyZXIocHJpdi0+cGxheWVyLT5yZWZlcnJlcigpKTsKKyAgICByZXF1ZXN0LnNldEhUVFBS
ZWZlcnJlcihwcml2LT5wbGF5ZXItPnJlZmVycmVyKCkpOwogCiAgICAgLy8gTGV0IEFwcGxlIHdl
YiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3ZpZSB0cmFpbGVy
cy4KICAgICBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCgibW92aWVzLmFwcGxlLmNvbSIsIHVybC5o
b3N0KCkudXRmOCgpLmRhdGEoKSkKQEAgLTUwNSwxMCArNDg3LDE3IEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAvLyBOZWVkZWQgdG8g
dXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVs
ZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAKLSAgICBwcml2LT5jbGllbnQg
PSBuZXcgU3RyZWFtaW5nQ2xpZW50KHNyYyk7Ci0gICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUgPSBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNsaWVudCwgZmFs
c2UsIGZhbHNlKTsKLSAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7Ci0gICAgICAgIEdT
VF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhhbmRsZSIpOwor
ICAgIGlmIChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxheWVyLT5jYWNo
ZWRSZXNvdXJjZUxvYWRlcigpKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNo
ZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIERv
Tm90U25pZmZDb250ZW50LCBEb05vdEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50
aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBEb1NlY3VyaXR5
Q2hlY2spKTsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UgPSBsb2FkZXItPnJlcXVlc3RSYXdSZXNv
dXJjZShjYWNoZVJlcXVlc3QpOworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAg
ICAgICAgIHByaXYtPmNsaWVudCA9IG5ldyBTdHJlYW1pbmdDbGllbnQoc3JjKTsKKyAgICAgICAg
ICAgIHByaXYtPnJlc291cmNlLT5hZGRDbGllbnQocHJpdi0+Y2xpZW50KTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGlmICghcHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgR1NUX0VSUk9SX09C
SkVDVChzcmMsICJGYWlsZWQgdG8gc2NoZWR1bGUgcmVzb3VyY2UgbG9hZCIpOwogICAgICAgICBH
U1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAgICB3ZWJLaXRXZWJTcmNTdG9wKHNyYyk7CiAg
ICAgfSBlbHNlIHsKQEAgLTc1MSw4ICs3NDAsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2Vi
U3JjTmVlZERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcHJpdi0+bmVlZERhdGFJ
RCA9IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChwcml2LT5yZXNv
dXJjZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRp
bmcoZmFsc2UpOworICAgIGlmIChwcml2LT5yZXNvdXJjZSkKKyAgICAgICAgcHJpdi0+cmVzb3Vy
Y2UtPnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogICAgIHJldHVybiBGQUxTRTsKIH0KIApAQCAt
Nzg4LDggKzc3Nyw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhTWFp
bkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAgIHByaXYtPmVub3VnaERhdGFJRCA9IDA7CiAgICAg
R1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChwcml2LT5yZXNvdXJjZUhhbmRsZSkK
LSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7Cisg
ICAgaWYgKHByaXYtPnJlc291cmNlKQorICAgICAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJz
TG9hZGluZyh0cnVlKTsKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKQEAgLTg1MiwxNSArODQxLDgg
QEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBwU3JjKiwgZ3Vp
bnQ2NCBvZmZzZXQsIGdwb2ludGVyIHVzZXIKIAogdm9pZCB3ZWJLaXRXZWJTcmNTZXRNZWRpYVBs
YXllcihXZWJLaXRXZWJTcmMqIHNyYywgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllcikKIHsK
LSAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwotICAgIFdlYkNvcmU6
OkZyYW1lKiBmcmFtZSA9IDA7Ci0KLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQgPSBw
bGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyT3duaW5nRG9jdW1lbnQoKTsK
LSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7Ci0K
LSAgICBwcml2LT5mcmFtZSA9IGZyYW1lOwotICAgIHByaXYtPnBsYXllciA9IHBsYXllcjsKKyAg
ICBBU1NFUlQocGxheWVyKTsKKyAgICBzcmMtPnByaXYtPnBsYXllciA9IHBsYXllcjsKIH0KIAog
U3RyZWFtaW5nQ2xpZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMpCkBAIC04
NzQsMTEgKzg1Niw3IEBAIFN0cmVhbWluZ0NsaWVudDo6flN0cmVhbWluZ0NsaWVudCgpCiAgICAg
Z3N0X29iamVjdF91bnJlZihtX3NyYyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50Ojp3aWxs
U2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAg
ICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCkBAIC04ODcsNyAr
ODY1LDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVIKICAgICBHU1RfT0JKRUNUX0xPQ0sobV9z
cmMpOwogCiAgICAgLy8gSWYgd2Ugc2Vla2VkIHdlIG5lZWQgMjA2ID09IFBBUlRJQUxfQ09OVEVO
VAotICAgIGlmIChoYW5kbGUgIT0gcHJpdi0+cmVzb3VyY2VIYW5kbGUgfHwgKHByaXYtPnJlcXVl
c3RlZE9mZnNldCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikpIHsKKyAgICBp
ZiAocmVzb3VyY2UgIT0gcHJpdi0+cmVzb3VyY2UgfHwgKHByaXYtPnJlcXVlc3RlZE9mZnNldCAm
JiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikpIHsKICAgICAgICAgR1NUX09CSkVD
VF9VTkxPQ0sobV9zcmMpOwogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVTT1VS
Q0UsIFJFQUQsICgwKSwgKDApKTsKICAgICAgICAgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbShw
cml2LT5hcHBzcmMpOwpAQCAtOTc4LDcgKzk1Niw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUgKmhhbmRsZSwgY29uc3QgUmVzb3VyY2VS
CiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyksIHByaXYtPnNy
Y3BhZCwgdGFncyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQp
Cit2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAKQEAgLTk5Myw3ICs5NzEsNyBAQCB2b2lkIFN0
cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgY2hhciogZGF0YSwgaQogICAgICAgICB1bm1hcEdzdEJ1ZmZlcihwcml2LT5idWZmZXIuZ2V0
KCkpOwogI2VuZGlmCiAKLSAgICBpZiAocHJpdi0+c2Vla0lEIHx8IGhhbmRsZSAhPSBwcml2LT5y
ZXNvdXJjZUhhbmRsZSkgeworICAgIGlmIChwcml2LT5zZWVrSUQgfHwgcmVzb3VyY2UgIT0gcHJp
di0+cmVzb3VyY2UpIHsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0sobV9zcmMpOwogICAgICAg
ICBHU1RfREVCVUdfT0JKRUNUKG1fc3JjLCAiU2VlayBpbiBwcm9ncmVzcywgaWdub3JpbmcgZGF0
YSIpOwogICAgICAgICBwcml2LT5idWZmZXIuY2xlYXIoKTsKQEAgLTEwMjQsNyArMTAwMiw3IEBA
IHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3Jj
LCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotY2hhciogU3RyZWFtaW5nQ2xpZW50Ojpn
ZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFs
U2l6ZSkKK2NoYXIqIFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKENhY2hl
ZFJlc291cmNlKiwgc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSkKIHsK
ICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAKQEAgLTEwNDIs
MTAgKzEwMjAsMjEgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZm
ZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWEKICAgICByZXR1cm4gZ2V0R3N0
QnVmZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCit2b2lkIFN0cmVhbWluZ0Ns
aWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIFdl
YktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIAorICAgIGlmIChyZXNvdXJj
ZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAgICBHT3duUHRyPGdjaGFyPiB1cmk7
CisgICAgICAgIEdTVF9PQkpFQ1RfTE9DSyhtX3NyYyk7CisgICAgICAgIHVyaS5zZXQoZ19zdHJk
dXAobV9zcmMtPnByaXYtPnVyaSkpOworICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhtX3NyYyk7
CisKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIkhhdmUgZmFpbHVyZSBsb2FkaW5n
IFwiJXNcIiIsIHVyaS5nZXQoKSk7CisgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBS
RVNPVVJDRSwgRkFJTEVELCAoIkhhdmUgZmFpbHVyZSBsb2FkaW5nIFwiJXNcIiIsIHVyaS5nZXQo
KSksICgwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBHU1RfREVCVUdfT0JKRUNU
KG1fc3JjLCAiSGF2ZSBFT1MiKTsKIAogICAgIEdTVF9PQkpFQ1RfTE9DSyhtX3NyYyk7CkBAIC0x
MDU2LDM4ICsxMDQ1LDUgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKG1fc3Jj
KTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBHU1RfRVJST1JfT0JKRUNUKG1fc3Jj
LCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIFJFU09VUkNFLCBGQUlMRUQs
ICgiJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpLCAoMCkp
OwotICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0obV9zcmMtPnByaXYtPmFwcHNyYyk7Ci19
Ci0KLXZvaWQgU3RyZWFtaW5nQ2xpZW50Ojp3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikKLXsK
LSAgICBHT3duUHRyPGdjaGFyPiB1cmk7Ci0KLSAgICBHU1RfRVJST1JfT0JKRUNUKG1fc3JjLCAi
UmVxdWVzdCB3YXMgYmxvY2tlZCIpOwotCi0gICAgR1NUX09CSkVDVF9MT0NLKG1fc3JjKTsKLSAg
ICB1cmkuc2V0KGdfc3RyZHVwKG1fc3JjLT5wcml2LT51cmkpKTsKLSAgICBHU1RfT0JKRUNUX1VO
TE9DSyhtX3NyYyk7Ci0KLSAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVTT1VSQ0UsIE9Q
RU5fUkVBRCwgKCJBY2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgdXJpLmdldCgpKSwgKDAp
KTsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5k
bGUqKQotewotICAgIEdPd25QdHI8Z2NoYXI+IHVyaTsKLQotICAgIEdTVF9FUlJPUl9PQkpFQ1Qo
bV9zcmMsICJDYW5ub3Qgc2hvdyBVUkwiKTsKLQotICAgIEdTVF9PQkpFQ1RfTE9DSyhtX3NyYyk7
Ci0gICAgdXJpLnNldChnX3N0cmR1cChtX3NyYy0+cHJpdi0+dXJpKSk7Ci0gICAgR1NUX09CSkVD
VF9VTkxPQ0sobV9zcmMpOwotCi0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIFJFU09VUkNF
LCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCB1cmkuZ2V0KCkpLCAoMCkpOwotfQot
CiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKIAo=
</data>
<flag name="commit-queue"
          id="226463"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205025</attachid>
            <date>2013-06-19 12:05:16 -0700</date>
            <delta_ts>2013-06-20 03:32:03 -0700</delta_ts>
            <desc>Try to fix efl build</desc>
            <filename>wcore-gst-subresource-loader2.diff</filename>
            <type>text/plain</type>
            <size>19304</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNWY4MTQzLi5hMmJiMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTMtMDYtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogQWRkIFN1YnJlc291cmNlTG9hZGVyU291cC5jcHAgdG8KKyAgICAg
ICAgY29tcGlsYXRpb24uCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERpdHRvLgorICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuaDogQWRkIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcigpIHdoZW4KKyAgICAgICAg
dXNpbmcgU09VUC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OmdldE9yQ3JlYXRlUmVhZEJ1
ZmZlcik6IEl0ZXJhdGUgdGhlCisgICAgICAgIGNsaWVudHMgdW50aWwgb25lIHJldHVybnMgYSB2
YWxpZCByZWFkIGJ1ZmZlciBvciByZXR1cm4gTlVMTCB0bworICAgICAgICBmYWxsYmFjayB0byB0
aGUgZGVmYXVsdCByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlQ2xpZW50OjpnZXRPckNy
ZWF0ZVJlYWRCdWZmZXIpOiBBZGRlZAorICAgICAgICB0byBhbGxvdyB0aGUgY2xpZW50IHRvIGFs
bG9jYXRlIHRoZSByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpnZXRPckNyZWF0ZVJl
YWRCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmdldE9yQ3Jl
YXRlUmVhZEJ1ZmZlcik6IENhbGwKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcigpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50KTogTWFr
ZSB0aGlzIGEgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuCisgICAgICAgIChfV2ViS2l0V2ViU3Jj
UHJpdmF0ZSk6IFJlbW92ZSBmcmFtZSBhbmQgcmVzb3VyY2VIYW5kbGUgYW5kIGFkZCBhCisgICAg
ICAgIGNhY2hlZCByZXNvdXJjZSBoYW5kbGUuCisgICAgICAgICh3ZWJLaXRXZWJTcmNEaXNwb3Nl
KTogQ2xlYXIgdGhlIHBsYXllciBwb2ludGVyLgorICAgICAgICAod2ViS2l0V2ViU3JjU3RvcCk6
IFJlbW92ZSB0aGUgY2xpZW50IGZyb20gdGhlIGNhY2hlZCByZXNvdXJjZS4KKyAgICAgICAgKHdl
YktpdFdlYlNyY1N0YXJ0KTogVXNlIENhY2hlZFJlc291cmNlTG9hZGVyIHRvIHNjaGVkdWxlIGEK
KyAgICAgICAgQ2FjaGVkUmF3UmVzb3VyY2UgbG9hZCBmb3IgdGhlIG1lZGlhIHdpdGhvdXQgYnVm
ZmVyaW5nIHRoZSBkYXRhLgorICAgICAgICAod2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IpOiBD
YWxsIENhY2hlZFJlc291cmNlOjpzZXREZWZlcnNMb2FkaW5nLgorICAgICAgICAod2ViS2l0V2Vi
U3JjRW5vdWdoRGF0YU1haW5DYik6IERpdHRvLgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0TWVk
aWFQbGF5ZXIpOiBTaW1wbHkgdXBkYXRlIHRoZSBwbGF5ZXIgcG9pbnRlci4KKyAgICAgICAgKFN0
cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6IFVwZGF0ZSB0byB0aGUKKyAgICAgICAg
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgQVBJLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50Ojpk
YXRhUmVjZWl2ZWQpOiBEaXR0by4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVh
dGVSZWFkQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6Om5vdGlmeUZp
bmlzaGVkKTogRGl0dG8uCisKIDIwMTMtMDYtMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSW5wdXQgdHlwZSByYW5nZSBzbGlkZXIgaXMgbm90IHVwZGF0ZWQg
d2hlbiBtaW4gb3IgbWF4IGFyZSBjaGFuZ2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0MGY0YmY5Li5kMTViYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQxMzEsNiArNDEzMSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJz
dGl0dXRlRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3RpdHV0ZVJlc291cmNl
LmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGY0OTY2NDcuLjA0Y2RjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0zNyw2ICszNyw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCiAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNv
dXJjZUxvYWRlclNvdXAuY3BwCisKICAgICBwYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAK
ICAgICBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggMmE4Yjg0NS4uOWQzOGJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAg
LTQyLDYgKzQyLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBlZGl0aW5n
L2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKIAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNl
TG9hZGVyU291cC5jcHAKKwogICAgIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAogICAg
IHBhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuaAppbmRleCBhNGE4ZDFjLi41YWVkZmFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgT1ZFUlJJREU7CiAK
KyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihz
aXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBPVkVSUklERTsKKyNlbmRp
ZgorCiAgICAgYm9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
CmluZGV4IDQ0MTI4ZDEuLjBlNjAxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY1LDQgKzI2NSwxNyBAQCB2b2lkIENh
Y2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCiAgICAgICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNl
RGF0YSgpOwogfQogCisjaWYgVVNFKFNPVVApCitjaGFyKiBDYWNoZWRSYXdSZXNvdXJjZTo6Z2V0
T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNp
emUpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQq
IGMgPSB3Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hhciogYnVmZmVyUHRyID0gYy0+Z2V0T3JD
cmVhdGVSZWFkQnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUsIGFjdHVhbFNpemUpKQorICAgICAg
ICAgICAgcmV0dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDE1ZWI2NzAuLjI0NDUwMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC02Nyw2
ICs2NywxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGNhbGN1bGF0ZUluY3JlbWVudGFs
RGF0YUNodW5rKFJlc291cmNlQnVmZmVyKiwgdW5zaWduZWQmIGluY3JlbWVudGFsRGF0YUxlbmd0
aCk7CiAgICAgdm9pZCBub3RpZnlDbGllbnRzRGF0YVdhc1JlY2VpdmVkKGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIq
IGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1
YWxTaXplKTsKKyNlbmRpZgorCiAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7CiAKICAg
ICBzdHJ1Y3QgUmVkaXJlY3RQYWlyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKaW5kZXggMzM2ZmYxNC4uZGU3YTQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25z
dCBjaGFyKiAvKiBkYXRhICovLCBpbnQgLyogbGVuZ3RoICovKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNo
YXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCAvKiByZXF1
ZXN0ZWRTaXplICovLCBzaXplX3QmIC8qIGFjdHVhbFNpemUgKi8pIHsgcmV0dXJuIDA7IH0KKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuaAppbmRleCBlYWNiZmRiLi4xMTI0MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMjU1LDYgKzI1NSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCB0cnlSZXBsYWNlRW5jb2RlZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKICNl
bmRpZgogCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRC
dWZmZXIoc2l6ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNpemVfdCYgLyogYWN0dWFsU2l6ZSAq
LykgeyByZXR1cm4gMDsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tOb3RpZnkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAv
U3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1
YnJlc291cmNlTG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYjc2NzBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3Vw
L1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgor
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
aGFyKiBTdWJyZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1
ZXN0ZWRMZW5ndGgsIHNpemVfdCYgYWN0dWFsTGVuZ3RoKQoreworICAgIHJldHVybiBtX3Jlc291
cmNlLT5nZXRPckNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVkTGVuZ3RoLCBhY3R1YWxMZW5ndGgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDgxZTQ5YmMuLjdjY2UwYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiwxNiArMjIsMTUgQEAKIAog
I2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25p
bmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAgLTU0LDI0ICs1MywxOSBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJl
c291cmNlSGFuZGxlQ2xpZW50IHsKK2NsYXNzIFN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyZWFtaW5n
Q2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBT
dHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKik7CiAgICAgICAgIHZpcnR1YWwgflN0cmVhbWlu
Z0NsaWVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0KLSAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNy
ZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCwgaW50KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLQogICAg
IHByaXZhdGU6CisgICAgICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CisgICAgICAgIHZpcnR1
YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiwgY29uc3QgY2hhciosIGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3Qm
IGFjdHVhbFNpemUpOworCiAgICAgICAgIFdlYktpdFdlYlNyYyogbV9zcmM7CiB9OwogCkBAIC04
MSwxMSArNzUsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKICAgICBHc3RQYWQq
IHNyY3BhZDsKICAgICBnY2hhciogdXJpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBm
cmFtZTsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyOwogCiAgICAgU3RyZWFtaW5n
Q2xpZW50KiBjbGllbnQ7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiByZXNvdXJjZUhhbmRs
ZTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVzb3VyY2U7
CiAKICAgICBndWludDY0IG9mZnNldDsKICAgICBndWludDY0IHNpemU7CkBAIC0zMDMsNiArMjk2
LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAg
ICAgICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwogICAgIH0KIAorICAgIHByaXYtPnBsYXllciA9
IDA7CisKICAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGRpc3Bvc2UsIChvYmpl
Y3QpKTsKIH0KIApAQCAtMzg3LDIyICszODIsMTYgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdl
YlNyY1N0b3AoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgICAgIHByaXYtPnN0YXJ0SUQgPSAwOwog
ICAgIH0KIAotICAgIGlmIChwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBwcml2LT5y
ZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLnJl
bGVhc2UoKTsKKyAgICBpZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgcHJpdi0+cmVzb3Vy
Y2UtPnJlbW92ZUNsaWVudChwcml2LT5jbGllbnQpOworICAgICAgICBwcml2LT5yZXNvdXJjZSA9
IDA7CiAgICAgfQotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gMDsKIAogICAgIGlmIChwcml2
LT5jbGllbnQpIHsKICAgICAgICAgZGVsZXRlIHByaXYtPmNsaWVudDsKICAgICAgICAgcHJpdi0+
Y2xpZW50ID0gMDsKICAgICB9CiAKLSAgICBpZiAocHJpdi0+ZnJhbWUgJiYgIXNlZWtpbmcpCi0g
ICAgICAgIHByaXYtPmZyYW1lLmNsZWFyKCk7Ci0KLSAgICBwcml2LT5wbGF5ZXIgPSAwOwotCiAg
ICAgaWYgKHByaXYtPmJ1ZmZlcikgewogI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAg
IHVubWFwR3N0QnVmZmVyKHByaXYtPmJ1ZmZlci5nZXQoKSk7CkBAIC00NzEsMjAgKzQ2MCwxMyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAg
ICAgICAgIHJldHVybiBGQUxTRTsKICAgICB9CiAKKyAgICBBU1NFUlQocHJpdi0+cGxheWVyKTsK
KwogICAgIEtVUkwgdXJsID0gS1VSTChLVVJMKCksIHByaXYtPnVyaSk7CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUp
OwotCi0gICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSAwOwotICAgIEZyYW1lTG9hZGVy
KiBsb2FkZXIgPSBwcml2LT5mcmFtZSA/IHByaXYtPmZyYW1lLT5sb2FkZXIoKSA6IDA7Ci0gICAg
aWYgKGxvYWRlcikgewotICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCk7Ci0gICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdD
b250ZXh0KCk7Ci0gICAgfQotCi0gICAgaWYgKHByaXYtPnBsYXllcikKLSAgICAgICAgcmVxdWVz
dC5zZXRIVFRQUmVmZXJyZXIocHJpdi0+cGxheWVyLT5yZWZlcnJlcigpKTsKKyAgICByZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihwcml2LT5wbGF5ZXItPnJlZmVycmVyKCkpOwogCiAgICAgLy8gTGV0
IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3Zp
ZSB0cmFpbGVycy4KICAgICBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCgibW92aWVzLmFwcGxlLmNv
bSIsIHVybC5ob3N0KCkudXRmOCgpLmRhdGEoKSkKQEAgLTUwNSwxMCArNDg3LDE3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAvLyBO
ZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAKLSAgICBwcml2
LT5jbGllbnQgPSBuZXcgU3RyZWFtaW5nQ2xpZW50KHNyYyk7Ci0gICAgcHJpdi0+cmVzb3VyY2VI
YW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNs
aWVudCwgZmFsc2UsIGZhbHNlKTsKLSAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7Ci0g
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhh
bmRsZSIpOworICAgIGlmIChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxh
eWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxs
YmFja3MsIERvTm90U25pZmZDb250ZW50LCBEb05vdEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBE
b1NlY3VyaXR5Q2hlY2spKTsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UgPSBsb2FkZXItPnJlcXVl
c3RSYXdSZXNvdXJjZShjYWNoZVJlcXVlc3QpOworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2Up
IHsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9IG5ldyBTdHJlYW1pbmdDbGllbnQoc3JjKTsK
KyAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5hZGRDbGllbnQocHJpdi0+Y2xpZW50KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmICghcHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gc2NoZWR1bGUgcmVzb3VyY2UgbG9hZCIpOwog
ICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAgICB3ZWJLaXRXZWJTcmNTdG9w
KHNyYyk7CiAgICAgfSBlbHNlIHsKQEAgLTc1MSw4ICs3NDAsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcHJpdi0+
bmVlZERhdGFJRCA9IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChw
cml2LT5yZXNvdXJjZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERl
ZmVyc0xvYWRpbmcoZmFsc2UpOworICAgIGlmIChwcml2LT5yZXNvdXJjZSkKKyAgICAgICAgcHJp
di0+cmVzb3VyY2UtPnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogICAgIHJldHVybiBGQUxTRTsK
IH0KIApAQCAtNzg4LDggKzc3Nyw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNFbm91
Z2hEYXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAgIHByaXYtPmVub3VnaERhdGFJRCA9
IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChwcml2LT5yZXNvdXJj
ZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRpbmco
dHJ1ZSk7CisgICAgaWYgKHByaXYtPnJlc291cmNlKQorICAgICAgICBwcml2LT5yZXNvdXJjZS0+
c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKQEAgLTg1Miwx
NSArODQxLDggQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBw
U3JjKiwgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludGVyIHVzZXIKIAogdm9pZCB3ZWJLaXRXZWJTcmNT
ZXRNZWRpYVBsYXllcihXZWJLaXRXZWJTcmMqIHNyYywgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBs
YXllcikKIHsKLSAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwotICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IDA7Ci0KLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9j
dW1lbnQgPSBwbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyT3duaW5nRG9j
dW1lbnQoKTsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIGZyYW1lID0gZG9jdW1lbnQtPmZy
YW1lKCk7Ci0KLSAgICBwcml2LT5mcmFtZSA9IGZyYW1lOwotICAgIHByaXYtPnBsYXllciA9IHBs
YXllcjsKKyAgICBBU1NFUlQocGxheWVyKTsKKyAgICBzcmMtPnByaXYtPnBsYXllciA9IHBsYXll
cjsKIH0KIAogU3RyZWFtaW5nQ2xpZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBz
cmMpCkBAIC04NzQsMTEgKzg1Niw3IEBAIFN0cmVhbWluZ0NsaWVudDo6flN0cmVhbWluZ0NsaWVu
dCgpCiAgICAgZ3N0X29iamVjdF91bnJlZihtX3NyYyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xp
ZW50Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCkBA
IC04ODcsNyArODY1LDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVIKICAgICBHU1RfT0JKRUNU
X0xPQ0sobV9zcmMpOwogCiAgICAgLy8gSWYgd2Ugc2Vla2VkIHdlIG5lZWQgMjA2ID09IFBBUlRJ
QUxfQ09OVEVOVAotICAgIGlmIChoYW5kbGUgIT0gcHJpdi0+cmVzb3VyY2VIYW5kbGUgfHwgKHBy
aXYtPnJlcXVlc3RlZE9mZnNldCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikp
IHsKKyAgICBpZiAocmVzb3VyY2UgIT0gcHJpdi0+cmVzb3VyY2UgfHwgKHByaXYtPnJlcXVlc3Rl
ZE9mZnNldCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikpIHsKICAgICAgICAg
R1NUX09CSkVDVF9VTkxPQ0sobV9zcmMpOwogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3Ny
YywgUkVTT1VSQ0UsIFJFQUQsICgwKSwgKDApKTsKICAgICAgICAgZ3N0X2FwcF9zcmNfZW5kX29m
X3N0cmVhbShwcml2LT5hcHBzcmMpOwpAQCAtOTc4LDcgKzk1Niw3IEBAIHZvaWQgU3RyZWFtaW5n
Q2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUgKmhhbmRsZSwgY29uc3Qg
UmVzb3VyY2VSCiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyks
IHByaXYtPnNyY3BhZCwgdGFncyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoLCBpbnQpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBXZWJL
aXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAKQEAgLTk5Myw3ICs5NzEsNyBA
QCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgY29uc3QgY2hhciogZGF0YSwgaQogICAgICAgICB1bm1hcEdzdEJ1ZmZlcihwcml2LT5i
dWZmZXIuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBpZiAocHJpdi0+c2Vla0lEIHx8IGhhbmRsZSAh
PSBwcml2LT5yZXNvdXJjZUhhbmRsZSkgeworICAgIGlmIChwcml2LT5zZWVrSUQgfHwgcmVzb3Vy
Y2UgIT0gcHJpdi0+cmVzb3VyY2UpIHsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0sobV9zcmMp
OwogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKG1fc3JjLCAiU2VlayBpbiBwcm9ncmVzcywgaWdu
b3JpbmcgZGF0YSIpOwogICAgICAgICBwcml2LT5idWZmZXIuY2xlYXIoKTsKQEAgLTEwMjQsNyAr
MTAwMiw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VS
Uk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotY2hhciogU3RyZWFtaW5n
Q2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVf
dCYgYWN0dWFsU2l6ZSkKK2NoYXIqIFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVm
ZmVyKENhY2hlZFJlc291cmNlKiwgc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFs
U2l6ZSkKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAK
QEAgLTEwNDIsMTAgKzEwMjAsMjEgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWEKICAgICByZXR1
cm4gZ2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCit2b2lkIFN0
cmVhbWluZ0NsaWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQog
ewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIAorICAgIGlm
IChyZXNvdXJjZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAgICBHT3duUHRyPGdj
aGFyPiB1cmk7CisgICAgICAgIEdTVF9PQkpFQ1RfTE9DSyhtX3NyYyk7CisgICAgICAgIHVyaS5z
ZXQoZ19zdHJkdXAobV9zcmMtPnByaXYtPnVyaSkpOworICAgICAgICBHU1RfT0JKRUNUX1VOTE9D
SyhtX3NyYyk7CisKKyAgICAgICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIkhhdmUgZmFpbHVy
ZSBsb2FkaW5nIFwiJXNcIiIsIHVyaS5nZXQoKSk7CisgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9S
KG1fc3JjLCBSRVNPVVJDRSwgRkFJTEVELCAoIkhhdmUgZmFpbHVyZSBsb2FkaW5nIFwiJXNcIiIs
IHVyaS5nZXQoKSksICgwKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBHU1RfREVC
VUdfT0JKRUNUKG1fc3JjLCAiSGF2ZSBFT1MiKTsKIAogICAgIEdTVF9PQkpFQ1RfTE9DSyhtX3Ny
Yyk7CkBAIC0xMDU2LDM4ICsxMDQ1LDUgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiAgICAgICAgIEdTVF9PQkpFQ1RfVU5M
T0NLKG1fc3JjKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZhaWwoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBHU1RfRVJST1JfT0JK
RUNUKG1fc3JjLCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9u
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIFJFU09VUkNF
LCBGQUlMRUQsICgiJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRh
KCkpLCAoMCkpOwotICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0obV9zcmMtPnByaXYtPmFw
cHNyYyk7Ci19Ci0KLXZvaWQgU3RyZWFtaW5nQ2xpZW50Ojp3YXNCbG9ja2VkKFJlc291cmNlSGFu
ZGxlKikKLXsKLSAgICBHT3duUHRyPGdjaGFyPiB1cmk7Ci0KLSAgICBHU1RfRVJST1JfT0JKRUNU
KG1fc3JjLCAiUmVxdWVzdCB3YXMgYmxvY2tlZCIpOwotCi0gICAgR1NUX09CSkVDVF9MT0NLKG1f
c3JjKTsKLSAgICB1cmkuc2V0KGdfc3RyZHVwKG1fc3JjLT5wcml2LT51cmkpKTsKLSAgICBHU1Rf
T0JKRUNUX1VOTE9DSyhtX3NyYyk7Ci0KLSAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVT
T1VSQ0UsIE9QRU5fUkVBRCwgKCJBY2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgdXJpLmdl
dCgpKSwgKDApKTsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmNhbm5vdFNob3dVUkwoUmVz
b3VyY2VIYW5kbGUqKQotewotICAgIEdPd25QdHI8Z2NoYXI+IHVyaTsKLQotICAgIEdTVF9FUlJP
Ul9PQkpFQ1QobV9zcmMsICJDYW5ub3Qgc2hvdyBVUkwiKTsKLQotICAgIEdTVF9PQkpFQ1RfTE9D
SyhtX3NyYyk7Ci0gICAgdXJpLnNldChnX3N0cmR1cChtX3NyYy0+cHJpdi0+dXJpKSk7Ci0gICAg
R1NUX09CSkVDVF9VTkxPQ0sobV9zcmMpOwotCi0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMs
IFJFU09VUkNFLCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCB1cmkuZ2V0KCkpLCAo
MCkpOwotfQotCiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205066</attachid>
            <date>2013-06-20 03:32:03 -0700</date>
            <delta_ts>2013-07-02 01:11:36 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-gst-media-load.diff</filename>
            <type>text/plain</type>
            <size>19375</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNWY4MTQzLi5hMmJiMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTMtMDYtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogQWRkIFN1YnJlc291cmNlTG9hZGVyU291cC5jcHAgdG8KKyAgICAg
ICAgY29tcGlsYXRpb24uCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERpdHRvLgorICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuaDogQWRkIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcigpIHdoZW4KKyAgICAgICAg
dXNpbmcgU09VUC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OmdldE9yQ3JlYXRlUmVhZEJ1
ZmZlcik6IEl0ZXJhdGUgdGhlCisgICAgICAgIGNsaWVudHMgdW50aWwgb25lIHJldHVybnMgYSB2
YWxpZCByZWFkIGJ1ZmZlciBvciByZXR1cm4gTlVMTCB0bworICAgICAgICBmYWxsYmFjayB0byB0
aGUgZGVmYXVsdCByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlQ2xpZW50OjpnZXRPckNy
ZWF0ZVJlYWRCdWZmZXIpOiBBZGRlZAorICAgICAgICB0byBhbGxvdyB0aGUgY2xpZW50IHRvIGFs
bG9jYXRlIHRoZSByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpnZXRPckNyZWF0ZVJl
YWRCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmdldE9yQ3Jl
YXRlUmVhZEJ1ZmZlcik6IENhbGwKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcigpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50KTogTWFr
ZSB0aGlzIGEgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuCisgICAgICAgIChfV2ViS2l0V2ViU3Jj
UHJpdmF0ZSk6IFJlbW92ZSBmcmFtZSBhbmQgcmVzb3VyY2VIYW5kbGUgYW5kIGFkZCBhCisgICAg
ICAgIGNhY2hlZCByZXNvdXJjZSBoYW5kbGUuCisgICAgICAgICh3ZWJLaXRXZWJTcmNEaXNwb3Nl
KTogQ2xlYXIgdGhlIHBsYXllciBwb2ludGVyLgorICAgICAgICAod2ViS2l0V2ViU3JjU3RvcCk6
IFJlbW92ZSB0aGUgY2xpZW50IGZyb20gdGhlIGNhY2hlZCByZXNvdXJjZS4KKyAgICAgICAgKHdl
YktpdFdlYlNyY1N0YXJ0KTogVXNlIENhY2hlZFJlc291cmNlTG9hZGVyIHRvIHNjaGVkdWxlIGEK
KyAgICAgICAgQ2FjaGVkUmF3UmVzb3VyY2UgbG9hZCBmb3IgdGhlIG1lZGlhIHdpdGhvdXQgYnVm
ZmVyaW5nIHRoZSBkYXRhLgorICAgICAgICAod2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IpOiBD
YWxsIENhY2hlZFJlc291cmNlOjpzZXREZWZlcnNMb2FkaW5nLgorICAgICAgICAod2ViS2l0V2Vi
U3JjRW5vdWdoRGF0YU1haW5DYik6IERpdHRvLgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0TWVk
aWFQbGF5ZXIpOiBTaW1wbHkgdXBkYXRlIHRoZSBwbGF5ZXIgcG9pbnRlci4KKyAgICAgICAgKFN0
cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6IFVwZGF0ZSB0byB0aGUKKyAgICAgICAg
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgQVBJLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50Ojpk
YXRhUmVjZWl2ZWQpOiBEaXR0by4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVh
dGVSZWFkQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6Om5vdGlmeUZp
bmlzaGVkKTogRGl0dG8uCisKIDIwMTMtMDYtMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgSW5wdXQgdHlwZSByYW5nZSBzbGlkZXIgaXMgbm90IHVwZGF0ZWQg
d2hlbiBtaW4gb3IgbWF4IGFyZSBjaGFuZ2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0MGY0YmY5Li5kMTViYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQxMzEsNiArNDEzMSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJz
dGl0dXRlRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3RpdHV0ZVJlc291cmNl
LmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURlY29kZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGY0OTY2NDcuLjA0Y2RjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0zNyw2ICszNyw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCiAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNv
dXJjZUxvYWRlclNvdXAuY3BwCisKICAgICBwYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAK
ICAgICBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggMmE4Yjg0NS4uOWQzOGJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAg
LTQyLDYgKzQyLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBlZGl0aW5n
L2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKIAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNl
TG9hZGVyU291cC5jcHAKKwogICAgIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAogICAg
IHBhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuaAppbmRleCBhNGE4ZDFjLi41YWVkZmFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToK
ICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgT1ZFUlJJREU7CiAK
KyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihz
aXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKSBPVkVSUklERTsKKyNlbmRp
ZgorCiAgICAgYm9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
CmluZGV4IDQ0MTI4ZDEuLjBlNjAxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY1LDQgKzI2NSwxNyBAQCB2b2lkIENh
Y2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCiAgICAgICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNl
RGF0YSgpOwogfQogCisjaWYgVVNFKFNPVVApCitjaGFyKiBDYWNoZWRSYXdSZXNvdXJjZTo6Z2V0
T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNp
emUpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQq
IGMgPSB3Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hhciogYnVmZmVyUHRyID0gYy0+Z2V0T3JD
cmVhdGVSZWFkQnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUsIGFjdHVhbFNpemUpKQorICAgICAg
ICAgICAgcmV0dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDE1ZWI2NzAuLjI0NDUwMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC02Nyw2
ICs2NywxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGNhbGN1bGF0ZUluY3JlbWVudGFs
RGF0YUNodW5rKFJlc291cmNlQnVmZmVyKiwgdW5zaWduZWQmIGluY3JlbWVudGFsRGF0YUxlbmd0
aCk7CiAgICAgdm9pZCBub3RpZnlDbGllbnRzRGF0YVdhc1JlY2VpdmVkKGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIq
IGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1
YWxTaXplKTsKKyNlbmRpZgorCiAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXI7CiAKICAg
ICBzdHJ1Y3QgUmVkaXJlY3RQYWlyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKaW5kZXggMzM2ZmYxNC4uZGU3YTQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25z
dCBjaGFyKiAvKiBkYXRhICovLCBpbnQgLyogbGVuZ3RoICovKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNo
YXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCAvKiByZXF1
ZXN0ZWRTaXplICovLCBzaXplX3QmIC8qIGFjdHVhbFNpemUgKi8pIHsgcmV0dXJuIDA7IH0KKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuaAppbmRleCBlYWNiZmRiLi4xMTI0MWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMjU1LDYgKzI1NSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCB0cnlSZXBsYWNlRW5jb2RlZERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKICNl
bmRpZgogCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRC
dWZmZXIoc2l6ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNpemVfdCYgLyogYWN0dWFsU2l6ZSAq
LykgeyByZXR1cm4gMDsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
Y2hlY2tOb3RpZnkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAv
U3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1
YnJlc291cmNlTG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYjc2NzBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3Vw
L1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBDb3B5
cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgor
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
aGFyKiBTdWJyZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1
ZXN0ZWRMZW5ndGgsIHNpemVfdCYgYWN0dWFsTGVuZ3RoKQoreworICAgIHJldHVybiBtX3Jlc291
cmNlLT5nZXRPckNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVkTGVuZ3RoLCBhY3R1YWxMZW5ndGgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDgxZTQ5YmMuLmRiODQ0OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiwxNiArMjIsMTUgQEAKIAog
I2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1
ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25p
bmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250
ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAgLTU0LDI0ICs1MywxOSBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJl
c291cmNlSGFuZGxlQ2xpZW50IHsKK2NsYXNzIFN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyZWFtaW5n
Q2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBT
dHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKik7CiAgICAgICAgIHZpcnR1YWwgflN0cmVhbWlu
Z0NsaWVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0KLSAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNy
ZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCwgaW50KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLQogICAg
IHByaXZhdGU6CisgICAgICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CisgICAgICAgIHZpcnR1
YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiwgY29uc3QgY2hhciosIGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3Qm
IGFjdHVhbFNpemUpOworCiAgICAgICAgIFdlYktpdFdlYlNyYyogbV9zcmM7CiB9OwogCkBAIC04
MSwxMSArNzUsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKICAgICBHc3RQYWQq
IHNyY3BhZDsKICAgICBnY2hhciogdXJpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBm
cmFtZTsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyOwogCiAgICAgU3RyZWFtaW5n
Q2xpZW50KiBjbGllbnQ7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiByZXNvdXJjZUhhbmRs
ZTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVzb3VyY2U7
CiAKICAgICBndWludDY0IG9mZnNldDsKICAgICBndWludDY0IHNpemU7CkBAIC0zMDMsNiArMjk2
LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAg
ICAgICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwogICAgIH0KIAorICAgIHByaXYtPnBsYXllciA9
IDA7CisKICAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGRpc3Bvc2UsIChvYmpl
Y3QpKTsKIH0KIApAQCAtMzg3LDIyICszODIsMTYgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdl
YlNyY1N0b3AoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgICAgIHByaXYtPnN0YXJ0SUQgPSAwOwog
ICAgIH0KIAotICAgIGlmIChwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBwcml2LT5y
ZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLnJl
bGVhc2UoKTsKKyAgICBpZiAocHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgcHJpdi0+cmVzb3Vy
Y2UtPnJlbW92ZUNsaWVudChwcml2LT5jbGllbnQpOworICAgICAgICBwcml2LT5yZXNvdXJjZSA9
IDA7CiAgICAgfQotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gMDsKIAogICAgIGlmIChwcml2
LT5jbGllbnQpIHsKICAgICAgICAgZGVsZXRlIHByaXYtPmNsaWVudDsKICAgICAgICAgcHJpdi0+
Y2xpZW50ID0gMDsKICAgICB9CiAKLSAgICBpZiAocHJpdi0+ZnJhbWUgJiYgIXNlZWtpbmcpCi0g
ICAgICAgIHByaXYtPmZyYW1lLmNsZWFyKCk7Ci0KLSAgICBwcml2LT5wbGF5ZXIgPSAwOwotCiAg
ICAgaWYgKHByaXYtPmJ1ZmZlcikgewogI2lmZGVmIEdTVF9BUElfVkVSU0lPTl8xCiAgICAgICAg
IHVubWFwR3N0QnVmZmVyKHByaXYtPmJ1ZmZlci5nZXQoKSk7CkBAIC00NzEsMjAgKzQ2MCwxMyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RhcnQoV2ViS2l0V2ViU3JjKiBzcmMpCiAg
ICAgICAgIHJldHVybiBGQUxTRTsKICAgICB9CiAKKyAgICBBU1NFUlQocHJpdi0+cGxheWVyKTsK
KwogICAgIEtVUkwgdXJsID0gS1VSTChLVVJMKCksIHByaXYtPnVyaSk7CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKHRydWUp
OwotCi0gICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSAwOwotICAgIEZyYW1lTG9hZGVy
KiBsb2FkZXIgPSBwcml2LT5mcmFtZSA/IHByaXYtPmZyYW1lLT5sb2FkZXIoKSA6IDA7Ci0gICAg
aWYgKGxvYWRlcikgewotICAgICAgICBsb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCk7Ci0gICAgICAgIGNvbnRleHQgPSBsb2FkZXItPm5ldHdvcmtpbmdD
b250ZXh0KCk7Ci0gICAgfQotCi0gICAgaWYgKHByaXYtPnBsYXllcikKLSAgICAgICAgcmVxdWVz
dC5zZXRIVFRQUmVmZXJyZXIocHJpdi0+cGxheWVyLT5yZWZlcnJlcigpKTsKKyAgICByZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihwcml2LT5wbGF5ZXItPnJlZmVycmVyKCkpOwogCiAgICAgLy8gTGV0
IEFwcGxlIHdlYiBzZXJ2ZXJzIGtub3cgd2Ugd2FudCB0byBhY2Nlc3MgdGhlaXIgbmljZSBtb3Zp
ZSB0cmFpbGVycy4KICAgICBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCgibW92aWVzLmFwcGxlLmNv
bSIsIHVybC5ob3N0KCkudXRmOCgpLmRhdGEoKSkKQEAgLTUwNSwxMCArNDg3LDE3IEBAIHN0YXRp
YyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAvLyBO
ZWVkZWQgdG8gdXNlIERMTkEgc3RyZWFtaW5nIHNlcnZlcnMKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZCgidHJhbnNmZXJNb2RlLmRsbmEiLCAiU3RyZWFtaW5nIik7CiAKLSAgICBwcml2
LT5jbGllbnQgPSBuZXcgU3RyZWFtaW5nQ2xpZW50KHNyYyk7Ci0gICAgcHJpdi0+cmVzb3VyY2VI
YW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsIHByaXYtPmNs
aWVudCwgZmFsc2UsIGZhbHNlKTsKLSAgICBpZiAoIXByaXYtPnJlc291cmNlSGFuZGxlKSB7Ci0g
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSBSZXNvdXJjZUhh
bmRsZSIpOworICAgIGlmIChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gcHJpdi0+cGxh
eWVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCBjYWNoZVJlcXVlc3QocmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxs
YmFja3MsIERvTm90U25pZmZDb250ZW50LCBEb05vdEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JDcm9zc09yaWdpbkNyZWRlbnRpYWxzLCBE
b1NlY3VyaXR5Q2hlY2spKTsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UgPSBsb2FkZXItPnJlcXVl
c3RSYXdSZXNvdXJjZShjYWNoZVJlcXVlc3QpOworICAgICAgICBpZiAocHJpdi0+cmVzb3VyY2Up
IHsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9IG5ldyBTdHJlYW1pbmdDbGllbnQoc3JjKTsK
KyAgICAgICAgICAgIHByaXYtPnJlc291cmNlLT5hZGRDbGllbnQocHJpdi0+Y2xpZW50KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmICghcHJpdi0+cmVzb3VyY2UpIHsKKyAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gc2NoZWR1bGUgcmVzb3VyY2UgbG9hZCIpOwog
ICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAgICB3ZWJLaXRXZWJTcmNTdG9w
KHNyYyk7CiAgICAgfSBlbHNlIHsKQEAgLTc1MSw4ICs3NDAsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgcHJpdi0+
bmVlZERhdGFJRCA9IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChw
cml2LT5yZXNvdXJjZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERl
ZmVyc0xvYWRpbmcoZmFsc2UpOworICAgIGlmIChwcml2LT5yZXNvdXJjZSkKKyAgICAgICAgcHJp
di0+cmVzb3VyY2UtPnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogICAgIHJldHVybiBGQUxTRTsK
IH0KIApAQCAtNzg4LDggKzc3Nyw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNFbm91
Z2hEYXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogICAgIHByaXYtPmVub3VnaERhdGFJRCA9
IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIAotICAgIGlmIChwcml2LT5yZXNvdXJj
ZUhhbmRsZSkKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRpbmco
dHJ1ZSk7CisgICAgaWYgKHByaXYtPnJlc291cmNlKQorICAgICAgICBwcml2LT5yZXNvdXJjZS0+
c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKQEAgLTg1Miwx
NSArODQxLDggQEAgc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1NlZWtEYXRhQ2IoR3N0QXBw
U3JjKiwgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludGVyIHVzZXIKIAogdm9pZCB3ZWJLaXRXZWJTcmNT
ZXRNZWRpYVBsYXllcihXZWJLaXRXZWJTcmMqIHNyYywgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBs
YXllcikKIHsKLSAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwotICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IDA7Ci0KLSAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9j
dW1lbnQgPSBwbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyT3duaW5nRG9j
dW1lbnQoKTsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIGZyYW1lID0gZG9jdW1lbnQtPmZy
YW1lKCk7Ci0KLSAgICBwcml2LT5mcmFtZSA9IGZyYW1lOwotICAgIHByaXYtPnBsYXllciA9IHBs
YXllcjsKKyAgICBBU1NFUlQocGxheWVyKTsKKyAgICBzcmMtPnByaXYtPnBsYXllciA9IHBsYXll
cjsKIH0KIAogU3RyZWFtaW5nQ2xpZW50OjpTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBz
cmMpCkBAIC04NzQsMTEgKzg1Niw3IEBAIFN0cmVhbWluZ0NsaWVudDo6flN0cmVhbWluZ0NsaWVu
dCgpCiAgICAgZ3N0X29iamVjdF91bnJlZihtX3NyYyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xp
ZW50Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCkBA
IC04ODcsNyArODY1LDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSAqaGFuZGxlLCBjb25zdCBSZXNvdXJjZVIKICAgICBHU1RfT0JKRUNU
X0xPQ0sobV9zcmMpOwogCiAgICAgLy8gSWYgd2Ugc2Vla2VkIHdlIG5lZWQgMjA2ID09IFBBUlRJ
QUxfQ09OVEVOVAotICAgIGlmIChoYW5kbGUgIT0gcHJpdi0+cmVzb3VyY2VIYW5kbGUgfHwgKHBy
aXYtPnJlcXVlc3RlZE9mZnNldCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikp
IHsKKyAgICBpZiAocmVzb3VyY2UgIT0gcHJpdi0+cmVzb3VyY2UgfHwgKHByaXYtPnJlcXVlc3Rl
ZE9mZnNldCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpICE9IDIwNikpIHsKICAgICAgICAg
R1NUX09CSkVDVF9VTkxPQ0sobV9zcmMpOwogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3Ny
YywgUkVTT1VSQ0UsIFJFQUQsICgwKSwgKDApKTsKICAgICAgICAgZ3N0X2FwcF9zcmNfZW5kX29m
X3N0cmVhbShwcml2LT5hcHBzcmMpOwpAQCAtOTc4LDcgKzk1Niw3IEBAIHZvaWQgU3RyZWFtaW5n
Q2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUgKmhhbmRsZSwgY29uc3Qg
UmVzb3VyY2VSCiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyks
IHByaXYtPnNyY3BhZCwgdGFncyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNl
aXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoLCBpbnQpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBXZWJL
aXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAKQEAgLTk5Myw3ICs5NzEsNyBA
QCB2b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgY29uc3QgY2hhciogZGF0YSwgaQogICAgICAgICB1bm1hcEdzdEJ1ZmZlcihwcml2LT5i
dWZmZXIuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBpZiAocHJpdi0+c2Vla0lEIHx8IGhhbmRsZSAh
PSBwcml2LT5yZXNvdXJjZUhhbmRsZSkgeworICAgIGlmIChwcml2LT5zZWVrSUQgfHwgcmVzb3Vy
Y2UgIT0gcHJpdi0+cmVzb3VyY2UpIHsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0sobV9zcmMp
OwogICAgICAgICBHU1RfREVCVUdfT0JKRUNUKG1fc3JjLCAiU2VlayBpbiBwcm9ncmVzcywgaWdu
b3JpbmcgZGF0YSIpOwogICAgICAgICBwcml2LT5idWZmZXIuY2xlYXIoKTsKQEAgLTEwMjQsNyAr
MTAwMiw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VS
Uk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotY2hhciogU3RyZWFtaW5n
Q2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVf
dCYgYWN0dWFsU2l6ZSkKK2NoYXIqIFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVm
ZmVyKENhY2hlZFJlc291cmNlKiwgc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFs
U2l6ZSkKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gbV9zcmMtPnByaXY7CiAK
QEAgLTEwNDIsMTAgKzEwMjAsMjAgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWEKICAgICByZXR1
cm4gZ2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCit2b2lkIFN0
cmVhbWluZ0NsaWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQog
ewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIAorICAgIGlm
IChyZXNvdXJjZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAgICBpZiAoIXJlc291
cmNlLT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciA9IHJlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CisgICAgICAgICAgICBHU1RfRVJST1Jf
T0JKRUNUKG1fc3JjLCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3Ny
YywgUkVTT1VSQ0UsIEZBSUxFRCwgKCIlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCku
dXRmOCgpLmRhdGEoKSksICgwKSk7CisgICAgICAgIH0KKyAgICAgICAgZ3N0X2FwcF9zcmNfZW5k
X29mX3N0cmVhbShtX3NyYy0+cHJpdi0+YXBwc3JjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIEdTVF9ERUJVR19PQkpFQ1QobV9zcmMsICJIYXZlIEVPUyIpOwogCiAgICAgR1NUX09C
SkVDVF9MT0NLKG1fc3JjKTsKQEAgLTEwNTYsMzggKzEwNDQsNSBAQCB2b2lkIFN0cmVhbWluZ0Ns
aWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKICAgICAgICAg
R1NUX09CSkVDVF9VTkxPQ0sobV9zcmMpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlk
RmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAg
IEdTVF9FUlJPUl9PQkpFQ1QobV9zcmMsICJIYXZlIGZhaWx1cmU6ICVzIiwgZXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKLSAgICBHU1RfRUxFTUVOVF9FUlJPUiht
X3NyYywgUkVTT1VSQ0UsIEZBSUxFRCwgKCIlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9u
KCkudXRmOCgpLmRhdGEoKSksICgwKSk7Ci0gICAgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbSht
X3NyYy0+cHJpdi0+YXBwc3JjKTsKLX0KLQotdm9pZCBTdHJlYW1pbmdDbGllbnQ6Ondhc0Jsb2Nr
ZWQoUmVzb3VyY2VIYW5kbGUqKQotewotICAgIEdPd25QdHI8Z2NoYXI+IHVyaTsKLQotICAgIEdT
VF9FUlJPUl9PQkpFQ1QobV9zcmMsICJSZXF1ZXN0IHdhcyBibG9ja2VkIik7Ci0KLSAgICBHU1Rf
T0JKRUNUX0xPQ0sobV9zcmMpOwotICAgIHVyaS5zZXQoZ19zdHJkdXAobV9zcmMtPnByaXYtPnVy
aSkpOwotICAgIEdTVF9PQkpFQ1RfVU5MT0NLKG1fc3JjKTsKLQotICAgIEdTVF9FTEVNRU5UX0VS
Uk9SKG1fc3JjLCBSRVNPVVJDRSwgT1BFTl9SRUFELCAoIkFjY2VzcyB0byBcIiVzXCIgd2FzIGJs
b2NrZWQiLCB1cmkuZ2V0KCkpLCAoMCkpOwotfQotCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6Y2Fu
bm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopCi17Ci0gICAgR093blB0cjxnY2hhcj4gdXJpOwot
Ci0gICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIkNhbm5vdCBzaG93IFVSTCIpOwotCi0gICAg
R1NUX09CSkVDVF9MT0NLKG1fc3JjKTsKLSAgICB1cmkuc2V0KGdfc3RyZHVwKG1fc3JjLT5wcml2
LT51cmkpKTsKLSAgICBHU1RfT0JKRUNUX1VOTE9DSyhtX3NyYyk7Ci0KLSAgICBHU1RfRUxFTUVO
VF9FUlJPUihtX3NyYywgUkVTT1VSQ0UsIE9QRU5fUkVBRCwgKCJDYW4ndCBzaG93IFwiJXNcIiIs
IHVyaS5nZXQoKSksICgwKSk7Ci19Ci0KICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205876</attachid>
            <date>2013-07-02 01:11:36 -0700</date>
            <delta_ts>2013-07-17 02:20:17 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wcore-gst-subresource.diff</filename>
            <type>text/plain</type>
            <size>18381</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNzY1YjBkLi41MDUzN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYg
QEAKKzIwMTMtMDYtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogQWRkIFN1YnJlc291cmNlTG9hZGVyU291cC5jcHAgdG8KKyAgICAg
ICAgY29tcGlsYXRpb24uCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IERpdHRvLgorICAg
ICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuaDogQWRkIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcigpIHdoZW4KKyAgICAgICAg
dXNpbmcgU09VUC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OmdldE9yQ3JlYXRlUmVhZEJ1
ZmZlcik6IEl0ZXJhdGUgdGhlCisgICAgICAgIGNsaWVudHMgdW50aWwgb25lIHJldHVybnMgYSB2
YWxpZCByZWFkIGJ1ZmZlciBvciByZXR1cm4gTlVMTCB0bworICAgICAgICBmYWxsYmFjayB0byB0
aGUgZGVmYXVsdCByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlQ2xpZW50OjpnZXRPckNy
ZWF0ZVJlYWRCdWZmZXIpOiBBZGRlZAorICAgICAgICB0byBhbGxvdyB0aGUgY2xpZW50IHRvIGFs
bG9jYXRlIHRoZSByZWFkIGJ1ZmZlci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpnZXRPckNyZWF0ZVJl
YWRCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmdldE9yQ3Jl
YXRlUmVhZEJ1ZmZlcik6IENhbGwKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcigpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50KTogTWFr
ZSB0aGlzIGEgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuCisgICAgICAgIChfV2ViS2l0V2ViU3Jj
UHJpdmF0ZSk6IFJlbW92ZSBmcmFtZSBhbmQgcmVzb3VyY2VIYW5kbGUgYW5kIGFkZCBhCisgICAg
ICAgIGNhY2hlZCByZXNvdXJjZSBoYW5kbGUuCisgICAgICAgICh3ZWJLaXRXZWJTcmNEaXNwb3Nl
KTogQ2xlYXIgdGhlIHBsYXllciBwb2ludGVyLgorICAgICAgICAod2ViS2l0V2ViU3JjU3RvcCk6
IFJlbW92ZSB0aGUgY2xpZW50IGZyb20gdGhlIGNhY2hlZCByZXNvdXJjZS4KKyAgICAgICAgKHdl
YktpdFdlYlNyY1N0YXJ0KTogVXNlIENhY2hlZFJlc291cmNlTG9hZGVyIHRvIHNjaGVkdWxlIGEK
KyAgICAgICAgQ2FjaGVkUmF3UmVzb3VyY2UgbG9hZCBmb3IgdGhlIG1lZGlhIHdpdGhvdXQgYnVm
ZmVyaW5nIHRoZSBkYXRhLgorICAgICAgICAod2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IpOiBD
YWxsIENhY2hlZFJlc291cmNlOjpzZXREZWZlcnNMb2FkaW5nLgorICAgICAgICAod2ViS2l0V2Vi
U3JjRW5vdWdoRGF0YU1haW5DYik6IERpdHRvLgorICAgICAgICAod2ViS2l0V2ViU3JjU2V0TWVk
aWFQbGF5ZXIpOiBTaW1wbHkgdXBkYXRlIHRoZSBwbGF5ZXIgcG9pbnRlci4KKyAgICAgICAgKFN0
cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6IFVwZGF0ZSB0byB0aGUKKyAgICAgICAg
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgQVBJLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50Ojpk
YXRhUmVjZWl2ZWQpOiBEaXR0by4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6Z2V0T3JDcmVh
dGVSZWFkQnVmZmVyKTogRGl0dG8uCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6Om5vdGlmeUZp
bmlzaGVkKTogRGl0dG8uCisKIDIwMTMtMDctMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3Mgc2hvdWxkIGJlIGluY2x1ZGVkIGlu
IHRoZSBsaXN0IG9mIHBsYXRmb3JtcyB0aGF0IGNhbiB1c2UgT3BlbkdMIEVTIDIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhYjMxYmFkLi4yNzRkMzU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxMzIsNiArNDEzMiw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3Vic3RpdHV0ZVJlc291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1
YnJlc291cmNlTG9hZGVyU291cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0UmVz
b3VyY2VEZWNvZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRSZXNvdXJjZURl
Y29kZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGY0OTY2NDcuLjA0Y2RjYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zNyw2ICszNyw4IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogCiAgICAgZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCiAKKyAg
ICBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxvYWRlclNvdXAuY3BwCisKICAgICBwYWdlL2VmbC9E
cmFnQ29udHJvbGxlckVmbC5jcHAKICAgICBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZTYyODU4YS4uMmYzOTZkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UKQEAgLTQyLDYgKzQyLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCiAKICAgICBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKIAorICAgIGxv
YWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKwogICAgIHBhZ2UvZ3RrL0RyYWdD
b250cm9sbGVyR3RrLmNwcAogICAgIHBhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCBhNGE4ZDFjLi41YWVk
ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNzMs
NiArNzMsMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVz
b3VyY2VzKCkgT1ZFUlJJREU7CiAKKyNpZiBVU0UoU09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdl
dE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxT
aXplKSBPVkVSUklERTsKKyNlbmRpZgorCiAgICAgYm9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2Rl
RXJyb3IoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiwg
aW50LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0
aCwgRGF0YVBheWxvYWRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDQ0MTI4ZDEuLjBlNjAxMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY1
LDQgKzI2NSwxNyBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCiAgICAgICAgIG1f
bG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwogfQogCisjaWYgVVNFKFNPVVApCitjaGFyKiBD
YWNoZWRSYXdSZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRT
aXplLCBzaXplX3QmIGFjdHVhbFNpemUpCit7CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxr
ZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+IHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2Fj
aGVkUmF3UmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hhciog
YnVmZmVyUHRyID0gYy0+Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUs
IGFjdHVhbFNpemUpKQorICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAg
ICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDE1ZWI2
NzAuLjI0NDUwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSYXdSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5oCkBAIC02Nyw2ICs2NywxMCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIq
IGNhbGN1bGF0ZUluY3JlbWVudGFsRGF0YUNodW5rKFJlc291cmNlQnVmZmVyKiwgdW5zaWduZWQm
IGluY3JlbWVudGFsRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBub3RpZnlDbGllbnRzRGF0YVdhc1Jl
Y2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAKKyNpZiBVU0UoU09V
UCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVz
dGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKTsKKyNlbmRpZgorCiAgICAgdW5zaWduZWQgbG9u
ZyBtX2lkZW50aWZpZXI7CiAKICAgICBzdHJ1Y3QgUmVkaXJlY3RQYWlyIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKaW5k
ZXggMzM2ZmYxNC4uZGU3YTQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQo
Q2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiAvKiBkYXRhICovLCBpbnQgLyogbGVuZ3RoICov
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSos
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KKyNpZiBVU0Uo
U09VUCkKKyAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNv
dXJjZSosIHNpemVfdCAvKiByZXF1ZXN0ZWRTaXplICovLCBzaXplX3QmIC8qIGFjdHVhbFNpemUg
Ki8pIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCAxOGE0ZTY1Li44ZWZlOTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMjU1LDYgKzI1
NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cnlSZXBsYWNlRW5jb2RlZERhdGEoUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+KTsKICNlbmRpZgogCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBj
aGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNp
emVfdCYgLyogYWN0dWFsU2l6ZSAqLykgeyByZXR1cm4gMDsgfQorI2VuZGlmCisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOb3RpZnkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc2NzBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTAsMCAr
MSwzMSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
dWJyZXNvdXJjZUxvYWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjaGFyKiBTdWJyZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRMZW5ndGgsIHNpemVfdCYgYWN0dWFsTGVuZ3RoKQor
eworICAgIHJldHVybiBtX3Jlc291cmNlLT5nZXRPckNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVk
TGVuZ3RoLCBhY3R1YWxMZW5ndGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGIyNmQ2OTcuLjY5
NjRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBA
IC0yMiwxNiArMjIsMTUgQEAKIAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikK
IAotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAi
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRs
ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1
ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2lu
Y2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
LSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAgLTQ0
LDI0ICs0MywxOSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotY2xhc3MgU3RyZWFt
aW5nQ2xpZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKK2NsYXNzIFN0cmVhbWlu
Z0NsaWVudCA6IHB1YmxpYyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoU3RyZWFtaW5nQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgcHVibGljOgogICAgICAgICBTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKik7CiAgICAg
ICAgIHZpcnR1YWwgflN0cmVhbWluZ0NsaWVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0KLSAgICAgICAg
dmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUs
IHNpemVfdCYgYWN0dWFsU2l6ZSk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5p
c2hUaW1lKi8pOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQo
UmVzb3VyY2VIYW5kbGUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVz
b3VyY2VIYW5kbGUqKTsKLQogICAgIHByaXZhdGU6CisgICAgICAgIC8vIENhY2hlZFJlc291cmNl
Q2xpZW50CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291
cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0
YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciosIGludCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0
dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCBy
ZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpOworCiAgICAgICAgIFdlYktpdFdlYlNy
YyogbV9zcmM7CiB9OwogCkBAIC03MSwxMSArNjUsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQ
cml2YXRlIHsKICAgICBHc3RQYWQqIHNyY3BhZDsKICAgICBnY2hhciogdXJpOwogCi0gICAgUmVm
UHRyPFdlYkNvcmU6OkZyYW1lPiBmcmFtZTsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxh
eWVyOwogCiAgICAgU3RyZWFtaW5nQ2xpZW50KiBjbGllbnQ7Ci0gICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiByZXNvdXJjZUhhbmRsZTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
YXdSZXNvdXJjZT4gcmVzb3VyY2U7CiAKICAgICBndWludDY0IG9mZnNldDsKICAgICBndWludDY0
IHNpemU7CkBAIC0yOTQsNiArMjg3LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9z
ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwogICAgIH0K
IAorICAgIHByaXYtPnBsYXllciA9IDA7CisKICAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1Rf
Q0xBU1MsIGRpc3Bvc2UsIChvYmplY3QpKTsKIH0KIApAQCAtMzY2LDE2ICszNjEsMTUgQEAgc3Rh
dGljIHZvaWQgd2ViS2l0V2ViU3JjU3RvcChXZWJLaXRXZWJTcmMqIHNyYywgYm9vbCBzZWVraW5n
KQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBp
ZiAocHJpdi0+cmVzb3VyY2VIYW5kbGUpIHsKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUt
PmNhbmNlbCgpOwotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZS5yZWxlYXNlKCk7CisgICAg
aWYgKHByaXYtPnJlc291cmNlKSB7CisgICAgICAgIHByaXYtPnJlc291cmNlLT5yZW1vdmVDbGll
bnQocHJpdi0+Y2xpZW50KTsKKyAgICAgICAgcHJpdi0+cmVzb3VyY2UgPSAwOwogICAgIH0KLSAg
ICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IDA7Ci0KLSAgICBpZiAocHJpdi0+ZnJhbWUgJiYgIXNl
ZWtpbmcpCi0gICAgICAgIHByaXYtPmZyYW1lLmNsZWFyKCk7CiAKLSAgICBwcml2LT5wbGF5ZXIg
PSAwOworICAgIGlmIChwcml2LT5jbGllbnQpIHsKKyAgICAgICAgZGVsZXRlIHByaXYtPmNsaWVu
dDsKKyAgICAgICAgcHJpdi0+Y2xpZW50ID0gMDsKKyAgICB9CiAKICAgICBpZiAocHJpdi0+YnVm
ZmVyKSB7CiAjaWZkZWYgR1NUX0FQSV9WRVJTSU9OXzEKQEAgLTQzNywyMSArNDMxLDE0IEBAIHN0
YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgICAgICBH
U1RfRVJST1JfT0JKRUNUKHNyYywgIk5vIFVSSSBwcm92aWRlZCIpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQotICAgIAorCisgICAgQVNTRVJUKHByaXYtPnBsYXllcik7CisKICAgICBL
VVJMIHVybCA9IEtVUkwoS1VSTCgpLCBwcml2LT51cmkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKLQotICAg
IE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0ID0gMDsKLSAgICBGcmFtZUxvYWRlciogbG9hZGVy
ID0gcHJpdi0+ZnJhbWUgPyBwcml2LT5mcmFtZS0+bG9hZGVyKCkgOiAwOwotICAgIGlmIChsb2Fk
ZXIpIHsKLSAgICAgICAgbG9hZGVyLT5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0
KHJlcXVlc3QpOwotICAgICAgICBjb250ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgp
OwotICAgIH0KLQotICAgIGlmIChwcml2LT5wbGF5ZXIpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRU
UFJlZmVycmVyKHByaXYtPnBsYXllci0+cmVmZXJyZXIoKSk7CisgICAgcmVxdWVzdC5zZXRIVFRQ
UmVmZXJyZXIocHJpdi0+cGxheWVyLT5yZWZlcnJlcigpKTsKIAogICAgIC8vIExldCBBcHBsZSB3
ZWIgc2VydmVycyBrbm93IHdlIHdhbnQgdG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxl
cnMuCiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAoIm1vdmllcy5hcHBsZS5jb20iLCB1cmwu
aG9zdCgpLnV0ZjgoKS5kYXRhKCkpCkBAIC00NzIsOSArNDU5LDE3IEBAIHN0YXRpYyBib29sIHdl
YktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgIC8vIE5lZWRlZCB0byB1c2Ug
RExOQSBzdHJlYW1pbmcgc2VydmVycwogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJ0
cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJlYW1pbmciKTsKIAotICAgIHByaXYtPnJlc291cmNlSGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGll
bnQsIGZhbHNlLCBmYWxzZSk7Ci0gICAgaWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5k
bGUiKTsKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IHByaXYtPnBsYXll
ci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSkgeworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QgY2FjaGVSZXF1ZXN0KHJlcXVlc3QsIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJh
Y2tzLCBEb05vdFNuaWZmQ29udGVudCwgRG9Ob3RCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVk
Q3JlZGVudGlhbHMsIERvTm90QXNrQ2xpZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9T
ZWN1cml0eUNoZWNrLCBVc2VEZWZhdWx0T3JpZ2luUmVzdHJpY3Rpb25zRm9yVHlwZSkpOworICAg
ICAgICBwcml2LT5yZXNvdXJjZSA9IGxvYWRlci0+cmVxdWVzdFJhd1Jlc291cmNlKGNhY2hlUmVx
dWVzdCk7CisgICAgICAgIGlmIChwcml2LT5yZXNvdXJjZSkgeworICAgICAgICAgICAgcHJpdi0+
Y2xpZW50ID0gbmV3IFN0cmVhbWluZ0NsaWVudChzcmMpOworICAgICAgICAgICAgcHJpdi0+cmVz
b3VyY2UtPmFkZENsaWVudChwcml2LT5jbGllbnQpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKCFwcml2LT5yZXNvdXJjZSkgeworICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZh
aWxlZCB0byBzY2hlZHVsZSByZXNvdXJjZSBsb2FkIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKQEAgLTY3Niw3ICs2NzEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3Jj
TmVlZERhdGFNYWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJp
dmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAotICAgIHByaXYtPnJlc291cmNlSGFuZGxlLT5zZXRE
ZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGlu
ZyhmYWxzZSk7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsKICAgICBwcml2LT5wYXVzZWQg
PSBGQUxTRTsKQEAgLTcwNiw3ICs3MDEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3Jj
RW5vdWdoRGF0YU1haW5DYihXZWJLaXRXZWJTcmMqIHNyYykKIHsKICAgICBXZWJLaXRXZWJTcmNQ
cml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCi0gICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNl
dERlZmVyc0xvYWRpbmcodHJ1ZSk7CisgICAgcHJpdi0+cmVzb3VyY2UtPnNldERlZmVyc0xvYWRp
bmcodHJ1ZSk7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsKICAgICBwcml2LT5wYXVzZWQg
PSBUUlVFOwpAQCAtNzY5LDE1ICs3NjQsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3Jj
U2Vla0RhdGFDYihHc3RBcHBTcmMqLCBndWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlcgogCiB2
b2lkIHdlYktpdFdlYlNyY1NldE1lZGlhUGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3Jl
OjpNZWRpYVBsYXllciogcGxheWVyKQogewotICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYg
PSBzcmMtPnByaXY7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gMDsKLQotICAgIFdlYkNv
cmU6OkRvY3VtZW50KiBkb2N1bWVudCA9IHBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVk
aWFQbGF5ZXJPd25pbmdEb2N1bWVudCgpOwotICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLQotICAgIHByaXYtPmZyYW1lID0gZnJhbWU7Ci0gICAg
cHJpdi0+cGxheWVyID0gcGxheWVyOworICAgIEFTU0VSVChwbGF5ZXIpOworICAgIHNyYy0+cHJp
di0+cGxheWVyID0gcGxheWVyOwogfQogCiBTdHJlYW1pbmdDbGllbnQ6OlN0cmVhbWluZ0NsaWVu
dChXZWJLaXRXZWJTcmMqIHNyYykgOiBtX3NyYyhzcmMpCkBAIC03OTAsMTEgKzc3OCw3IEBAIFN0
cmVhbWluZ0NsaWVudDo6flN0cmVhbWluZ0NsaWVudCgpCiAKIH0KIAotdm9pZCBTdHJlYW1pbmdD
bGllbnQ6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewotfQotCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIApAQCAtODgz
LDcgKzg2Nyw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlCiAgICAgICAgIG5vdGlmeUdzdFRh
Z3NPblBhZChHU1RfRUxFTUVOVChtX3NyYyksIG1fc3JjLT5wcml2LT5zcmNwYWQsIHRhZ3MpOwog
fQogCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50KQordm9pZCBTdHJlYW1p
bmdDbGllbnQ6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9
IG1fc3JjLT5wcml2OwogCkBAIC04OTYsNyArODgwLDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEs
IGkKICAgICAgICAgdW5tYXBHc3RCdWZmZXIocHJpdi0+YnVmZmVyLmdldCgpKTsKICNlbmRpZgog
Ci0gICAgaWYgKHByaXYtPnNlZWtJRCB8fCBoYW5kbGUgIT0gcHJpdi0+cmVzb3VyY2VIYW5kbGUp
IHsKKyAgICBpZiAocHJpdi0+c2Vla0lEIHx8IHJlc291cmNlICE9IHByaXYtPnJlc291cmNlKSB7
CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QobV9zcmMsICJTZWVrIGluIHByb2dyZXNzLCBpZ25v
cmluZyBkYXRhIik7CiAgICAgICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwogICAgICAgICByZXR1
cm47CkBAIC05MzAsNyArOTE0LDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGkKICAgICAgICAg
R1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIENPUkUsIEZBSUxFRCwgKDApLCAoMCkpOwogfQogCi1j
aGFyKiBTdHJlYW1pbmdDbGllbnQ6OmdldE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVz
dGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKQorY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRP
ckNyZWF0ZVJlYWRCdWZmZXIoQ2FjaGVkUmVzb3VyY2UqLCBzaXplX3QgcmVxdWVzdGVkU2l6ZSwg
c2l6ZV90JiBhY3R1YWxTaXplKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBt
X3NyYy0+cHJpdjsKIApAQCAtOTQ4LDM0ICs5MzIsMjUgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50
OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0
dWEKICAgICByZXR1cm4gZ2V0R3N0QnVmZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0KIAotdm9p
ZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3Vi
bGUpCit2b2lkIFN0cmVhbWluZ0NsaWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJp
djsKIAorICAgIGlmIChyZXNvdXJjZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAg
ICBpZiAoIXJlc291cmNlLT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciA9IHJlc291cmNlLT5yZXNvdXJjZUVycm9yKCk7CisgICAgICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKG1fc3JjLCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBHU1RfRUxFTUVO
VF9FUlJPUihtX3NyYywgUkVTT1VSQ0UsIEZBSUxFRCwgKCIlcyIsIGVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSksICgwKSk7CisgICAgICAgIH0KKyAgICAgICAgZ3N0
X2FwcF9zcmNfZW5kX29mX3N0cmVhbShtX3NyYy0+cHJpdi0+YXBwc3JjKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIEdTVF9ERUJVR19PQkpFQ1QobV9zcmMsICJIYXZlIEVPUyIpOwog
CiAgICAgaWYgKCFwcml2LT5zZWVrSUQpCiAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJl
YW0obV9zcmMtPnByaXYtPmFwcHNyYyk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAg
R1NUX0VSUk9SX09CSkVDVChtX3NyYywgIkhhdmUgZmFpbHVyZTogJXMiLCBlcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1f
c3JjLCBSRVNPVVJDRSwgRkFJTEVELCAoIiVzIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KS51dGY4KCkuZGF0YSgpKSwgKDApKTsKLSAgICBnc3RfYXBwX3NyY19lbmRfb2Zfc3RyZWFtKG1f
c3JjLT5wcml2LT5hcHBzcmMpOwotfQotCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tl
ZChSZXNvdXJjZUhhbmRsZSopCi17Ci0gICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIlJlcXVl
c3Qgd2FzIGJsb2NrZWQiKTsKLSAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVTT1VSQ0Us
IE9QRU5fUkVBRCwgKCJBY2Nlc3MgdG8gXCIlc1wiIHdhcyBibG9ja2VkIiwgbV9zcmMtPnByaXYt
PnVyaSksICgwKSk7Ci19Ci0KLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpjYW5ub3RTaG93VVJMKFJl
c291cmNlSGFuZGxlKikKLXsKLSAgICBHU1RfRVJST1JfT0JKRUNUKG1fc3JjLCAiQ2Fubm90IHNo
b3cgVVJMIik7Ci0gICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMsIFJFU09VUkNFLCBPUEVOX1JF
QUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIiLCBtX3NyYy0+cHJpdi0+dXJpKSwgKDApKTsKLX0KLQog
I2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCiAK
</data>
<flag name="review"
          id="227501"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206869</attachid>
            <date>2013-07-17 02:20:17 -0700</date>
            <delta_ts>2013-07-17 02:29:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-gst-subresource-loader.diff</filename>
            <type>text/plain</type>
            <size>20808</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjOGVmMTkzLi5lZWI0ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTMtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHU3RyZWFtZXJdIHdlYmtpdHdlYnNyYzogdXNlIFN1YlJlc291cmNlTG9h
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0
MworCisgICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAg
ICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBEaXR0by4KKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFr
ZTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmg6IEFkZCBnZXRP
ckNyZWF0ZVJlYWRCdWZmZXIoKSB3aGVuCisgICAgICAgIHVzaW5nIFNPVVAuCisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFJhd1Jlc291cmNlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdS
ZXNvdXJjZUNsaWVudDo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKTogQWRkZWQKKyAgICAgICAgdG8g
YWxsb3cgdGhlIGNsaWVudCB0byBhbGxvY2F0ZSB0aGUgcmVhZCBidWZmZXIuCisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKToKKyAgICAgICAgKiBsb2FkZXIvc291cC9D
YWNoZWRSYXdSZXNvdXJjZVNvdXAuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJhd1Jlc291cmNlOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIpOiBJdGVyYXRlIHRoZQorICAgICAg
ICBjbGllbnRzIHVudGlsIG9uZSByZXR1cm5zIGEgdmFsaWQgcmVhZCBidWZmZXIgb3IgcmV0dXJu
IE5VTEwgdG8KKyAgICAgICAgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgcmVhZCBidWZmZXIuCisg
ICAgICAgICogbG9hZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVy
KTogQ2FsbAorICAgICAgICBDYWNoZWRSZXNvdXJjZTo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKCku
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgIChTdHJlYW1pbmdDbGllbnQpOiBNYWtlIHRoaXMgYSBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudC4KKyAgICAgICAgKF9XZWJLaXRXZWJTcmNQcml2YXRlKTogUmVt
b3ZlIGZyYW1lIGFuZCByZXNvdXJjZUhhbmRsZSBhbmQgYWRkIGEKKyAgICAgICAgY2FjaGVkIHJl
c291cmNlIGhhbmRsZS4KKyAgICAgICAgKHdlYktpdFdlYlNyY0Rpc3Bvc2UpOiBDbGVhciB0aGUg
cGxheWVyIHBvaW50ZXIuCisgICAgICAgICh3ZWJLaXRXZWJTcmNTdG9wKTogUmVtb3ZlIHRoZSBj
bGllbnQgZnJvbSB0aGUgY2FjaGVkIHJlc291cmNlLgorICAgICAgICAod2ViS2l0V2ViU3JjU3Rh
cnQpOiBVc2UgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgdG8gc2NoZWR1bGUgYQorICAgICAgICBDYWNo
ZWRSYXdSZXNvdXJjZSBsb2FkIGZvciB0aGUgbWVkaWEgd2l0aG91dCBidWZmZXJpbmcgdGhlIGRh
dGEuCisgICAgICAgICh3ZWJLaXRXZWJTcmNOZWVkRGF0YU1haW5DYik6IENhbGwgQ2FjaGVkUmVz
b3VyY2U6OnNldERlZmVyc0xvYWRpbmcuCisgICAgICAgICh3ZWJLaXRXZWJTcmNFbm91Z2hEYXRh
TWFpbkNiKTogRGl0dG8uCisgICAgICAgICh3ZWJLaXRXZWJTcmNTZXRNZWRpYVBsYXllcik6IFNp
bXBseSB1cGRhdGUgdGhlIHBsYXllciBwb2ludGVyLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50
OjpyZXNwb25zZVJlY2VpdmVkKTogVXBkYXRlIHRvIHRoZQorICAgICAgICBDYWNoZWRSYXdSZXNv
dXJjZUNsaWVudCBBUEkuCisgICAgICAgIChTdHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZCk6
IERpdHRvLgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIp
OiBEaXR0by4KKyAgICAgICAgKFN0cmVhbWluZ0NsaWVudDo6bm90aWZ5RmluaXNoZWQpOiBEaXR0
by4KKwogMjAxMy0wNy0xNyAgTWloYWkgTWFlcmVhbiAgPG1tYWVyZWFuQGFkb2JlLmNvbT4KIAog
ICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBsYXlvdXRTdGF0ZS0+bV9yZW5kZXJlciA9PSB0aGlz
IGluIFdlYkNvcmU6OlJlbmRlckJsb2NrOjpvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkZTYwMDVlLi41NWZkOTU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQxMzEsNiArNDEzMSw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0YS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3Vic3RpdHV0ZVJlc291cmNlLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9zb3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRS
ZXNvdXJjZURlY29kZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2Fk
ZXJDbGllbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGY0OTY2NDcuLjJiMjZm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zNyw2ICszNyw5IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwCiAKKyAgICBsb2FkZXIvc291cC9DYWNoZWRSYXdSZXNvdXJjZVNvdXAuY3BwCisgICAgbG9h
ZGVyL3NvdXAvU3VicmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorCiAgICAgcGFnZS9lZmwvRHJhZ0Nv
bnRyb2xsZXJFZmwuY3BwCiAgICAgcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGU2Mjg1OGEuLjhmZDg2MDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtR1RLLmNtYWtlCkBAIC00Miw2ICs0Miw5IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogCiAgICAgZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCiAKKyAgICBsb2FkZXIv
c291cC9DYWNoZWRSYXdSZXNvdXJjZVNvdXAuY3BwCisgICAgbG9hZGVyL3NvdXAvU3VicmVzb3Vy
Y2VMb2FkZXJTb3VwLmNwcAorCiAgICAgcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCiAg
ICAgcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IGE0YThkMWMuLjVhZWRmYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRl
OgogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VSZXNvdXJjZXMoKSBPVkVSUklERTsK
IAorI2lmIFVTRShTT1VQKQorICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVy
KHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpIE9WRVJSSURFOworI2Vu
ZGlmCisKICAgICBib29sIGNoZWNrRm9ySFRUUFN0YXR1c0NvZGVFcnJvcigpOwogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApp
bmRleCAxNWViNjcwLi4yNDQ1MDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtNjcsNiArNjcsMTAgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBjYWxjdWxhdGVJbmNyZW1lbnRhbERhdGFDaHVuayhSZXNvdXJjZUJ1ZmZlcios
IHVuc2lnbmVkJiBpbmNyZW1lbnRhbERhdGFMZW5ndGgpOwogICAgIHZvaWQgbm90aWZ5Q2xpZW50
c0RhdGFXYXNSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwogCisj
aWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6
ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7CisjZW5kaWYKKwogICAgIHVu
c2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwogCiAgICAgc3RydWN0IFJlZGlyZWN0UGFpciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNs
aWVudC5oCmluZGV4IDMzNmZmMTQuLmRlN2E0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oCkBAIC00MSw2ICs0MSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNv
dXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGF0
YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgY2hhciogLyogZGF0YSAqLywgaW50IC8q
IGxlbmd0aCAqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVk
UmVzb3VyY2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9
CisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIo
Q2FjaGVkUmVzb3VyY2UqLCBzaXplX3QgLyogcmVxdWVzdGVkU2l6ZSAqLywgc2l6ZV90JiAvKiBh
Y3R1YWxTaXplICovKSB7IHJldHVybiAwOyB9CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggMThhNGU2NS4uOGVmZTk0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAg
LTI1NSw2ICsyNTUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdHJ5UmVwbGFjZUVuY29kZWREYXRh
KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPik7CiAjZW5kaWYKIAorI2lmIFVTRShTT1VQKQorICAg
IHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCAvKiByZXF1ZXN0ZWRT
aXplICovLCBzaXplX3QmIC8qIGFjdHVhbFNpemUgKi8pIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrTm90aWZ5KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9DYWNoZWRSYXdSZXNvdXJjZVNvdXAuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5MzRlOWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9DYWNoZWRSYXdSZXNvdXJjZVNvdXAuY3Bw
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291
cmNlQ2xpZW50LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjaGFyKiBDYWNoZWRSYXdSZXNvdXJjZTo6Z2V0T3JDcmVh
dGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpCit7
CisgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXI8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQ+
IHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQqIGMgPSB3
Lm5leHQoKSkgeworICAgICAgICBpZiAoY2hhciogYnVmZmVyUHRyID0gYy0+Z2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKHRoaXMsIHJlcXVlc3RlZFNpemUsIGFjdHVhbFNpemUpKQorICAgICAgICAgICAg
cmV0dXJuIGJ1ZmZlclB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVz
b3VyY2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNl
TG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUwY2Qx
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNl
TG9hZGVyU291cC5jcHAKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIw
MTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NoYXIqIFJlc291cmNlTG9hZGVyOjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6
ZV90IHJlcXVlc3RlZExlbmd0aCwgc2l6ZV90JiBhY3R1YWxMZW5ndGgpCit7CisgICAgYWN0dWFs
TGVuZ3RoID0gcmVxdWVzdGVkTGVuZ3RoOworICAgIGlmICghbV9yZWFkQnVmZmVyKQorICAgICAg
ICBtX3JlYWRCdWZmZXIuc2V0KHN0YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyhyZXF1ZXN0ZWRM
ZW5ndGgpKSk7CisgICAgcmV0dXJuIG1fcmVhZEJ1ZmZlci5nZXQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvU3Vi
cmVzb3VyY2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1YnJl
c291cmNlTG9hZGVyU291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Yjc2NzBhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1N1
YnJlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBDb3B5cmln
aHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgorCisj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjaGFy
KiBTdWJyZXNvdXJjZUxvYWRlcjo6Z2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0
ZWRMZW5ndGgsIHNpemVfdCYgYWN0dWFsTGVuZ3RoKQoreworICAgIHJldHVybiBtX3Jlc291cmNl
LT5nZXRPckNyZWF0ZVJlYWRCdWZmZXIocmVxdWVzdGVkTGVuZ3RoLCBhY3R1YWxMZW5ndGgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwCmluZGV4IGIyNmQ2OTcuLjY5NjRkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yMiwxNiArMjIsMTUgQEAKIAogI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKIAotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUg
IkNhY2hlZFJhd1Jlc291cmNlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgogI2luY2x1ZGUgIkdTdHJlYW1lclZlcnNpb25pbmcu
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZUNsaWVudC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5j
bHVkZSA8Z3N0L2FwcC9nc3RhcHBzcmMuaD4KQEAgLTQ0LDI0ICs0MywxOSBAQAogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIFJlc291
cmNlSGFuZGxlQ2xpZW50IHsKK2NsYXNzIFN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBDYWNoZWRS
YXdSZXNvdXJjZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RyZWFtaW5nQ2xp
ZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICBTdHJl
YW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKik7CiAgICAgICAgIHZpcnR1YWwgflN0cmVhbWluZ0Ns
aWVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VI
YW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0KLSAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLQogICAgIHBy
aXZhdGU6CisgICAgICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50CisgICAgICAgIHZpcnR1YWwg
dm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNl
KiwgY29uc3QgY2hhciosIGludCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSopOworICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVh
ZEJ1ZmZlcihDYWNoZWRSZXNvdXJjZSosIHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFj
dHVhbFNpemUpOworCiAgICAgICAgIFdlYktpdFdlYlNyYyogbV9zcmM7CiB9OwogCkBAIC03MSwx
MSArNjUsMTAgQEAgc3RydWN0IF9XZWJLaXRXZWJTcmNQcml2YXRlIHsKICAgICBHc3RQYWQqIHNy
Y3BhZDsKICAgICBnY2hhciogdXJpOwogCi0gICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBmcmFt
ZTsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyOwogCiAgICAgU3RyZWFtaW5nQ2xp
ZW50KiBjbGllbnQ7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiByZXNvdXJjZUhhbmRsZTsK
KyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVzb3VyY2U7CiAK
ICAgICBndWludDY0IG9mZnNldDsKICAgICBndWludDY0IHNpemU7CkBAIC0yOTQsNiArMjg3LDgg
QEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjRGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAgICAg
ICAgIHByaXYtPmJ1ZmZlci5jbGVhcigpOwogICAgIH0KIAorICAgIHByaXYtPnBsYXllciA9IDA7
CisKICAgICBHU1RfQ0FMTF9QQVJFTlQoR19PQkpFQ1RfQ0xBU1MsIGRpc3Bvc2UsIChvYmplY3Qp
KTsKIH0KIApAQCAtMzY2LDE2ICszNjEsMTUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU3Rv
cChXZWJLaXRXZWJTcmMqIHNyYywgYm9vbCBzZWVraW5nKQogewogICAgIFdlYktpdFdlYlNyY1By
aXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKLSAgICBpZiAocHJpdi0+cmVzb3VyY2VIYW5kbGUp
IHsKLSAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICBwcml2
LT5yZXNvdXJjZUhhbmRsZS5yZWxlYXNlKCk7CisgICAgaWYgKHByaXYtPnJlc291cmNlKSB7Cisg
ICAgICAgIHByaXYtPnJlc291cmNlLT5yZW1vdmVDbGllbnQocHJpdi0+Y2xpZW50KTsKKyAgICAg
ICAgcHJpdi0+cmVzb3VyY2UgPSAwOwogICAgIH0KLSAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9
IDA7Ci0KLSAgICBpZiAocHJpdi0+ZnJhbWUgJiYgIXNlZWtpbmcpCi0gICAgICAgIHByaXYtPmZy
YW1lLmNsZWFyKCk7CiAKLSAgICBwcml2LT5wbGF5ZXIgPSAwOworICAgIGlmIChwcml2LT5jbGll
bnQpIHsKKyAgICAgICAgZGVsZXRlIHByaXYtPmNsaWVudDsKKyAgICAgICAgcHJpdi0+Y2xpZW50
ID0gMDsKKyAgICB9CiAKICAgICBpZiAocHJpdi0+YnVmZmVyKSB7CiAjaWZkZWYgR1NUX0FQSV9W
RVJTSU9OXzEKQEAgLTQzNywyMSArNDMxLDE0IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0
YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIk5v
IFVSSSBwcm92aWRlZCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCisg
ICAgQVNTRVJUKHByaXYtPnBsYXllcik7CisKICAgICBLVVJMIHVybCA9IEtVUkwoS1VSTCgpLCBw
cml2LT51cmkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1
ZXN0LnNldEFsbG93Q29va2llcyh0cnVlKTsKLQotICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0ID0gMDsKLSAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gcHJpdi0+ZnJhbWUgPyBwcml2LT5m
cmFtZS0+bG9hZGVyKCkgOiAwOwotICAgIGlmIChsb2FkZXIpIHsKLSAgICAgICAgbG9hZGVyLT5h
ZGRFeHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwotICAgICAgICBjb250
ZXh0ID0gbG9hZGVyLT5uZXR3b3JraW5nQ29udGV4dCgpOwotICAgIH0KLQotICAgIGlmIChwcml2
LT5wbGF5ZXIpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHByaXYtPnBsYXllci0+
cmVmZXJyZXIoKSk7CisgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocHJpdi0+cGxheWVyLT5y
ZWZlcnJlcigpKTsKIAogICAgIC8vIExldCBBcHBsZSB3ZWIgc2VydmVycyBrbm93IHdlIHdhbnQg
dG8gYWNjZXNzIHRoZWlyIG5pY2UgbW92aWUgdHJhaWxlcnMuCiAgICAgaWYgKCFnX2FzY2lpX3N0
cmNhc2VjbXAoIm1vdmllcy5hcHBsZS5jb20iLCB1cmwuaG9zdCgpLnV0ZjgoKS5kYXRhKCkpCkBA
IC00NzIsOSArNDU5LDE3IEBAIHN0YXRpYyBib29sIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdl
YlNyYyogc3JjKQogICAgIC8vIE5lZWRlZCB0byB1c2UgRExOQSBzdHJlYW1pbmcgc2VydmVycwog
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJ0cmFuc2Zlck1vZGUuZGxuYSIsICJTdHJl
YW1pbmciKTsKIAotICAgIHByaXYtPnJlc291cmNlSGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShjb250ZXh0LCByZXF1ZXN0LCBwcml2LT5jbGllbnQsIGZhbHNlLCBmYWxzZSk7Ci0gICAg
aWYgKCFwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNy
YywgIkZhaWxlZCB0byBjcmVhdGUgUmVzb3VyY2VIYW5kbGUiKTsKKyAgICBpZiAoQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIGxvYWRlciA9IHByaXYtPnBsYXllci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSkgeworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVSZXF1ZXN0KHJlcXVlc3Qs
IFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwg
RG9Ob3RCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIERvTm90QXNrQ2xp
ZW50Rm9yQ3Jvc3NPcmlnaW5DcmVkZW50aWFscywgRG9TZWN1cml0eUNoZWNrLCBVc2VEZWZhdWx0
T3JpZ2luUmVzdHJpY3Rpb25zRm9yVHlwZSkpOworICAgICAgICBwcml2LT5yZXNvdXJjZSA9IGxv
YWRlci0+cmVxdWVzdFJhd1Jlc291cmNlKGNhY2hlUmVxdWVzdCk7CisgICAgICAgIGlmIChwcml2
LT5yZXNvdXJjZSkgeworICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IFN0cmVhbWluZ0Ns
aWVudChzcmMpOworICAgICAgICAgICAgcHJpdi0+cmVzb3VyY2UtPmFkZENsaWVudChwcml2LT5j
bGllbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFwcml2LT5yZXNvdXJjZSkgewor
ICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBzY2hlZHVsZSByZXNvdXJj
ZSBsb2FkIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTY3Niw3ICs2NzEs
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjTmVlZERhdGFNYWluQ2IoV2ViS2l0V2Vi
U3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsK
IAotICAgIHByaXYtPnJlc291cmNlSGFuZGxlLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAg
ICBwcml2LT5yZXNvdXJjZS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICAgICBHU1RfT0JK
RUNUX0xPQ0soc3JjKTsKICAgICBwcml2LT5wYXVzZWQgPSBGQUxTRTsKQEAgLTcwNiw3ICs3MDEs
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjRW5vdWdoRGF0YU1haW5DYihXZWJLaXRX
ZWJTcmMqIHNyYykKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2
OwogCi0gICAgcHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7Cisg
ICAgcHJpdi0+cmVzb3VyY2UtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7CiAKICAgICBHU1RfT0JK
RUNUX0xPQ0soc3JjKTsKICAgICBwcml2LT5wYXVzZWQgPSBUUlVFOwpAQCAtNzY5LDE1ICs3NjQs
OCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla0RhdGFDYihHc3RBcHBTcmMqLCBn
dWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlcgogCiB2b2lkIHdlYktpdFdlYlNyY1NldE1lZGlh
UGxheWVyKFdlYktpdFdlYlNyYyogc3JjLCBXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyKQog
ewotICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7Ci0gICAgV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lID0gMDsKLQotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCA9
IHBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJPd25pbmdEb2N1bWVudCgp
OwotICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsK
LQotICAgIHByaXYtPmZyYW1lID0gZnJhbWU7Ci0gICAgcHJpdi0+cGxheWVyID0gcGxheWVyOwor
ICAgIEFTU0VSVChwbGF5ZXIpOworICAgIHNyYy0+cHJpdi0+cGxheWVyID0gcGxheWVyOwogfQog
CiBTdHJlYW1pbmdDbGllbnQ6OlN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYykgOiBt
X3NyYyhzcmMpCkBAIC03OTAsMTEgKzc3OCw3IEBAIFN0cmVhbWluZ0NsaWVudDo6flN0cmVhbWlu
Z0NsaWVudCgpCiAKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OndpbGxTZW5kUmVxdWVzdChS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KQotewotfQotCi12b2lkIFN0cmVhbWluZ0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFN0cmVh
bWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZh
dGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIApAQCAtODgzLDcgKzg2Nyw3IEBAIHZvaWQgU3RyZWFt
aW5nQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlCiAgICAgICAgIG5vdGlmeUdzdFRhZ3NPblBhZChHU1RfRUxFTUVOVChtX3Ny
YyksIG1fc3JjLT5wcml2LT5zcmNwYWQsIHRhZ3MpOwogfQogCi12b2lkIFN0cmVhbWluZ0NsaWVu
dDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aCwgaW50KQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7
CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCkBAIC04OTYs
NyArODgwLDcgQEAgdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGkKICAgICAgICAgdW5tYXBHc3RCdWZm
ZXIocHJpdi0+YnVmZmVyLmdldCgpKTsKICNlbmRpZgogCi0gICAgaWYgKHByaXYtPnNlZWtJRCB8
fCBoYW5kbGUgIT0gcHJpdi0+cmVzb3VyY2VIYW5kbGUpIHsKKyAgICBpZiAocHJpdi0+c2Vla0lE
IHx8IHJlc291cmNlICE9IHByaXYtPnJlc291cmNlKSB7CiAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1QobV9zcmMsICJTZWVrIGluIHByb2dyZXNzLCBpZ25vcmluZyBkYXRhIik7CiAgICAgICAgIHBy
aXYtPmJ1ZmZlci5jbGVhcigpOwogICAgICAgICByZXR1cm47CkBAIC05MzAsNyArOTE0LDcgQEAg
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiBoYW5k
bGUsIGNvbnN0IGNoYXIqIGRhdGEsIGkKICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1IobV9zcmMs
IENPUkUsIEZBSUxFRCwgKDApLCAoMCkpOwogfQogCi1jaGFyKiBTdHJlYW1pbmdDbGllbnQ6Omdl
dE9yQ3JlYXRlUmVhZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxT
aXplKQorY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIoQ2FjaGVk
UmVzb3VyY2UqLCBzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKQogewog
ICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIApAQCAtOTQ4LDM0
ICs5MzIsMjUgQEAgY2hhciogU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIo
c2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWEKICAgICByZXR1cm4gZ2V0R3N0QnVm
ZmVyRGF0YVBvaW50ZXIoYnVmZmVyKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCit2b2lkIFN0cmVhbWluZ0NsaWVu
dDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIFdlYktp
dFdlYlNyY1ByaXZhdGUqIHByaXYgPSBtX3NyYy0+cHJpdjsKIAorICAgIGlmIChyZXNvdXJjZS0+
bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgeworICAgICAgICBpZiAoIXJlc291cmNlLT53YXNDYW5j
ZWxlZCgpKSB7CisgICAgICAgICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IHJlc291
cmNlLT5yZXNvdXJjZUVycm9yKCk7CisgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKG1fc3Jj
LCAiSGF2ZSBmYWlsdXJlOiAlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVTT1VSQ0Us
IEZBSUxFRCwgKCIlcyIsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEo
KSksICgwKSk7CisgICAgICAgIH0KKyAgICAgICAgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbSht
X3NyYy0+cHJpdi0+YXBwc3JjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEdTVF9E
RUJVR19PQkpFQ1QobV9zcmMsICJIYXZlIEVPUyIpOwogCiAgICAgaWYgKCFwcml2LT5zZWVrSUQp
CiAgICAgICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0obV9zcmMtPnByaXYtPmFwcHNyYyk7
CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywg
IkhhdmUgZmFpbHVyZTogJXMiLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpOwotICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBSRVNPVVJDRSwgRkFJTEVELCAo
IiVzIiwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSwgKDApKTsK
LSAgICBnc3RfYXBwX3NyY19lbmRfb2Zfc3RyZWFtKG1fc3JjLT5wcml2LT5hcHBzcmMpOwotfQot
Ci12b2lkIFN0cmVhbWluZ0NsaWVudDo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopCi17Ci0g
ICAgR1NUX0VSUk9SX09CSkVDVChtX3NyYywgIlJlcXVlc3Qgd2FzIGJsb2NrZWQiKTsKLSAgICBH
U1RfRUxFTUVOVF9FUlJPUihtX3NyYywgUkVTT1VSQ0UsIE9QRU5fUkVBRCwgKCJBY2Nlc3MgdG8g
XCIlc1wiIHdhcyBibG9ja2VkIiwgbV9zcmMtPnByaXYtPnVyaSksICgwKSk7Ci19Ci0KLXZvaWQg
U3RyZWFtaW5nQ2xpZW50OjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikKLXsKLSAgICBH
U1RfRVJST1JfT0JKRUNUKG1fc3JjLCAiQ2Fubm90IHNob3cgVVJMIik7Ci0gICAgR1NUX0VMRU1F
TlRfRVJST1IobV9zcmMsIFJFU09VUkNFLCBPUEVOX1JFQUQsICgiQ2FuJ3Qgc2hvdyBcIiVzXCIi
LCBtX3NyYy0+cHJpdi0+dXJpKSwgKDApKTsKLX0KLQogI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIp
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>