<?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>194706</bug_id>
          
          <creation_ts>2019-02-15 09:07:14 -0800</creation_ts>
          <short_desc>Cache CompactVariableMap::Handle instead of VariableEnvironment for UnlinkedFunctionExecutable</short_desc>
          <delta_ts>2019-02-22 01:09:28 -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>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>194936</blocked>
    
    <blocked>194937</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1506585</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-15 09:07:14 -0800</bug_when>
    <thetext>Similar to https://bugs.webkit.org/show_bug.cgi?id=194583, but for the bytecode cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506589</commentid>
    <comment_count>1</comment_count>
      <attachid>362118</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-15 09:16:57 -0800</bug_when>
    <thetext>Created attachment 362118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507688</commentid>
    <comment_count>2</comment_count>
      <attachid>362118</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-19 09:31:19 -0800</bug_when>
    <thetext>Comment on attachment 362118
Patch

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

I think this is slightly off but I’m not 100% sure. Since Handle is responsible for bumping/decrementing the ref count, I’m not sure we properly model that, since we might decode only N handles, but have the ref count as M. I wonder if it’d make more sense to iteratively build the ref count as we decode handles?

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:941
&gt; +        CompactVariableMap* map = new CompactVariableMap;

This looks like a leak to me. How is this supposed to be handled? Maybe this should return Ref, and this should be adoptRef?

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:962
&gt; +        handle.m_map = m_map.decode(decoder);

I’m assuming the decoder already hash-conses stuff?

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:963
&gt; +        return handle;

It worries me that we somehow don’t end up updating the map’s ref count in place. For example, when we encode a graph of code blocks, there may be Handle’s that live outside that graph. If so, we’re now leaking those VariableEnvironments since we’re encoding a global ref count. I think we should be smart enough to rebuild it local to the map we’re re-creating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507704</commentid>
    <comment_count>3</comment_count>
      <attachid>362118</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-19 10:19:55 -0800</bug_when>
    <thetext>Comment on attachment 362118
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:941
&gt;&gt; +        CompactVariableMap* map = new CompactVariableMap;
&gt; 
&gt; This looks like a leak to me. How is this supposed to be handled? Maybe this should return Ref, and this should be adoptRef?

This is how CachedPtr is supposed to work right now. CachedRefPtr has a CachedPtr, which it assume starts with a refCount of 1, since we must keep it alive during decoding. Each call to RefPtr decode increases the refCount by 1 and adoptRef&apos;s the pointer. When we destroy the Decoder, it derefs all the RefPtrs, to balance the initial refCount.

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:962
&gt;&gt; +        handle.m_map = m_map.decode(decoder);
&gt; 
&gt; I’m assuming the decoder already hash-conses stuff?

Yes, it does.

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:963
&gt;&gt; +        return handle;
&gt; 
&gt; It worries me that we somehow don’t end up updating the map’s ref count in place. For example, when we encode a graph of code blocks, there may be Handle’s that live outside that graph. If so, we’re now leaking those VariableEnvironments since we’re encoding a global ref count. I think we should be smart enough to rebuild it local to the map we’re re-creating.

I&apos;m not sure I follow, but `m_map.decode` will increase the ref count.  We also don&apos;t encode the ref count per se, CachedRefPtr is just encoded as a pointer, and its only special behavior is rebuilding the ref count on decode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507733</commentid>
    <comment_count>4</comment_count>
      <attachid>362118</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-19 11:28:46 -0800</bug_when>
    <thetext>Comment on attachment 362118
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:941
&gt;&gt;&gt; +        CompactVariableMap* map = new CompactVariableMap;
&gt;&gt; 
&gt;&gt; This looks like a leak to me. How is this supposed to be handled? Maybe this should return Ref, and this should be adoptRef?
&gt; 
&gt; This is how CachedPtr is supposed to work right now. CachedRefPtr has a CachedPtr, which it assume starts with a refCount of 1, since we must keep it alive during decoding. Each call to RefPtr decode increases the refCount by 1 and adoptRef&apos;s the pointer. When we destroy the Decoder, it derefs all the RefPtrs, to balance the initial refCount.

Got it.

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:963
&gt;&gt;&gt; +        return handle;
&gt;&gt; 
&gt;&gt; It worries me that we somehow don’t end up updating the map’s ref count in place. For example, when we encode a graph of code blocks, there may be Handle’s that live outside that graph. If so, we’re now leaking those VariableEnvironments since we’re encoding a global ref count. I think we should be smart enough to rebuild it local to the map we’re re-creating.
&gt; 
&gt; I&apos;m not sure I follow, but `m_map.decode` will increase the ref count.  We also don&apos;t encode the ref count per se, CachedRefPtr is just encoded as a pointer, and its only special behavior is rebuilding the ref count on decode.

You&apos;re misunderstanding my comment here. It&apos;s worth just reading the implementation in to see what I&apos;m saying below:
CompactVariableMap::get
and
Handle::~Handle

Basically, the reason we have a HashMap&lt;CompactVariableMapKey, unsigned&gt; instead of HashSet&lt;CompactVariableMapKey&gt; is that we use the value field in the HashMap as a ref count. Each handle is responsible for a +1 ref in that HashMap. When we encode this object, we may only encode a subset of Handles into the map. However, we&apos;re also encoding the original ref count of *all* handles. So when we decode the original ref count, we&apos;re now in a state where we may leak some CompactVariableEnvironments because our new map has fewer handles than the ref count suggests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507839</commentid>
    <comment_count>5</comment_count>
      <attachid>362435</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-19 14:49:23 -0800</bug_when>
    <thetext>Created attachment 362435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507978</commentid>
    <comment_count>6</comment_count>
      <attachid>362435</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-19 19:42:19 -0800</bug_when>
    <thetext>Comment on attachment 362435
Patch

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

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:901
&gt; +        CompactVariableEnvironment* env = new CompactVariableEnvironment;

I guess I&apos;m still super confused about the lifetime of this object. Who is responsible for deleting this?

- Let&apos;s say we are the thing that adds this to the VM&apos;s map. The VM&apos;s environment map then deletes us when all handles go away? How do we end up being deleted? Basically, I&apos;m worried if CachedPtr has some lifecycle tied to it, do we end up double freeing this object once all handles go away?
- Let&apos;s say something identical to us is already in the map, so all handles are actually wrapping the prior thing. Who deletes us?

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:922
&gt; +        return decoder.vm().m_compactVariableMap-&gt;get(m_environment.decode(decoder), CompactVariableMap::DeleteUnusedEnvironment::No);

see comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508022</commentid>
    <comment_count>7</comment_count>
      <attachid>362435</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-20 00:44:04 -0800</bug_when>
    <thetext>Comment on attachment 362435
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:901
&gt;&gt; +        CompactVariableEnvironment* env = new CompactVariableEnvironment;
&gt; 
&gt; I guess I&apos;m still super confused about the lifetime of this object. Who is responsible for deleting this?
&gt; 
&gt; - Let&apos;s say we are the thing that adds this to the VM&apos;s map. The VM&apos;s environment map then deletes us when all handles go away? How do we end up being deleted? Basically, I&apos;m worried if CachedPtr has some lifecycle tied to it, do we end up double freeing this object once all handles go away?
&gt; - Let&apos;s say something identical to us is already in the map, so all handles are actually wrapping the prior thing. Who deletes us?

I think you&apos;re right, there&apos;s still a bug here.

- I think in this case, it&apos;s correct. CachedPtr never frees the pointer, so yes, if we added to the map the pointer will be deleted by ~Handle.
- Here is where I believe we still have the bug. If the &quot;thing identical to us&quot; have been placed in the map by this decoder, then it should be the same pointer, since we hash cons it. The case I did not consider was if the thing identical to us was placed in the map somewhere else.

I think the correct solution is that we need to know if the pointer was newly created or returned from cache and DeleteUnusedEnvironment should reflect it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508024</commentid>
    <comment_count>8</comment_count>
      <attachid>362485</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-20 01:02:49 -0800</bug_when>
    <thetext>Created attachment 362485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508070</commentid>
    <comment_count>9</comment_count>
      <attachid>362485</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-20 07:39:43 -0800</bug_when>
    <thetext>Comment on attachment 362485
Patch

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

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:937
&gt; +        CompactVariableEnvironment* environment = m_environment.decode(decoder, isNewAllocation);

This still doesn’t look right. Suppose we see the environment twice from two handles. Suppose that environment already exists in the VM too. And now we’re decoding the second one and we hash cons to the first one. The first one is now a destructed object.

Maybe what you originally had is closer to correct. I’m just confused whose job it is to free the environment at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508071</commentid>
    <comment_count>10</comment_count>
      <attachid>362485</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-20 07:40:48 -0800</bug_when>
    <thetext>Comment on attachment 362485
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:937
&gt;&gt; +        CompactVariableEnvironment* environment = m_environment.decode(decoder, isNewAllocation);
&gt; 
&gt; This still doesn’t look right. Suppose we see the environment twice from two handles. Suppose that environment already exists in the VM too. And now we’re decoding the second one and we hash cons to the first one. The first one is now a destructed object.
&gt; 
&gt; Maybe what you originally had is closer to correct. I’m just confused whose job it is to free the environment at the end.

I meant to write this comment on the LOC below this one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508073</commentid>
    <comment_count>11</comment_count>
      <attachid>362498</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-20 08:15:32 -0800</bug_when>
    <thetext>Created attachment 362498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508074</commentid>
    <comment_count>12</comment_count>
      <attachid>362485</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-20 08:19:54 -0800</bug_when>
    <thetext>Comment on attachment 362485
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:937
&gt;&gt;&gt; +        CompactVariableEnvironment* environment = m_environment.decode(decoder, isNewAllocation);
&gt;&gt; 
&gt;&gt; This still doesn’t look right. Suppose we see the environment twice from two handles. Suppose that environment already exists in the VM too. And now we’re decoding the second one and we hash cons to the first one. The first one is now a destructed object.
&gt;&gt; 
&gt;&gt; Maybe what you originally had is closer to correct. I’m just confused whose job it is to free the environment at the end.
&gt; 
&gt; I meant to write this comment on the LOC below this one

That does make sense. It seems that we have to control the lifecycle here, so I added yet another patch that does that. Thanks for all the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508778</commentid>
    <comment_count>13</comment_count>
      <attachid>362498</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-21 17:19:23 -0800</bug_when>
    <thetext>Comment on attachment 362498
Patch

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

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:947
&gt; +        return decoder.vm().m_compactVariableMap-&gt;get(environment, isNewEntry);
&gt; +        if (isNewAllocation &amp;&amp; !isNewEntry) {
&gt; +            decoder.addFinalizer([=] {
&gt; +                delete environment;
&gt; +            });
&gt; +        }

This can&apos;t be right ;-)

I vote for adding some tests at this point to ensure you get the behavior you want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508780</commentid>
    <comment_count>14</comment_count>
      <attachid>362498</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-21 17:20:07 -0800</bug_when>
    <thetext>Comment on attachment 362498
Patch

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

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:946
&gt; +        if (isNewAllocation &amp;&amp; !isNewEntry) {
&gt; +            decoder.addFinalizer([=] {
&gt; +                delete environment;
&gt; +            });

Logically, this looks correct to me. But you should verify with testing once you remove the errant early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508916</commentid>
    <comment_count>15</comment_count>
      <attachid>362498</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-21 23:37:18 -0800</bug_when>
    <thetext>Comment on attachment 362498
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:947
&gt;&gt; +        }
&gt; 
&gt; This can&apos;t be right ;-)
&gt; 
&gt; I vote for adding some tests at this point to ensure you get the behavior you want.

damn, I can&apos;t believe I did this. I don&apos;t know why the compiler didn&apos;t complain about it either.

I agree that sounds reasonable, it was a lot of iterations. Should I make it an API test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508918</commentid>
    <comment_count>16</comment_count>
      <attachid>362498</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-21 23:53:39 -0800</bug_when>
    <thetext>Comment on attachment 362498
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:947
&gt;&gt;&gt; +        }
&gt;&gt; 
&gt;&gt; This can&apos;t be right ;-)
&gt;&gt; 
&gt;&gt; I vote for adding some tests at this point to ensure you get the behavior you want.
&gt; 
&gt; damn, I can&apos;t believe I did this. I don&apos;t know why the compiler didn&apos;t complain about it either.
&gt; 
&gt; I agree that sounds reasonable, it was a lot of iterations. Should I make it an API test?

Sounds reasonable. Though the more I think about it I’m not sure quite how to test that we free this object...

Also, it might be worth adding a debug assert that says “!isNewEntry if !isNewAllocation”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508920</commentid>
    <comment_count>17</comment_count>
      <attachid>362498</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-21 23:56:41 -0800</bug_when>
    <thetext>Comment on attachment 362498
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:947
&gt;&gt;&gt;&gt; +        }
&gt;&gt;&gt; 
&gt;&gt;&gt; This can&apos;t be right ;-)
&gt;&gt;&gt; 
&gt;&gt;&gt; I vote for adding some tests at this point to ensure you get the behavior you want.
&gt;&gt; 
&gt;&gt; damn, I can&apos;t believe I did this. I don&apos;t know why the compiler didn&apos;t complain about it either.
&gt;&gt; 
&gt;&gt; I agree that sounds reasonable, it was a lot of iterations. Should I make it an API test?
&gt; 
&gt; Sounds reasonable. Though the more I think about it I’m not sure quite how to test that we free this object...
&gt; 
&gt; Also, it might be worth adding a debug assert that says “!isNewEntry if !isNewAllocation”

Yeah, I&apos;m yet to find a way to test too... I could probably find a way of just encoding/decoding just the handle (without the containing CodeBlock), but I&apos;d have to expose an API for that.

The assertion sounds good, I&apos;ll add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508921</commentid>
    <comment_count>18</comment_count>
      <attachid>362700</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-22 00:02:40 -0800</bug_when>
    <thetext>Created attachment 362700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508923</commentid>
    <comment_count>19</comment_count>
      <attachid>362700</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-22 00:22:41 -0800</bug_when>
    <thetext>Comment on attachment 362700
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        that we cache the handle instead of the environment.

You should add a sentence why

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:380
&gt; +        if (WTF::Optional&lt;ptrdiff_t&gt; offset = encoder.cachedOffsetForPtr(src)) {

Not this patch, but I don’t think the WTF is needed for Optional

&gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:940
&gt; +        CompactVariableEnvironment* environment = m_environment.decode(decoder, isNewAllocation);

This can be a future improvement, but it would be cool if we could skip the hash table lookup for all !isNewAllocation. This could work if we associated a Handle instead of an environment for this pointer. This is sound because a pointer to the same CompactVariableEnvironment* will hash the same. And this is a speed up because hashing CompactVariableEnvironment* isn’t cheap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508924</commentid>
    <comment_count>20</comment_count>
      <attachid>362702</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-22 00:30:57 -0800</bug_when>
    <thetext>Created attachment 362702
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508925</commentid>
    <comment_count>21</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-02-22 00:33:19 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #19)
&gt; Comment on attachment 362700 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362700&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:12
&gt; &gt; +        that we cache the handle instead of the environment.
&gt; 
&gt; You should add a sentence why
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:380
&gt; &gt; +        if (WTF::Optional&lt;ptrdiff_t&gt; offset = encoder.cachedOffsetForPtr(src)) {
&gt; 
&gt; Not this patch, but I don’t think the WTF is needed for Optional
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/CachedTypes.cpp:940
&gt; &gt; +        CompactVariableEnvironment* environment = m_environment.decode(decoder, isNewAllocation);
&gt; 
&gt; This can be a future improvement, but it would be cool if we could skip the
&gt; hash table lookup for all !isNewAllocation. This could work if we associated
&gt; a Handle instead of an environment for this pointer. This is sound because a
&gt; pointer to the same CompactVariableEnvironment* will hash the same. And this
&gt; is a speed up because hashing CompactVariableEnvironment* isn’t cheap

I&apos;ll do both of these things in follow up patches today. I&apos;ll just land this (with the ChangeLog update you requested) since I need these changes to rebase a couple other patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508933</commentid>
    <comment_count>22</comment_count>
      <attachid>362702</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-22 01:08:40 -0800</bug_when>
    <thetext>Comment on attachment 362702
Patch for landing

Clearing flags on attachment: 362702

Committed r241938: &lt;https://trac.webkit.org/changeset/241938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508934</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-22 01:08:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508935</commentid>
    <comment_count>24</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-22 01:09:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/48305468&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362118</attachid>
            <date>2019-02-15 09:16:57 -0800</date>
            <delta_ts>2019-02-19 14:49:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194706-20190215181624.patch</filename>
            <type>text/plain</type>
            <size>10663</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MzQ2NmRiNjk1ZmE4OGUwZWY1MmUyMTEwYjdhNWZkNmZkNDBkN2I1Li5hM2M0YWQxNTU3NjNjOTg3
N2Y3MmFmM2Q3MGQ5MWFmMGY0YmYwMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOS0wMi0xNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52
aXJvbm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdl
IHdlcmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRo
ZSBleGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0
IHNvCisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZp
cm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBy
dW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlh
YmxlRW52aXJvbm1lbnQ6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJp
YWJsZUVudmlyb25tZW50OjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRDb21w
YWN0VmFyaWFibGVNYXBLZXk6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RW
YXJpYWJsZU1hcEtleTo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29tcGFj
dFZhcmlhYmxlTWFwOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFi
bGVNYXA6OmRlY29kZSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJs
ZU1hcEhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxl
TWFwSGFuZGxlOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4
ZWN1dGFibGU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZEZ1bmN0aW9uRXhlY3V0YWJs
ZTo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKToKKwogMjAxOS0wMi0xNCAgVGFkZXUgWmFn
YWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGJ5dGVjb2RlIGNhY2hl
LXJlbGF0ZWQgZmlsZXN5c3RlbSBjb2RlIG91dCBvZiBDb2RlQ2FjaGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlLmgKaW5kZXggNzczODE1MmVkODQ0ZGU0MTM5N2JmZGFjN2JiN2EwMGQ0ODJiZThjMS4uZTI0
ODQ2MGYxYzg2YjdmZGQ4NzM2MzA0Y2E1ODNlYTk5Y2ZjMzNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUoVk0qLCBTdHJ1Y3R1cmUqLCBjb25zdCBTb3VyY2VDb2RlJiwg
RnVuY3Rpb25NZXRhZGF0YU5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uS2luZCwgQ29uc3RydWN0QWJp
bGl0eSwgSlNQYXJzZXJTY3JpcHRNb2RlLCBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSwgIEpT
Qzo6RGVyaXZlZENvbnRleHRUeXBlLCBib29sIGlzQnVpbHRpbkRlZmF1bHRDbGFzc0NvbnN0cnVj
dG9yKTsKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNvZGVyJiwgVmFyaWFibGVF
bnZpcm9ubWVudCYsIGNvbnN0IENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZSYpOworICAgIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXImLCBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRs
ZSwgY29uc3QgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlJik7CiAKICAgICB1bnNpZ25lZCBtX2Zp
cnN0TGluZU9mZnNldDsKICAgICB1bnNpZ25lZCBtX2xpbmVDb3VudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKaW5kZXggZWU2Y2Nl
NmU3ODZjYTU2YWEwMDA4MWQwOTVmMDI2NGJjM2NiZWU1YS4uZWE3MWRhM2NkMjk3NmMwNDQ4MTg2
ZmU0NTIyNDQ2ZWRjNmQ5NzY4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKQEAgLTEyNSw2ICsxMjUsOSBAQCBwcml2YXRlOgog
Y2xhc3MgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBhY3RWYXJpYWJsZUVudmlyb25t
ZW50KTsKKworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVu
dDsKKwogcHVibGljOgogICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQmKTsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IHRvVmFyaWFibGVFbnZp
cm9ubWVudCgpIGNvbnN0OwpAQCAtMTMzLDYgKzEzNiw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gbV9oYXNoOyB9CiAKIHByaXZhdGU6CisgICAgQ29tcGFj
dFZhcmlhYmxlRW52aXJvbm1lbnQoKSA9IGRlZmF1bHQ7CisKICAgICBWZWN0b3I8UmVmUHRyPFVu
aXF1ZWRTdHJpbmdJbXBsPj4gbV92YXJpYWJsZXM7CiAgICAgVmVjdG9yPFZhcmlhYmxlRW52aXJv
bm1lbnRFbnRyeT4gbV92YXJpYWJsZU1ldGFkYXRhOwogICAgIHVuc2lnbmVkIG1faGFzaDsKQEAg
LTE3NCw2ICsxNzksOCBAQCBzdHJ1Y3QgQ29tcGFjdFZhcmlhYmxlTWFwS2V5IHsKICAgICB9CiAK
IHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEtleTsK
KwogICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBtX2Vudmlyb25tZW50OwogfTsKIApA
QCAtMjAyLDggKzIwOSwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6Q29t
cGFjdFZhcmlhYmxlTWFwS2V5PiA6IEdlbmVyaWNIYXNoVHJhaXRzPEpTQwogbmFtZXNwYWNlIEpT
QyB7CiAKIGNsYXNzIENvbXBhY3RWYXJpYWJsZU1hcCA6IHB1YmxpYyBSZWZDb3VudGVkPENvbXBh
Y3RWYXJpYWJsZU1hcD4geworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRDb21wYWN0VmFyaWFibGVN
YXA7CisKIHB1YmxpYzoKICAgICBjbGFzcyBIYW5kbGUgeworICAgICAgICBmcmllbmQgY2xhc3Mg
Q2FjaGVkQ29tcGFjdFZhcmlhYmxlTWFwSGFuZGxlOworCiAgICAgcHVibGljOgogICAgICAgICBI
YW5kbGUoKSA9IGRlZmF1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlZFR5cGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nh
Y2hlZFR5cGVzLmNwcAppbmRleCA2MTBhODNiZjA0OTkzMTlhYjY2Y2VjZWY4MWIwYzZkMjY0ZmNi
MGYzLi5jYmY5ZWNlNDM5YTVlZjQwM2Y5ZTMxMzgzNWFjOTUyN2YzNDcwMThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCkBAIC04NzYsNiArODc2
LDk4IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkSGFzaE1hcDxDYWNoZWRSZWZQdHI8Q2FjaGVkVW5p
cXVlZFN0cmluZ0ltcGw+LCBWYXJpYWJsZUVudmlyb25tZW50RW50cnksIElkZW50aWZpZXJSZXBI
YXNoLCBIYXNoVHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+LCBWYXJpYWJsZUVudmly
b25tZW50RW50cnlIYXNoVHJhaXRzPiBtX21hcDsKIH07CiAKK2NsYXNzIENhY2hlZENvbXBhY3RW
YXJpYWJsZUVudmlyb25tZW50IDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFibGVF
bnZpcm9ubWVudD4geworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpCisgICAgeworICAgICAgICBt
X3ZhcmlhYmxlcy5lbmNvZGUoZW5jb2RlciwgZW52Lm1fdmFyaWFibGVzKTsKKyAgICAgICAgbV92
YXJpYWJsZU1ldGFkYXRhLmVuY29kZShlbmNvZGVyLCBlbnYubV92YXJpYWJsZU1ldGFkYXRhKTsK
KyAgICAgICAgbV9oYXNoID0gZW52Lm1faGFzaDsKKyAgICAgICAgbV9pc0V2ZXJ5dGhpbmdDYXB0
dXJlZCA9IGVudi5tX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworICAgIH0KKworICAgIHZvaWQgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpIGNv
bnN0CisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5kZWNvZGUoZGVjb2RlciwgZW52Lm1fdmFy
aWFibGVzKTsKKyAgICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmRlY29kZShkZWNvZGVyLCBlbnYu
bV92YXJpYWJsZU1ldGFkYXRhKTsKKyAgICAgICAgZW52Lm1faGFzaCA9IG1faGFzaDsKKyAgICAg
ICAgZW52Lm1faXNFdmVyeXRoaW5nQ2FwdHVyZWQgPSBtX2lzRXZlcnl0aGluZ0NhcHR1cmVkOwor
ICAgIH0KKworICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50
KiBlbnYgPSBuZXcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ7CisgICAgICAgIGRlY29kZShk
ZWNvZGVyLCAqZW52KTsKKyAgICAgICAgcmV0dXJuIGVudjsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgQ2FjaGVkVmVjdG9yPENhY2hlZFJlZlB0cjxDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbD4+IG1f
dmFyaWFibGVzOworICAgIENhY2hlZFZlY3RvcjxWYXJpYWJsZUVudmlyb25tZW50RW50cnk+IG1f
dmFyaWFibGVNZXRhZGF0YTsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CisgICAgYm9vbCBtX2lzRXZl
cnl0aGluZ0NhcHR1cmVkOworfTsKKworY2xhc3MgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlTWFwS2V5
IDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFibGVNYXBLZXk+IHsKK3B1YmxpYzoK
KyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb21wYWN0VmFyaWFibGVN
YXBLZXkmIGtleSkKKyAgICB7CisgICAgICAgIG1fZW52aXJvbm1lbnQuZW5jb2RlKGVuY29kZXIs
IGtleS5tX2Vudmlyb25tZW50KTsKKyAgICB9CisKKyAgICB2b2lkIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBDb21wYWN0VmFyaWFibGVNYXBLZXkmIGtleSkgY29uc3QKKyAgICB7CisgICAgICAg
IGtleS5tX2Vudmlyb25tZW50ID0gbV9lbnZpcm9ubWVudC5kZWNvZGUoZGVjb2Rlcik7CisgICAg
fQorCitwcml2YXRlOgorICAgIENhY2hlZFB0cjxDYWNoZWRDb21wYWN0VmFyaWFibGVFbnZpcm9u
bWVudD4gbV9lbnZpcm9ubWVudDsKK307CisKK2NsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1h
cCA6IHB1YmxpYyBDYWNoZWRPYmplY3Q8Q29tcGFjdFZhcmlhYmxlTWFwPiB7CitwdWJsaWM6Cisg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29tcGFjdFZhcmlhYmxlTWFw
JiBtYXApCisgICAgeworICAgICAgICBtX21hcC5lbmNvZGUoZW5jb2RlciwgbWFwLm1fbWFwKTsK
KyAgICB9CisKKyAgICB2b2lkIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb21wYWN0VmFyaWFi
bGVNYXAmIG1hcCkgY29uc3QKKyAgICB7CisgICAgICAgIG1fbWFwLmRlY29kZShkZWNvZGVyLCBt
YXAubV9tYXApOworICAgIH0KKworICAgIENvbXBhY3RWYXJpYWJsZU1hcCogZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBDb21wYWN0VmFyaWFibGVNYXAqIG1h
cCA9IG5ldyBDb21wYWN0VmFyaWFibGVNYXA7CisgICAgICAgIGRlY29kZShkZWNvZGVyLCAqbWFw
KTsKKyAgICAgICAgcmV0dXJuIG1hcDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ2FjaGVkSGFz
aE1hcDxDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBLZXksIHVuc2lnbmVkPiBtX21hcDsKK307CisK
K2NsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZSA6IHB1YmxpYyBDYWNoZWRPYmpl
Y3Q8Q29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSYgaGFu
ZGxlKQorICAgIHsKKyAgICAgICAgbV9lbnZpcm9ubWVudC5lbmNvZGUoZW5jb2RlciwgaGFuZGxl
Lm1fZW52aXJvbm1lbnQpOworICAgICAgICBtX21hcC5lbmNvZGUoZW5jb2RlciwgaGFuZGxlLm1f
bWFwKTsKKyAgICB9CisKKyAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIENvbXBhY3RWYXJpYWJsZU1hcDo6
SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaGFuZGxlLm1fZW52aXJvbm1lbnQgPSBtX2Vudmlyb25t
ZW50LmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgaGFuZGxlLm1fbWFwID0gbV9tYXAuZGVjb2Rl
KGRlY29kZXIpOworICAgICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBDYWNoZWRQdHI8Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ+IG1fZW52aXJvbm1l
bnQ7CisgICAgQ2FjaGVkUmVmUHRyPENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcD4gbV9tYXA7Cit9
OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBTb3VyY2UgPSBTb3VyY2VUeXBlPFQ+
PgogY2xhc3MgQ2FjaGVkQXJyYXkgOiBwdWJsaWMgVmFyaWFibGVMZW5ndGhPYmplY3Q8U291cmNl
Kj4gewogcHVibGljOgpAQCAtMTQ5NSw3ICsxNTg3LDcgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRJ
ZGVudGlmaWVyIG1fZWNtYU5hbWU7CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2luZmVycmVkTmFt
ZTsKIAotICAgIENhY2hlZFZhcmlhYmxlRW52aXJvbm1lbnQgbV9wYXJlbnRTY29wZVREWlZhcmlh
YmxlczsKKyAgICBDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGUgbV9wYXJlbnRTY29wZVRE
WlZhcmlhYmxlczsKIAogICAgIENhY2hlZFdyaXRlQmFycmllcjxDYWNoZWRGdW5jdGlvbkNvZGVC
bG9jaywgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4gbV91bmxpbmtlZENvZGVCbG9ja0ZvckNh
bGw7CiAgICAgQ2FjaGVkV3JpdGVCYXJyaWVyPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrLCBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrPiBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ29uc3RydWN0OwpA
QCAtMTgzMCw3ICsxOTIyLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIENhY2hlZEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVubGkKICAgICBtX2VjbWFO
YW1lLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLmVjbWFOYW1lKCkpOwogICAgIG1faW5mZXJy
ZWROYW1lLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLmluZmVycmVkTmFtZSgpKTsKIAotICAg
IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUucGFy
ZW50U2NvcGVURFpWYXJpYWJsZXMoKSk7CisgICAgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcy5l
bmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5tX3BhcmVudFNjb3BlVERaVmFyaWFibGVzKTsKIAog
ICAgIG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxl
Lm1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsKTsKICAgICBtX3VubGlua2VkQ29kZUJsb2NrRm9y
Q29uc3RydWN0LmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLm1fdW5saW5rZWRDb2RlQmxvY2tG
b3JDb25zdHJ1Y3QpOwpAQCAtMTgzOCwxMCArMTkzMCw4IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBD
YWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBV
bmxpCiAKIEFMV0FZU19JTkxJTkUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIENhY2hlZEZ1
bmN0aW9uRXhlY3V0YWJsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNvbnN0CiB7Ci0gICAg
VmFyaWFibGVFbnZpcm9ubWVudCBlbnY7Ci0gICAgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcy5k
ZWNvZGUoZGVjb2RlciwgZW52KTsKLQotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGU+KGRlY29kZXIudm0oKS5oZWFwKSkgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUo
ZGVjb2RlciwgZW52LCAqdGhpcyk7CisgICAgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgZW52
ID0gbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcy5kZWNvZGUoZGVjb2Rlcik7CisgICAgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oZGVjb2Rlci52bSgpLmhlYXApKSBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShkZWNvZGVyLCBXVEZNb3ZlKGVudiksICp0aGlzKTsKICAg
ICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihkZWNvZGVyLnZtKCkpOwogCiAgICAgbV9jbGFz
c1NvdXJjZS5kZWNvZGUoZGVjb2RlciwgZXhlY3V0YWJsZS0+bV9jbGFzc1NvdXJjZSk7CkBAIC0x
ODUxLDcgKzE5NDEsNyBAQCBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZAogICAgIHJldHVybiBleGVj
dXRhYmxlOwogfQogCi1BTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNvZGVyJiBkZWNvZGVyLCBWYXJpYWJsZUVudmly
b25tZW50JiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcywgY29uc3QgQ2FjaGVkRnVuY3Rpb25FeGVj
dXRhYmxlJiBjYWNoZWRFeGVjdXRhYmxlKQorQUxXQVlTX0lOTElORSBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYgZGVjb2Rlciwg
Q29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgcGFyZW50U2NvcGVURFpWYXJpYWJsZXMsIGNvbnN0
IENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZSYgY2FjaGVkRXhlY3V0YWJsZSkKICAgICA6IEJhc2Uo
ZGVjb2Rlci52bSgpLCBkZWNvZGVyLnZtKCkudW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGVTdHJ1
Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2ZpcnN0TGluZU9mZnNldChjYWNoZWRFeGVjdXRhYmxlLmZp
cnN0TGluZU9mZnNldCgpKQogICAgICwgbV9saW5lQ291bnQoY2FjaGVkRXhlY3V0YWJsZS5saW5l
Q291bnQoKSkKQEAgLTE4ODEsNyArMTk3MSw3IEBAIEFMV0FZU19JTkxJTkUgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXImIGRlCiAg
ICAgLCBtX2VjbWFOYW1lKGNhY2hlZEV4ZWN1dGFibGUuZWNtYU5hbWUoZGVjb2RlcikpCiAgICAg
LCBtX2luZmVycmVkTmFtZShjYWNoZWRFeGVjdXRhYmxlLmluZmVycmVkTmFtZShkZWNvZGVyKSkK
IAotICAgICwgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyhkZWNvZGVyLnZtKCkubV9jb21wYWN0
VmFyaWFibGVNYXAtPmdldChwYXJlbnRTY29wZVREWlZhcmlhYmxlcykpCisgICAgLCBtX3BhcmVu
dFNjb3BlVERaVmFyaWFibGVzKFdURk1vdmUocGFyZW50U2NvcGVURFpWYXJpYWJsZXMpKQogewog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362435</attachid>
            <date>2019-02-19 14:49:23 -0800</date>
            <delta_ts>2019-02-20 01:02:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194706-20190219234846.patch</filename>
            <type>text/plain</type>
            <size>10610</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YzJmMDI1MDhmMDQyNjQ5NWVlNDU5MTMzMjg4M2NiNGM2YmEwMmQzLi41NTRjOTVmZTI1ZWI3NzJj
MWNhMmNjNjMwMGZjMGNjZTBkODQ2NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOS0wMi0xOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52
aXJvbm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdl
IHdlcmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRo
ZSBleGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0
IHNvCisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZp
cm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOgorICAgICAgICAo
SlNDOjpDb21wYWN0VmFyaWFibGVNYXA6OmdldCk6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxl
RW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OmVuY29kZSk6CisgICAg
ICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OjpkZWNvZGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU6OmVuY29kZSk6
CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTo6ZGVjb2RlIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUpOgor
ICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSk6CisKIDIwMTktMDItMTkgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBieXRlY29kZSBjYWNoZS1yZWxhdGVkIGZpbGVzeXN0ZW0g
Y29kZSBvdXQgb2YgQ29kZUNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IGRlZmQyZjA4
Yjg3MTgxZTZiN2Y0ZmY2MDE1NjkwN2ZkYjZlYjM5N2YuLmIwYzMwNWUyZjViOWQwYjMzODU4MWFi
ZDY5ZjA4ZGU4Nzc1M2ZlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0xOTEsNyArMTkx
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiwgVW5saW5rZWRGdW5jdGlvbktpbmQsIENvbnN0cnVjdEFiaWxpdHksIEpTUGFyc2VyU2NyaXB0
TW9kZSwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsICBKU0M6OkRlcml2ZWRDb250ZXh0VHlw
ZSwgYm9vbCBpc0J1aWx0aW5EZWZhdWx0Q2xhc3NDb25zdHJ1Y3Rvcik7Ci0gICAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYsIFZhcmlhYmxlRW52aXJvbm1lbnQmLCBjb25zdCBD
YWNoZWRGdW5jdGlvbkV4ZWN1dGFibGUmKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZShEZWNvZGVyJiwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsIGNvbnN0IENhY2hlZEZ1bmN0
aW9uRXhlY3V0YWJsZSYpOwogCiAgICAgdW5zaWduZWQgbV9maXJzdExpbmVPZmZzZXQ7CiAgICAg
dW5zaWduZWQgbV9saW5lQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmNwcAppbmRleCBhOTNhZTdhZGJkZmU2Njg2YzkzYjdm
YzE4NTA3MzdkOWUxZjBmMWJiLi43NmUwYzI4OGM2NTJlMTE2ZTE0MGJkMDY3OTdiODNjMjRkMTcy
ZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52
aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVF
bnZpcm9ubWVudC5jcHAKQEAgLTE1MywxMyArMTUzLDE4IEBAIFZhcmlhYmxlRW52aXJvbm1lbnQg
Q29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OnRvVmFyaWFibGVFbnZpcm9ubWVudCgpIGNvbnN0
CiAKIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIENvbXBhY3RWYXJpYWJsZU1hcDo6Z2V0KGNv
bnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGVudikKIHsKLSAgICBhdXRvKiBlbnZpcm9ubWVudCA9
IG5ldyBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudChlbnYpOworICAgIHJldHVybiBnZXQobmV3
IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KGVudikpOworfQorCitDb21wYWN0VmFyaWFibGVN
YXA6OkhhbmRsZSBDb21wYWN0VmFyaWFibGVNYXA6OmdldChDb21wYWN0VmFyaWFibGVFbnZpcm9u
bWVudCogZW52aXJvbm1lbnQsIERlbGV0ZVVudXNlZEVudmlyb25tZW50IGRlbGV0ZVVudXNlZEVu
dmlyb25tZW50KQorewogICAgIENvbXBhY3RWYXJpYWJsZU1hcEtleSBrZXkgeyAqZW52aXJvbm1l
bnQgfTsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWFwLmFkZChrZXksIDEpOwogICAgIGlmIChh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuIENvbXBhY3RWYXJpYWJsZU1hcDo6
SGFuZGxlKCplbnZpcm9ubWVudCwgKnRoaXMpOwogCi0gICAgZGVsZXRlIGVudmlyb25tZW50Owor
ICAgIGlmIChkZWxldGVVbnVzZWRFbnZpcm9ubWVudCkKKyAgICAgICAgZGVsZXRlIGVudmlyb25t
ZW50OwogICAgICsrYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICByZXR1cm4gQ29tcGFj
dFZhcmlhYmxlTWFwOjpIYW5kbGUoYWRkUmVzdWx0Lml0ZXJhdG9yLT5rZXkuZW52aXJvbm1lbnQo
KSwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9W
YXJpYWJsZUVudmlyb25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Zhcmlh
YmxlRW52aXJvbm1lbnQuaAppbmRleCBlZTZjY2U2ZTc4NmNhNTZhYTAwMDgxZDA5NWYwMjY0YmMz
Y2JlZTVhLi4wMjgwMGQ2OWM2Mjk2MjdhYTcyZmE0ZTRjYzI2N2Y3Njg1MTUxNTRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaApA
QCAtMTI1LDYgKzEyNSw5IEBAIHByaXZhdGU6CiBjbGFzcyBDb21wYWN0VmFyaWFibGVFbnZpcm9u
bWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQpOworCisgICAgZnJpZW5kIGNsYXNzIENh
Y2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OworCiBwdWJsaWM6CiAgICAgQ29tcGFjdFZh
cmlhYmxlRW52aXJvbm1lbnQoY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYpOwogICAgIFZhcmlh
YmxlRW52aXJvbm1lbnQgdG9WYXJpYWJsZUVudmlyb25tZW50KCkgY29uc3Q7CkBAIC0xMzMsNiAr
MTM2LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVybiBtX2hh
c2g7IH0KIAogcHJpdmF0ZToKKyAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCgpID0gZGVm
YXVsdDsKKwogICAgIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiBtX3ZhcmlhYmxl
czsKICAgICBWZWN0b3I8VmFyaWFibGVFbnZpcm9ubWVudEVudHJ5PiBtX3ZhcmlhYmxlTWV0YWRh
dGE7CiAgICAgdW5zaWduZWQgbV9oYXNoOwpAQCAtMjA0LDYgKzIwOSw4IEBAIG5hbWVzcGFjZSBK
U0MgewogY2xhc3MgQ29tcGFjdFZhcmlhYmxlTWFwIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcGFj
dFZhcmlhYmxlTWFwPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgSGFuZGxlIHsKKyAgICAgICAgZnJp
ZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTsKKwogICAgIHB1YmxpYzoK
ICAgICAgICAgSGFuZGxlKCkgPSBkZWZhdWx0OwogCkBAIC0yNDEsNiArMjQ4LDEyIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSGFuZGxlOworICAgIGZyaWVuZCBjbGFz
cyBDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU7CisKKyAgICBlbnVtIERlbGV0ZVVudXNl
ZEVudmlyb25tZW50IHsgTm8sIFllcyB9OworCisgICAgSGFuZGxlIGdldChDb21wYWN0VmFyaWFi
bGVFbnZpcm9ubWVudCosIERlbGV0ZVVudXNlZEVudmlyb25tZW50ID0gWWVzKTsKKwogICAgIEhh
c2hNYXA8Q29tcGFjdFZhcmlhYmxlTWFwS2V5LCB1bnNpZ25lZD4gbV9tYXA7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggYWNkOTVk
ZmE5NjUwZWQwMTM0NjIxNWRhNDM3OTkyODVjZjQ2NjJmOC4uNzgwZjNlMmNiNjRlYTQzYTM2NmZh
ZTVlMjNhMjY4NzU2ZmExYWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlZFR5cGVzLmNwcApAQCAtODc4LDYgKzg3OCw1NCBAQCBwcml2YXRlOgogICAgIENhY2hl
ZEhhc2hNYXA8Q2FjaGVkUmVmUHRyPENhY2hlZFVuaXF1ZWRTdHJpbmdJbXBsPiwgVmFyaWFibGVF
bnZpcm9ubWVudEVudHJ5LCBJZGVudGlmaWVyUmVwSGFzaCwgSGFzaFRyYWl0czxSZWZQdHI8VW5p
cXVlZFN0cmluZ0ltcGw+PiwgVmFyaWFibGVFbnZpcm9ubWVudEVudHJ5SGFzaFRyYWl0cz4gbV9t
YXA7CiB9OwogCitjbGFzcyBDYWNoZWRDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCA6IHB1Ymxp
YyBDYWNoZWRPYmplY3Q8Q29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ+IHsKK3B1YmxpYzoKKyAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb21wYWN0VmFyaWFibGVFbnZp
cm9ubWVudCYgZW52KQorICAgIHsKKyAgICAgICAgbV92YXJpYWJsZXMuZW5jb2RlKGVuY29kZXIs
IGVudi5tX3ZhcmlhYmxlcyk7CisgICAgICAgIG1fdmFyaWFibGVNZXRhZGF0YS5lbmNvZGUoZW5j
b2RlciwgZW52Lm1fdmFyaWFibGVNZXRhZGF0YSk7CisgICAgICAgIG1faGFzaCA9IGVudi5tX2hh
c2g7CisgICAgICAgIG1faXNFdmVyeXRoaW5nQ2FwdHVyZWQgPSBlbnYubV9pc0V2ZXJ5dGhpbmdD
YXB0dXJlZDsKKyAgICB9CisKKyAgICB2b2lkIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb21w
YWN0VmFyaWFibGVFbnZpcm9ubWVudCYgZW52KSBjb25zdAorICAgIHsKKyAgICAgICAgbV92YXJp
YWJsZXMuZGVjb2RlKGRlY29kZXIsIGVudi5tX3ZhcmlhYmxlcyk7CisgICAgICAgIG1fdmFyaWFi
bGVNZXRhZGF0YS5kZWNvZGUoZGVjb2RlciwgZW52Lm1fdmFyaWFibGVNZXRhZGF0YSk7CisgICAg
ICAgIGVudi5tX2hhc2ggPSBtX2hhc2g7CisgICAgICAgIGVudi5tX2lzRXZlcnl0aGluZ0NhcHR1
cmVkID0gbV9pc0V2ZXJ5dGhpbmdDYXB0dXJlZDsKKyAgICB9CisKKyAgICBDb21wYWN0VmFyaWFi
bGVFbnZpcm9ubWVudCogZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCogZW52ID0gbmV3IENvbXBhY3RWYXJpYWJs
ZUVudmlyb25tZW50OworICAgICAgICBkZWNvZGUoZGVjb2RlciwgKmVudik7CisgICAgICAgIHJl
dHVybiBlbnY7CisgICAgfQorCitwcml2YXRlOgorICAgIENhY2hlZFZlY3RvcjxDYWNoZWRSZWZQ
dHI8Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw+PiBtX3ZhcmlhYmxlczsKKyAgICBDYWNoZWRWZWN0
b3I8VmFyaWFibGVFbnZpcm9ubWVudEVudHJ5PiBtX3ZhcmlhYmxlTWV0YWRhdGE7CisgICAgdW5z
aWduZWQgbV9oYXNoOworICAgIGJvb2wgbV9pc0V2ZXJ5dGhpbmdDYXB0dXJlZDsKK307CisKK2Ns
YXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZSA6IHB1YmxpYyBDYWNoZWRPYmplY3Q8
Q29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSYgaGFuZGxl
KQorICAgIHsKKyAgICAgICAgbV9lbnZpcm9ubWVudC5lbmNvZGUoZW5jb2RlciwgaGFuZGxlLm1f
ZW52aXJvbm1lbnQpOworICAgIH0KKworICAgIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlY29k
ZXIudm0oKS5tX2NvbXBhY3RWYXJpYWJsZU1hcC0+Z2V0KG1fZW52aXJvbm1lbnQuZGVjb2RlKGRl
Y29kZXIpLCBDb21wYWN0VmFyaWFibGVNYXA6OkRlbGV0ZVVudXNlZEVudmlyb25tZW50OjpObyk7
CisgICAgfQorCitwcml2YXRlOgorICAgIENhY2hlZFB0cjxDYWNoZWRDb21wYWN0VmFyaWFibGVF
bnZpcm9ubWVudD4gbV9lbnZpcm9ubWVudDsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFNvdXJjZSA9IFNvdXJjZVR5cGU8VD4+CiBjbGFzcyBDYWNoZWRBcnJheSA6IHB1Ymxp
YyBWYXJpYWJsZUxlbmd0aE9iamVjdDxTb3VyY2UqPiB7CiBwdWJsaWM6CkBAIC0xNTE3LDcgKzE1
NjUsNyBAQCBwcml2YXRlOgogICAgIENhY2hlZElkZW50aWZpZXIgbV9lY21hTmFtZTsKICAgICBD
YWNoZWRJZGVudGlmaWVyIG1faW5mZXJyZWROYW1lOwogCi0gICAgQ2FjaGVkVmFyaWFibGVFbnZp
cm9ubWVudCBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzOworICAgIENhY2hlZENvbXBhY3RWYXJp
YWJsZU1hcEhhbmRsZSBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzOwogCiAgICAgQ2FjaGVkV3Jp
dGVCYXJyaWVyPENhY2hlZEZ1bmN0aW9uQ29kZUJsb2NrLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJs
b2NrPiBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbDsKICAgICBDYWNoZWRXcml0ZUJhcnJpZXI8
Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+IG1fdW5s
aW5rZWRDb2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CkBAIC0xODUyLDcgKzE5MDAsNyBAQCBBTFdBWVNf
SU5MSU5FIHZvaWQgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVW5saQogICAgIG1fZWNtYU5hbWUuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFi
bGUuZWNtYU5hbWUoKSk7CiAgICAgbV9pbmZlcnJlZE5hbWUuZW5jb2RlKGVuY29kZXIsIGV4ZWN1
dGFibGUuaW5mZXJyZWROYW1lKCkpOwogCi0gICAgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcy5l
bmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5wYXJlbnRTY29wZVREWlZhcmlhYmxlcygpKTsKKyAg
ICBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLm1f
cGFyZW50U2NvcGVURFpWYXJpYWJsZXMpOwogCiAgICAgbV91bmxpbmtlZENvZGVCbG9ja0ZvckNh
bGwuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUubV91bmxpbmtlZENvZGVCbG9ja0ZvckNhbGwp
OwogICAgIG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDb25zdHJ1Y3QuZW5jb2RlKGVuY29kZXIsIGV4
ZWN1dGFibGUubV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdCk7CkBAIC0xODYwLDEwICsx
OTA4LDggQEAgQUxXQVlTX0lOTElORSB2b2lkIENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVubGkKIAogQUxXQVlTX0lOTElORSBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZSogQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikgY29uc3QKIHsKLSAgICBWYXJpYWJsZUVudmlyb25tZW50IGVudjsKLSAg
ICBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzLmRlY29kZShkZWNvZGVyLCBlbnYpOwotCi0gICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oZGVjb2Rlci52bSgpLmhlYXAp
KSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShkZWNvZGVyLCBlbnYsICp0aGlzKTsKKyAgICBD
b21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBlbnYgPSBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVz
LmRlY29kZShkZWNvZGVyKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlPihkZWNvZGVyLnZtKCkuaGVhcCkpIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKGRlY29k
ZXIsIFdURk1vdmUoZW52KSwgKnRoaXMpOwogICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KGRlY29kZXIudm0oKSk7CiAKICAgICBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbC5kZWNvZGUo
ZGVjb2RlciwgZXhlY3V0YWJsZS0+bV91bmxpbmtlZENvZGVCbG9ja0ZvckNhbGwsIGV4ZWN1dGFi
bGUpOwpAQCAtMTg3Miw3ICsxOTE4LDcgQEAgQUxXQVlTX0lOTElORSBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSogQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjpkZWNvZGUoRGVjb2QKICAgICBy
ZXR1cm4gZXhlY3V0YWJsZTsKIH0KIAotQUxXQVlTX0lOTElORSBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYgZGVjb2RlciwgVmFy
aWFibGVFbnZpcm9ubWVudCYgcGFyZW50U2NvcGVURFpWYXJpYWJsZXMsIGNvbnN0IENhY2hlZEZ1
bmN0aW9uRXhlY3V0YWJsZSYgY2FjaGVkRXhlY3V0YWJsZSkKK0FMV0FZU19JTkxJTkUgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXIm
IGRlY29kZXIsIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIHBhcmVudFNjb3BlVERaVmFyaWFi
bGVzLCBjb25zdCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGUmIGNhY2hlZEV4ZWN1dGFibGUpCiAg
ICAgOiBCYXNlKGRlY29kZXIudm0oKSwgZGVjb2Rlci52bSgpLnVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlU3RydWN0dXJlLmdldCgpKQogICAgICwgbV9maXJzdExpbmVPZmZzZXQoY2FjaGVkRXhl
Y3V0YWJsZS5maXJzdExpbmVPZmZzZXQoKSkKICAgICAsIG1fbGluZUNvdW50KGNhY2hlZEV4ZWN1
dGFibGUubGluZUNvdW50KCkpCkBAIC0xOTAyLDcgKzE5NDgsNyBAQCBBTFdBWVNfSU5MSU5FIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNv
ZGVyJiBkZQogICAgICwgbV9lY21hTmFtZShjYWNoZWRFeGVjdXRhYmxlLmVjbWFOYW1lKGRlY29k
ZXIpKQogICAgICwgbV9pbmZlcnJlZE5hbWUoY2FjaGVkRXhlY3V0YWJsZS5pbmZlcnJlZE5hbWUo
ZGVjb2RlcikpCiAKLSAgICAsIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMoZGVjb2Rlci52bSgp
Lm1fY29tcGFjdFZhcmlhYmxlTWFwLT5nZXQocGFyZW50U2NvcGVURFpWYXJpYWJsZXMpKQorICAg
ICwgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyhXVEZNb3ZlKHBhcmVudFNjb3BlVERaVmFyaWFi
bGVzKSkKIAogICAgICwgbV9yYXJlRGF0YShjYWNoZWRFeGVjdXRhYmxlLnJhcmVEYXRhKGRlY29k
ZXIpKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362485</attachid>
            <date>2019-02-20 01:02:49 -0800</date>
            <delta_ts>2019-02-20 08:15:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194706-20190220100211.patch</filename>
            <type>text/plain</type>
            <size>13636</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YzJmMDI1MDhmMDQyNjQ5NWVlNDU5MTMzMjg4M2NiNGM2YmEwMmQzLi41NTRjOTVmZTI1ZWI3NzJj
MWNhMmNjNjMwMGZjMGNjZTBkODQ2NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOS0wMi0xOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52
aXJvbm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdl
IHdlcmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRo
ZSBleGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0
IHNvCisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZp
cm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOgorICAgICAgICAo
SlNDOjpDb21wYWN0VmFyaWFibGVNYXA6OmdldCk6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxl
RW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OmVuY29kZSk6CisgICAg
ICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OjpkZWNvZGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU6OmVuY29kZSk6
CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTo6ZGVjb2RlIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUpOgor
ICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSk6CisKIDIwMTktMDItMTkgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBieXRlY29kZSBjYWNoZS1yZWxhdGVkIGZpbGVzeXN0ZW0g
Y29kZSBvdXQgb2YgQ29kZUNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IGRlZmQyZjA4
Yjg3MTgxZTZiN2Y0ZmY2MDE1NjkwN2ZkYjZlYjM5N2YuLmIwYzMwNWUyZjViOWQwYjMzODU4MWFi
ZDY5ZjA4ZGU4Nzc1M2ZlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0xOTEsNyArMTkx
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiwgVW5saW5rZWRGdW5jdGlvbktpbmQsIENvbnN0cnVjdEFiaWxpdHksIEpTUGFyc2VyU2NyaXB0
TW9kZSwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsICBKU0M6OkRlcml2ZWRDb250ZXh0VHlw
ZSwgYm9vbCBpc0J1aWx0aW5EZWZhdWx0Q2xhc3NDb25zdHJ1Y3Rvcik7Ci0gICAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYsIFZhcmlhYmxlRW52aXJvbm1lbnQmLCBjb25zdCBD
YWNoZWRGdW5jdGlvbkV4ZWN1dGFibGUmKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZShEZWNvZGVyJiwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsIGNvbnN0IENhY2hlZEZ1bmN0
aW9uRXhlY3V0YWJsZSYpOwogCiAgICAgdW5zaWduZWQgbV9maXJzdExpbmVPZmZzZXQ7CiAgICAg
dW5zaWduZWQgbV9saW5lQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmNwcAppbmRleCBhOTNhZTdhZGJkZmU2Njg2YzkzYjdm
YzE4NTA3MzdkOWUxZjBmMWJiLi43NmUwYzI4OGM2NTJlMTE2ZTE0MGJkMDY3OTdiODNjMjRkMTcy
ZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52
aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVF
bnZpcm9ubWVudC5jcHAKQEAgLTE1MywxMyArMTUzLDE4IEBAIFZhcmlhYmxlRW52aXJvbm1lbnQg
Q29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OnRvVmFyaWFibGVFbnZpcm9ubWVudCgpIGNvbnN0
CiAKIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIENvbXBhY3RWYXJpYWJsZU1hcDo6Z2V0KGNv
bnN0IFZhcmlhYmxlRW52aXJvbm1lbnQmIGVudikKIHsKLSAgICBhdXRvKiBlbnZpcm9ubWVudCA9
IG5ldyBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudChlbnYpOworICAgIHJldHVybiBnZXQobmV3
IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KGVudikpOworfQorCitDb21wYWN0VmFyaWFibGVN
YXA6OkhhbmRsZSBDb21wYWN0VmFyaWFibGVNYXA6OmdldChDb21wYWN0VmFyaWFibGVFbnZpcm9u
bWVudCogZW52aXJvbm1lbnQsIERlbGV0ZVVudXNlZEVudmlyb25tZW50IGRlbGV0ZVVudXNlZEVu
dmlyb25tZW50KQorewogICAgIENvbXBhY3RWYXJpYWJsZU1hcEtleSBrZXkgeyAqZW52aXJvbm1l
bnQgfTsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWFwLmFkZChrZXksIDEpOwogICAgIGlmIChh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuIENvbXBhY3RWYXJpYWJsZU1hcDo6
SGFuZGxlKCplbnZpcm9ubWVudCwgKnRoaXMpOwogCi0gICAgZGVsZXRlIGVudmlyb25tZW50Owor
ICAgIGlmIChkZWxldGVVbnVzZWRFbnZpcm9ubWVudCkKKyAgICAgICAgZGVsZXRlIGVudmlyb25t
ZW50OwogICAgICsrYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICByZXR1cm4gQ29tcGFj
dFZhcmlhYmxlTWFwOjpIYW5kbGUoYWRkUmVzdWx0Lml0ZXJhdG9yLT5rZXkuZW52aXJvbm1lbnQo
KSwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9W
YXJpYWJsZUVudmlyb25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Zhcmlh
YmxlRW52aXJvbm1lbnQuaAppbmRleCBlZTZjY2U2ZTc4NmNhNTZhYTAwMDgxZDA5NWYwMjY0YmMz
Y2JlZTVhLi4wMjgwMGQ2OWM2Mjk2MjdhYTcyZmE0ZTRjYzI2N2Y3Njg1MTUxNTRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaApA
QCAtMTI1LDYgKzEyNSw5IEBAIHByaXZhdGU6CiBjbGFzcyBDb21wYWN0VmFyaWFibGVFbnZpcm9u
bWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQpOworCisgICAgZnJpZW5kIGNsYXNzIENh
Y2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OworCiBwdWJsaWM6CiAgICAgQ29tcGFjdFZh
cmlhYmxlRW52aXJvbm1lbnQoY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYpOwogICAgIFZhcmlh
YmxlRW52aXJvbm1lbnQgdG9WYXJpYWJsZUVudmlyb25tZW50KCkgY29uc3Q7CkBAIC0xMzMsNiAr
MTM2LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVybiBtX2hh
c2g7IH0KIAogcHJpdmF0ZToKKyAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCgpID0gZGVm
YXVsdDsKKwogICAgIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiBtX3ZhcmlhYmxl
czsKICAgICBWZWN0b3I8VmFyaWFibGVFbnZpcm9ubWVudEVudHJ5PiBtX3ZhcmlhYmxlTWV0YWRh
dGE7CiAgICAgdW5zaWduZWQgbV9oYXNoOwpAQCAtMjA0LDYgKzIwOSw4IEBAIG5hbWVzcGFjZSBK
U0MgewogY2xhc3MgQ29tcGFjdFZhcmlhYmxlTWFwIDogcHVibGljIFJlZkNvdW50ZWQ8Q29tcGFj
dFZhcmlhYmxlTWFwPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgSGFuZGxlIHsKKyAgICAgICAgZnJp
ZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTsKKwogICAgIHB1YmxpYzoK
ICAgICAgICAgSGFuZGxlKCkgPSBkZWZhdWx0OwogCkBAIC0yNDEsNiArMjQ4LDEyIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSGFuZGxlOworICAgIGZyaWVuZCBjbGFz
cyBDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU7CisKKyAgICBlbnVtIERlbGV0ZVVudXNl
ZEVudmlyb25tZW50IHsgTm8sIFllcyB9OworCisgICAgSGFuZGxlIGdldChDb21wYWN0VmFyaWFi
bGVFbnZpcm9ubWVudCosIERlbGV0ZVVudXNlZEVudmlyb25tZW50ID0gWWVzKTsKKwogICAgIEhh
c2hNYXA8Q29tcGFjdFZhcmlhYmxlTWFwS2V5LCB1bnNpZ25lZD4gbV9tYXA7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggYWNkOTVk
ZmE5NjUwZWQwMTM0NjIxNWRhNDM3OTkyODVjZjQ2NjJmOC4uN2I1YzU5ZTdkMjM3YmNlNGZlODNh
MGI3YTg1ZDFmNTVjNmU4ZjAwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlZFR5cGVzLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9w
dHJUb09mZnNldE1hcC5hZGQocHRyLCBvZmZzZXQpOwogICAgIH0KIAotICAgIFdURjo6T3B0aW9u
YWw8cHRyZGlmZl90PiBvZmZzZXRGb3JQdHIoY29uc3Qgdm9pZCogcHRyKQorICAgIFdURjo6T3B0
aW9uYWw8cHRyZGlmZl90PiBjYWNoZWRPZmZzZXRGb3JQdHIoY29uc3Qgdm9pZCogcHRyKQogICAg
IHsKICAgICAgICAgYXV0byBpdCA9IG1fcHRyVG9PZmZzZXRNYXAuZmluZChwdHIpOwogICAgICAg
ICBpZiAoaXQgPT0gbV9wdHJUb09mZnNldE1hcC5lbmQoKSkKQEAgLTI0NSw3ICsyNDUsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fb2Zmc2V0VG9QdHJNYXAuYWRkKG9mZnNldCwgcHRyKTsKICAgICB9
CiAKLSAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBwdHJGb3JPZmZzZXQocHRyZGlmZl90IG9mZnNl
dCkKKyAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBjYWNoZWRQdHJGb3JPZmZzZXQocHRyZGlmZl90
IG9mZnNldCkKICAgICB7CiAgICAgICAgIGF1dG8gaXQgPSBtX29mZnNldFRvUHRyTWFwLmZpbmQo
b2Zmc2V0KTsKICAgICAgICAgaWYgKGl0ID09IG1fb2Zmc2V0VG9QdHJNYXAuZW5kKCkpCkBAIC0z
NzcsNyArMzc3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAobV9pc0VtcHR5KQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChXVEY6Ok9wdGlvbmFsPHB0cmRpZmZfdD4gb2Zmc2V0
ID0gZW5jb2Rlci5vZmZzZXRGb3JQdHIoc3JjKSkgeworICAgICAgICBpZiAoV1RGOjpPcHRpb25h
bDxwdHJkaWZmX3Q+IG9mZnNldCA9IGVuY29kZXIuY2FjaGVkT2Zmc2V0Rm9yUHRyKHNyYykpIHsK
ICAgICAgICAgICAgIHRoaXMtPm1fb2Zmc2V0ID0gKm9mZnNldCAtIGVuY29kZXIub2Zmc2V0T2Yo
JnRoaXMtPm1fb2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzg4
LDIwICszODgsMzIgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3M+Ci0gICAgU291cmNlKiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXJncy4uLiBhcmdz
KSBjb25zdAorICAgIFNvdXJjZSogZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGJvb2wmIGlzTmV3
QWxsb2NhdGlvbiwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV9p
c0VtcHR5KQorICAgICAgICBpZiAobV9pc0VtcHR5KSB7CisgICAgICAgICAgICBpc05ld0FsbG9j
YXRpb24gPSBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CiAK
ICAgICAgICAgcHRyZGlmZl90IGJ1ZmZlck9mZnNldCA9IGRlY29kZXIub2Zmc2V0T2YodGhpcy0+
YnVmZmVyKCkpOwotICAgICAgICBpZiAoV1RGOjpPcHRpb25hbDx2b2lkKj4gcHRyID0gZGVjb2Rl
ci5wdHJGb3JPZmZzZXQoYnVmZmVyT2Zmc2V0KSkKKyAgICAgICAgaWYgKFdURjo6T3B0aW9uYWw8
dm9pZCo+IHB0ciA9IGRlY29kZXIuY2FjaGVkUHRyRm9yT2Zmc2V0KGJ1ZmZlck9mZnNldCkpIHsK
KyAgICAgICAgICAgIGlzTmV3QWxsb2NhdGlvbiA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8U291cmNlKj4oKnB0cik7CisgICAgICAgIH0KIAotICAgICAgICBT
b3VyY2UqIHB0ciA9IGdldCgpLT5kZWNvZGUoZGVjb2RlciwgYXJncy4uLik7CisgICAgICAgIGlz
TmV3QWxsb2NhdGlvbiA9IHRydWU7CisgICAgICAgIFNvdXJjZSogcHRyID0gZ2V0KCktPmRlY29k
ZShkZWNvZGVyLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwogICAgICAgICBkZWNvZGVy
LmNhY2hlT2Zmc2V0KGJ1ZmZlck9mZnNldCwgcHRyKTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIFNvdXJjZSogZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIEFyZ3MmJi4uLiBhcmdzKSBjb25zdAorICAgIHsKKyAgICAgICAg
Ym9vbCB1bnVzZWRJc05ld0FsbG9jYXRpb247CisgICAgICAgIHJldHVybiBkZWNvZGUoZGVjb2Rl
ciwgdW51c2VkSXNOZXdBbGxvY2F0aW9uLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwor
ICAgIH0KKwogICAgIGNvbnN0IFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBnZXQoKTsg
fQogCiBwcml2YXRlOgpAQCAtNDMxLDEwICs0NDMsMTIgQEAgcHVibGljOgogCiAgICAgUmVmUHRy
PFNvdXJjZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBT
b3VyY2UqIGRlY29kZWRQdHIgPSBtX3B0ci5kZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJvb2wg
aXNOZXdBbGxvY2F0aW9uOworICAgICAgICBTb3VyY2UqIGRlY29kZWRQdHIgPSBtX3B0ci5kZWNv
ZGUoZGVjb2RlciwgaXNOZXdBbGxvY2F0aW9uKTsKICAgICAgICAgaWYgKCFkZWNvZGVkUHRyKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGRlY29kZXIuYWRkRmluYWxpemVy
KGRlY29kZXIub2Zmc2V0T2YobV9wdHIuYnVmZmVyKCkpLCBbPV0geyBkZXJlZklmTm90TnVsbChk
ZWNvZGVkUHRyKTsgfSk7CisgICAgICAgIGlmIChpc05ld0FsbG9jYXRpb24pCisgICAgICAgICAg
ICBkZWNvZGVyLmFkZEZpbmFsaXplcihkZWNvZGVyLm9mZnNldE9mKG1fcHRyLmJ1ZmZlcigpKSwg
Wz1dIHsgZGVyZWZJZk5vdE51bGwoZGVjb2RlZFB0cik7IH0pOwogICAgICAgICByZWZJZk5vdE51
bGwoZGVjb2RlZFB0cik7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihkZWNvZGVkUHRyKTsKICAg
ICB9CkBAIC04NzgsNiArODkyLDU3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkSGFzaE1hcDxDYWNo
ZWRSZWZQdHI8Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw+LCBWYXJpYWJsZUVudmlyb25tZW50RW50
cnksIElkZW50aWZpZXJSZXBIYXNoLCBIYXNoVHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1w
bD4+LCBWYXJpYWJsZUVudmlyb25tZW50RW50cnlIYXNoVHJhaXRzPiBtX21hcDsKIH07CiAKK2Ns
YXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50IDogcHVibGljIENhY2hlZE9iamVj
dDxDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudD4geworcHVibGljOgorICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYp
CisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5lbmNvZGUoZW5jb2RlciwgZW52Lm1fdmFyaWFi
bGVzKTsKKyAgICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmVuY29kZShlbmNvZGVyLCBlbnYubV92
YXJpYWJsZU1ldGFkYXRhKTsKKyAgICAgICAgbV9oYXNoID0gZW52Lm1faGFzaDsKKyAgICAgICAg
bV9pc0V2ZXJ5dGhpbmdDYXB0dXJlZCA9IGVudi5tX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworICAg
IH0KKworICAgIHZvaWQgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIENvbXBhY3RWYXJpYWJsZUVu
dmlyb25tZW50JiBlbnYpIGNvbnN0CisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5kZWNvZGUo
ZGVjb2RlciwgZW52Lm1fdmFyaWFibGVzKTsKKyAgICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmRl
Y29kZShkZWNvZGVyLCBlbnYubV92YXJpYWJsZU1ldGFkYXRhKTsKKyAgICAgICAgZW52Lm1faGFz
aCA9IG1faGFzaDsKKyAgICAgICAgZW52Lm1faXNFdmVyeXRoaW5nQ2FwdHVyZWQgPSBtX2lzRXZl
cnl0aGluZ0NhcHR1cmVkOworICAgIH0KKworICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50
KiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIENvbXBhY3RW
YXJpYWJsZUVudmlyb25tZW50KiBlbnYgPSBuZXcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ7
CisgICAgICAgIGRlY29kZShkZWNvZGVyLCAqZW52KTsKKyAgICAgICAgcmV0dXJuIGVudjsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgQ2FjaGVkVmVjdG9yPENhY2hlZFJlZlB0cjxDYWNoZWRVbmlx
dWVkU3RyaW5nSW1wbD4+IG1fdmFyaWFibGVzOworICAgIENhY2hlZFZlY3RvcjxWYXJpYWJsZUVu
dmlyb25tZW50RW50cnk+IG1fdmFyaWFibGVNZXRhZGF0YTsKKyAgICB1bnNpZ25lZCBtX2hhc2g7
CisgICAgYm9vbCBtX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworfTsKKworY2xhc3MgQ2FjaGVkQ29t
cGFjdFZhcmlhYmxlTWFwSGFuZGxlIDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFi
bGVNYXA6OkhhbmRsZT4geworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlJiBoYW5kbGUpCisgICAgeworICAg
ICAgICBtX2Vudmlyb25tZW50LmVuY29kZShlbmNvZGVyLCBoYW5kbGUubV9lbnZpcm9ubWVudCk7
CisgICAgfQorCisgICAgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBib29sIGlzTmV3QWxsb2NhdGlvbjsKKyAg
ICAgICAgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQqIGVudmlyb25tZW50ID0gbV9lbnZpcm9u
bWVudC5kZWNvZGUoZGVjb2RlciwgaXNOZXdBbGxvY2F0aW9uKTsKKyAgICAgICAgYXV0byBkZWxl
dGVVbnVzZWRFbnZpcm9ubWVudCA9IGlzTmV3QWxsb2NhdGlvbiA/IENvbXBhY3RWYXJpYWJsZU1h
cDo6RGVsZXRlVW51c2VkRW52aXJvbm1lbnQ6OlllcyA6IENvbXBhY3RWYXJpYWJsZU1hcDo6RGVs
ZXRlVW51c2VkRW52aXJvbm1lbnQ6Ok5vOworICAgICAgICByZXR1cm4gZGVjb2Rlci52bSgpLm1f
Y29tcGFjdFZhcmlhYmxlTWFwLT5nZXQoZW52aXJvbm1lbnQsIGRlbGV0ZVVudXNlZEVudmlyb25t
ZW50KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ2FjaGVkUHRyPENhY2hlZENvbXBhY3RWYXJp
YWJsZUVudmlyb25tZW50PiBtX2Vudmlyb25tZW50OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgU291cmNlID0gU291cmNlVHlwZTxUPj4KIGNsYXNzIENhY2hlZEFycmF5IDog
cHVibGljIFZhcmlhYmxlTGVuZ3RoT2JqZWN0PFNvdXJjZSo+IHsKIHB1YmxpYzoKQEAgLTE1MTcs
NyArMTU4Miw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2VjbWFOYW1lOwog
ICAgIENhY2hlZElkZW50aWZpZXIgbV9pbmZlcnJlZE5hbWU7CiAKLSAgICBDYWNoZWRWYXJpYWJs
ZUVudmlyb25tZW50IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CisgICAgQ2FjaGVkQ29tcGFj
dFZhcmlhYmxlTWFwSGFuZGxlIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CiAKICAgICBDYWNo
ZWRXcml0ZUJhcnJpZXI8Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2s+IG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsOwogICAgIENhY2hlZFdyaXRlQmFy
cmllcjxDYWNoZWRGdW5jdGlvbkNvZGVCbG9jaywgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4g
bV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdDsKQEAgLTE4NTIsNyArMTkxNyw3IEBAIEFM
V0FZU19JTkxJTkUgdm9pZCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBVbmxpCiAgICAgbV9lY21hTmFtZS5lbmNvZGUoZW5jb2RlciwgZXhl
Y3V0YWJsZS5lY21hTmFtZSgpKTsKICAgICBtX2luZmVycmVkTmFtZS5lbmNvZGUoZW5jb2Rlciwg
ZXhlY3V0YWJsZS5pbmZlcnJlZE5hbWUoKSk7CiAKLSAgICBtX3BhcmVudFNjb3BlVERaVmFyaWFi
bGVzLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkp
OworICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFi
bGUubV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyk7CiAKICAgICBtX3VubGlua2VkQ29kZUJsb2Nr
Rm9yQ2FsbC5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJsb2NrRm9y
Q2FsbCk7CiAgICAgbV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdC5lbmNvZGUoZW5jb2Rl
ciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ29uc3RydWN0KTsKQEAgLTE4NjAs
MTAgKzE5MjUsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxl
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVW5saQogCiBBTFdBWVNfSU5MSU5FIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogewotICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW52
OwotICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZGVjb2RlKGRlY29kZXIsIGVudik7Ci0K
LSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPihkZWNvZGVyLnZtKCku
aGVhcCkpIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKGRlY29kZXIsIGVudiwgKnRoaXMpOwor
ICAgIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIGVudiA9IG1fcGFyZW50U2NvcGVURFpWYXJp
YWJsZXMuZGVjb2RlKGRlY29kZXIpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGU+KGRlY29kZXIudm0oKS5oZWFwKSkgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUo
ZGVjb2RlciwgV1RGTW92ZShlbnYpLCAqdGhpcyk7CiAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3Jl
YXRpb24oZGVjb2Rlci52bSgpKTsKIAogICAgIG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsLmRl
Y29kZShkZWNvZGVyLCBleGVjdXRhYmxlLT5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbCwgZXhl
Y3V0YWJsZSk7CkBAIC0xODcyLDcgKzE5MzUsNyBAQCBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZAog
ICAgIHJldHVybiBleGVjdXRhYmxlOwogfQogCi1BTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNvZGVyJiBkZWNvZGVy
LCBWYXJpYWJsZUVudmlyb25tZW50JiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcywgY29uc3QgQ2Fj
aGVkRnVuY3Rpb25FeGVjdXRhYmxlJiBjYWNoZWRFeGVjdXRhYmxlKQorQUxXQVlTX0lOTElORSBV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVj
b2RlciYgZGVjb2RlciwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgcGFyZW50U2NvcGVURFpW
YXJpYWJsZXMsIGNvbnN0IENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZSYgY2FjaGVkRXhlY3V0YWJs
ZSkKICAgICA6IEJhc2UoZGVjb2Rlci52bSgpLCBkZWNvZGVyLnZtKCkudW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2ZpcnN0TGluZU9mZnNldChjYWNo
ZWRFeGVjdXRhYmxlLmZpcnN0TGluZU9mZnNldCgpKQogICAgICwgbV9saW5lQ291bnQoY2FjaGVk
RXhlY3V0YWJsZS5saW5lQ291bnQoKSkKQEAgLTE5MDIsNyArMTk2NSw3IEBAIEFMV0FZU19JTkxJ
TkUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KERlY29kZXImIGRlCiAgICAgLCBtX2VjbWFOYW1lKGNhY2hlZEV4ZWN1dGFibGUuZWNtYU5hbWUo
ZGVjb2RlcikpCiAgICAgLCBtX2luZmVycmVkTmFtZShjYWNoZWRFeGVjdXRhYmxlLmluZmVycmVk
TmFtZShkZWNvZGVyKSkKIAotICAgICwgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyhkZWNvZGVy
LnZtKCkubV9jb21wYWN0VmFyaWFibGVNYXAtPmdldChwYXJlbnRTY29wZVREWlZhcmlhYmxlcykp
CisgICAgLCBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzKFdURk1vdmUocGFyZW50U2NvcGVURFpW
YXJpYWJsZXMpKQogCiAgICAgLCBtX3JhcmVEYXRhKGNhY2hlZEV4ZWN1dGFibGUucmFyZURhdGEo
ZGVjb2RlcikpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362498</attachid>
            <date>2019-02-20 08:15:32 -0800</date>
            <delta_ts>2019-02-22 00:02:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194706-20190220171453.patch</filename>
            <type>text/plain</type>
            <size>14383</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YzJmMDI1MDhmMDQyNjQ5NWVlNDU5MTMzMjg4M2NiNGM2YmEwMmQzLi41NTRjOTVmZTI1ZWI3NzJj
MWNhMmNjNjMwMGZjMGNjZTBkODQ2NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOS0wMi0xOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52
aXJvbm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdl
IHdlcmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRo
ZSBleGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0
IHNvCisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZp
cm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOgorICAgICAgICAo
SlNDOjpDb21wYWN0VmFyaWFibGVNYXA6OmdldCk6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxl
RW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OmVuY29kZSk6CisgICAg
ICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OjpkZWNvZGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU6OmVuY29kZSk6
CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTo6ZGVjb2RlIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUpOgor
ICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSk6CisKIDIwMTktMDItMTkgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBieXRlY29kZSBjYWNoZS1yZWxhdGVkIGZpbGVzeXN0ZW0g
Y29kZSBvdXQgb2YgQ29kZUNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IGRlZmQyZjA4
Yjg3MTgxZTZiN2Y0ZmY2MDE1NjkwN2ZkYjZlYjM5N2YuLmIwYzMwNWUyZjViOWQwYjMzODU4MWFi
ZDY5ZjA4ZGU4Nzc1M2ZlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0xOTEsNyArMTkx
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KFZNKiwgU3RydWN0dXJlKiwgY29uc3QgU291cmNlQ29kZSYsIEZ1bmN0aW9uTWV0YWRhdGFOb2Rl
KiwgVW5saW5rZWRGdW5jdGlvbktpbmQsIENvbnN0cnVjdEFiaWxpdHksIEpTUGFyc2VyU2NyaXB0
TW9kZSwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsICBKU0M6OkRlcml2ZWRDb250ZXh0VHlw
ZSwgYm9vbCBpc0J1aWx0aW5EZWZhdWx0Q2xhc3NDb25zdHJ1Y3Rvcik7Ci0gICAgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYsIFZhcmlhYmxlRW52aXJvbm1lbnQmLCBjb25zdCBD
YWNoZWRGdW5jdGlvbkV4ZWN1dGFibGUmKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZShEZWNvZGVyJiwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUsIGNvbnN0IENhY2hlZEZ1bmN0
aW9uRXhlY3V0YWJsZSYpOwogCiAgICAgdW5zaWduZWQgbV9maXJzdExpbmVPZmZzZXQ7CiAgICAg
dW5zaWduZWQgbV9saW5lQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmNwcAppbmRleCBhOTNhZTdhZGJkZmU2Njg2YzkzYjdm
YzE4NTA3MzdkOWUxZjBmMWJiLi5mYWRkZDE0MzAyZDE3MTVlZDU4MWZiZWM1ZDU4Yjc0MDY1YmQ4
YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52
aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVF
bnZpcm9ubWVudC5jcHAKQEAgLTE1NCwxMiArMTU0LDIxIEBAIFZhcmlhYmxlRW52aXJvbm1lbnQg
Q29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OnRvVmFyaWFibGVFbnZpcm9ubWVudCgpIGNvbnN0
CiBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBDb21wYWN0VmFyaWFibGVNYXA6OmdldChjb25z
dCBWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpCiB7CiAgICAgYXV0byogZW52aXJvbm1lbnQgPSBu
ZXcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQoZW52KTsKKyAgICBib29sIGlzTmV3RW50cnk7
CisgICAgYXV0byBoYW5kbGUgPSBnZXQoZW52aXJvbm1lbnQsIGlzTmV3RW50cnkpOworICAgIGlm
ICghaXNOZXdFbnRyeSkKKyAgICAgICAgZGVsZXRlIGVudmlyb25tZW50OworICAgIHJldHVybiBo
YW5kbGU7Cit9CisKK0NvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIENvbXBhY3RWYXJpYWJsZU1h
cDo6Z2V0KENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBlbnZpcm9ubWVudCwgYm9vbCYgaXNO
ZXdFbnRyeSkKK3sKICAgICBDb21wYWN0VmFyaWFibGVNYXBLZXkga2V5IHsgKmVudmlyb25tZW50
IH07CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX21hcC5hZGQoa2V5LCAxKTsKKyAgICBpc05ld0Vu
dHJ5ID0gYWRkUmVzdWx0LmlzTmV3RW50cnk7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICByZXR1cm4gQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUoKmVudmlyb25tZW50
LCAqdGhpcyk7CiAKLSAgICBkZWxldGUgZW52aXJvbm1lbnQ7CiAgICAgKythZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOwogICAgIHJldHVybiBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZShhZGRS
ZXN1bHQuaXRlcmF0b3ItPmtleS5lbnZpcm9ubWVudCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCmluZGV4IGVl
NmNjZTZlNzg2Y2E1NmFhMDAwODFkMDk1ZjAyNjRiYzNjYmVlNWEuLjlmOTA0NTA0ODAzNzZlZDI5
NDgyNzE1NGJjM2E1MTViOTE0YWI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCkBAIC0xMjUsNiArMTI1LDkgQEAgcHJpdmF0
ZToKIGNsYXNzIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50IHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wYWN0VmFyaWFibGVFbnZp
cm9ubWVudCk7CisKKyAgICBmcmllbmQgY2xhc3MgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJv
bm1lbnQ7CisKIHB1YmxpYzoKICAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudChjb25zdCBW
YXJpYWJsZUVudmlyb25tZW50Jik7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCB0b1ZhcmlhYmxl
RW52aXJvbm1lbnQoKSBjb25zdDsKQEAgLTEzMyw2ICsxMzYsOCBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzaDsgfQogCiBwcml2YXRlOgorICAgIENv
bXBhY3RWYXJpYWJsZUVudmlyb25tZW50KCkgPSBkZWZhdWx0OworCiAgICAgVmVjdG9yPFJlZlB0
cjxVbmlxdWVkU3RyaW5nSW1wbD4+IG1fdmFyaWFibGVzOwogICAgIFZlY3RvcjxWYXJpYWJsZUVu
dmlyb25tZW50RW50cnk+IG1fdmFyaWFibGVNZXRhZGF0YTsKICAgICB1bnNpZ25lZCBtX2hhc2g7
CkBAIC0yMDQsNiArMjA5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDb21wYWN0VmFyaWFi
bGVNYXAgOiBwdWJsaWMgUmVmQ291bnRlZDxDb21wYWN0VmFyaWFibGVNYXA+IHsKIHB1YmxpYzoK
ICAgICBjbGFzcyBIYW5kbGUgeworICAgICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkQ29tcGFjdFZh
cmlhYmxlTWFwSGFuZGxlOworCiAgICAgcHVibGljOgogICAgICAgICBIYW5kbGUoKSA9IGRlZmF1
bHQ7CiAKQEAgLTI0MSw2ICsyNDgsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBIYW5kbGU7CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1h
cEhhbmRsZTsKKworICAgIEhhbmRsZSBnZXQoQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQqLCBi
b29sJiBpc05ld0VudHJ5KTsKKwogICAgIEhhc2hNYXA8Q29tcGFjdFZhcmlhYmxlTWFwS2V5LCB1
bnNpZ25lZD4gbV9tYXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZWRUeXBlcy5jcHAKaW5kZXggYWNkOTVkZmE5NjUwZWQwMTM0NjIxNWRhNDM3OTkyODVjZjQ2
NjJmOC4uN2E0OTM1NThjNWVjNjJkMjZiZGZiY2Y0OTAxNjdjM2Q5ZDVjOWQxMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcApAQCAtMTI3LDcgKzEy
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9wdHJUb09mZnNldE1hcC5hZGQocHRyLCBvZmZzZXQp
OwogICAgIH0KIAotICAgIFdURjo6T3B0aW9uYWw8cHRyZGlmZl90PiBvZmZzZXRGb3JQdHIoY29u
c3Qgdm9pZCogcHRyKQorICAgIFdURjo6T3B0aW9uYWw8cHRyZGlmZl90PiBjYWNoZWRPZmZzZXRG
b3JQdHIoY29uc3Qgdm9pZCogcHRyKQogICAgIHsKICAgICAgICAgYXV0byBpdCA9IG1fcHRyVG9P
ZmZzZXRNYXAuZmluZChwdHIpOwogICAgICAgICBpZiAoaXQgPT0gbV9wdHJUb09mZnNldE1hcC5l
bmQoKSkKQEAgLTIyNyw4ICsyMjcsOCBAQCBwdWJsaWM6CiAKICAgICB+RGVjb2RlcigpCiAgICAg
ewotICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2ZpbmFsaXplcnMpCi0gICAgICAgICAgICBw
YWlyLnZhbHVlKCk7CisgICAgICAgIGZvciAoYXV0byYgZmluYWxpemVyIDogbV9maW5hbGl6ZXJz
KQorICAgICAgICAgICAgZmluYWxpemVyKCk7CiAgICAgfQogCiAgICAgVk0mIHZtKCkgeyByZXR1
cm4gbV92bTsgfQpAQCAtMjQ1LDcgKzI0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9vZmZzZXRU
b1B0ck1hcC5hZGQob2Zmc2V0LCBwdHIpOwogICAgIH0KIAotICAgIFdURjo6T3B0aW9uYWw8dm9p
ZCo+IHB0ckZvck9mZnNldChwdHJkaWZmX3Qgb2Zmc2V0KQorICAgIFdURjo6T3B0aW9uYWw8dm9p
ZCo+IGNhY2hlZFB0ckZvck9mZnNldChwdHJkaWZmX3Qgb2Zmc2V0KQogICAgIHsKICAgICAgICAg
YXV0byBpdCA9IG1fb2Zmc2V0VG9QdHJNYXAuZmluZChvZmZzZXQpOwogICAgICAgICBpZiAoaXQg
PT0gbV9vZmZzZXRUb1B0ck1hcC5lbmQoKSkKQEAgLTI1NCw5ICsyNTQsOSBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICB2b2lkIGFkZEZpbmFs
aXplcihwdHJkaWZmX3Qgb2Zmc2V0LCBjb25zdCBGdW5jdG9yJiBmbikKKyAgICB2b2lkIGFkZEZp
bmFsaXplcihjb25zdCBGdW5jdG9yJiBmaW5hbGl6ZXIpCiAgICAgewotICAgICAgICBtX2ZpbmFs
aXplcnMuYWRkKG9mZnNldCwgZm4pOworICAgICAgICBtX2ZpbmFsaXplcnMuYXBwZW5kKGZpbmFs
aXplcik7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMjY2LDcgKzI2Niw3IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fc2l6ZTsKICNlbmRpZgogICAgIEhhc2hNYXA8cHRyZGlmZl90LCB2b2lkKj4g
bV9vZmZzZXRUb1B0ck1hcDsKLSAgICBIYXNoTWFwPHB0cmRpZmZfdCwgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+PiBtX2ZpbmFsaXplcnM7CisgICAgVmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4g
bV9maW5hbGl6ZXJzOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTM3Nyw3ICszNzcs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChtX2lzRW1wdHkpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgaWYgKFdURjo6T3B0aW9uYWw8cHRyZGlmZl90PiBvZmZzZXQgPSBlbmNvZGVy
Lm9mZnNldEZvclB0cihzcmMpKSB7CisgICAgICAgIGlmIChXVEY6Ok9wdGlvbmFsPHB0cmRpZmZf
dD4gb2Zmc2V0ID0gZW5jb2Rlci5jYWNoZWRPZmZzZXRGb3JQdHIoc3JjKSkgewogICAgICAgICAg
ICAgdGhpcy0+bV9vZmZzZXQgPSAqb2Zmc2V0IC0gZW5jb2Rlci5vZmZzZXRPZigmdGhpcy0+bV9v
ZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zODgsMjAgKzM4OCwz
MiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KLSAg
ICBTb3VyY2UqIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBcmdzLi4uIGFyZ3MpIGNvbnN0Cisg
ICAgU291cmNlKiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgaXNOZXdBbGxvY2F0aW9u
LCBBcmdzJiYuLi4gYXJncykgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChtX2lzRW1wdHkpCisg
ICAgICAgIGlmIChtX2lzRW1wdHkpIHsKKyAgICAgICAgICAgIGlzTmV3QWxsb2NhdGlvbiA9IGZh
bHNlOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KIAogICAgICAgICBw
dHJkaWZmX3QgYnVmZmVyT2Zmc2V0ID0gZGVjb2Rlci5vZmZzZXRPZih0aGlzLT5idWZmZXIoKSk7
Ci0gICAgICAgIGlmIChXVEY6Ok9wdGlvbmFsPHZvaWQqPiBwdHIgPSBkZWNvZGVyLnB0ckZvck9m
ZnNldChidWZmZXJPZmZzZXQpKQorICAgICAgICBpZiAoV1RGOjpPcHRpb25hbDx2b2lkKj4gcHRy
ID0gZGVjb2Rlci5jYWNoZWRQdHJGb3JPZmZzZXQoYnVmZmVyT2Zmc2V0KSkgeworICAgICAgICAg
ICAgaXNOZXdBbGxvY2F0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxTb3VyY2UqPigqcHRyKTsKKyAgICAgICAgfQogCi0gICAgICAgIFNvdXJjZSogcHRy
ID0gZ2V0KCktPmRlY29kZShkZWNvZGVyLCBhcmdzLi4uKTsKKyAgICAgICAgaXNOZXdBbGxvY2F0
aW9uID0gdHJ1ZTsKKyAgICAgICAgU291cmNlKiBwdHIgPSBnZXQoKS0+ZGVjb2RlKGRlY29kZXIs
IHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CiAgICAgICAgIGRlY29kZXIuY2FjaGVPZmZz
ZXQoYnVmZmVyT2Zmc2V0LCBwdHIpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgU291cmNlKiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CisgICAgeworICAgICAgICBib29sIHVudXNl
ZElzTmV3QWxsb2NhdGlvbjsKKyAgICAgICAgcmV0dXJuIGRlY29kZShkZWNvZGVyLCB1bnVzZWRJ
c05ld0FsbG9jYXRpb24sIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorCiAg
ICAgY29uc3QgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuIGdldCgpOyB9CiAKIHByaXZh
dGU6CkBAIC00MzEsMTAgKzQ0MywxNSBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8U291cmNlPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIFNvdXJjZSogZGVj
b2RlZFB0ciA9IG1fcHRyLmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgYm9vbCBpc05ld0FsbG9j
YXRpb247CisgICAgICAgIFNvdXJjZSogZGVjb2RlZFB0ciA9IG1fcHRyLmRlY29kZShkZWNvZGVy
LCBpc05ld0FsbG9jYXRpb24pOwogICAgICAgICBpZiAoIWRlY29kZWRQdHIpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgZGVjb2Rlci5hZGRGaW5hbGl6ZXIoZGVjb2Rlci5v
ZmZzZXRPZihtX3B0ci5idWZmZXIoKSksIFs9XSB7IGRlcmVmSWZOb3ROdWxsKGRlY29kZWRQdHIp
OyB9KTsKKyAgICAgICAgaWYgKGlzTmV3QWxsb2NhdGlvbikgeworICAgICAgICAgICAgZGVjb2Rl
ci5hZGRGaW5hbGl6ZXIoWz1dIHsKKyAgICAgICAgICAgICAgICBkZXJlZklmTm90TnVsbChkZWNv
ZGVkUHRyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIHJlZklmTm90TnVs
bChkZWNvZGVkUHRyKTsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKGRlY29kZWRQdHIpOwogICAg
IH0KQEAgLTg3OCw2ICs4OTUsNjIgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRIYXNoTWFwPENhY2hl
ZFJlZlB0cjxDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbD4sIFZhcmlhYmxlRW52aXJvbm1lbnRFbnRy
eSwgSWRlbnRpZmllclJlcEhhc2gsIEhhc2hUcmFpdHM8UmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
Pj4sIFZhcmlhYmxlRW52aXJvbm1lbnRFbnRyeUhhc2hUcmFpdHM+IG1fbWFwOwogfTsKIAorY2xh
c3MgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQgOiBwdWJsaWMgQ2FjaGVkT2JqZWN0
PENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50PiB7CitwdWJsaWM6CisgICAgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQmIGVudikK
KyAgICB7CisgICAgICAgIG1fdmFyaWFibGVzLmVuY29kZShlbmNvZGVyLCBlbnYubV92YXJpYWJs
ZXMpOworICAgICAgICBtX3ZhcmlhYmxlTWV0YWRhdGEuZW5jb2RlKGVuY29kZXIsIGVudi5tX3Zh
cmlhYmxlTWV0YWRhdGEpOworICAgICAgICBtX2hhc2ggPSBlbnYubV9oYXNoOworICAgICAgICBt
X2lzRXZlcnl0aGluZ0NhcHR1cmVkID0gZW52Lm1faXNFdmVyeXRoaW5nQ2FwdHVyZWQ7CisgICAg
fQorCisgICAgdm9pZCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ29tcGFjdFZhcmlhYmxlRW52
aXJvbm1lbnQmIGVudikgY29uc3QKKyAgICB7CisgICAgICAgIG1fdmFyaWFibGVzLmRlY29kZShk
ZWNvZGVyLCBlbnYubV92YXJpYWJsZXMpOworICAgICAgICBtX3ZhcmlhYmxlTWV0YWRhdGEuZGVj
b2RlKGRlY29kZXIsIGVudi5tX3ZhcmlhYmxlTWV0YWRhdGEpOworICAgICAgICBlbnYubV9oYXNo
ID0gbV9oYXNoOworICAgICAgICBlbnYubV9pc0V2ZXJ5dGhpbmdDYXB0dXJlZCA9IG1faXNFdmVy
eXRoaW5nQ2FwdHVyZWQ7CisgICAgfQorCisgICAgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQq
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgQ29tcGFjdFZh
cmlhYmxlRW52aXJvbm1lbnQqIGVudiA9IG5ldyBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudDsK
KyAgICAgICAgZGVjb2RlKGRlY29kZXIsICplbnYpOworICAgICAgICByZXR1cm4gZW52OworICAg
IH0KKworcHJpdmF0ZToKKyAgICBDYWNoZWRWZWN0b3I8Q2FjaGVkUmVmUHRyPENhY2hlZFVuaXF1
ZWRTdHJpbmdJbXBsPj4gbV92YXJpYWJsZXM7CisgICAgQ2FjaGVkVmVjdG9yPFZhcmlhYmxlRW52
aXJvbm1lbnRFbnRyeT4gbV92YXJpYWJsZU1ldGFkYXRhOworICAgIHVuc2lnbmVkIG1faGFzaDsK
KyAgICBib29sIG1faXNFdmVyeXRoaW5nQ2FwdHVyZWQ7Cit9OworCitjbGFzcyBDYWNoZWRDb21w
YWN0VmFyaWFibGVNYXBIYW5kbGUgOiBwdWJsaWMgQ2FjaGVkT2JqZWN0PENvbXBhY3RWYXJpYWJs
ZU1hcDo6SGFuZGxlPiB7CitwdWJsaWM6CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUmIGhhbmRsZSkKKyAgICB7CisgICAg
ICAgIG1fZW52aXJvbm1lbnQuZW5jb2RlKGVuY29kZXIsIGhhbmRsZS5tX2Vudmlyb25tZW50KTsK
KyAgICB9CisKKyAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGJvb2wgaXNOZXdBbGxvY2F0aW9uOworICAg
ICAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCogZW52aXJvbm1lbnQgPSBtX2Vudmlyb25t
ZW50LmRlY29kZShkZWNvZGVyLCBpc05ld0FsbG9jYXRpb24pOworICAgICAgICBib29sIGlzTmV3
RW50cnk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLnZtKCkubV9jb21wYWN0VmFyaWFibGVNYXAt
PmdldChlbnZpcm9ubWVudCwgaXNOZXdFbnRyeSk7CisgICAgICAgIGlmIChpc05ld0FsbG9jYXRp
b24gJiYgIWlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgIGRlY29kZXIuYWRkRmluYWxpemVyKFs9
XSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIGVudmlyb25tZW50OworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ2FjaGVkUHRyPENhY2hlZENvbXBh
Y3RWYXJpYWJsZUVudmlyb25tZW50PiBtX2Vudmlyb25tZW50OworfTsKKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgU291cmNlID0gU291cmNlVHlwZTxUPj4KIGNsYXNzIENhY2hlZEFy
cmF5IDogcHVibGljIFZhcmlhYmxlTGVuZ3RoT2JqZWN0PFNvdXJjZSo+IHsKIHB1YmxpYzoKQEAg
LTE1MTcsNyArMTU5MCw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2VjbWFO
YW1lOwogICAgIENhY2hlZElkZW50aWZpZXIgbV9pbmZlcnJlZE5hbWU7CiAKLSAgICBDYWNoZWRW
YXJpYWJsZUVudmlyb25tZW50IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CisgICAgQ2FjaGVk
Q29tcGFjdFZhcmlhYmxlTWFwSGFuZGxlIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CiAKICAg
ICBDYWNoZWRXcml0ZUJhcnJpZXI8Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2s+IG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsOwogICAgIENhY2hlZFdy
aXRlQmFycmllcjxDYWNoZWRGdW5jdGlvbkNvZGVCbG9jaywgVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jaz4gbV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdDsKQEAgLTE4NTIsNyArMTkyNSw3
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVbmxpCiAgICAgbV9lY21hTmFtZS5lbmNvZGUoZW5jb2Rl
ciwgZXhlY3V0YWJsZS5lY21hTmFtZSgpKTsKICAgICBtX2luZmVycmVkTmFtZS5lbmNvZGUoZW5j
b2RlciwgZXhlY3V0YWJsZS5pbmZlcnJlZE5hbWUoKSk7CiAKLSAgICBtX3BhcmVudFNjb3BlVERa
VmFyaWFibGVzLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxlLnBhcmVudFNjb3BlVERaVmFyaWFi
bGVzKCkpOworICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZW5jb2RlKGVuY29kZXIsIGV4
ZWN1dGFibGUubV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyk7CiAKICAgICBtX3VubGlua2VkQ29k
ZUJsb2NrRm9yQ2FsbC5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJs
b2NrRm9yQ2FsbCk7CiAgICAgbV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdC5lbmNvZGUo
ZW5jb2RlciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ29uc3RydWN0KTsKQEAg
LTE4NjAsMTAgKzE5MzMsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgQ2FjaGVkRnVuY3Rpb25FeGVj
dXRhYmxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVW5saQogCiBBTFdBWVNfSU5M
SU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogewotICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQgZW52OwotICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZGVjb2RlKGRlY29kZXIsIGVu
dik7Ci0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPihkZWNvZGVy
LnZtKCkuaGVhcCkpIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKGRlY29kZXIsIGVudiwgKnRo
aXMpOworICAgIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlIGVudiA9IG1fcGFyZW50U2NvcGVU
RFpWYXJpYWJsZXMuZGVjb2RlKGRlY29kZXIpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8VW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU+KGRlY29kZXIudm0oKS5oZWFwKSkgVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUoZGVjb2RlciwgV1RGTW92ZShlbnYpLCAqdGhpcyk7CiAgICAgZXhlY3V0YWJsZS0+Zmlu
aXNoQ3JlYXRpb24oZGVjb2Rlci52bSgpKTsKIAogICAgIG1fdW5saW5rZWRDb2RlQmxvY2tGb3JD
YWxsLmRlY29kZShkZWNvZGVyLCBleGVjdXRhYmxlLT5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ2Fs
bCwgZXhlY3V0YWJsZSk7CkBAIC0xODcyLDcgKzE5NDMsNyBAQCBBTFdBWVNfSU5MSU5FIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShE
ZWNvZAogICAgIHJldHVybiBleGVjdXRhYmxlOwogfQogCi1BTFdBWVNfSU5MSU5FIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNvZGVyJiBk
ZWNvZGVyLCBWYXJpYWJsZUVudmlyb25tZW50JiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcywgY29u
c3QgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlJiBjYWNoZWRFeGVjdXRhYmxlKQorQUxXQVlTX0lO
TElORSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUoRGVjb2RlciYgZGVjb2RlciwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgcGFyZW50U2Nv
cGVURFpWYXJpYWJsZXMsIGNvbnN0IENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZSYgY2FjaGVkRXhl
Y3V0YWJsZSkKICAgICA6IEJhc2UoZGVjb2Rlci52bSgpLCBkZWNvZGVyLnZtKCkudW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2ZpcnN0TGluZU9mZnNl
dChjYWNoZWRFeGVjdXRhYmxlLmZpcnN0TGluZU9mZnNldCgpKQogICAgICwgbV9saW5lQ291bnQo
Y2FjaGVkRXhlY3V0YWJsZS5saW5lQ291bnQoKSkKQEAgLTE5MDIsNyArMTk3Myw3IEBAIEFMV0FZ
U19JTkxJTkUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKERlY29kZXImIGRlCiAgICAgLCBtX2VjbWFOYW1lKGNhY2hlZEV4ZWN1dGFibGUuZWNt
YU5hbWUoZGVjb2RlcikpCiAgICAgLCBtX2luZmVycmVkTmFtZShjYWNoZWRFeGVjdXRhYmxlLmlu
ZmVycmVkTmFtZShkZWNvZGVyKSkKIAotICAgICwgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyhk
ZWNvZGVyLnZtKCkubV9jb21wYWN0VmFyaWFibGVNYXAtPmdldChwYXJlbnRTY29wZVREWlZhcmlh
YmxlcykpCisgICAgLCBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzKFdURk1vdmUocGFyZW50U2Nv
cGVURFpWYXJpYWJsZXMpKQogCiAgICAgLCBtX3JhcmVEYXRhKGNhY2hlZEV4ZWN1dGFibGUucmFy
ZURhdGEoZGVjb2RlcikpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362700</attachid>
            <date>2019-02-22 00:02:40 -0800</date>
            <delta_ts>2019-02-22 00:30:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194706-20190222090200.patch</filename>
            <type>text/plain</type>
            <size>14461</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJkODUxOGVlNWUyMTBhMWVmMDAwZTc3OTIxNjYzZjY0MGEzZjdiLi40OTg1Yjc2ZWExZGVhMWQw
YTUwMGY2ZGJjZTBmMjY4MjBlNjg5MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOS0wMi0xOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52
aXJvbm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdl
IHdlcmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRo
ZSBleGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0
IHNvCisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZp
cm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOgorICAgICAgICAo
SlNDOjpDb21wYWN0VmFyaWFibGVNYXA6OmdldCk6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxl
RW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ6OmVuY29kZSk6CisgICAg
ICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OjpkZWNvZGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU6OmVuY29kZSk6
CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTo6ZGVjb2RlIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUpOgor
ICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSk6CisKIDIwMTktMDItMjEgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgVXBkYXRlIEpTU2NyaXB0IFNQSSBiYXNlZCBvbiBmZWVkYmFjawpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUuaAppbmRleCBkZWZkMmYwOGI4NzE4MWU2YjdmNGZmNjAxNTY5MDdmZGI2
ZWIzOTdmLi5iMGMzMDVlMmY1YjlkMGIzMzg1ODFhYmQ2OWYwOGRlODc3NTNmZTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUuaApAQCAtMTkxLDcgKzE5MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShWTSosIFN0cnVjdHVyZSosIGNvbnN0IFNv
dXJjZUNvZGUmLCBGdW5jdGlvbk1ldGFkYXRhTm9kZSosIFVubGlua2VkRnVuY3Rpb25LaW5kLCBD
b25zdHJ1Y3RBYmlsaXR5LCBKU1BhcnNlclNjcmlwdE1vZGUsIENvbXBhY3RWYXJpYWJsZU1hcDo6
SGFuZGxlLCAgSlNDOjpEZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNCdWlsdGluRGVmYXVsdENs
YXNzQ29uc3RydWN0b3IpOwotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXIm
LCBWYXJpYWJsZUVudmlyb25tZW50JiwgY29uc3QgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlJik7
CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYsIENvbXBhY3RWYXJpYWJs
ZU1hcDo6SGFuZGxlLCBjb25zdCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGUmKTsKIAogICAgIHVu
c2lnbmVkIG1fZmlyc3RMaW5lT2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fbGluZUNvdW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5j
cHAKaW5kZXggYTkzYWU3YWRiZGZlNjY4NmM5M2I3ZmMxODUwNzM3ZDllMWYwZjFiYi4uZmFkZGQx
NDMwMmQxNzE1ZWQ1ODFmYmVjNWQ1OGI3NDA2NWJkOGE2YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuY3BwCkBAIC0xNTQsMTIg
KzE1NCwyMSBAQCBWYXJpYWJsZUVudmlyb25tZW50IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50
Ojp0b1ZhcmlhYmxlRW52aXJvbm1lbnQoKSBjb25zdAogQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5k
bGUgQ29tcGFjdFZhcmlhYmxlTWFwOjpnZXQoY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgZW52
KQogewogICAgIGF1dG8qIGVudmlyb25tZW50ID0gbmV3IENvbXBhY3RWYXJpYWJsZUVudmlyb25t
ZW50KGVudik7CisgICAgYm9vbCBpc05ld0VudHJ5OworICAgIGF1dG8gaGFuZGxlID0gZ2V0KGVu
dmlyb25tZW50LCBpc05ld0VudHJ5KTsKKyAgICBpZiAoIWlzTmV3RW50cnkpCisgICAgICAgIGRl
bGV0ZSBlbnZpcm9ubWVudDsKKyAgICByZXR1cm4gaGFuZGxlOworfQorCitDb21wYWN0VmFyaWFi
bGVNYXA6OkhhbmRsZSBDb21wYWN0VmFyaWFibGVNYXA6OmdldChDb21wYWN0VmFyaWFibGVFbnZp
cm9ubWVudCogZW52aXJvbm1lbnQsIGJvb2wmIGlzTmV3RW50cnkpCit7CiAgICAgQ29tcGFjdFZh
cmlhYmxlTWFwS2V5IGtleSB7ICplbnZpcm9ubWVudCB9OwogICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV9tYXAuYWRkKGtleSwgMSk7CisgICAgaXNOZXdFbnRyeSA9IGFkZFJlc3VsdC5pc05ld0VudHJ5
OwogICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuIENvbXBhY3RW
YXJpYWJsZU1hcDo6SGFuZGxlKCplbnZpcm9ubWVudCwgKnRoaXMpOwogCi0gICAgZGVsZXRlIGVu
dmlyb25tZW50OwogICAgICsrYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICByZXR1cm4g
Q29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUoYWRkUmVzdWx0Lml0ZXJhdG9yLT5rZXkuZW52aXJv
bm1lbnQoKSwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1ZhcmlhYmxlRW52aXJvbm1lbnQuaAppbmRleCBlZTZjY2U2ZTc4NmNhNTZhYTAwMDgxZDA5NWYw
MjY0YmMzY2JlZTVhLi45ZjkwNDUwNDgwMzc2ZWQyOTQ4MjcxNTRiYzNhNTE1YjkxNGFiNzRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuaApAQCAtMTI1LDYgKzEyNSw5IEBAIHByaXZhdGU6CiBjbGFzcyBDb21wYWN0VmFyaWFibGVF
bnZpcm9ubWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQpOworCisgICAgZnJpZW5kIGNs
YXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50OworCiBwdWJsaWM6CiAgICAgQ29t
cGFjdFZhcmlhYmxlRW52aXJvbm1lbnQoY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYpOwogICAg
IFZhcmlhYmxlRW52aXJvbm1lbnQgdG9WYXJpYWJsZUVudmlyb25tZW50KCkgY29uc3Q7CkBAIC0x
MzMsNiArMTM2LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVy
biBtX2hhc2g7IH0KIAogcHJpdmF0ZToKKyAgICBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCgp
ID0gZGVmYXVsdDsKKwogICAgIFZlY3RvcjxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PiBtX3Zh
cmlhYmxlczsKICAgICBWZWN0b3I8VmFyaWFibGVFbnZpcm9ubWVudEVudHJ5PiBtX3ZhcmlhYmxl
TWV0YWRhdGE7CiAgICAgdW5zaWduZWQgbV9oYXNoOwpAQCAtMjA0LDYgKzIwOSw4IEBAIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgQ29tcGFjdFZhcmlhYmxlTWFwIDogcHVibGljIFJlZkNvdW50ZWQ8
Q29tcGFjdFZhcmlhYmxlTWFwPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgSGFuZGxlIHsKKyAgICAg
ICAgZnJpZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1hcEhhbmRsZTsKKwogICAgIHB1
YmxpYzoKICAgICAgICAgSGFuZGxlKCkgPSBkZWZhdWx0OwogCkBAIC0yNDEsNiArMjQ4LDEwIEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSGFuZGxlOworICAgIGZyaWVu
ZCBjbGFzcyBDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU7CisKKyAgICBIYW5kbGUgZ2V0
KENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiwgYm9vbCYgaXNOZXdFbnRyeSk7CisKICAgICBI
YXNoTWFwPENvbXBhY3RWYXJpYWJsZU1hcEtleSwgdW5zaWduZWQ+IG1fbWFwOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCmluZGV4IGFjZDk1
ZGZhOTY1MGVkMDEzNDYyMTVkYTQzNzk5Mjg1Y2Y0NjYyZjguLjA2M2VmYTlkMGVhYmVmMmQ2Mjgw
NDEwMGQ4MDkxYzY0ZjU1YTE0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1f
cHRyVG9PZmZzZXRNYXAuYWRkKHB0ciwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICBXVEY6Ok9wdGlv
bmFsPHB0cmRpZmZfdD4gb2Zmc2V0Rm9yUHRyKGNvbnN0IHZvaWQqIHB0cikKKyAgICBXVEY6Ok9w
dGlvbmFsPHB0cmRpZmZfdD4gY2FjaGVkT2Zmc2V0Rm9yUHRyKGNvbnN0IHZvaWQqIHB0cikKICAg
ICB7CiAgICAgICAgIGF1dG8gaXQgPSBtX3B0clRvT2Zmc2V0TWFwLmZpbmQocHRyKTsKICAgICAg
ICAgaWYgKGl0ID09IG1fcHRyVG9PZmZzZXRNYXAuZW5kKCkpCkBAIC0yMjcsOCArMjI3LDggQEAg
cHVibGljOgogCiAgICAgfkRlY29kZXIoKQogICAgIHsKLSAgICAgICAgZm9yIChhdXRvJiBwYWly
IDogbV9maW5hbGl6ZXJzKQotICAgICAgICAgICAgcGFpci52YWx1ZSgpOworICAgICAgICBmb3Ig
KGF1dG8mIGZpbmFsaXplciA6IG1fZmluYWxpemVycykKKyAgICAgICAgICAgIGZpbmFsaXplcigp
OwogICAgIH0KIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fdm07IH0KQEAgLTI0NSw3ICsyNDUs
NyBAQCBwdWJsaWM6CiAgICAgICAgIG1fb2Zmc2V0VG9QdHJNYXAuYWRkKG9mZnNldCwgcHRyKTsK
ICAgICB9CiAKLSAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBwdHJGb3JPZmZzZXQocHRyZGlmZl90
IG9mZnNldCkKKyAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBjYWNoZWRQdHJGb3JPZmZzZXQocHRy
ZGlmZl90IG9mZnNldCkKICAgICB7CiAgICAgICAgIGF1dG8gaXQgPSBtX29mZnNldFRvUHRyTWFw
LmZpbmQob2Zmc2V0KTsKICAgICAgICAgaWYgKGl0ID09IG1fb2Zmc2V0VG9QdHJNYXAuZW5kKCkp
CkBAIC0yNTQsOSArMjU0LDkgQEAgcHVibGljOgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCBhZGRGaW5hbGl6ZXIocHRyZGlmZl90IG9mZnNldCwgY29u
c3QgRnVuY3RvciYgZm4pCisgICAgdm9pZCBhZGRGaW5hbGl6ZXIoY29uc3QgRnVuY3RvciYgZmlu
YWxpemVyKQogICAgIHsKLSAgICAgICAgbV9maW5hbGl6ZXJzLmFkZChvZmZzZXQsIGZuKTsKKyAg
ICAgICAgbV9maW5hbGl6ZXJzLmFwcGVuZChmaW5hbGl6ZXIpOwogICAgIH0KIAogcHJpdmF0ZToK
QEAgLTI2Niw3ICsyNjYsNyBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX3NpemU7CiAjZW5kaWYK
ICAgICBIYXNoTWFwPHB0cmRpZmZfdCwgdm9pZCo+IG1fb2Zmc2V0VG9QdHJNYXA7Ci0gICAgSGFz
aE1hcDxwdHJkaWZmX3QsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9maW5hbGl6ZXJzOworICAg
IFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fZmluYWxpemVyczsKIH07CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CkBAIC0zNzcsNyArMzc3LDcgQEAgcHVibGljOgogICAgICAgICBpZiAo
bV9pc0VtcHR5KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChXVEY6Ok9wdGlv
bmFsPHB0cmRpZmZfdD4gb2Zmc2V0ID0gZW5jb2Rlci5vZmZzZXRGb3JQdHIoc3JjKSkgeworICAg
ICAgICBpZiAoV1RGOjpPcHRpb25hbDxwdHJkaWZmX3Q+IG9mZnNldCA9IGVuY29kZXIuY2FjaGVk
T2Zmc2V0Rm9yUHRyKHNyYykpIHsKICAgICAgICAgICAgIHRoaXMtPm1fb2Zmc2V0ID0gKm9mZnNl
dCAtIGVuY29kZXIub2Zmc2V0T2YoJnRoaXMtPm1fb2Zmc2V0KTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQpAQCAtMzg4LDIwICszODgsMzIgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgU291cmNlKiBkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgQXJncy4uLiBhcmdzKSBjb25zdAorICAgIFNvdXJjZSogZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIGJvb2wmIGlzTmV3QWxsb2NhdGlvbiwgQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiAg
ICAgewotICAgICAgICBpZiAobV9pc0VtcHR5KQorICAgICAgICBpZiAobV9pc0VtcHR5KSB7Cisg
ICAgICAgICAgICBpc05ld0FsbG9jYXRpb24gPSBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICB9CiAKICAgICAgICAgcHRyZGlmZl90IGJ1ZmZlck9mZnNldCA9IGRl
Y29kZXIub2Zmc2V0T2YodGhpcy0+YnVmZmVyKCkpOwotICAgICAgICBpZiAoV1RGOjpPcHRpb25h
bDx2b2lkKj4gcHRyID0gZGVjb2Rlci5wdHJGb3JPZmZzZXQoYnVmZmVyT2Zmc2V0KSkKKyAgICAg
ICAgaWYgKFdURjo6T3B0aW9uYWw8dm9pZCo+IHB0ciA9IGRlY29kZXIuY2FjaGVkUHRyRm9yT2Zm
c2V0KGJ1ZmZlck9mZnNldCkpIHsKKyAgICAgICAgICAgIGlzTmV3QWxsb2NhdGlvbiA9IGZhbHNl
OwogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U291cmNlKj4oKnB0cik7Cisg
ICAgICAgIH0KIAotICAgICAgICBTb3VyY2UqIHB0ciA9IGdldCgpLT5kZWNvZGUoZGVjb2Rlciwg
YXJncy4uLik7CisgICAgICAgIGlzTmV3QWxsb2NhdGlvbiA9IHRydWU7CisgICAgICAgIFNvdXJj
ZSogcHRyID0gZ2V0KCktPmRlY29kZShkZWNvZGVyLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncyku
Li4pOwogICAgICAgICBkZWNvZGVyLmNhY2hlT2Zmc2V0KGJ1ZmZlck9mZnNldCwgcHRyKTsKICAg
ICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdz
PgorICAgIFNvdXJjZSogZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFyZ3MmJi4uLiBhcmdzKSBj
b25zdAorICAgIHsKKyAgICAgICAgYm9vbCB1bnVzZWRJc05ld0FsbG9jYXRpb247CisgICAgICAg
IHJldHVybiBkZWNvZGUoZGVjb2RlciwgdW51c2VkSXNOZXdBbGxvY2F0aW9uLCBzdGQ6OmZvcndh
cmQ8QXJncz4oYXJncykuLi4pOworICAgIH0KKwogICAgIGNvbnN0IFQqIG9wZXJhdG9yLT4oKSBj
b25zdCB7IHJldHVybiBnZXQoKTsgfQogCiBwcml2YXRlOgpAQCAtNDMxLDEwICs0NDMsMTUgQEAg
cHVibGljOgogCiAgICAgUmVmUHRyPFNvdXJjZT4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNv
bnN0CiAgICAgewotICAgICAgICBTb3VyY2UqIGRlY29kZWRQdHIgPSBtX3B0ci5kZWNvZGUoZGVj
b2Rlcik7CisgICAgICAgIGJvb2wgaXNOZXdBbGxvY2F0aW9uOworICAgICAgICBTb3VyY2UqIGRl
Y29kZWRQdHIgPSBtX3B0ci5kZWNvZGUoZGVjb2RlciwgaXNOZXdBbGxvY2F0aW9uKTsKICAgICAg
ICAgaWYgKCFkZWNvZGVkUHRyKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAg
IGRlY29kZXIuYWRkRmluYWxpemVyKGRlY29kZXIub2Zmc2V0T2YobV9wdHIuYnVmZmVyKCkpLCBb
PV0geyBkZXJlZklmTm90TnVsbChkZWNvZGVkUHRyKTsgfSk7CisgICAgICAgIGlmIChpc05ld0Fs
bG9jYXRpb24pIHsKKyAgICAgICAgICAgIGRlY29kZXIuYWRkRmluYWxpemVyKFs9XSB7CisgICAg
ICAgICAgICAgICAgZGVyZWZJZk5vdE51bGwoZGVjb2RlZFB0cik7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQogICAgICAgICByZWZJZk5vdE51bGwoZGVjb2RlZFB0cik7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZihkZWNvZGVkUHRyKTsKICAgICB9CkBAIC04NzgsNiArODk1LDY1IEBAIHBy
aXZhdGU6CiAgICAgQ2FjaGVkSGFzaE1hcDxDYWNoZWRSZWZQdHI8Q2FjaGVkVW5pcXVlZFN0cmlu
Z0ltcGw+LCBWYXJpYWJsZUVudmlyb25tZW50RW50cnksIElkZW50aWZpZXJSZXBIYXNoLCBIYXNo
VHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+LCBWYXJpYWJsZUVudmlyb25tZW50RW50
cnlIYXNoVHJhaXRzPiBtX21hcDsKIH07CiAKK2NsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZUVu
dmlyb25tZW50IDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVu
dD4geworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENv
bXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpCisgICAgeworICAgICAgICBtX3ZhcmlhYmxl
cy5lbmNvZGUoZW5jb2RlciwgZW52Lm1fdmFyaWFibGVzKTsKKyAgICAgICAgbV92YXJpYWJsZU1l
dGFkYXRhLmVuY29kZShlbmNvZGVyLCBlbnYubV92YXJpYWJsZU1ldGFkYXRhKTsKKyAgICAgICAg
bV9oYXNoID0gZW52Lm1faGFzaDsKKyAgICAgICAgbV9pc0V2ZXJ5dGhpbmdDYXB0dXJlZCA9IGVu
di5tX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworICAgIH0KKworICAgIHZvaWQgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpIGNvbnN0CisgICAg
eworICAgICAgICBtX3ZhcmlhYmxlcy5kZWNvZGUoZGVjb2RlciwgZW52Lm1fdmFyaWFibGVzKTsK
KyAgICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmRlY29kZShkZWNvZGVyLCBlbnYubV92YXJpYWJs
ZU1ldGFkYXRhKTsKKyAgICAgICAgZW52Lm1faGFzaCA9IG1faGFzaDsKKyAgICAgICAgZW52Lm1f
aXNFdmVyeXRoaW5nQ2FwdHVyZWQgPSBtX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworICAgIH0KKwor
ICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBlbnYgPSBu
ZXcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ7CisgICAgICAgIGRlY29kZShkZWNvZGVyLCAq
ZW52KTsKKyAgICAgICAgcmV0dXJuIGVudjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ2FjaGVk
VmVjdG9yPENhY2hlZFJlZlB0cjxDYWNoZWRVbmlxdWVkU3RyaW5nSW1wbD4+IG1fdmFyaWFibGVz
OworICAgIENhY2hlZFZlY3RvcjxWYXJpYWJsZUVudmlyb25tZW50RW50cnk+IG1fdmFyaWFibGVN
ZXRhZGF0YTsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CisgICAgYm9vbCBtX2lzRXZlcnl0aGluZ0Nh
cHR1cmVkOworfTsKKworY2xhc3MgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlTWFwSGFuZGxlIDogcHVi
bGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZT4geworcHVibGljOgor
ICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvbXBhY3RWYXJpYWJsZU1h
cDo6SGFuZGxlJiBoYW5kbGUpCisgICAgeworICAgICAgICBtX2Vudmlyb25tZW50LmVuY29kZShl
bmNvZGVyLCBoYW5kbGUubV9lbnZpcm9ubWVudCk7CisgICAgfQorCisgICAgQ29tcGFjdFZhcmlh
YmxlTWFwOjpIYW5kbGUgZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNvbnN0CisgICAgeworICAg
ICAgICBib29sIGlzTmV3QWxsb2NhdGlvbjsKKyAgICAgICAgQ29tcGFjdFZhcmlhYmxlRW52aXJv
bm1lbnQqIGVudmlyb25tZW50ID0gbV9lbnZpcm9ubWVudC5kZWNvZGUoZGVjb2RlciwgaXNOZXdB
bGxvY2F0aW9uKTsKKyAgICAgICAgYm9vbCBpc05ld0VudHJ5OworICAgICAgICBDb21wYWN0VmFy
aWFibGVNYXA6OkhhbmRsZSBoYW5kbGUgPSBkZWNvZGVyLnZtKCkubV9jb21wYWN0VmFyaWFibGVN
YXAtPmdldChlbnZpcm9ubWVudCwgaXNOZXdFbnRyeSk7CisgICAgICAgIGlmICghaXNOZXdBbGxv
Y2F0aW9uKQorICAgICAgICAgICAgQVNTRVJUKCFpc05ld0VudHJ5KTsKKyAgICAgICAgZWxzZSBp
ZiAoIWlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgIGRlY29kZXIuYWRkRmluYWxpemVyKFs9XSB7
CisgICAgICAgICAgICAgICAgZGVsZXRlIGVudmlyb25tZW50OworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhbmRsZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
Q2FjaGVkUHRyPENhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50PiBtX2Vudmlyb25tZW50
OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgU291cmNlID0gU291cmNlVHlw
ZTxUPj4KIGNsYXNzIENhY2hlZEFycmF5IDogcHVibGljIFZhcmlhYmxlTGVuZ3RoT2JqZWN0PFNv
dXJjZSo+IHsKIHB1YmxpYzoKQEAgLTE1MTcsNyArMTU5Myw3IEBAIHByaXZhdGU6CiAgICAgQ2Fj
aGVkSWRlbnRpZmllciBtX2VjbWFOYW1lOwogICAgIENhY2hlZElkZW50aWZpZXIgbV9pbmZlcnJl
ZE5hbWU7CiAKLSAgICBDYWNoZWRWYXJpYWJsZUVudmlyb25tZW50IG1fcGFyZW50U2NvcGVURFpW
YXJpYWJsZXM7CisgICAgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlTWFwSGFuZGxlIG1fcGFyZW50U2Nv
cGVURFpWYXJpYWJsZXM7CiAKICAgICBDYWNoZWRXcml0ZUJhcnJpZXI8Q2FjaGVkRnVuY3Rpb25D
b2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+IG1fdW5saW5rZWRDb2RlQmxvY2tG
b3JDYWxsOwogICAgIENhY2hlZFdyaXRlQmFycmllcjxDYWNoZWRGdW5jdGlvbkNvZGVCbG9jaywg
VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4gbV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVj
dDsKQEAgLTE4NTIsNyArMTkyOCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBDYWNoZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBVbmxpCiAgICAgbV9l
Y21hTmFtZS5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5lY21hTmFtZSgpKTsKICAgICBtX2lu
ZmVycmVkTmFtZS5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5pbmZlcnJlZE5hbWUoKSk7CiAK
LSAgICBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzLmVuY29kZShlbmNvZGVyLCBleGVjdXRhYmxl
LnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpOworICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJs
ZXMuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUubV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyk7
CiAKICAgICBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbC5lbmNvZGUoZW5jb2RlciwgZXhlY3V0
YWJsZS5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbCk7CiAgICAgbV91bmxpbmtlZENvZGVCbG9j
a0ZvckNvbnN0cnVjdC5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJs
b2NrRm9yQ29uc3RydWN0KTsKQEAgLTE4NjAsMTAgKzE5MzYsOCBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVW5saQogCiBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDYWNo
ZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogewot
ICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW52OwotICAgIG1fcGFyZW50U2NvcGVURFpWYXJpYWJs
ZXMuZGVjb2RlKGRlY29kZXIsIGVudik7Ci0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlPihkZWNvZGVyLnZtKCkuaGVhcCkpIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKGRlY29kZXIsIGVudiwgKnRoaXMpOworICAgIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxl
IGVudiA9IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZGVjb2RlKGRlY29kZXIpOworICAgIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KGRlY29kZXIudm0oKS5oZWFwKSkg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoZGVjb2RlciwgV1RGTW92ZShlbnYpLCAqdGhpcyk7
CiAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZGVjb2Rlci52bSgpKTsKIAogICAgIG1f
dW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsLmRlY29kZShkZWNvZGVyLCBleGVjdXRhYmxlLT5tX3Vu
bGlua2VkQ29kZUJsb2NrRm9yQ2FsbCwgZXhlY3V0YWJsZSk7CkBAIC0xODcyLDcgKzE5NDYsNyBA
QCBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZAogICAgIHJldHVybiBleGVjdXRhYmxlOwogfQogCi1B
TFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZShEZWNvZGVyJiBkZWNvZGVyLCBWYXJpYWJsZUVudmlyb25tZW50JiBwYXJlbnRT
Y29wZVREWlZhcmlhYmxlcywgY29uc3QgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlJiBjYWNoZWRF
eGVjdXRhYmxlKQorQUxXQVlTX0lOTElORSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6VW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYgZGVjb2RlciwgQ29tcGFjdFZhcmlhYmxl
TWFwOjpIYW5kbGUgcGFyZW50U2NvcGVURFpWYXJpYWJsZXMsIGNvbnN0IENhY2hlZEZ1bmN0aW9u
RXhlY3V0YWJsZSYgY2FjaGVkRXhlY3V0YWJsZSkKICAgICA6IEJhc2UoZGVjb2Rlci52bSgpLCBk
ZWNvZGVyLnZtKCkudW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCkpCiAg
ICAgLCBtX2ZpcnN0TGluZU9mZnNldChjYWNoZWRFeGVjdXRhYmxlLmZpcnN0TGluZU9mZnNldCgp
KQogICAgICwgbV9saW5lQ291bnQoY2FjaGVkRXhlY3V0YWJsZS5saW5lQ291bnQoKSkKQEAgLTE5
MDIsNyArMTk3Niw3IEBAIEFMV0FZU19JTkxJTkUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXImIGRlCiAgICAgLCBtX2VjbWFOYW1l
KGNhY2hlZEV4ZWN1dGFibGUuZWNtYU5hbWUoZGVjb2RlcikpCiAgICAgLCBtX2luZmVycmVkTmFt
ZShjYWNoZWRFeGVjdXRhYmxlLmluZmVycmVkTmFtZShkZWNvZGVyKSkKIAotICAgICwgbV9wYXJl
bnRTY29wZVREWlZhcmlhYmxlcyhkZWNvZGVyLnZtKCkubV9jb21wYWN0VmFyaWFibGVNYXAtPmdl
dChwYXJlbnRTY29wZVREWlZhcmlhYmxlcykpCisgICAgLCBtX3BhcmVudFNjb3BlVERaVmFyaWFi
bGVzKFdURk1vdmUocGFyZW50U2NvcGVURFpWYXJpYWJsZXMpKQogCiAgICAgLCBtX3JhcmVEYXRh
KGNhY2hlZEV4ZWN1dGFibGUucmFyZURhdGEoZGVjb2RlcikpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362702</attachid>
            <date>2019-02-22 00:30:57 -0800</date>
            <delta_ts>2019-02-22 01:08:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-194706-20190222093017.patch</filename>
            <type>text/plain</type>
            <size>14593</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NzJkODUxOGVlNWUyMTBhMWVmMDAwZTc3OTIxNjYzZjY0MGEzZjdiLi43MTZiZWNjYzRjMTVkMzMz
Y2FkMDRkNjlhYTNhMmJkOTJlMzQxNTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOS0wMi0xOSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9m
IFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ3MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBJbiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NTgzIHdlIHN0YXJ0ZWQgdXNpbmcgYQorICAg
ICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52aXJv
bm1lbnQgZm9yCisgICAgICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlcywgYnV0IHdlIHdl
cmUgY3JlYXRpbmcgdGhlIGZ1bGwgZW52aXJvbm1lbnQKKyAgICAgICAgdG8gZW5jb2RlIHRoZSBl
eGVjdXRhYmxlIGluIHRoZSBieXRlY29kZSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzIGl0IHNv
CisgICAgICAgIHRoYXQgd2UgY2FjaGUgdGhlIGhhbmRsZSBpbnN0ZWFkIG9mIHRoZSBlbnZpcm9u
bWVudC4gVGhpcyBhdm9pZHMgZHVwbGljYXRpbmcKKyAgICAgICAgdGhlIFZhcmlhYmxlRW52aXJv
bm1lbnQgd2hlbmV2ZXIgd2UgaGF2ZSB0byBjYWNoZSB0d28gaGFuZGxlcyB0aGF0IHBvaW50Cisg
ICAgICAgIHRvIHRoZSBlbnZpcm9ubWVudC4KKworICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlLmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuY3BwOgorICAgICAgICAoSlNDOjpDb21wYWN0VmFyaWFibGVNYXA6OmdldCk6CisgICAgICAg
ICogcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NhY2hl
ZFR5cGVzLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1l
bnQ6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25t
ZW50OjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRDb21wYWN0VmFyaWFibGVN
YXBIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZENvbXBhY3RWYXJpYWJsZU1h
cEhhbmRsZTo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkRnVuY3Rpb25FeGVj
dXRhYmxlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OmRlY29kZSBjb25zdCk6CisgICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
OjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSk6CisKIDIwMTktMDItMjEgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTU2NyaXB0IFNQSSBiYXNl
ZCBvbiBmZWVkYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBkZWZkMmYwOGI4NzE4MWU2
YjdmNGZmNjAxNTY5MDdmZGI2ZWIzOTdmLi5iMGMzMDVlMmY1YjlkMGIzMzg1ODFhYmQ2OWYwOGRl
ODc3NTNmZTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMTkxLDcgKzE5MSw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShWTSosIFN0
cnVjdHVyZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBGdW5jdGlvbk1ldGFkYXRhTm9kZSosIFVubGlu
a2VkRnVuY3Rpb25LaW5kLCBDb25zdHJ1Y3RBYmlsaXR5LCBKU1BhcnNlclNjcmlwdE1vZGUsIENv
bXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlLCAgSlNDOjpEZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wg
aXNCdWlsdGluRGVmYXVsdENsYXNzQ29uc3RydWN0b3IpOwotICAgIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKERlY29kZXImLCBWYXJpYWJsZUVudmlyb25tZW50JiwgY29uc3QgQ2FjaGVkRnVu
Y3Rpb25FeGVjdXRhYmxlJik7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2Rl
ciYsIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlLCBjb25zdCBDYWNoZWRGdW5jdGlvbkV4ZWN1
dGFibGUmKTsKIAogICAgIHVuc2lnbmVkIG1fZmlyc3RMaW5lT2Zmc2V0OwogICAgIHVuc2lnbmVk
IG1fbGluZUNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9W
YXJpYWJsZUVudmlyb25tZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFy
aWFibGVFbnZpcm9ubWVudC5jcHAKaW5kZXggYTkzYWU3YWRiZGZlNjY4NmM5M2I3ZmMxODUwNzM3
ZDllMWYwZjFiYi4uZmFkZGQxNDMwMmQxNzE1ZWQ1ODFmYmVjNWQ1OGI3NDA2NWJkOGE2YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuY3BwCkBAIC0xNTQsMTIgKzE1NCwyMSBAQCBWYXJpYWJsZUVudmlyb25tZW50IENvbXBhY3RW
YXJpYWJsZUVudmlyb25tZW50Ojp0b1ZhcmlhYmxlRW52aXJvbm1lbnQoKSBjb25zdAogQ29tcGFj
dFZhcmlhYmxlTWFwOjpIYW5kbGUgQ29tcGFjdFZhcmlhYmxlTWFwOjpnZXQoY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCYgZW52KQogewogICAgIGF1dG8qIGVudmlyb25tZW50ID0gbmV3IENvbXBh
Y3RWYXJpYWJsZUVudmlyb25tZW50KGVudik7CisgICAgYm9vbCBpc05ld0VudHJ5OworICAgIGF1
dG8gaGFuZGxlID0gZ2V0KGVudmlyb25tZW50LCBpc05ld0VudHJ5KTsKKyAgICBpZiAoIWlzTmV3
RW50cnkpCisgICAgICAgIGRlbGV0ZSBlbnZpcm9ubWVudDsKKyAgICByZXR1cm4gaGFuZGxlOwor
fQorCitDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBDb21wYWN0VmFyaWFibGVNYXA6OmdldChD
b21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCogZW52aXJvbm1lbnQsIGJvb2wmIGlzTmV3RW50cnkp
Cit7CiAgICAgQ29tcGFjdFZhcmlhYmxlTWFwS2V5IGtleSB7ICplbnZpcm9ubWVudCB9OwogICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9tYXAuYWRkKGtleSwgMSk7CisgICAgaXNOZXdFbnRyeSA9IGFk
ZFJlc3VsdC5pc05ld0VudHJ5OwogICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAg
ICAgcmV0dXJuIENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlKCplbnZpcm9ubWVudCwgKnRoaXMp
OwogCi0gICAgZGVsZXRlIGVudmlyb25tZW50OwogICAgICsrYWRkUmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZTsKICAgICByZXR1cm4gQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUoYWRkUmVzdWx0Lml0
ZXJhdG9yLT5rZXkuZW52aXJvbm1lbnQoKSwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaAppbmRleCBlZTZjY2U2ZTc4
NmNhNTZhYTAwMDgxZDA5NWYwMjY0YmMzY2JlZTVhLi45ZjkwNDUwNDgwMzc2ZWQyOTQ4MjcxNTRi
YzNhNTE1YjkxNGFiNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1ZhcmlhYmxlRW52aXJvbm1lbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1ZhcmlhYmxlRW52aXJvbm1lbnQuaApAQCAtMTI1LDYgKzEyNSw5IEBAIHByaXZhdGU6CiBjbGFz
cyBDb21wYWN0VmFyaWFibGVFbnZpcm9ubWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQp
OworCisgICAgZnJpZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50Owor
CiBwdWJsaWM6CiAgICAgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQoY29uc3QgVmFyaWFibGVF
bnZpcm9ubWVudCYpOwogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgdG9WYXJpYWJsZUVudmlyb25t
ZW50KCkgY29uc3Q7CkBAIC0xMzMsNiArMTM2LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGhh
c2goKSBjb25zdCB7IHJldHVybiBtX2hhc2g7IH0KIAogcHJpdmF0ZToKKyAgICBDb21wYWN0VmFy
aWFibGVFbnZpcm9ubWVudCgpID0gZGVmYXVsdDsKKwogICAgIFZlY3RvcjxSZWZQdHI8VW5pcXVl
ZFN0cmluZ0ltcGw+PiBtX3ZhcmlhYmxlczsKICAgICBWZWN0b3I8VmFyaWFibGVFbnZpcm9ubWVu
dEVudHJ5PiBtX3ZhcmlhYmxlTWV0YWRhdGE7CiAgICAgdW5zaWduZWQgbV9oYXNoOwpAQCAtMjA0
LDYgKzIwOSw4IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ29tcGFjdFZhcmlhYmxlTWFwIDog
cHVibGljIFJlZkNvdW50ZWQ8Q29tcGFjdFZhcmlhYmxlTWFwPiB7CiBwdWJsaWM6CiAgICAgY2xh
c3MgSGFuZGxlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIENhY2hlZENvbXBhY3RWYXJpYWJsZU1h
cEhhbmRsZTsKKwogICAgIHB1YmxpYzoKICAgICAgICAgSGFuZGxlKCkgPSBkZWZhdWx0OwogCkBA
IC0yNDEsNiArMjQ4LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
SGFuZGxlOworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRDb21wYWN0VmFyaWFibGVNYXBIYW5kbGU7
CisKKyAgICBIYW5kbGUgZ2V0KENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiwgYm9vbCYgaXNO
ZXdFbnRyeSk7CisKICAgICBIYXNoTWFwPENvbXBhY3RWYXJpYWJsZU1hcEtleSwgdW5zaWduZWQ+
IG1fbWFwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2FjaGVkVHlwZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlw
ZXMuY3BwCmluZGV4IGFjZDk1ZGZhOTY1MGVkMDEzNDYyMTVkYTQzNzk5Mjg1Y2Y0NjYyZjguLjA2
M2VmYTlkMGVhYmVmMmQ2MjgwNDEwMGQ4MDkxYzY0ZjU1YTE0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fcHRyVG9PZmZzZXRNYXAuYWRkKHB0ciwgb2Zmc2V0KTsKICAgICB9
CiAKLSAgICBXVEY6Ok9wdGlvbmFsPHB0cmRpZmZfdD4gb2Zmc2V0Rm9yUHRyKGNvbnN0IHZvaWQq
IHB0cikKKyAgICBXVEY6Ok9wdGlvbmFsPHB0cmRpZmZfdD4gY2FjaGVkT2Zmc2V0Rm9yUHRyKGNv
bnN0IHZvaWQqIHB0cikKICAgICB7CiAgICAgICAgIGF1dG8gaXQgPSBtX3B0clRvT2Zmc2V0TWFw
LmZpbmQocHRyKTsKICAgICAgICAgaWYgKGl0ID09IG1fcHRyVG9PZmZzZXRNYXAuZW5kKCkpCkBA
IC0yMjcsOCArMjI3LDggQEAgcHVibGljOgogCiAgICAgfkRlY29kZXIoKQogICAgIHsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9maW5hbGl6ZXJzKQotICAgICAgICAgICAgcGFpci52YWx1
ZSgpOworICAgICAgICBmb3IgKGF1dG8mIGZpbmFsaXplciA6IG1fZmluYWxpemVycykKKyAgICAg
ICAgICAgIGZpbmFsaXplcigpOwogICAgIH0KIAogICAgIFZNJiB2bSgpIHsgcmV0dXJuIG1fdm07
IH0KQEAgLTI0NSw3ICsyNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fb2Zmc2V0VG9QdHJNYXAu
YWRkKG9mZnNldCwgcHRyKTsKICAgICB9CiAKLSAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBwdHJG
b3JPZmZzZXQocHRyZGlmZl90IG9mZnNldCkKKyAgICBXVEY6Ok9wdGlvbmFsPHZvaWQqPiBjYWNo
ZWRQdHJGb3JPZmZzZXQocHRyZGlmZl90IG9mZnNldCkKICAgICB7CiAgICAgICAgIGF1dG8gaXQg
PSBtX29mZnNldFRvUHRyTWFwLmZpbmQob2Zmc2V0KTsKICAgICAgICAgaWYgKGl0ID09IG1fb2Zm
c2V0VG9QdHJNYXAuZW5kKCkpCkBAIC0yNTQsOSArMjU0LDkgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgdm9pZCBhZGRGaW5hbGl6ZXIocHRy
ZGlmZl90IG9mZnNldCwgY29uc3QgRnVuY3RvciYgZm4pCisgICAgdm9pZCBhZGRGaW5hbGl6ZXIo
Y29uc3QgRnVuY3RvciYgZmluYWxpemVyKQogICAgIHsKLSAgICAgICAgbV9maW5hbGl6ZXJzLmFk
ZChvZmZzZXQsIGZuKTsKKyAgICAgICAgbV9maW5hbGl6ZXJzLmFwcGVuZChmaW5hbGl6ZXIpOwog
ICAgIH0KIAogcHJpdmF0ZToKQEAgLTI2Niw3ICsyNjYsNyBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX3NpemU7CiAjZW5kaWYKICAgICBIYXNoTWFwPHB0cmRpZmZfdCwgdm9pZCo+IG1fb2Zmc2V0
VG9QdHJNYXA7Ci0gICAgSGFzaE1hcDxwdHJkaWZmX3QsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4g
bV9maW5hbGl6ZXJzOworICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fZmluYWxp
emVyczsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC0zNzcsNyArMzc3LDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAobV9pc0VtcHR5KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGlmIChXVEY6Ok9wdGlvbmFsPHB0cmRpZmZfdD4gb2Zmc2V0ID0gZW5jb2Rlci5vZmZzZXRG
b3JQdHIoc3JjKSkgeworICAgICAgICBpZiAoV1RGOjpPcHRpb25hbDxwdHJkaWZmX3Q+IG9mZnNl
dCA9IGVuY29kZXIuY2FjaGVkT2Zmc2V0Rm9yUHRyKHNyYykpIHsKICAgICAgICAgICAgIHRoaXMt
Pm1fb2Zmc2V0ID0gKm9mZnNldCAtIGVuY29kZXIub2Zmc2V0T2YoJnRoaXMtPm1fb2Zmc2V0KTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzg4LDIwICszODgsMzIgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgU291cmNl
KiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXJncy4uLiBhcmdzKSBjb25zdAorICAgIFNvdXJj
ZSogZGVjb2RlKERlY29kZXImIGRlY29kZXIsIGJvb2wmIGlzTmV3QWxsb2NhdGlvbiwgQXJncyYm
Li4uIGFyZ3MpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV9pc0VtcHR5KQorICAgICAgICBp
ZiAobV9pc0VtcHR5KSB7CisgICAgICAgICAgICBpc05ld0FsbG9jYXRpb24gPSBmYWxzZTsKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CiAKICAgICAgICAgcHRyZGlmZl90
IGJ1ZmZlck9mZnNldCA9IGRlY29kZXIub2Zmc2V0T2YodGhpcy0+YnVmZmVyKCkpOwotICAgICAg
ICBpZiAoV1RGOjpPcHRpb25hbDx2b2lkKj4gcHRyID0gZGVjb2Rlci5wdHJGb3JPZmZzZXQoYnVm
ZmVyT2Zmc2V0KSkKKyAgICAgICAgaWYgKFdURjo6T3B0aW9uYWw8dm9pZCo+IHB0ciA9IGRlY29k
ZXIuY2FjaGVkUHRyRm9yT2Zmc2V0KGJ1ZmZlck9mZnNldCkpIHsKKyAgICAgICAgICAgIGlzTmV3
QWxsb2NhdGlvbiA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U291cmNlKj4oKnB0cik7CisgICAgICAgIH0KIAotICAgICAgICBTb3VyY2UqIHB0ciA9IGdldCgp
LT5kZWNvZGUoZGVjb2RlciwgYXJncy4uLik7CisgICAgICAgIGlzTmV3QWxsb2NhdGlvbiA9IHRy
dWU7CisgICAgICAgIFNvdXJjZSogcHRyID0gZ2V0KCktPmRlY29kZShkZWNvZGVyLCBzdGQ6OmZv
cndhcmQ8QXJncz4oYXJncykuLi4pOwogICAgICAgICBkZWNvZGVyLmNhY2hlT2Zmc2V0KGJ1ZmZl
ck9mZnNldCwgcHRyKTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIFNvdXJjZSogZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEFyZ3MmJi4uLiBhcmdzKSBjb25zdAorICAgIHsKKyAgICAgICAgYm9vbCB1bnVzZWRJc05ld0Fs
bG9jYXRpb247CisgICAgICAgIHJldHVybiBkZWNvZGUoZGVjb2RlciwgdW51c2VkSXNOZXdBbGxv
Y2F0aW9uLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgIH0KKwogICAgIGNvbnN0
IFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBnZXQoKTsgfQogCiBwcml2YXRlOgpAQCAt
NDMxLDEwICs0NDMsMTUgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPFNvdXJjZT4gZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBTb3VyY2UqIGRlY29kZWRQdHIg
PSBtX3B0ci5kZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIGJvb2wgaXNOZXdBbGxvY2F0aW9uOwor
ICAgICAgICBTb3VyY2UqIGRlY29kZWRQdHIgPSBtX3B0ci5kZWNvZGUoZGVjb2RlciwgaXNOZXdB
bGxvY2F0aW9uKTsKICAgICAgICAgaWYgKCFkZWNvZGVkUHRyKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIGRlY29kZXIuYWRkRmluYWxpemVyKGRlY29kZXIub2Zmc2V0T2Yo
bV9wdHIuYnVmZmVyKCkpLCBbPV0geyBkZXJlZklmTm90TnVsbChkZWNvZGVkUHRyKTsgfSk7Cisg
ICAgICAgIGlmIChpc05ld0FsbG9jYXRpb24pIHsKKyAgICAgICAgICAgIGRlY29kZXIuYWRkRmlu
YWxpemVyKFs9XSB7CisgICAgICAgICAgICAgICAgZGVyZWZJZk5vdE51bGwoZGVjb2RlZFB0cik7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogICAgICAgICByZWZJZk5vdE51bGwoZGVjb2Rl
ZFB0cik7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihkZWNvZGVkUHRyKTsKICAgICB9CkBAIC04
NzgsNiArODk1LDY1IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkSGFzaE1hcDxDYWNoZWRSZWZQdHI8
Q2FjaGVkVW5pcXVlZFN0cmluZ0ltcGw+LCBWYXJpYWJsZUVudmlyb25tZW50RW50cnksIElkZW50
aWZpZXJSZXBIYXNoLCBIYXNoVHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+LCBWYXJp
YWJsZUVudmlyb25tZW50RW50cnlIYXNoVHJhaXRzPiBtX21hcDsKIH07CiAKK2NsYXNzIENhY2hl
ZENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50IDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0
VmFyaWFibGVFbnZpcm9ubWVudD4geworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50JiBlbnYpCisgICAgewor
ICAgICAgICBtX3ZhcmlhYmxlcy5lbmNvZGUoZW5jb2RlciwgZW52Lm1fdmFyaWFibGVzKTsKKyAg
ICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmVuY29kZShlbmNvZGVyLCBlbnYubV92YXJpYWJsZU1l
dGFkYXRhKTsKKyAgICAgICAgbV9oYXNoID0gZW52Lm1faGFzaDsKKyAgICAgICAgbV9pc0V2ZXJ5
dGhpbmdDYXB0dXJlZCA9IGVudi5tX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworICAgIH0KKworICAg
IHZvaWQgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50
JiBlbnYpIGNvbnN0CisgICAgeworICAgICAgICBtX3ZhcmlhYmxlcy5kZWNvZGUoZGVjb2Rlciwg
ZW52Lm1fdmFyaWFibGVzKTsKKyAgICAgICAgbV92YXJpYWJsZU1ldGFkYXRhLmRlY29kZShkZWNv
ZGVyLCBlbnYubV92YXJpYWJsZU1ldGFkYXRhKTsKKyAgICAgICAgZW52Lm1faGFzaCA9IG1faGFz
aDsKKyAgICAgICAgZW52Lm1faXNFdmVyeXRoaW5nQ2FwdHVyZWQgPSBtX2lzRXZlcnl0aGluZ0Nh
cHR1cmVkOworICAgIH0KKworICAgIENvbXBhY3RWYXJpYWJsZUVudmlyb25tZW50KiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIENvbXBhY3RWYXJpYWJsZUVu
dmlyb25tZW50KiBlbnYgPSBuZXcgQ29tcGFjdFZhcmlhYmxlRW52aXJvbm1lbnQ7CisgICAgICAg
IGRlY29kZShkZWNvZGVyLCAqZW52KTsKKyAgICAgICAgcmV0dXJuIGVudjsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgQ2FjaGVkVmVjdG9yPENhY2hlZFJlZlB0cjxDYWNoZWRVbmlxdWVkU3RyaW5n
SW1wbD4+IG1fdmFyaWFibGVzOworICAgIENhY2hlZFZlY3RvcjxWYXJpYWJsZUVudmlyb25tZW50
RW50cnk+IG1fdmFyaWFibGVNZXRhZGF0YTsKKyAgICB1bnNpZ25lZCBtX2hhc2g7CisgICAgYm9v
bCBtX2lzRXZlcnl0aGluZ0NhcHR1cmVkOworfTsKKworY2xhc3MgQ2FjaGVkQ29tcGFjdFZhcmlh
YmxlTWFwSGFuZGxlIDogcHVibGljIENhY2hlZE9iamVjdDxDb21wYWN0VmFyaWFibGVNYXA6Okhh
bmRsZT4geworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IENvbXBhY3RWYXJpYWJsZU1hcDo6SGFuZGxlJiBoYW5kbGUpCisgICAgeworICAgICAgICBtX2Vu
dmlyb25tZW50LmVuY29kZShlbmNvZGVyLCBoYW5kbGUubV9lbnZpcm9ubWVudCk7CisgICAgfQor
CisgICAgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgZGVjb2RlKERlY29kZXImIGRlY29kZXIp
IGNvbnN0CisgICAgeworICAgICAgICBib29sIGlzTmV3QWxsb2NhdGlvbjsKKyAgICAgICAgQ29t
cGFjdFZhcmlhYmxlRW52aXJvbm1lbnQqIGVudmlyb25tZW50ID0gbV9lbnZpcm9ubWVudC5kZWNv
ZGUoZGVjb2RlciwgaXNOZXdBbGxvY2F0aW9uKTsKKyAgICAgICAgYm9vbCBpc05ld0VudHJ5Owor
ICAgICAgICBDb21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBoYW5kbGUgPSBkZWNvZGVyLnZtKCku
bV9jb21wYWN0VmFyaWFibGVNYXAtPmdldChlbnZpcm9ubWVudCwgaXNOZXdFbnRyeSk7CisgICAg
ICAgIGlmICghaXNOZXdBbGxvY2F0aW9uKQorICAgICAgICAgICAgQVNTRVJUKCFpc05ld0VudHJ5
KTsKKyAgICAgICAgZWxzZSBpZiAoIWlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgIGRlY29kZXIu
YWRkRmluYWxpemVyKFs9XSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIGVudmlyb25tZW50Owor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhbmRsZTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgQ2FjaGVkUHRyPENhY2hlZENvbXBhY3RWYXJpYWJsZUVudmlyb25t
ZW50PiBtX2Vudmlyb25tZW50OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
U291cmNlID0gU291cmNlVHlwZTxUPj4KIGNsYXNzIENhY2hlZEFycmF5IDogcHVibGljIFZhcmlh
YmxlTGVuZ3RoT2JqZWN0PFNvdXJjZSo+IHsKIHB1YmxpYzoKQEAgLTE1MTcsNyArMTU5Myw3IEBA
IHByaXZhdGU6CiAgICAgQ2FjaGVkSWRlbnRpZmllciBtX2VjbWFOYW1lOwogICAgIENhY2hlZElk
ZW50aWZpZXIgbV9pbmZlcnJlZE5hbWU7CiAKLSAgICBDYWNoZWRWYXJpYWJsZUVudmlyb25tZW50
IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CisgICAgQ2FjaGVkQ29tcGFjdFZhcmlhYmxlTWFw
SGFuZGxlIG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXM7CiAKICAgICBDYWNoZWRXcml0ZUJhcnJp
ZXI8Q2FjaGVkRnVuY3Rpb25Db2RlQmxvY2ssIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s+IG1f
dW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsOwogICAgIENhY2hlZFdyaXRlQmFycmllcjxDYWNoZWRG
dW5jdGlvbkNvZGVCbG9jaywgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaz4gbV91bmxpbmtlZENv
ZGVCbG9ja0ZvckNvbnN0cnVjdDsKQEAgLTE4NTIsNyArMTkyOCw3IEBAIEFMV0FZU19JTkxJTkUg
dm9pZCBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBVbmxpCiAgICAgbV9lY21hTmFtZS5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5lY21h
TmFtZSgpKTsKICAgICBtX2luZmVycmVkTmFtZS5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5p
bmZlcnJlZE5hbWUoKSk7CiAKLSAgICBtX3BhcmVudFNjb3BlVERaVmFyaWFibGVzLmVuY29kZShl
bmNvZGVyLCBleGVjdXRhYmxlLnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpOworICAgIG1fcGFy
ZW50U2NvcGVURFpWYXJpYWJsZXMuZW5jb2RlKGVuY29kZXIsIGV4ZWN1dGFibGUubV9wYXJlbnRT
Y29wZVREWlZhcmlhYmxlcyk7CiAKICAgICBtX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbC5lbmNv
ZGUoZW5jb2RlciwgZXhlY3V0YWJsZS5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbCk7CiAgICAg
bV91bmxpbmtlZENvZGVCbG9ja0ZvckNvbnN0cnVjdC5lbmNvZGUoZW5jb2RlciwgZXhlY3V0YWJs
ZS5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ29uc3RydWN0KTsKQEAgLTE4NjAsMTAgKzE5MzYsOCBA
QCBBTFdBWVNfSU5MSU5FIHZvaWQgQ2FjaGVkRnVuY3Rpb25FeGVjdXRhYmxlOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgVW5saQogCiBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKSBjb25zdAogewotICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW52OwotICAgIG1fcGFy
ZW50U2NvcGVURFpWYXJpYWJsZXMuZGVjb2RlKGRlY29kZXIsIGVudik7Ci0KLSAgICBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPihkZWNvZGVyLnZtKCkuaGVhcCkpIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKGRlY29kZXIsIGVudiwgKnRoaXMpOworICAgIENvbXBhY3RW
YXJpYWJsZU1hcDo6SGFuZGxlIGVudiA9IG1fcGFyZW50U2NvcGVURFpWYXJpYWJsZXMuZGVjb2Rl
KGRlY29kZXIpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
bmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KGRl
Y29kZXIudm0oKS5oZWFwKSkgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoZGVjb2RlciwgV1RG
TW92ZShlbnYpLCAqdGhpcyk7CiAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZGVjb2Rl
ci52bSgpKTsKIAogICAgIG1fdW5saW5rZWRDb2RlQmxvY2tGb3JDYWxsLmRlY29kZShkZWNvZGVy
LCBleGVjdXRhYmxlLT5tX3VubGlua2VkQ29kZUJsb2NrRm9yQ2FsbCwgZXhlY3V0YWJsZSk7CkBA
IC0xODcyLDcgKzE5NDYsNyBAQCBBTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmRlY29kZShEZWNvZAogICAgIHJldHVybiBl
eGVjdXRhYmxlOwogfQogCi1BTFdBWVNfSU5MSU5FIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
OjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZShEZWNvZGVyJiBkZWNvZGVyLCBWYXJpYWJsZUVu
dmlyb25tZW50JiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcywgY29uc3QgQ2FjaGVkRnVuY3Rpb25F
eGVjdXRhYmxlJiBjYWNoZWRFeGVjdXRhYmxlKQorQUxXQVlTX0lOTElORSBVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZTo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUoRGVjb2RlciYgZGVjb2Rl
ciwgQ29tcGFjdFZhcmlhYmxlTWFwOjpIYW5kbGUgcGFyZW50U2NvcGVURFpWYXJpYWJsZXMsIGNv
bnN0IENhY2hlZEZ1bmN0aW9uRXhlY3V0YWJsZSYgY2FjaGVkRXhlY3V0YWJsZSkKICAgICA6IEJh
c2UoZGVjb2Rlci52bSgpLCBkZWNvZGVyLnZtKCkudW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGVT
dHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX2ZpcnN0TGluZU9mZnNldChjYWNoZWRFeGVjdXRhYmxl
LmZpcnN0TGluZU9mZnNldCgpKQogICAgICwgbV9saW5lQ291bnQoY2FjaGVkRXhlY3V0YWJsZS5s
aW5lQ291bnQoKSkKQEAgLTE5MDIsNyArMTk3Niw3IEBAIEFMV0FZU19JTkxJTkUgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKERlY29kZXImIGRl
CiAgICAgLCBtX2VjbWFOYW1lKGNhY2hlZEV4ZWN1dGFibGUuZWNtYU5hbWUoZGVjb2RlcikpCiAg
ICAgLCBtX2luZmVycmVkTmFtZShjYWNoZWRFeGVjdXRhYmxlLmluZmVycmVkTmFtZShkZWNvZGVy
KSkKIAotICAgICwgbV9wYXJlbnRTY29wZVREWlZhcmlhYmxlcyhkZWNvZGVyLnZtKCkubV9jb21w
YWN0VmFyaWFibGVNYXAtPmdldChwYXJlbnRTY29wZVREWlZhcmlhYmxlcykpCisgICAgLCBtX3Bh
cmVudFNjb3BlVERaVmFyaWFibGVzKFdURk1vdmUocGFyZW50U2NvcGVURFpWYXJpYWJsZXMpKQog
CiAgICAgLCBtX3JhcmVEYXRhKGNhY2hlZEV4ZWN1dGFibGUucmFyZURhdGEoZGVjb2RlcikpCiB7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>