<?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>184254</bug_id>
          
          <creation_ts>2018-04-02 21:44:35 -0700</creation_ts>
          <short_desc>REGRESSION: MessagePort.postMessage() fails to send transferable objects</short_desc>
          <delta_ts>2018-04-19 16:59:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari 11</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184502</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=184285</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yann Cabon">ycabon</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dpaddock</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>koivisto</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1411354</commentid>
    <comment_count>0</comment_count>
    <who name="Yann Cabon">ycabon</who>
    <bug_when>2018-04-02 21:44:35 -0700</bug_when>
    <thetext>Test case:

&lt;html&gt;
  &lt;body&gt;
    &lt;script&gt;
        var channel = new MessageChannel();
        channel.port1.addEventListener(&quot;message&quot;, (event) =&gt; {
          console.log(&quot;port1: message received&quot;);

          // data SHOULD defined and containing an ArrayBuffer named buf
          if (event.data == null) {
            console.error(&quot;message data null!&quot;);
            return;
          }

          var data = event.data;
          event.target.postMessage({ buf: data.buf }, [data.buf]);
        });

        channel.port2.addEventListener(&quot;message&quot;, (event) =&gt; {
          console.log(&quot;port2: message received&quot;);
          var data = event.data;
          console.log(data.buf);
        });

        channel.port1.start();
        channel.port2.start();

        var arr = new Float64Array();
        channel.port2.postMessage({ buf: arr.buffer }, [arr.buffer]);
      &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;

Transferring an ArrayBuffer using MessagePort.postMessage() fails in Safari 11.1.
The data in the received event by port1 is null.
This used to work in previous stable Safari release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411406</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-03 07:23:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/39140200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411461</commentid>
    <comment_count>2</comment_count>
      <attachid>337087</attachid>
    <who name="Yann Cabon">ycabon</who>
    <bug_when>2018-04-03 10:37:34 -0700</bug_when>
    <thetext>Created attachment 337087
HTML page of the test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411462</commentid>
    <comment_count>3</comment_count>
    <who name="Yann Cabon">ycabon</who>
    <bug_when>2018-04-03 10:37:44 -0700</bug_when>
    <thetext>I&apos;m adding another test case to more represent how we actually setup the MessagePort communication.
We spawn a Worker, then when it replies we send him a MessagePort, then the communication between the 2 ports begin.

We do this as we handle multiple communication channels, agnostic of where the worker code is actually running.

I attached 2 files, The html page that spawn the worker and the worker script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411463</commentid>
    <comment_count>4</comment_count>
      <attachid>337088</attachid>
    <who name="Yann Cabon">ycabon</who>
    <bug_when>2018-04-03 10:38:04 -0700</bug_when>
    <thetext>Created attachment 337088
The worker script of the test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412190</commentid>
    <comment_count>5</comment_count>
      <attachid>337306</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-05 15:15:05 -0700</bug_when>
    <thetext>Created attachment 337306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412191</commentid>
    <comment_count>6</comment_count>
      <attachid>337306</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-05 15:24:18 -0700</bug_when>
    <thetext>Comment on attachment 337306
Patch

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

&gt; LayoutTests/workers/message-port.html:30
&gt; +  debug(array[0]);

This should expect a specific value and display a PASS or FAIL line in the expected results. Otherwise, you can be sure someone will come and simply rebaseline the test if it starts outputing a different value or no value.

Since you&apos;re using js-test, you can use shouldBe() utility function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412194</commentid>
    <comment_count>7</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-05 15:39:07 -0700</bug_when>
    <thetext>It seems that the regression was introduce in https://bugs.webkit.org/show_bug.cgi?id=181922 due to `SerializedScriptValue`s being encoded with `toWireData`, which does not include ArrayBuffers (or any other extra data contained in the serialized value for that matter). However, I&apos;m not sure if this is the best approach, and if it&apos;s OK to expose the ArrayBufferContents ctor that I had to expose. Also, we should probably  throw an error when a SharedArrayBuffer is part of transfer list (similar to what Chrome does).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412196</commentid>
    <comment_count>8</comment_count>
      <attachid>337306</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2018-04-05 15:44:52 -0700</bug_when>
    <thetext>Comment on attachment 337306
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:142
&gt; +

Remove extra blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412199</commentid>
    <comment_count>9</comment_count>
      <attachid>337308</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-05 15:51:43 -0700</bug_when>
    <thetext>Created attachment 337308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412200</commentid>
    <comment_count>10</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-05 15:53:33 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 337306 [details]
&gt; Since you&apos;re using js-test, you can use shouldBe() utility function.

`shouldBe` warned that it didn&apos;t like numbers, so I wrote the check by hand. Hopefully that&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413016</commentid>
    <comment_count>11</comment_count>
      <attachid>337540</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-09 14:16:59 -0700</bug_when>
    <thetext>Created attachment 337540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413142</commentid>
    <comment_count>12</comment_count>
      <attachid>337575</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-09 19:41:50 -0700</bug_when>
    <thetext>Created attachment 337575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413182</commentid>
    <comment_count>13</comment_count>
      <attachid>337575</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-09 22:03:06 -0700</bug_when>
    <thetext>Comment on attachment 337575
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmMemory.h:89
&gt; +    void checkDeletionHasntBegun() {  ASSERT(!deletionHasBegun()); }

We prefer to avoid contractions when naming things. Maybe checkDidStartDeletion or checkIsDeleting or checkDeletionHasNotBegun. I do not like any of these names, but this is what I came up with at the moment. I suspect we have functions that serve a similar purpose in the codebase. Maybe we can draw inspiration from such code. Have you grepped the codebase for “deletion” or “hasBegun”?

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:142
&gt; +    std::unique_ptr&lt;ArrayBufferContentsArray&gt; arrayBufferContentsArray;

Please move this declaration and the declaration for blobURL as close to where they are used as possible. We do not need to use C89 conventions and declare all variables at the start of the function. Although this is unlikely to be hot code it is inefficient to construct both this std::unique_ptr and blobURLs when we may bail out early.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:166
&gt; +            void *buffer = Gigacage::tryMalloc(Gigacage::Primitive, bufferSize);

* on the wrong side.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:167
&gt; +            auto destructor = [] (void* p) {

p  =&gt; ptr

&gt; LayoutTests/ChangeLog:8
&gt; +        The regression test provided with the bug report verifies that the ArrayBuffer is properly serialized - before, the whole data object would be null.

It is an unwritten convention that we wrap ChangeLog lines to around ~100 characters.

&gt; LayoutTests/workers/message-port.html:1
&gt; +&lt;html&gt;

I do not see the need to render this page using quirks mode. Please add &lt;!DOCTYPE html&gt; to the top of this file.

&gt; LayoutTests/workers/message-port.html:3
&gt; +&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

We prefer that new tests include LayoutTests/resources/js-test.js (combines js-test-pre.js and js-test-post.js) instead of explicitly including js-test-pre.js and js-test-post.js.

&gt; LayoutTests/workers/message-port.html:7
&gt; +&apos;use strict&apos;;

Is this necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413187</commentid>
    <comment_count>14</comment_count>
      <attachid>337575</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-09 22:07:17 -0700</bug_when>
    <thetext>Comment on attachment 337575
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=184254

Please add the Radar bug URL under this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413190</commentid>
    <comment_count>15</comment_count>
      <attachid>337575</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-09 22:09:21 -0700</bug_when>
    <thetext>Comment on attachment 337575
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:34
&gt; +#include &lt;JavaScriptCore/WasmModule.h&gt;

I am not at a computer with a checkout at the moment. What functionality are we using from this header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413314</commentid>
    <comment_count>16</comment_count>
      <attachid>337575</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-10 10:27:09 -0700</bug_when>
    <thetext>Comment on attachment 337575
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:34
&gt;&gt; +#include &lt;JavaScriptCore/WasmModule.h&gt;
&gt; 
&gt; I am not at a computer with a checkout at the moment. What functionality are we using from this header?

I had to add this due to the implementation of `SerializedScriptValue::decode` on this header. It was failing to compile because of the unique_ptr referencing the destructor of an incomplete type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413335</commentid>
    <comment_count>17</comment_count>
      <attachid>337622</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-10 11:15:48 -0700</bug_when>
    <thetext>Created attachment 337622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413544</commentid>
    <comment_count>18</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-10 20:35:54 -0700</bug_when>
    <thetext>(In reply to Tadeu Zagallo from comment #16)
&gt; Comment on attachment 337575 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=337575&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:34
&gt; &gt;&gt; +#include &lt;JavaScriptCore/WasmModule.h&gt;
&gt; &gt; 
&gt; &gt; I am not at a computer with a checkout at the moment. What functionality are we using from this header?
&gt; 
&gt; I had to add this due to the implementation of
&gt; `SerializedScriptValue::decode` on this header. It was failing to compile
&gt; because of the unique_ptr referencing the destructor of an incomplete type.

Would we be able to avoid including this header by using a forwarding constructor? Specifically, can we declare a new constructor overload in this file that took all arguments except the std::unique_ptr to the WasmModule and then implement it in the .cpp file such that it forwards to the constructor that takes the std::unique_ptr passing nullptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413806</commentid>
    <comment_count>19</comment_count>
      <attachid>337732</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-11 14:02:29 -0700</bug_when>
    <thetext>Created attachment 337732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413807</commentid>
    <comment_count>20</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-11 14:05:50 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #18)
&gt; (In reply to Tadeu Zagallo from comment #16)
&gt; &gt; Comment on attachment 337575 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=337575&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:34
&gt; &gt; &gt;&gt; +#include &lt;JavaScriptCore/WasmModule.h&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; I am not at a computer with a checkout at the moment. What functionality are we using from this header?
&gt; &gt; 
&gt; &gt; I had to add this due to the implementation of
&gt; &gt; `SerializedScriptValue::decode` on this header. It was failing to compile
&gt; &gt; because of the unique_ptr referencing the destructor of an incomplete type.
&gt; 
&gt; Would we be able to avoid including this header by using a forwarding
&gt; constructor? Specifically, can we declare a new constructor overload in this
&gt; file that took all arguments except the std::unique_ptr to the WasmModule
&gt; and then implement it in the .cpp file such that it forwards to the
&gt; constructor that takes the std::unique_ptr passing nullptr?

Yes, that&apos;s much better. I&apos;ve updated the patch, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414640</commentid>
    <comment_count>21</comment_count>
      <attachid>337732</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-14 09:52:20 -0700</bug_when>
    <thetext>Comment on attachment 337732
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:160
&gt; +    if (hasArray) {

If hasArray is true then arrayLength &gt; 0? If so, we should add an ASSERT() for this. If not, then can we avoid instantiating an empty array on line 165?

&gt; LayoutTests/workers/message-port.html:40
&gt; +var arr = new Float64Array([Math.PI]);

This test is good. It only tests the case of an array with one value. We should also add a test to cover an empty array. Can we test the serialization logic for blob URLs and the data argument in the serialization code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414835</commentid>
    <comment_count>22</comment_count>
      <attachid>337732</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-16 11:32:31 -0700</bug_when>
    <thetext>Comment on attachment 337732
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:3177
&gt; +            , nullptr
&gt; +#endif
&gt; +            )

Nit: Wrong indentation. &quot;,&quot; should be aligned to :, and ) should be exactly 4 spaces to the right of &quot;,&quot; and &quot;:&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414844</commentid>
    <comment_count>23</comment_count>
      <attachid>338017</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-16 11:41:52 -0700</bug_when>
    <thetext>Created attachment 338017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414877</commentid>
    <comment_count>24</comment_count>
      <attachid>338017</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-04-16 13:08:56 -0700</bug_when>
    <thetext>Comment on attachment 338017
Patch

I don&apos;t truly know enough about the array buffer stuff to judge it, and it&apos;s the squirreliest part of this.

Otherwise LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415060</commentid>
    <comment_count>25</comment_count>
      <attachid>338017</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-17 00:42:07 -0700</bug_when>
    <thetext>Comment on attachment 338017
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:134
&gt; +    auto hasArray = m_arrayBufferContentsArray &amp;&amp; m_arrayBufferContentsArray-&gt;size() &gt; 0;

Nit: should read m_arrayBufferContentsArray &amp;&amp; m_arrayBufferContentsArray-&gt;size().
https://webkit.org/code-style-guidelines/#zero-comparison

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:137
&gt; +    if (hasArray) {

We prefer an early return over nested ifs.
This should be
if (!hasArray)
    return;
instead.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:158
&gt; +    if (hasArray) {

Again, we should early return here.

&gt; LayoutTests/workers/message-port.html:13
&gt; +  return new Promise(function(resolve) {
&gt; +    var channel = new MessageChannel();

Please use 4-space indentation here and in the rest of the file.
We usually put a space between function and (.
Also, use const?

&gt; LayoutTests/workers/message-port.html:16
&gt; +      if (event.data == null)

These should really be !event.data

&gt; LayoutTests/workers/message-port.html:32
&gt; +  if (array.length === 0)

And !array.length

&gt; LayoutTests/workers/message-port.html:40
&gt; +var array = new Float64Array([Math.PI]);
&gt; +var emptyArray = new Float64Array();
&gt; +var emptyArray2 = new Float64Array();

Use const?

&gt; LayoutTests/workers/message-port.html:46
&gt; +    var array = new Float64Array(data.buf[0]);

Use const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415246</commentid>
    <comment_count>26</comment_count>
      <attachid>338142</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-17 12:27:26 -0700</bug_when>
    <thetext>Created attachment 338142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415257</commentid>
    <comment_count>27</comment_count>
      <attachid>338142</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-17 13:31:27 -0700</bug_when>
    <thetext>Comment on attachment 338142
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:164
&gt; +    ASSERT(arrayLength &gt; 0);

ArrayLength is an unsigned data type so it can never be &lt; 0. By our style guidelines you should remove the “&gt; 0”.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:171
&gt; +

Does it ever make sense that bufferSize is zero? If not, we should add an assert.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:172
&gt; +        void* buffer = Gigacage::tryMalloc(Gigacage::Primitive, bufferSize);

For your consideration I suggest we change the data type of this local from void* to uint8_t*. Then we can remove the static_cast&lt;&gt; below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416072</commentid>
    <comment_count>28</comment_count>
      <attachid>338361</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-19 14:52:26 -0700</bug_when>
    <thetext>Created attachment 338361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416078</commentid>
    <comment_count>29</comment_count>
      <attachid>338142</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2018-04-19 14:56:59 -0700</bug_when>
    <thetext>Comment on attachment 338142
Patch

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

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:171
&gt;&gt; +
&gt; 
&gt; Does it ever make sense that bufferSize is zero? If not, we should add an assert.

When the array is empty it will have size 0. I also tried skipping the malloc in case the array is empty, but unfortunately, that doesn&apos;t work since the array is considered neutered if the buffer is null.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:172
&gt;&gt; +        void* buffer = Gigacage::tryMalloc(Gigacage::Primitive, bufferSize);
&gt; 
&gt; For your consideration I suggest we change the data type of this local from void* to uint8_t*. Then we can remove the static_cast&lt;&gt; below.

I tried that, but it failed to compiled. I could have casted it here instead, but that didn&apos;t seem better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416127</commentid>
    <comment_count>30</comment_count>
      <attachid>338361</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-19 16:59:56 -0700</bug_when>
    <thetext>Comment on attachment 338361
Patch for landing

Clearing flags on attachment: 338361

Committed r230828: &lt;https://trac.webkit.org/changeset/230828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416128</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-19 16:59:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>337087</attachid>
            <date>2018-04-03 10:37:34 -0700</date>
            <delta_ts>2018-04-03 10:37:34 -0700</delta_ts>
            <desc>HTML page of the test case</desc>
            <filename>transfer_issue.html</filename>
            <type>text/html</type>
            <size>996</size>
            <attacher name="Yann Cabon">ycabon</attacher>
            
              <data encoding="base64">PGh0bWw+DQoNCjxib2R5Pg0KICA8c2NyaXB0Pg0KICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2Vy
KCIuL3RyYW5zZmVyX2lzc3VlX3dvcmtlci5qcyIpOw0KICAgIHZhciBjaGFubmVsID0gbmV3IE1l
c3NhZ2VDaGFubmVsKCk7DQoNCiAgICBjaGFubmVsLnBvcnQyLmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCAoZXZlbnQpID0+IHsNCiAgICAgIHZhciBzdGF0dXMgPSBldmVudC5kYXRhLnN0YXR1
czsNCg0KICAgICAgc3dpdGNoIChzdGF0dXMpIHsNCiAgICAgICAgLy8gV29ya2VyDQogICAgICAg
IGNhc2UgImhlbGxvIjoNCiAgICAgICAgICAvLyBQcm9jZWVkIGFuZCBzZW5kIGEgYnVmZmVyDQog
ICAgICAgICAgdmFyIGFyciA9IG5ldyBGbG9hdDY0QXJyYXkoKTsNCiAgICAgICAgICBjaGFubmVs
LnBvcnQyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgIHN0YXR1czogImRhdGEiLA0KICAgICAg
ICAgICAgYnVmOiBhcnIuYnVmZmVyDQogICAgICAgICAgfSwgW2Fyci5idWZmZXJdKTsNCiAgICAg
ICAgICBicmVhazsNCiAgICAgICAgY2FzZSAicmVzcG9uc2UiOg0KICAgICAgICAgIGNvbnNvbGUu
bG9nKCJkYXRhIHJlY2VpdmVkIiwgZXZlbnQuZGF0YS5idWYpOw0KICAgICAgfQ0KICAgIH0pOw0K
ICAgIGNoYW5uZWwucG9ydDIuc3RhcnQoKTsNCg0KICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7DQogICAgICB2YXIgc3RhdHVzID0gZXZlbnQuZGF0YS5z
dGF0dXM7DQoNCiAgICAgIHN3aXRjaCAoc3RhdHVzKSB7DQogICAgICAgIGNhc2UgImhlbGxvIjoN
CiAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoew0KICAgICAgICAgICAgc3RhdHVzOiAicG9y
dCIsDQogICAgICAgICAgICBwb3J0OiBjaGFubmVsLnBvcnQxDQogICAgICAgICAgfSwgW2NoYW5u
ZWwucG9ydDFdKTsNCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgICB9KTsNCg0KICA8L3Nj
cmlwdD4NCjwvYm9keT4NCg0KPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>337088</attachid>
            <date>2018-04-03 10:38:04 -0700</date>
            <delta_ts>2018-04-03 10:38:17 -0700</delta_ts>
            <desc>The worker script of the test case</desc>
            <filename>transfer_issue_worker.js</filename>
            <type>application/javascript</type>
            <size>679</size>
            <attacher name="Yann Cabon">ycabon</attacher>
            
              <data encoding="base64">dmFyIHBvcnQ7DQoNCnNlbGYucG9zdE1lc3NhZ2Uoew0KICBzdGF0dXM6ICJoZWxsbyINCn0pDQoN
CnNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gew0KICBpZiAoZXZl
bnQuZGF0YS5wb3J0KSB7DQogICAgcG9ydCA9IGV2ZW50LmRhdGEucG9ydDsNCg0KICAgIHBvcnQu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gew0KICAgICAgY29uc29sZS5s
b2coInBvcnQxOiBtZXNzYWdlIHJlY2VpdmVkIik7DQoNCiAgICAgIC8vIGRhdGEgU0hPVUxEIGRl
ZmluZWQgYW5kIGNvbnRhaW5pbmcgYW4gQXJyYXlCdWZmZXIgbmFtZWQgYnVmDQogICAgICBpZiAo
ZXZlbnQuZGF0YSA9PSBudWxsKSB7DQogICAgICAgIGNvbnNvbGUuZXJyb3IoIm1lc3NhZ2UgZGF0
YSBudWxsISIpOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQoNCiAgICAgIHZhciBkYXRhID0g
ZXZlbnQuZGF0YTsNCg0KICAgICAgZXZlbnQudGFyZ2V0LnBvc3RNZXNzYWdlKHsNCiAgICAgICAg
c3RhdHVzOiAicmVzcG9uc2UiLA0KICAgICAgICBidWY6IGRhdGEuYnVmDQogICAgICB9LCBbZGF0
YS5idWZdKTsNCiAgICB9KTsNCg0KICAgIHBvcnQuc3RhcnQoKTsNCg0KICAgIHBvcnQucG9zdE1l
c3NhZ2Uoew0KICAgICAgc3RhdHVzOiAiaGVsbG8iDQogICAgfSk7DQogIH0NCn0pDQoNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337306</attachid>
            <date>2018-04-05 15:15:05 -0700</date>
            <delta_ts>2018-04-05 15:51:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180406001503.patch</filename>
            <type>text/plain</type>
            <size>10537</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDVmNWYwNzVhMzRkMDc5ODg1ZjZkNTcwNTYwNTZjNzFiMDNmMjc4Li42NjhjYzczZmYwMjg4MTFi
YzMwZjYyMzA2ZmNiOTdhMTg2ZWVkNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGFuIGV4dHJhIGNvbnN0
cnVjdG9yIG9mIEFycmF5QnVmZmVyQ29udGVudHMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkZWNv
ZGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlcy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlCdWZm
ZXIuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJDb250ZW50czo6aXNTaGFyZWQgY29uc3Qp
OgorCiAyMDE4LTA0LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgR0Mgc2hvdWxkbid0IGRvIG9iamVjdCBkaXN0YW5jaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MwYjI0
M2RlNmUyYTgxYjU3MjM2OTE0NzdlMmQwYmY4YTFjZWJiYy4uOTI3OTJkNjhkMzkzMmMwNGNlMWE2
YjU2ZDRkMmI0N2MxMDg4ZWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA0
LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVkIHdo
ZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZW5jb2RpbmcgbWV0aG9kIHRvIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB0aGF0IGluY2x1ZGVzIEFycmF5QnVmZmVycy4KKworICAgICAgICBUZXN0OiB3
b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpk
ZWNvZGUpOgorCiAyMDE4LTA0LTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBsaWJzb3VwIFJlc291cmNlSGFuZGxl
IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUJ1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZm
ZXIuaAppbmRleCAxODcyNWNjOWNlNzVmYjY3M2NhZGViYWY2OGIzMGM2ZTBiNTQxZDA1Li5mYzAy
N2VhNzllNjJhZWZlMzU0ZDc3NWE3ZTE1YTU0NDhlYWIyZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgQXJy
YXlCdWZmZXJDb250ZW50cyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXJyYXlCdWZmZXJD
b250ZW50cyk7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250
ZW50cygpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHModm9pZCog
ZGF0YSwgdW5zaWduZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9u
JiYpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMoQXJy
YXlCdWZmZXJDb250ZW50cyYmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNv
bnRlbnRzJiBvcGVyYXRvcj0oQXJyYXlCdWZmZXJDb250ZW50cyYmKTsKQEAgLTczLDEwICs3NCw4
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1f
c2l6ZUluQnl0ZXM7IH0KICAgICAKICAgICBib29sIGlzU2hhcmVkKCkgY29uc3QgeyByZXR1cm4g
bV9zaGFyZWQ7IH0KLQotcHJpdmF0ZToKLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRh
dGEsIHVuc2lnbmVkIHNpemVJbkJ5dGVzLCBBcnJheUJ1ZmZlckRlc3RydWN0b3JGdW5jdGlvbiYm
KTsKICAgICAKK3ByaXZhdGU6CiAgICAgdm9pZCBkZXN0cm95KCk7CiAgICAgdm9pZCByZXNldCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oCmluZGV4IDU2ODY2YTdlYWQ3YjVkNTI5YzQ3OWIyZjllNTg1OWI3ZTZhMWY2ZWEuLjM2
NWNkMzgyOWE4NzgxZjg3MzE5NWM0NjNhMjM0YzBkNWVjYWQ4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zMCwxOSAr
MzAsMTUgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtTW9kdWxlLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRl
IDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVlUmVmOwogCi0jaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKLWNsYXNzIE1vZHVs
ZTsKLX0gfQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCVmFsdWU7
CkBAIC05OSwxMSArOTUsMTQgQEAgcHVibGljOgogICAgIH0KICAgICBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHRvV2lyZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGRlY29kZShEZWNvZGVyJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCk7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMKKyAgICBXRUJDT1JF
X0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVy
Q29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+
IHNoYXJlZEJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1
bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4KICNlbmRpZgpAQCAtMTE4LDQgKzExNyw2OCBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CiB9OwogCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIg
PDwgbV9ibG9iVVJMczsKKyAgICBlbmNvZGVyIDw8ICEhbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXk7CisgICAgaWYgKG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSB7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5z
aXplKCkpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAq
bV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgYXJy
YXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVy
Q29udGVudHMuZGF0YSgpKSwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsK
KyAgICAgICAgfQorICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5
OworICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOworCisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRhdGEpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYmxvYlVSTHMpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGJvb2wgaGFz
QXJyYXk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNBcnJheSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKGhhc0FycmF5KSB7CisgICAgICAgIHVpbnQ2NF90IGFycmF5
TGVuZ3RoOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFycmF5TGVuZ3RoKSkKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGFycmF5QnVmZmVyQ29udGVudHNBcnJh
eSA9IHN0ZDo6bWFrZV91bmlxdWU8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PigpOworICAgICAg
ICB3aGlsZSAoYXJyYXlMZW5ndGgtLSkgeworICAgICAgICAgICAgdW5zaWduZWQgYnVmZmVyU2l6
ZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYnVmZmVyU2l6ZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgICAgIHZvaWQgKmJ1ZmZlciA9IEdp
Z2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAg
ICAgICAgICBhdXRvIGRlc3RydWN0b3IgPSBbXSAodm9pZCogcCkgeworICAgICAgICAgICAgICAg
IEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHApOworICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nh
c3Q8dWludDhfdCo+KGJ1ZmZlciksIGJ1ZmZlclNpemUsIDEpKSB7CisgICAgICAgICAgICAgICAg
ZGVzdHJ1Y3RvcihidWZmZXIpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5hcHBlbmQo
eyBidWZmZXIsIGJ1ZmZlclNpemUsIFdURk1vdmUoZGVzdHJ1Y3RvcikgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUo
V1RGTW92ZShkYXRhKSwgYmxvYlVSTHMsIFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5
KSwgbnVsbHB0cgorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgLCBudWxscHRyCisj
ZW5kaWYKKyAgICAgICAgKSk7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCmluZGV4IDdjZDYw
NjgwMDM0ZDkwMzM2N2JmMTZkYjZmOTA2ZjA0Y2FiM2VlY2EuLjhkZWRmNGVkODhmMGU5ZDQxNWNh
NDc2ZjA2ZDRjNmYxYzViMGQ4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNz
YWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIEFTU0VSVChtZXNzYWdlKTsK
LSAgICBlbmNvZGVyIDw8IG1lc3NhZ2UtPnRvV2lyZUJ5dGVzKCkgPDwgdHJhbnNmZXJyZWRQb3J0
czsKKyAgICBlbmNvZGVyIDw8ICptZXNzYWdlIDw8IHRyYW5zZmVycmVkUG9ydHM7CiB9CiAKIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01NiwxNCArNTYsMTMgQEAgc3RkOjpvcHRpb25hbDxN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4gTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmRlY29kZShE
ZWNvZGVyJgogewogICAgIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIHJlc3VsdDsKIAotICAgIFZl
Y3Rvcjx1aW50OF90PiB3aXJlQnl0ZXM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aXJlQnl0
ZXMpKQorICAgIHJlc3VsdC5tZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZWNvZGUo
ZGVjb2Rlcik7CisgICAgaWYgKCFyZXN1bHQubWVzc2FnZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zZmVycmVkUG9y
dHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmVzdWx0Lm1lc3NhZ2Ug
PSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoV1RGTW92ZSh3aXJl
Qnl0ZXMpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTZkM2U1OTIwMmVmODQz
MzIzNjVhYzQ3NjM2ZWE5MDJlMTI4NDE1OC4uNzEzZjA2NGM0ODNhZGRiNjJjOGI0NmI5ODlmNzg2
NzdhYmE0MWExYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTA1ICBUYWRldSBaYWdh
bGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNzM0MCk6
IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVkIHdoZW4gc2VudCB2aWEgTWVz
c2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODQyNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgcmVncmVzc2lvbiB0ZXN0IHByb3ZpZGVkIHdpdGggdGhlIGJ1ZyByZXBvcnQgdmVyaWZp
ZXMgdGhhdCB0aGUgQXJyYXlCdWZmZXIgaXMgcHJvcGVybHkgc2VyaWFsaXplZCAtIGJlZm9yZSwg
dGhlIHdob2xlIGRhdGEgb2JqZWN0IHdvdWxkIGJlIG51bGwuCisKKyAgICAgICAgKiB3b3JrZXJz
L21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvbWVz
c2FnZS1wb3J0Lmh0bWw6IEFkZGVkLgorCiAyMDE4LTA0LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgZG9lcyBub3Qg
bmVlZCB0byBleHBvc2UgYWxsIHJlZGlyZWN0IHJlc3BvbnNlIGhlYWRlcnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDIxYjJj
ODgwYmIzNmI5NjQ0NjdhYzljOTVkZjg2YTNhMmI0OGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1NlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1lc3NhZ2VQb3J0cy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK3BvcnQxOiBtZXNzYWdlIHJlY2VpdmVkCitwb3J0MjogbWVz
c2FnZSByZWNlaXZlZAorMy4xNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1w
b3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk4M2ViYmQyNzJjOWE2MTJjMWQ4NTUzYzYwNTVhODEwMThhMGY0NjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0
JzsKKworZGVzY3JpcHRpb24oIlNlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1lc3NhZ2VQb3J0
cy4iKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGNoYW5uZWwgPSBuZXcg
TWVzc2FnZUNoYW5uZWwoKTsKK3ZhciBzZW50ID0gZmFsc2U7CitjaGFubmVsLnBvcnQxLmFkZEV2
ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgZGVidWcoInBvcnQxOiBtZXNz
YWdlIHJlY2VpdmVkIik7CisKKyAgaWYgKGV2ZW50LmRhdGEgPT0gbnVsbCkgeworICAgIGRlYnVn
KCJtZXNzYWdlIGRhdGEgbnVsbCEiKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgZGF0YSA9
IGV2ZW50LmRhdGE7CisgIGV2ZW50LnRhcmdldC5wb3N0TWVzc2FnZSh7IGJ1ZjogZGF0YS5idWYg
fSwgW2RhdGEuYnVmXSk7Cit9KTsKKworY2hhbm5lbC5wb3J0Mi5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgIGRlYnVnKCJwb3J0MjogbWVzc2FnZSByZWNlaXZlZCIp
OworCisgIHZhciBhcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoZXZlbnQuZGF0YS5idWYpOworICBk
ZWJ1ZyhhcnJheVswXSk7CisKKyAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworY2hhbm5lbC5wb3J0
MS5zdGFydCgpOworY2hhbm5lbC5wb3J0Mi5zdGFydCgpOworCit2YXIgYXJyID0gbmV3IEZsb2F0
NjRBcnJheShbMy4xNF0pOworY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSh7IGJ1ZjogYXJyLmJ1
ZmZlciB9LCBbYXJyLmJ1ZmZlcl0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337308</attachid>
            <date>2018-04-05 15:51:43 -0700</date>
            <delta_ts>2018-04-09 14:16:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180406005141.patch</filename>
            <type>text/plain</type>
            <size>10707</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDVmNWYwNzVhMzRkMDc5ODg1ZjZkNTcwNTYwNTZjNzFiMDNmMjc4Li42NjhjYzczZmYwMjg4MTFi
YzMwZjYyMzA2ZmNiOTdhMTg2ZWVkNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGFuIGV4dHJhIGNvbnN0
cnVjdG9yIG9mIEFycmF5QnVmZmVyQ29udGVudHMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkZWNv
ZGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlcy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlCdWZm
ZXIuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJDb250ZW50czo6aXNTaGFyZWQgY29uc3Qp
OgorCiAyMDE4LTA0LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgR0Mgc2hvdWxkbid0IGRvIG9iamVjdCBkaXN0YW5jaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MwYjI0
M2RlNmUyYTgxYjU3MjM2OTE0NzdlMmQwYmY4YTFjZWJiYy4uOTI3OTJkNjhkMzkzMmMwNGNlMWE2
YjU2ZDRkMmI0N2MxMDg4ZWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA0
LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVkIHdo
ZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZW5jb2RpbmcgbWV0aG9kIHRvIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB0aGF0IGluY2x1ZGVzIEFycmF5QnVmZmVycy4KKworICAgICAgICBUZXN0OiB3
b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpk
ZWNvZGUpOgorCiAyMDE4LTA0LTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBsaWJzb3VwIFJlc291cmNlSGFuZGxl
IGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUJ1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZm
ZXIuaAppbmRleCAxODcyNWNjOWNlNzVmYjY3M2NhZGViYWY2OGIzMGM2ZTBiNTQxZDA1Li5mYzAy
N2VhNzllNjJhZWZlMzU0ZDc3NWE3ZTE1YTU0NDhlYWIyZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgQXJy
YXlCdWZmZXJDb250ZW50cyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXJyYXlCdWZmZXJD
b250ZW50cyk7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250
ZW50cygpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHModm9pZCog
ZGF0YSwgdW5zaWduZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9u
JiYpOwogICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMoQXJy
YXlCdWZmZXJDb250ZW50cyYmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNv
bnRlbnRzJiBvcGVyYXRvcj0oQXJyYXlCdWZmZXJDb250ZW50cyYmKTsKQEAgLTczLDEwICs3NCw4
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1f
c2l6ZUluQnl0ZXM7IH0KICAgICAKICAgICBib29sIGlzU2hhcmVkKCkgY29uc3QgeyByZXR1cm4g
bV9zaGFyZWQ7IH0KLQotcHJpdmF0ZToKLSAgICBBcnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRh
dGEsIHVuc2lnbmVkIHNpemVJbkJ5dGVzLCBBcnJheUJ1ZmZlckRlc3RydWN0b3JGdW5jdGlvbiYm
KTsKICAgICAKK3ByaXZhdGU6CiAgICAgdm9pZCBkZXN0cm95KCk7CiAgICAgdm9pZCByZXNldCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oCmluZGV4IDU2ODY2YTdlYWQ3YjVkNTI5YzQ3OWIyZjllNTg1OWI3ZTZhMWY2ZWEuLjQ2
NjZiYjQyZDRhNDE1MTM4ZTVmOWI3OGY3NjhiMTYwMjQwZTU2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zMCwxOSAr
MzAsMTUgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtTW9kdWxlLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRl
IDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVlUmVmOwogCi0jaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKLWNsYXNzIE1vZHVs
ZTsKLX0gfQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCVmFsdWU7
CkBAIC05OSwxMSArOTUsMTQgQEAgcHVibGljOgogICAgIH0KICAgICBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHRvV2lyZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGRlY29kZShEZWNvZGVyJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCk7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMKKyAgICBXRUJDT1JF
X0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVy
Q29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+
IHNoYXJlZEJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1
bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4KICNlbmRpZgpAQCAtMTE4LDQgKzExNyw2NyBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CiB9OwogCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIg
PDwgbV9ibG9iVVJMczsKKyAgICBlbmNvZGVyIDw8ICEhbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXk7CisgICAgaWYgKG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSB7CisgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5z
aXplKCkpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAq
bV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgYXJy
YXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVy
Q29udGVudHMuZGF0YSgpKSwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsK
KyAgICAgICAgfQorICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5
OworICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGJsb2JVUkxzKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBib29sIGhhc0Fy
cmF5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQXJyYXkpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChoYXNBcnJheSkgeworICAgICAgICB1aW50NjRfdCBhcnJheUxl
bmd0aDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnJheUxlbmd0aCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkg
PSBzdGQ6Om1ha2VfdW5pcXVlPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4oKTsKKyAgICAgICAg
d2hpbGUgKGFycmF5TGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemU7
CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJ1ZmZlclNpemUpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgICAgICB2b2lkICpidWZmZXIgPSBHaWdh
Y2FnZTo6dHJ5TWFsbG9jKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJ1ZmZlclNpemUpOworICAgICAg
ICAgICAgYXV0byBkZXN0cnVjdG9yID0gW10gKHZvaWQqIHApIHsKKyAgICAgICAgICAgICAgICBH
aWdhY2FnZTo6ZnJlZShHaWdhY2FnZTo6UHJpbWl0aXZlLCBwKTsKKyAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0
PHVpbnQ4X3QqPihidWZmZXIpLCBidWZmZXJTaXplLCAxKSkgeworICAgICAgICAgICAgICAgIGRl
c3RydWN0b3IoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGFycmF5QnVmZmVyQ29udGVudHNBcnJheS0+YXBwZW5kKHsg
YnVmZmVyLCBidWZmZXJTaXplLCBXVEZNb3ZlKGRlc3RydWN0b3IpIH0pOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdU
Rk1vdmUoZGF0YSksIGJsb2JVUkxzLCBXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSks
IG51bGxwdHIKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgICwgbnVsbHB0cgorI2Vu
ZGlmCisgICAgICAgICkpOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaAppbmRleCA3Y2Q2MDY4
MDAzNGQ5MDMzNjdiZjE2ZGI2ZjkwNmYwNGNhYjNlZWNhLi44ZGVkZjRlZDg4ZjBlOWQ0MTVjYTQ3
NmYwNmQ0YzZmMWM1YjBkODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2Fn
ZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCkBAIC00OCw3ICs0OCw3IEBA
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBBU1NFUlQobWVzc2FnZSk7Ci0g
ICAgZW5jb2RlciA8PCBtZXNzYWdlLT50b1dpcmVCeXRlcygpIDw8IHRyYW5zZmVycmVkUG9ydHM7
CisgICAgZW5jb2RlciA8PCAqbWVzc2FnZSA8PCB0cmFuc2ZlcnJlZFBvcnRzOwogfQogCiB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNTYsMTQgKzU2LDEzIEBAIHN0ZDo6b3B0aW9uYWw8TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHM+IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpkZWNvZGUoRGVj
b2RlciYKIHsKICAgICBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyByZXN1bHQ7CiAKLSAgICBWZWN0
b3I8dWludDhfdD4gd2lyZUJ5dGVzOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2lyZUJ5dGVz
KSkKKyAgICByZXN1bHQubWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKGRl
Y29kZXIpOworICAgIGlmICghcmVzdWx0Lm1lc3NhZ2UpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2ZlcnJlZFBvcnRz
KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJlc3VsdC5tZXNzYWdlID0g
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKFdURk1vdmUod2lyZUJ5
dGVzKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU2ZDNlNTkyMDJlZjg0MzMy
MzY1YWM0NzYzNmVhOTAyZTEyODQxNTguLjcxM2YwNjRjNDgzYWRkYjYyYzhiNDZiOTg5Zjc4Njc3
YWJhNDFhMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxs
byAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBB
cnJheUJ1ZmZlcnMgd2VyZSBub3QgYmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3Nh
Z2VQb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg0MjU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIHJlZ3Jlc3Npb24gdGVzdCBwcm92aWRlZCB3aXRoIHRoZSBidWcgcmVwb3J0IHZlcmlmaWVz
IHRoYXQgdGhlIEFycmF5QnVmZmVyIGlzIHByb3Blcmx5IHNlcmlhbGl6ZWQgLSBiZWZvcmUsIHRo
ZSB3aG9sZSBkYXRhIG9iamVjdCB3b3VsZCBiZSBudWxsLgorCisgICAgICAgICogd29ya2Vycy9t
ZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3b3JrZXJzL21lc3Nh
Z2UtcG9ydC5odG1sOiBBZGRlZC4KKwogMjAxOC0wNC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyIGRvZXMgbm90IG5l
ZWQgdG8gZXhwb3NlIGFsbCByZWRpcmVjdCByZXNwb25zZSBoZWFkZXJzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBkMTQ1ZTQ0
NzZlOGJkMWJlZTQ0OWVjMDc0MWUzZWVhZGJlNDVmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitTZW5kcyBBcnJheUJ1ZmZlcnMgdGhyb3VnaCBNZXNzYWdlUG9ydHMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitwb3J0MTogbWVzc2FnZSByZWNlaXZlZAorcG9ydDI6IG1lc3Nh
Z2UgcmVjZWl2ZWQKK1BBU1MgYXJyYXlbMF0gY29udGFpbnMgMy4xNDE1OTI2NTM1ODk3OTMKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sIGIvTGF5b3V0VGVzdHMv
d29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjdjNzkxOGFhMWY0NTE2YWEx
Yjc4ZTU5N2I3NTJjODFhM2E2MzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd29y
a2Vycy9tZXNzYWdlLXBvcnQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2Rlc2NyaXB0aW9uKCJTZW5k
cyBBcnJheUJ1ZmZlcnMgdGhyb3VnaCBNZXNzYWdlUG9ydHMuIik7Cit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK3ZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Cit2YXIg
c2VudCA9IGZhbHNlOworY2hhbm5lbC5wb3J0MS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
KGV2ZW50KSA9PiB7CisgIGRlYnVnKCJwb3J0MTogbWVzc2FnZSByZWNlaXZlZCIpOworCisgIGlm
IChldmVudC5kYXRhID09IG51bGwpIHsKKyAgICBkZWJ1ZygibWVzc2FnZSBkYXRhIG51bGwhIik7
CisgICAgcmV0dXJuOworICB9CisKKyAgdmFyIGRhdGEgPSBldmVudC5kYXRhOworICBldmVudC50
YXJnZXQucG9zdE1lc3NhZ2UoeyBidWY6IGRhdGEuYnVmIH0sIFtkYXRhLmJ1Zl0pOworfSk7CisK
K2NoYW5uZWwucG9ydDIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gewor
ICBkZWJ1ZygicG9ydDI6IG1lc3NhZ2UgcmVjZWl2ZWQiKTsKKworICB2YXIgYXJyYXkgPSBuZXcg
RmxvYXQ2NEFycmF5KGV2ZW50LmRhdGEuYnVmKTsKKyAgaWYgKGFyZU51bWJlcnNFcXVhbChhcnJh
eVswXSwgTWF0aC5QSSkpCisgICAgdGVzdFBhc3NlZChgYXJyYXlbMF0gY29udGFpbnMgJHtNYXRo
LlBJfWApOworICBlbHNlCisgICAgdGVzdEZhaWxlZChgJHthcnJheVswXX0gc2hvdWxkIGJlICR7
TWF0aC5QSX1gKTsKKworICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitjaGFubmVsLnBvcnQxLnN0
YXJ0KCk7CitjaGFubmVsLnBvcnQyLnN0YXJ0KCk7CisKK3ZhciBhcnIgPSBuZXcgRmxvYXQ2NEFy
cmF5KFtNYXRoLlBJXSk7CitjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKHsgYnVmOiBhcnIuYnVm
ZmVyIH0sIFthcnIuYnVmZmVyXSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337540</attachid>
            <date>2018-04-09 14:16:59 -0700</date>
            <delta_ts>2018-04-09 19:41:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180409141658.patch</filename>
            <type>text/plain</type>
            <size>10861</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OGE1YzUxMTU0Y2NjYjIxMGEwNWNjOTE0ZTU1Yjc0M2FlYTBlZDIxLi5jZDUxNzc3MjhhYjNkOWEz
NTFjYzZhYmQ4OGRiZDUxOTRiY2M5YTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGFuIGV4dHJhIGNvbnN0
cnVjdG9yIG9mIEFycmF5QnVmZmVyQ29udGVudHMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkZWNv
ZGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlcy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlCdWZm
ZXIuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJDb250ZW50czo6aXNTaGFyZWQgY29uc3Qp
OgorCiAyMDE4LTA0LTA4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgcG9pbnRlciBwcm9maWxpbmcgdG8gdGhlIEZUTCBhbmQgc3VwcG9ydGluZyBjb2RlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDc4YWFkMzRlN2I5ZmE5MWYwMDgwYTA4NDZiYzg3YTllZjQ1NjQzY2YuLjc1
OGVmODMxZmVlY2I4YzcwMGMyMmIzMzFlMWRiZjU4NGZkNDI3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGVuY29kaW5nIG1l
dGhvZCB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdGhhdCBpbmNsdWRlcyBBcnJheUJ1ZmZlcnMu
CisKKyAgICAgICAgVGVzdDogd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbAorCisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZSk6CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0
cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKToKKwogMjAxOC0wNC0wOSAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjIzMDM5MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5QnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZl
ci5oCmluZGV4IDE4NzI1Y2M5Y2U3NWZiNjczY2FkZWJhZjY4YjMwYzZlMGI1NDFkMDUuLmZjMDI3
ZWE3OWU2MmFlZmUzNTRkNzc1YTdlMTVhNTQ0OGVhYjJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBBcnJh
eUJ1ZmZlckNvbnRlbnRzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNv
bnRlbnRzKTsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRl
bnRzKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBk
YXRhLCB1bnNpZ25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24m
Jik7CiAgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyhBcnJh
eUJ1ZmZlckNvbnRlbnRzJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29u
dGVudHMmIG9wZXJhdG9yPShBcnJheUJ1ZmZlckNvbnRlbnRzJiYpOwpAQCAtNzMsMTAgKzc0LDgg
QEAgcHVibGljOgogICAgIHVuc2lnbmVkIHNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9z
aXplSW5CeXRlczsgfQogICAgIAogICAgIGJvb2wgaXNTaGFyZWQoKSBjb25zdCB7IHJldHVybiBt
X3NoYXJlZDsgfQotCi1wcml2YXRlOgotICAgIEFycmF5QnVmZmVyQ29udGVudHModm9pZCogZGF0
YSwgdW5zaWduZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9uJiYp
OwogICAgIAorcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKICAgICB2b2lkIHJlc2V0KCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgKaW5kZXggNDNkMTMwNDM5MzllYjNmODNiMmZhYzU4ODYwNTBlODM3NDM2NmY1NS4uN2Rj
NGU5YjZkNzdjMzhlOWM0ODgxMmFjNDhkZGM0MGM0NDhmMWE3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTMxLDE5ICsz
MSwxNSBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1N0cm9uZy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dhc21Nb2R1bGUuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUg
PHd0Zi9HaWdhY2FnZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU0NvbnRleHQqIEpTQ29udGV4dFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZUpTVmFsdWUqIEpTVmFsdWVSZWY7CiAKLSNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewotY2xhc3MgTW9kdWxl
OwotfSB9Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJWYWx1ZTsK
QEAgLTEwMSwxMSArOTcsMTQgQEAgcHVibGljOgogICAgIH0KICAgICBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHRvV2lyZUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGRlY29kZShEZWNvZGVyJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB+U2VyaWFsaXplZFNjcmlw
dFZhbHVlKCk7CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmKTsKLSAgICBTZXJpYWxpemVkU2NyaXB0VmFs
dWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxzdGQ6
OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+JiYgaW1hZ2VCdWZmZXJz
CisgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25l
ZCBjaGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0
cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJzLCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKICAgICAgICAgLCBzdGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PgogI2Vu
ZGlmCkBAIC0xMjEsNCArMTIwLDY3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV9i
bG9iVVJMczsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBtX2RhdGE7CisgICAgZW5jb2RlciA8PCBtX2Jsb2JVUkxzOworICAgIGVuY29kZXIgPDwg
ISFtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheTsKKyAgICBpZiAobV9hcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkpIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9h
cnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPnNpemUoKSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0
byAmYXJyYXlCdWZmZXJDb250ZW50cyA6ICptX2FycmF5QnVmZmVyQ29udGVudHNBcnJheSkgewor
ICAgICAgICAgICAgZW5jb2RlciA8PCBhcnJheUJ1ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJDb250ZW50cy5kYXRhKCkpLCBhcnJheUJ1ZmZlckNv
bnRlbnRzLnNpemVJbkJ5dGVzKCksIDEpOworICAgICAgICB9CisgICAgfQorfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBWZWN0b3I8dWlu
dDhfdD4gZGF0YTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5
PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CisgICAgVmVjdG9yPFN0cmluZz4gYmxvYlVSTHM7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYmxvYlVSTHMpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGJvb2wgaGFzQXJyYXk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNBcnJheSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGhhc0FycmF5KSB7
CisgICAgICAgIHVpbnQ2NF90IGFycmF5TGVuZ3RoOworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFycmF5TGVuZ3RoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAg
IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSA9IHN0ZDo6bWFrZV91bmlxdWU8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5PigpOworICAgICAgICB3aGlsZSAoYXJyYXlMZW5ndGgtLSkgeworICAgICAg
ICAgICAgdW5zaWduZWQgYnVmZmVyU2l6ZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoYnVmZmVyU2l6ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAg
ICAgICAgIHZvaWQgKmJ1ZmZlciA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBhdXRvIGRlc3RydWN0b3IgPSBbXSAodm9p
ZCogcCkgeworICAgICAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRp
dmUsIHApOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVG
aXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciksIGJ1ZmZlclNpemUs
IDEpKSB7CisgICAgICAgICAgICAgICAgZGVzdHJ1Y3RvcihidWZmZXIpOworICAgICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5LT5hcHBlbmQoeyBidWZmZXIsIGJ1ZmZlclNpemUsIFdURk1vdmUoZGVz
dHJ1Y3RvcikgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRhKSwgYmxvYlVSTHMsIFdURk1vdmUo
YXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSwgbnVsbHB0ciwgeyB9CisjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQorICAgICAgICAsIG51bGxwdHIKKyNlbmRpZgorICAgICAgICApKTsKK30KKworCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzLmgKaW5kZXggN2NkNjA2ODAwMzRkOTAzMzY3YmYxNmRiNmY5MDZmMDRj
YWIzZWVjYS4uOGRlZGY0ZWQ4OGYwZTlkNDE1Y2E0NzZmMDZkNGM2ZjFjNWIwZDg1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMuaApAQCAtNDgsNyArNDgsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgog
dm9pZCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKG1lc3NhZ2UpOwotICAgIGVuY29kZXIgPDwgbWVzc2FnZS0+dG9X
aXJlQnl0ZXMoKSA8PCB0cmFuc2ZlcnJlZFBvcnRzOworICAgIGVuY29kZXIgPDwgKm1lc3NhZ2Ug
PDwgdHJhbnNmZXJyZWRQb3J0czsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTU2
LDE0ICs1NiwxMyBAQCBzdGQ6Om9wdGlvbmFsPE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzPiBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKERlY29kZXImCiB7CiAgICAgTWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMgcmVzdWx0OwogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHdpcmVCeXRlczsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAgcmVzdWx0Lm1lc3NhZ2UgPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZShkZWNvZGVyKTsKKyAgICBpZiAoIXJlc3VsdC5t
ZXNzYWdlKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQudHJhbnNmZXJyZWRQb3J0cykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICByZXN1bHQubWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3Jl
YXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdpcmVCeXRlcykpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBhNTUwNTljMGVhOTE4MmJjNzRlY2VjNGQ3YjAxMzE0ZWY0ZTY3M2E1Li5k
OTE4MzkwYjc1NTU0Nzg0ODk3MTQwMWJhNTQwMWZmOGFjMTU0NjcyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTgtMDQtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTihyMjI3MzQwKTogQXJyYXlCdWZmZXJzIHdlcmUgbm90IGJlaW5n
IHNlcmlhbGl6ZWQgd2hlbiBzZW50IHZpYSBNZXNzYWdlUG9ydHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDI1NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWdyZXNzaW9uIHRlc3QgcHJvdmlk
ZWQgd2l0aCB0aGUgYnVnIHJlcG9ydCB2ZXJpZmllcyB0aGF0IHRoZSBBcnJheUJ1ZmZlciBpcyBw
cm9wZXJseSBzZXJpYWxpemVkIC0gYmVmb3JlLCB0aGUgd2hvbGUgZGF0YSBvYmplY3Qgd291bGQg
YmUgbnVsbC4KKworICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbDogQWRkZWQuCisKIDIw
MTgtMDQtMDkgIEJyZW5kYW4gTWNMb3VnaGxpbiAgPGJyZW5kYW5AYm9jb3VwLmNvbT4KIAogICAg
ICAgICBzeW5jIHJlbWFpbmluZyB3ZWItcGxhdGZvcm0tdGVzdHMgdG8gOTRiMzNiNTczYTA2OWFl
NTE3MDEwNGNhNTgxYTM1NGEzNTc2MjUzNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd29ya2Vy
cy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdl
LXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZDE0NWU0NDc2ZThiZDFiZWU0NDllYzA3
NDFlM2VlYWRiZTQ1ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21l
c3NhZ2UtcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorU2VuZHMgQXJyYXlCdWZm
ZXJzIHRocm91Z2ggTWVzc2FnZVBvcnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworcG9ydDE6IG1lc3NhZ2UgcmVjZWl2ZWQKK3BvcnQyOiBtZXNzYWdlIHJlY2VpdmVkCitQQVNT
IGFycmF5WzBdIGNvbnRhaW5zIDMuMTQxNTkyNjUzNTg5NzkzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1w
b3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI3Yzc5MThhYTFmNDUxNmFhMWI3OGU1OTdiNzUyYzgxYTNh
NjMwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0
Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgorJ3VzZSBzdHJpY3QnOworCitkZXNjcmlwdGlvbigiU2VuZHMgQXJyYXlCdWZmZXJzIHRo
cm91Z2ggTWVzc2FnZVBvcnRzLiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit2
YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwordmFyIHNlbnQgPSBmYWxzZTsKK2No
YW5uZWwucG9ydDEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICBk
ZWJ1ZygicG9ydDE6IG1lc3NhZ2UgcmVjZWl2ZWQiKTsKKworICBpZiAoZXZlbnQuZGF0YSA9PSBu
dWxsKSB7CisgICAgZGVidWcoIm1lc3NhZ2UgZGF0YSBudWxsISIpOworICAgIHJldHVybjsKKyAg
fQorCisgIHZhciBkYXRhID0gZXZlbnQuZGF0YTsKKyAgZXZlbnQudGFyZ2V0LnBvc3RNZXNzYWdl
KHsgYnVmOiBkYXRhLmJ1ZiB9LCBbZGF0YS5idWZdKTsKK30pOworCitjaGFubmVsLnBvcnQyLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgZGVidWcoInBvcnQyOiBt
ZXNzYWdlIHJlY2VpdmVkIik7CisKKyAgdmFyIGFycmF5ID0gbmV3IEZsb2F0NjRBcnJheShldmVu
dC5kYXRhLmJ1Zik7CisgIGlmIChhcmVOdW1iZXJzRXF1YWwoYXJyYXlbMF0sIE1hdGguUEkpKQor
ICAgIHRlc3RQYXNzZWQoYGFycmF5WzBdIGNvbnRhaW5zICR7TWF0aC5QSX1gKTsKKyAgZWxzZQor
ICAgIHRlc3RGYWlsZWQoYCR7YXJyYXlbMF19IHNob3VsZCBiZSAke01hdGguUEl9YCk7CisKKyAg
ZmluaXNoSlNUZXN0KCk7Cit9KTsKKworY2hhbm5lbC5wb3J0MS5zdGFydCgpOworY2hhbm5lbC5w
b3J0Mi5zdGFydCgpOworCit2YXIgYXJyID0gbmV3IEZsb2F0NjRBcnJheShbTWF0aC5QSV0pOwor
Y2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSh7IGJ1ZjogYXJyLmJ1ZmZlciB9LCBbYXJyLmJ1ZmZl
cl0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337575</attachid>
            <date>2018-04-09 19:41:50 -0700</date>
            <delta_ts>2018-04-10 11:15:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180409194150.patch</filename>
            <type>text/plain</type>
            <size>12944</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZWMyN2Q3Y2YxYzMxYWQ4YTEzZmEzMTQ2NDE1YmZiYzYwZTNhNzY3Li5iNzgzMWZjMzc3ZGFmNWRh
YzA1NDQwMzdkZDkxODJhZmUwOTc3ZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGFuIGV4dHJhIGNvbnN0
cnVjdG9yIG9mIEFycmF5QnVmZmVyQ29udGVudHMgaW4gb3JkZXIgdG8gYmUgYWJsZQorICAgICAg
ICB0byBkZWNvZGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlcyBhbmQgcmVuYW1lIGBjaGVja2AgdG8K
KyAgICAgICAgYGNoZWNrRGVsZXRpb25IYXNudEJlZ3VuYCB0byBhdm9pZCBjb25mbGljdCB3aXRo
IHRoZSBgY2hlY2tgIGRlZmluZSBpbgorICAgICAgICBBc3NlcnRNYWNyb3MuCisKKyAgICAgICAg
KiBydW50aW1lL0FycmF5QnVmZmVyLmg6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyQ29udGVu
dHM6OkFycmF5QnVmZmVyQ29udGVudHMpOgorICAgICAgICAqIHdhc20vV2FzbU1lbW9yeS5oOgor
ICAgICAgICAoSlNDOjpXYXNtOjpNZW1vcnk6OmNoZWNrRGVsZXRpb25IYXNudEJlZ3VuKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6TWVtb3J5OjpjaGVjayk6IERlbGV0ZWQuCisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJs
eU1lbW9yeTo6YWRvcHQpOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93
U3VjY2Vzc0NhbGxiYWNrKToKKwogMjAxOC0wNC0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgQHB1dEJ5SWREaXJlY3RQ
cml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzI0MzE2MDE4NTdkY2Q3NWJhMGE3M2FmMjg1MjFkMWZkN2Zl
ZDljMS4uOTNkZTYzNTEzMzI2ODgzYTk3YTBmZDA5OTEzY2EyNDIyYmE1ODAyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA0LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9A
YXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3
ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVkIHdoZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZW5j
b2RpbmcgbWV0aG9kIHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0aGF0IGluY2x1ZGVzIEFycmF5
QnVmZmVycy4KKworICAgICAgICBUZXN0OiB3b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBkb20vbWVz
c2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpkZWNvZGUpOgorCiAyMDE4LTA0LTA5ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBhbmQgV2ViQ29yZSBwb2xp
Y3kgY29uY2VwdCBvZiAic2hvdWxkQ29udGludWUiIHRvIGFsbG93IGZvciBtb3JlIHRoYW4gdHJ1
ZS9mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlC
dWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKaW5k
ZXggMTg3MjVjYzljZTc1ZmI2NzNjYWRlYmFmNjhiMzBjNmUwYjU0MWQwNS4uZmMwMjdlYTc5ZTYy
YWVmZTM1NGQ3NzVhN2UxNWE1NDQ4ZWFiMmQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUJ1ZmZlci5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIEFycmF5QnVmZmVy
Q29udGVudHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFycmF5QnVmZmVyQ29udGVudHMp
OwogcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMoKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRhdGEsIHVu
c2lnbmVkIHNpemVJbkJ5dGVzLCBBcnJheUJ1ZmZlckRlc3RydWN0b3JGdW5jdGlvbiYmKTsKICAg
ICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKEFycmF5QnVmZmVy
Q29udGVudHMmJik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyYg
b3BlcmF0b3I9KEFycmF5QnVmZmVyQ29udGVudHMmJik7CkBAIC03MywxMCArNzQsOCBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3NpemVJbkJ5
dGVzOyB9CiAgICAgCiAgICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVk
OyB9Ci0KLXByaXZhdGU6Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24mJik7CiAgICAg
Citwcml2YXRlOgogICAgIHZvaWQgZGVzdHJveSgpOwogICAgIHZvaWQgcmVzZXQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCmluZGV4IGMzNjU4MGY3OWVmNzMzZDg2
MThkY2ZkYjNmNjcyMTczODVmMmYyNDEuLjY4Nzg5NjZlMTNhZWRmODI3YjRlYTEwZjFmNzQ1Njhj
OWFmOThjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1v
cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKQEAgLTg2
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIEV4cGVjdGVkPFBhZ2VDb3VudCwgR3Jvd0ZhaWxSZWFz
b24+IGdyb3coUGFnZUNvdW50KTsKICAgICB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoSW5zdGFuY2Uq
KTsKIAotICAgIHZvaWQgY2hlY2soKSB7ICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7IH0K
KyAgICB2b2lkIGNoZWNrRGVsZXRpb25IYXNudEJlZ3VuKCkgeyAgQVNTRVJUKCFkZWxldGlvbkhh
c0JlZ3VuKCkpOyB9CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTWVtb3J5KCkgeyBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1lbW9yeSwgbV9tZW1vcnkpOyB9CiAgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZlNpemUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWVtb3J5LCBt
X3NpemUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5TWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlNZW1vcnkuY3BwCmluZGV4IGQ2NDBhNDZiNGE5OTM0NDAyNDkzMzg1YmE2MmYyNjlm
OTg5ZWNjMjYuLjg3ZWE3Nzg1NjFhZmNiZGNkMGJhZDZjZGI3OWZkYzAxMGMyMjA2NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnku
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1v
cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9yeTo6YWRvcHQo
UmVmPFdhc206Ok1lbW9yeT4mJiBtZW1vcnkpCiB7CiAgICAgbV9tZW1vcnkuc3dhcChtZW1vcnkp
OwogICAgIEFTU0VSVChtX21lbW9yeS0+cmVmQ291bnQoKSA9PSAxKTsKLSAgICBtX21lbW9yeS0+
Y2hlY2soKTsKKyAgICBtX21lbW9yeS0+Y2hlY2tEZWxldGlvbkhhc250QmVndW4oKTsKIH0KIAog
U3RydWN0dXJlKiBKU1dlYkFzc2VtYmx5TWVtb3J5OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTEyNCw3
ICsxMjQsNyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNZW1vcnk6Omdyb3dTdWNjZXNzQ2FsbGJhY2so
Vk0mIHZtLCBXYXNtOjpQYWdlQ291bnQgb2xkUGFnZUNvdQogICAgICAgICBtX2J1ZmZlcldyYXBw
ZXIuY2xlYXIoKTsKICAgICB9CiAgICAgCi0gICAgbWVtb3J5KCkuY2hlY2soKTsKKyAgICBtZW1v
cnkoKS5jaGVja0RlbGV0aW9uSGFzbnRCZWd1bigpOwogICAgIAogICAgIHZtLmhlYXAucmVwb3J0
RXh0cmFNZW1vcnlBbGxvY2F0ZWQobmV3UGFnZUNvdW50LmJ5dGVzKCkgLSBvbGRQYWdlQ291bnQu
Ynl0ZXMoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oCmluZGV4IDQzZDEzMDQzOTM5ZWIzZjgzYjJmYWM1ODg2MDUwZTgzNzQz
NjZmNTUuLjdkYzRlOWI2ZDc3YzM4ZTljNDg4MTJhYzQ4ZGRjNDBjNDQ4ZjFhNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBA
IC0zMSwxOSArMzEsMTUgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XYXNtTW9kdWxl
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVlUmVmOwogCi0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKLWNs
YXNzIE1vZHVsZTsKLX0gfQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SURCVmFsdWU7CkBAIC0xMDEsMTEgKzk3LDE0IEBAIHB1YmxpYzoKICAgICB9CiAgICAgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQog
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgflNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJik7Ci0gICAgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+LCBz
dGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJzLCBW
ZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJvb2w+PiYmIGlt
YWdlQnVmZmVycworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0
b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6
OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFy
cmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVB
cnJheT4KICNlbmRpZgpAQCAtMTIxLDQgKzEyMCw2NyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxT
dHJpbmc+IG1fYmxvYlVSTHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIgPDwgbV9ibG9iVVJMczsKKyAgICBl
bmNvZGVyIDw8ICEhbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CisgICAgaWYgKG1fYXJyYXlC
dWZmZXJDb250ZW50c0FycmF5KSB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5zaXplKCkpOworICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAqbV9hcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXkpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXpl
SW5CeXRlcygpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEoc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyQ29udGVudHMuZGF0YSgpKSwgYXJy
YXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsKKyAgICAgICAgfQorICAgIH0KK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
VmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29u
dGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5OworICAgIFZlY3RvcjxTdHJpbmc+
IGJsb2JVUkxzOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJsb2JVUkxzKSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBib29sIGhhc0FycmF5OworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFzQXJyYXkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICho
YXNBcnJheSkgeworICAgICAgICB1aW50NjRfdCBhcnJheUxlbmd0aDsKKyAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShhcnJheUxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkgPSBzdGQ6Om1ha2VfdW5pcXVlPEFy
cmF5QnVmZmVyQ29udGVudHNBcnJheT4oKTsKKyAgICAgICAgd2hpbGUgKGFycmF5TGVuZ3RoLS0p
IHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemU7CisgICAgICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGJ1ZmZlclNpemUpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgICAgICAgICB2b2lkICpidWZmZXIgPSBHaWdhY2FnZTo6dHJ5TWFsbG9jKEdpZ2Fj
YWdlOjpQcmltaXRpdmUsIGJ1ZmZlclNpemUpOworICAgICAgICAgICAgYXV0byBkZXN0cnVjdG9y
ID0gW10gKHZvaWQqIHApIHsKKyAgICAgICAgICAgICAgICBHaWdhY2FnZTo6ZnJlZShHaWdhY2Fn
ZTo6UHJpbWl0aXZlLCBwKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCBi
dWZmZXJTaXplLCAxKSkgeworICAgICAgICAgICAgICAgIGRlc3RydWN0b3IoYnVmZmVyKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGFycmF5QnVmZmVyQ29udGVudHNBcnJheS0+YXBwZW5kKHsgYnVmZmVyLCBidWZmZXJTaXplLCBX
VEZNb3ZlKGRlc3RydWN0b3IpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIGJsb2JVUkxz
LCBXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSksIG51bGxwdHIsIHsgfQorI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAgLCBudWxscHRyCisjZW5kaWYKKyAgICAgICAgKSk7
Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9N
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0
cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCmluZGV4IDdjZDYwNjgwMDM0ZDkwMzM2N2JmMTZk
YjZmOTA2ZjA0Y2FiM2VlY2EuLjhkZWRmNGVkODhmMGU5ZDQxNWNhNDc2ZjA2ZDRjNmYxYzViMGQ4
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KIHZvaWQgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewogICAgIEFTU0VSVChtZXNzYWdlKTsKLSAgICBlbmNvZGVyIDw8IG1l
c3NhZ2UtPnRvV2lyZUJ5dGVzKCkgPDwgdHJhbnNmZXJyZWRQb3J0czsKKyAgICBlbmNvZGVyIDw8
ICptZXNzYWdlIDw8IHRyYW5zZmVycmVkUG9ydHM7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CkBAIC01NiwxNCArNTYsMTMgQEAgc3RkOjpvcHRpb25hbDxNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cz4gTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmRlY29kZShEZWNvZGVyJgogewogICAgIE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzIHJlc3VsdDsKIAotICAgIFZlY3Rvcjx1aW50OF90PiB3aXJl
Qnl0ZXM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3aXJlQnl0ZXMpKQorICAgIHJlc3VsdC5t
ZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgaWYg
KCFyZXN1bHQubWVzc2FnZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zZmVycmVkUG9ydHMpKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmVzdWx0Lm1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoV1RGTW92ZSh3aXJlQnl0ZXMpKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODcxNTEyMTRhMGQ5MzdkNWRlYzRjNmE5YWNjYWNkYjNk
ZThkODg4My4uMDYxMzM1YjJlYTBmODY2MTczOTUwZTMzZDg3NWIwNWEzN2YzZmRlNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE4LTA0LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBw
bGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJl
IG5vdCBiZWluZyBzZXJpYWxpemVkIHdoZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVncmVzc2lvbiB0
ZXN0IHByb3ZpZGVkIHdpdGggdGhlIGJ1ZyByZXBvcnQgdmVyaWZpZXMgdGhhdCB0aGUgQXJyYXlC
dWZmZXIgaXMgcHJvcGVybHkgc2VyaWFsaXplZCAtIGJlZm9yZSwgdGhlIHdob2xlIGRhdGEgb2Jq
ZWN0IHdvdWxkIGJlIG51bGwuCisKKyAgICAgICAgKiB3b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWw6IEFk
ZGVkLgorCiAyMDE4LTA0LTA5ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlYmFzZWxpbmUgV2ViQ3J5cHRvQVBJIHRlc3RzIGZvciBIaWdoIFNpZXJyYS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MGQxNDVlNDQ3NmU4YmQxYmVlNDQ5ZWMwNzQxZTNlZWFkYmU0NWY3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1NlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1lc3NhZ2VQb3J0cy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BvcnQxOiBtZXNzYWdlIHJlY2VpdmVk
Citwb3J0MjogbWVzc2FnZSByZWNlaXZlZAorUEFTUyBhcnJheVswXSBjb250YWlucyAzLjE0MTU5
MjY1MzU4OTc5MworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyN2M3
OTE4YWExZjQ1MTZhYTFiNzhlNTk3Yjc1MmM4MWEzYTYzMGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworZGVz
Y3JpcHRpb24oIlNlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1lc3NhZ2VQb3J0cy4iKTsKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWwoKTsKK3ZhciBzZW50ID0gZmFsc2U7CitjaGFubmVsLnBvcnQxLmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgZGVidWcoInBvcnQxOiBtZXNzYWdlIHJlY2Vp
dmVkIik7CisKKyAgaWYgKGV2ZW50LmRhdGEgPT0gbnVsbCkgeworICAgIGRlYnVnKCJtZXNzYWdl
IGRhdGEgbnVsbCEiKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgZGF0YSA9IGV2ZW50LmRh
dGE7CisgIGV2ZW50LnRhcmdldC5wb3N0TWVzc2FnZSh7IGJ1ZjogZGF0YS5idWYgfSwgW2RhdGEu
YnVmXSk7Cit9KTsKKworY2hhbm5lbC5wb3J0Mi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
KGV2ZW50KSA9PiB7CisgIGRlYnVnKCJwb3J0MjogbWVzc2FnZSByZWNlaXZlZCIpOworCisgIHZh
ciBhcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoZXZlbnQuZGF0YS5idWYpOworICBpZiAoYXJlTnVt
YmVyc0VxdWFsKGFycmF5WzBdLCBNYXRoLlBJKSkKKyAgICB0ZXN0UGFzc2VkKGBhcnJheVswXSBj
b250YWlucyAke01hdGguUEl9YCk7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKGAke2FycmF5WzBd
fSBzaG91bGQgYmUgJHtNYXRoLlBJfWApOworCisgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK2No
YW5uZWwucG9ydDEuc3RhcnQoKTsKK2NoYW5uZWwucG9ydDIuc3RhcnQoKTsKKwordmFyIGFyciA9
IG5ldyBGbG9hdDY0QXJyYXkoW01hdGguUEldKTsKK2NoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2Uo
eyBidWY6IGFyci5idWZmZXIgfSwgW2Fyci5idWZmZXJdKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337622</attachid>
            <date>2018-04-10 11:15:48 -0700</date>
            <delta_ts>2018-04-11 14:02:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180410111547.patch</filename>
            <type>text/plain</type>
            <size>13158</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjU1ZTRlOWEyOGI2MWNiYWZkYTlmZjZlNjQ0ZTRhZmRkMTc3Li5kY2Y1MzdiZGY2ZTQ3MWEw
YzRjOTM4Njk5NDc0NWQyNGIxMGU5ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvc2UgYW4gZXh0cmEgY29uc3RydWN0b3Igb2YgQXJyYXlCdWZmZXJD
b250ZW50cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRlY29kZQorICAgICAgICBTZXJpYWxpemVk
U2NyaXB0VmFsdWVzIGFuZCByZW5hbWUgYGNoZWNrYCB0byBgY2hlY2tEZWxldGlvbkhhc05vdEJl
Z3VuYCB0byBhdm9pZAorICAgICAgICBjb25mbGljdCB3aXRoIHRoZSBgY2hlY2tgIG1hY3JvIGRl
ZmluZWQgaW4gQXNzZXJ0TWFjcm9zLgorCisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5o
OgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlckNvbnRlbnRzOjpBcnJheUJ1ZmZlckNvbnRlbnRz
KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TWVt
b3J5OjpjaGVja0RlbGV0aW9uSGFzTm90QmVndW4pOgorICAgICAgICAoSlNDOjpXYXNtOjpNZW1v
cnk6OmNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1v
cnkuY3BwOgorICAgICAgICAoSlNDOjpKU1dlYkFzc2VtYmx5TWVtb3J5OjphZG9wdCk6CisgICAg
ICAgIChKU0M6OkpTV2ViQXNzZW1ibHlNZW1vcnk6Omdyb3dTdWNjZXNzQ2FsbGJhY2spOgorCiAy
MDE4LTA0LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRXhl
Y3V0aW5nIGtub3duIGVkZ2UgdHlwZXMgbWF5IHJldmVhbCBhIGNvbnRyYWRpY3Rpb24gY2F1c2lu
ZyB1cyB0byBlbWl0IGFuIGV4aXQgYXQgYSBub2RlIHRoYXQgaXMgbm90IGFsbG93ZWQgdG8gZXhp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDEwMzRjZTM0YzBkMWM5MTllMzIwNzljODU4YjlkYTBiYjRhZmI1Nzgu
LmEyZGE5ZjkzMzE2MjEyY2E4N2MxOWQ5ODA2YWFmZThhYjNkMTUyZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxl
LmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBu
b3QgYmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZW5jb2RpbmcgbWV0aG9kIHRvIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSB0aGF0IGluY2x1ZGVzIEFycmF5QnVmZmVycy4KKworICAgICAgICBUZXN0OiB3
b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpk
ZWNvZGUpOgorCiAyMDE4LTA0LTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRG8gbm90IGxheW91dCBpbWFnZXMgd2hlbiB3ZSBvbmx5IG5lZWQgdGhlIG92ZXJm
bG93IGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVm
ZmVyLmgKaW5kZXggMTg3MjVjYzljZTc1ZmI2NzNjYWRlYmFmNjhiMzBjNmUwYjU0MWQwNS4uZmMw
MjdlYTc5ZTYyYWVmZTM1NGQ3NzVhN2UxNWE1NDQ4ZWFiMmQ1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIEFy
cmF5QnVmZmVyQ29udGVudHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFycmF5QnVmZmVy
Q29udGVudHMpOwogcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29u
dGVudHMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQq
IGRhdGEsIHVuc2lnbmVkIHNpemVJbkJ5dGVzLCBBcnJheUJ1ZmZlckRlc3RydWN0b3JGdW5jdGlv
biYmKTsKICAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKEFy
cmF5QnVmZmVyQ29udGVudHMmJik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJD
b250ZW50cyYgb3BlcmF0b3I9KEFycmF5QnVmZmVyQ29udGVudHMmJik7CkBAIC03MywxMCArNzQs
OCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBt
X3NpemVJbkJ5dGVzOyB9CiAgICAgCiAgICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2hhcmVkOyB9Ci0KLXByaXZhdGU6Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBk
YXRhLCB1bnNpZ25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24m
Jik7CiAgICAgCitwcml2YXRlOgogICAgIHZvaWQgZGVzdHJveSgpOwogICAgIHZvaWQgcmVzZXQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oCmluZGV4IGMzNjU4MGY3
OWVmNzMzZDg2MThkY2ZkYjNmNjcyMTczODVmMmYyNDEuLjlkOTNhNTJmYTBmMDM2MmQ1ZThlYTVl
ZTM0NzIzYzgxZjVhZGZiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21NZW1vcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5
LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIEV4cGVjdGVkPFBhZ2VDb3VudCwgR3Jv
d0ZhaWxSZWFzb24+IGdyb3coUGFnZUNvdW50KTsKICAgICB2b2lkIHJlZ2lzdGVySW5zdGFuY2Uo
SW5zdGFuY2UqKTsKIAotICAgIHZvaWQgY2hlY2soKSB7ICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVn
dW4oKSk7IH0KKyAgICB2b2lkIGNoZWNrRGVsZXRpb25IYXNOb3RCZWd1bigpIHsgIEFTU0VSVCgh
ZGVsZXRpb25IYXNCZWd1bigpKTsgfQogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1l
bW9yeSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNZW1vcnksIG1fbWVtb3J5KTsgfQogICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTaXplKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KE1lbW9yeSwgbV9zaXplKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcAppbmRleCBkNjQwYTQ2YjRhOTkzNDQwMjQ5MzM4
NWJhNjJmMjY5Zjk4OWVjYzI2Li5kZjFmZDc3MGE2YWMyZGNhMjQwZGE4NjgxMWRmYzgzNTg1MWE0
NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5TWVtb3J5LmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIEpTV2ViQXNzZW1ibHlNZW1v
cnk6OmFkb3B0KFJlZjxXYXNtOjpNZW1vcnk+JiYgbWVtb3J5KQogewogICAgIG1fbWVtb3J5LnN3
YXAobWVtb3J5KTsKICAgICBBU1NFUlQobV9tZW1vcnktPnJlZkNvdW50KCkgPT0gMSk7Ci0gICAg
bV9tZW1vcnktPmNoZWNrKCk7CisgICAgbV9tZW1vcnktPmNoZWNrRGVsZXRpb25IYXNOb3RCZWd1
bigpOwogfQogCiBTdHJ1Y3R1cmUqIEpTV2ViQXNzZW1ibHlNZW1vcnk6OmNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgSlNXZWJBc3NlbWJseU1lbW9yeTo6Z3Jvd1N1Y2Nl
c3NDYWxsYmFjayhWTSYgdm0sIFdhc206OlBhZ2VDb3VudCBvbGRQYWdlQ291CiAgICAgICAgIG1f
YnVmZmVyV3JhcHBlci5jbGVhcigpOwogICAgIH0KICAgICAKLSAgICBtZW1vcnkoKS5jaGVjaygp
OworICAgIG1lbW9yeSgpLmNoZWNrRGVsZXRpb25IYXNOb3RCZWd1bigpOwogICAgIAogICAgIHZt
LmhlYXAucmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQobmV3UGFnZUNvdW50LmJ5dGVzKCkgLSBv
bGRQYWdlQ291bnQuYnl0ZXMoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4IDQzZDEzMDQzOTM5ZWIzZjgzYjJmYWM1
ODg2MDUwZTgzNzQzNjZmNTUuLmE1MGJjMTM4YTJiMmNmMzA3ZTE4YmFhYWExMThiODg0NzVmODQ5
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oCkBAIC0zMSwxOSArMzEsMTUgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
cnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9XYXNtTW9kdWxlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBK
U0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVl
UmVmOwogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBXYXNtIHsKLWNsYXNzIE1vZHVsZTsKLX0gfQotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSURCVmFsdWU7CkBAIC0xMDEsMTEgKzk3LDE0IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworCiAgICAgV0VCQ09SRV9F
WFBPUlQgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJik7Ci0g
ICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFy
ZWRCdWZmZXJzLCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4s
IGJvb2w+PiYmIGltYWdlQnVmZmVycworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJs
b2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Piwgc3RkOjp1
bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gc2hhcmVkQnVmZmVycywgVmVjdG9y
PHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+LCBib29sPj4mJiBpbWFnZUJ1
ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgICAgICwgc3RkOjp1bmlxdWVfcHRy
PFdhc21Nb2R1bGVBcnJheT4KICNlbmRpZgpAQCAtMTIxLDQgKzEyMCw2NiBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9kYXRhOworICAgIGVuY29kZXIgPDwgbV9ibG9i
VVJMczsKKyAgICBlbmNvZGVyIDw8ICEhbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk7CisgICAg
aWYgKG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5zaXplKCkpOwor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAqbV9hcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXkpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgYXJyYXlCdWZmZXJD
b250ZW50cy5zaXplSW5CeXRlcygpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExl
bmd0aERhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyQ29udGVudHMu
ZGF0YSgpKSwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsKKyAgICAgICAg
fQorICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBi
bG9iVVJMczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJsb2JVUkxzKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBib29sIGhhc0FycmF5OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzQXJyYXkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheTsK
KyAgICBpZiAoaGFzQXJyYXkpIHsKKyAgICAgICAgdWludDY0X3QgYXJyYXlMZW5ndGg7CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJyYXlMZW5ndGgpKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICAgICAgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5ID0gc3RkOjptYWtl
X3VuaXF1ZTxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KCk7CisgICAgICAgIHdoaWxlIChhcnJh
eUxlbmd0aC0tKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBidWZmZXJTaXplOworICAgICAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShidWZmZXJTaXplKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgICAgICAgICAgdm9pZCogYnVmZmVyID0gR2lnYWNhZ2U6OnRyeU1h
bGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBidWZmZXJTaXplKTsKKyAgICAgICAgICAgIGF1dG8g
ZGVzdHJ1Y3RvciA9IFtdICh2b2lkKiBwdHIpIHsKKyAgICAgICAgICAgICAgICBHaWdhY2FnZTo6
ZnJlZShHaWdhY2FnZTo6UHJpbWl0aXZlLCBwdHIpOworICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8dWludDhf
dCo+KGJ1ZmZlciksIGJ1ZmZlclNpemUsIDEpKSB7CisgICAgICAgICAgICAgICAgZGVzdHJ1Y3Rv
cihidWZmZXIpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5hcHBlbmQoeyBidWZmZXIs
IGJ1ZmZlclNpemUsIFdURk1vdmUoZGVzdHJ1Y3RvcikgfSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShk
YXRhKSwgYmxvYlVSTHMsIFdURk1vdmUoYXJyYXlCdWZmZXJDb250ZW50c0FycmF5KSwgbnVsbHB0
ciwgeyB9CisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICAgICAsIG51bGxwdHIKKyNlbmRp
ZgorICAgICAgICApKTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
bWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKaW5kZXggN2NkNjA2ODAw
MzRkOTAzMzY3YmYxNmRiNmY5MDZmMDRjYWIzZWVjYS4uOGRlZGY0ZWQ4OGYwZTlkNDE1Y2E0NzZm
MDZkNGM2ZjFjNWIwZDg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vw
b3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
ZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaApAQCAtNDgsNyArNDgsNyBAQCB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1lc3NhZ2UpOwotICAg
IGVuY29kZXIgPDwgbWVzc2FnZS0+dG9XaXJlQnl0ZXMoKSA8PCB0cmFuc2ZlcnJlZFBvcnRzOwor
ICAgIGVuY29kZXIgPDwgKm1lc3NhZ2UgPDwgdHJhbnNmZXJyZWRQb3J0czsKIH0KIAogdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTU2LDE0ICs1NiwxMyBAQCBzdGQ6Om9wdGlvbmFsPE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzPiBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKERlY29k
ZXImCiB7CiAgICAgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgcmVzdWx0OwogCi0gICAgVmVjdG9y
PHVpbnQ4X3Q+IHdpcmVCeXRlczsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykp
CisgICAgcmVzdWx0Lm1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZShkZWNv
ZGVyKTsKKyAgICBpZiAoIXJlc3VsdC5tZXNzYWdlKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhbnNmZXJyZWRQb3J0cykp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXN1bHQubWVzc2FnZSA9IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdpcmVCeXRl
cykpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYWJhZDRjMGY4YjZlZGM2NmIx
NmYyNmU3NjY1Njk0YzRlMzAyZDQ2Li44YmVjMGQ4NmQwZTUzZWI0NjQ4ZjYwM2JlOWNmMGFlNzcz
Y2MzYmFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDQtMDUgIFRhZGV1IFphZ2FsbG8g
IDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjI3MzQwKTogQXJy
YXlCdWZmZXJzIHdlcmUgbm90IGJlaW5nIHNlcmlhbGl6ZWQgd2hlbiBzZW50IHZpYSBNZXNzYWdl
UG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDI1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzkxNDAyMDA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHJlZ3Jlc3Npb24gdGVzdCBwcm92
aWRlZCB3aXRoIHRoZSBidWcgcmVwb3J0IHZlcmlmaWVzIHRoYXQgdGhlIEFycmF5QnVmZmVyIGlz
IHByb3Blcmx5CisgICAgICAgIHNlcmlhbGl6ZWQgLSBiZWZvcmUsIHRoZSB3aG9sZSBkYXRhIG9i
amVjdCB3b3VsZCBiZSBudWxsLgorICAgICAgICBUZXN0IGNhc2UgcHJvdmlkZWQgYnkgWWFubiBD
YWJvbiA8eWNhYm9uQGVzcmkuY29tPiBhcyBwYXJ0IG9mIHRoZSBidWcgcmVwb3J0LgorCisgICAg
ICAgICogd29ya2Vycy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sOiBBZGRlZC4KKwogMjAxOC0wNC0xMCAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5Lmh0bWwgYXMgZmxha3ku
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjBkMTQ1ZTQ0NzZlOGJkMWJlZTQ0OWVjMDc0MWUzZWVhZGJlNDVmNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEyIEBACitTZW5kcyBBcnJheUJ1ZmZlcnMgdGhyb3VnaCBNZXNzYWdlUG9ydHMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwb3J0MTogbWVzc2FnZSByZWNlaXZl
ZAorcG9ydDI6IG1lc3NhZ2UgcmVjZWl2ZWQKK1BBU1MgYXJyYXlbMF0gY29udGFpbnMgMy4xNDE1
OTI2NTM1ODk3OTMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1s
IGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjFj
YjYwN2ZiZDBkZjVkMDU1ZmQyZDhmYTAxZDU4MDlhODkwZDQwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlNlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1lc3NhZ2VQb3J0cy4iKTsKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5u
ZWwoKTsKK3ZhciBzZW50ID0gZmFsc2U7CitjaGFubmVsLnBvcnQxLmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgZGVidWcoInBvcnQxOiBtZXNzYWdlIHJlY2VpdmVk
Iik7CisKKyAgaWYgKGV2ZW50LmRhdGEgPT0gbnVsbCkgeworICAgIGRlYnVnKCJtZXNzYWdlIGRh
dGEgbnVsbCEiKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgZGF0YSA9IGV2ZW50LmRhdGE7
CisgIGV2ZW50LnRhcmdldC5wb3N0TWVzc2FnZSh7IGJ1ZjogZGF0YS5idWYgfSwgW2RhdGEuYnVm
XSk7Cit9KTsKKworY2hhbm5lbC5wb3J0Mi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2
ZW50KSA9PiB7CisgIGRlYnVnKCJwb3J0MjogbWVzc2FnZSByZWNlaXZlZCIpOworCisgIHZhciBh
cnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoZXZlbnQuZGF0YS5idWYpOworICBpZiAoYXJyYXlbMF0g
PT09IE1hdGguUEkpCisgICAgdGVzdFBhc3NlZChgYXJyYXlbMF0gY29udGFpbnMgJHtNYXRoLlBJ
fWApOworICBlbHNlCisgICAgdGVzdEZhaWxlZChgJHthcnJheVswXX0gc2hvdWxkIGJlICR7TWF0
aC5QSX1gKTsKKworICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitjaGFubmVsLnBvcnQxLnN0YXJ0
KCk7CitjaGFubmVsLnBvcnQyLnN0YXJ0KCk7CisKK3ZhciBhcnIgPSBuZXcgRmxvYXQ2NEFycmF5
KFtNYXRoLlBJXSk7CitjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKHsgYnVmOiBhcnIuYnVmZmVy
IH0sIFthcnIuYnVmZmVyXSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337732</attachid>
            <date>2018-04-11 14:02:29 -0700</date>
            <delta_ts>2018-04-16 11:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180411140228.patch</filename>
            <type>text/plain</type>
            <size>11743</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjU1ZTRlOWEyOGI2MWNiYWZkYTlmZjZlNjQ0ZTRhZmRkMTc3Li43MzY0MjY1MDAyOGIwZDI5
ZWM3NWVkZTlhOTVmOTUzNjJhZDIzZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvc2UgYW4gZXh0cmEgY29uc3RydWN0b3Igb2YgQXJyYXlCdWZmZXJD
b250ZW50cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRlY29kZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWVzLgorCisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
cnJheUJ1ZmZlckNvbnRlbnRzOjpBcnJheUJ1ZmZlckNvbnRlbnRzKToKKwogMjAxOC0wNC0wOSAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEV4ZWN1dGluZyBrbm93
biBlZGdlIHR5cGVzIG1heSByZXZlYWwgYSBjb250cmFkaWN0aW9uIGNhdXNpbmcgdXMgdG8gZW1p
dCBhbiBleGl0IGF0IGEgbm9kZSB0aGF0IGlzIG5vdCBhbGxvd2VkIHRvIGV4aXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMDM0Y2UzNGMwZDFjOTE5ZTMyMDc5Yzg1OGI5ZGEwYmI0YWZiNTc4Li5hMmRhOWY5MzMx
NjIxMmNhODdjMTlkOTgwNmFhZmU4YWIzZDE1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTgtMDQtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUkVHUkVTU0lPTihyMjI3MzQwKTogQXJyYXlCdWZmZXJzIHdlcmUgbm90IGJlaW5nIHNl
cmlhbGl6ZWQgd2hlbiBzZW50IHZpYSBNZXNzYWdlUG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDI1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzkxNDAyMDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IGVuY29kaW5nIG1ldGhvZCB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
dGhhdCBpbmNsdWRlcyBBcnJheUJ1ZmZlcnMuCisKKyAgICAgICAgVGVzdDogd29ya2Vycy9tZXNz
YWdlLXBvcnQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZSk6
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKToKKwog
MjAxOC0wNC0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERv
IG5vdCBsYXlvdXQgaW1hZ2VzIHdoZW4gd2Ugb25seSBuZWVkIHRoZSBvdmVyZmxvdyBpbmZvcm1h
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVm
ZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCmluZGV4
IDE4NzI1Y2M5Y2U3NWZiNjczY2FkZWJhZjY4YjMwYzZlMGI1NDFkMDUuLmZjMDI3ZWE3OWU2MmFl
ZmUzNTRkNzc1YTdlMTVhNTQ0OGVhYjJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlCdWZmZXIuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBBcnJheUJ1ZmZlckNv
bnRlbnRzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsK
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKCk7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24mJik7CiAgICAg
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyhBcnJheUJ1ZmZlckNv
bnRlbnRzJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMmIG9w
ZXJhdG9yPShBcnJheUJ1ZmZlckNvbnRlbnRzJiYpOwpAQCAtNzMsMTAgKzc0LDggQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIHNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplSW5CeXRl
czsgfQogICAgIAogICAgIGJvb2wgaXNTaGFyZWQoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZDsg
fQotCi1wcml2YXRlOgotICAgIEFycmF5QnVmZmVyQ29udGVudHModm9pZCogZGF0YSwgdW5zaWdu
ZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9uJiYpOwogICAgIAor
cHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKICAgICB2b2lkIHJlc2V0KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CmluZGV4IDU4ZTM5ZTlhMTg5MWRjMzUxOWU5YWU3ZWM2ZWI5OWEyYjNkNjA3ZTQuLjAwMGQ5NDc4
MDY1NTA2OWUwYWE2NjljYzZjYTlhYmRkMTU5YWUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzE2OSw2ICsz
MTY5LDE1IEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZl
Y3Rvcjx1aW50OF90PiYmIGJ1ZmZlcikKIHsKIH0KIAorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRz
QXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKKyAgICA6IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShXVEZNb3ZlKGJ1ZmZlciksIGJsb2JVUkxzLCBXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVu
dHNBcnJheSksIG51bGxwdHIsIHsgfQorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKKyAgICAgICAg
ICAgICwgbnVsbHB0cgorI2VuZGlmCisgICAgICAgICAgICApCit7Cit9CisKIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1ZmZl
ciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlC
dWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXksIHN0ZDo6dW5pcXVl
X3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlckNvbnRlbnRzQXJyYXks
IFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+JiYg
aW1hZ2VCdWZmZXJzCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIHN0ZDo6dW5p
cXVlX3B0cjxXYXNtTW9kdWxlQXJyYXk+IHdhc21Nb2R1bGVzQXJyYXkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNDNkMTMw
NDM5MzllYjNmODNiMmZhYzU4ODYwNTBlODM3NDM2NmY1NS4uODc3Yjk2MTUxMjMyN2RhNmYwZmVh
OTkzNGZkNmZhYjc5M2IyMmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9HaWdhY2FnZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU0Nv
bnRleHQqIEpTQ29udGV4dFJlZjsKQEAgLTEwMSwxMCArMTAyLDE0IEBAIHB1YmxpYzoKICAgICB9
CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworCiAgICAgV0VCQ09SRV9F
WFBPUlQgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiBwcml2YXRlOgogICAgIFdFQkNPUkVf
RVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiYmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk+KTsKICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2ln
bmVkIGNoYXI+JiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVf
cHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4sIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZl
ckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlcnMsIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+JiYgaW1hZ2VCdWZmZXJzCiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQogICAgICAgICAsIHN0ZDo6dW5pcXVlX3B0cjxXYXNtTW9kdWxlQXJyYXk+CkBA
IC0xMjEsNCArMTI2LDYyIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFN0cmluZz4gbV9ibG9iVVJM
czsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBt
X2RhdGE7CisgICAgZW5jb2RlciA8PCBtX2Jsb2JVUkxzOworICAgIGVuY29kZXIgPDwgISFtX2Fy
cmF5QnVmZmVyQ29udGVudHNBcnJheTsKKyAgICBpZiAobV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXkpIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9hcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXktPnNpemUoKSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byAmYXJy
YXlCdWZmZXJDb250ZW50cyA6ICptX2FycmF5QnVmZmVyQ29udGVudHNBcnJheSkgeworICAgICAg
ICAgICAgZW5jb2RlciA8PCBhcnJheUJ1ZmZlckNvbnRlbnRzLnNpemVJbkJ5dGVzKCk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4oYXJyYXlCdWZmZXJDb250ZW50cy5kYXRhKCkpLCBhcnJheUJ1ZmZlckNvbnRlbnRz
LnNpemVJbkJ5dGVzKCksIDEpOworICAgICAgICB9CisgICAgfQorfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBWZWN0b3I8dWludDhfdD4g
ZGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIFZlY3RvcjxTdHJpbmc+IGJsb2JVUkxzOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYmxvYlVSTHMpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGJvb2wgaGFz
QXJyYXk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNBcnJheSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJh
eT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5OworICAgIGlmIChoYXNBcnJheSkgeworICAgICAg
ICB1aW50NjRfdCBhcnJheUxlbmd0aDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcnJh
eUxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhcnJheUJ1
ZmZlckNvbnRlbnRzQXJyYXkgPSBzdGQ6Om1ha2VfdW5pcXVlPEFycmF5QnVmZmVyQ29udGVudHNB
cnJheT4oKTsKKyAgICAgICAgd2hpbGUgKGFycmF5TGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGJ1ZmZlclNpemU7CisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJ1ZmZl
clNpemUpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgICAgICB2
b2lkKiBidWZmZXIgPSBHaWdhY2FnZTo6dHJ5TWFsbG9jKEdpZ2FjYWdlOjpQcmltaXRpdmUsIGJ1
ZmZlclNpemUpOworICAgICAgICAgICAgYXV0byBkZXN0cnVjdG9yID0gW10gKHZvaWQqIHB0cikg
eworICAgICAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHB0
cik7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVk
TGVuZ3RoRGF0YShzdGF0aWNfY2FzdDx1aW50OF90Kj4oYnVmZmVyKSwgYnVmZmVyU2l6ZSwgMSkp
IHsKKyAgICAgICAgICAgICAgICBkZXN0cnVjdG9yKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcnJheUJ1ZmZlckNv
bnRlbnRzQXJyYXktPmFwcGVuZCh7IGJ1ZmZlciwgYnVmZmVyU2l6ZSwgV1RGTW92ZShkZXN0cnVj
dG9yKSB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShXVEZNb3ZlKGRhdGEpLCBibG9iVVJMcywgV1RGTW92ZShhcnJh
eUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCmluZGV4
IDdjZDYwNjgwMDM0ZDkwMzM2N2JmMTZkYjZmOTA2ZjA0Y2FiM2VlY2EuLjhkZWRmNGVkODhmMGU5
ZDQxNWNhNDc2ZjA2ZDRjNmYxYzViMGQ4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKQEAgLTQ4LDcg
KzQ4LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgTWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIEFTU0VSVChtZXNz
YWdlKTsKLSAgICBlbmNvZGVyIDw8IG1lc3NhZ2UtPnRvV2lyZUJ5dGVzKCkgPDwgdHJhbnNmZXJy
ZWRQb3J0czsKKyAgICBlbmNvZGVyIDw8ICptZXNzYWdlIDw8IHRyYW5zZmVycmVkUG9ydHM7CiB9
CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01NiwxNCArNTYsMTMgQEAgc3RkOjpvcHRp
b25hbDxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4gTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmRl
Y29kZShEZWNvZGVyJgogewogICAgIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIHJlc3VsdDsKIAot
ICAgIFZlY3Rvcjx1aW50OF90PiB3aXJlQnl0ZXM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZSh3
aXJlQnl0ZXMpKQorICAgIHJlc3VsdC5tZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpk
ZWNvZGUoZGVjb2Rlcik7CisgICAgaWYgKCFyZXN1bHQubWVzc2FnZSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnRyYW5zZmVy
cmVkUG9ydHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmVzdWx0Lm1l
c3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlQnl0ZXMoV1RGTW92
ZSh3aXJlQnl0ZXMpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWFiYWQ0YzBm
OGI2ZWRjNjZiMTZmMjZlNzY2NTY5NGM0ZTMwMmQ0Ni4uOGJlYzBkODZkMGU1M2ViNDY0OGY2MDNi
ZTljZjBhZTc3M2NjM2JhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA0LTA1ICBUYWRl
dSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjIy
NzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVkIHdoZW4gc2VudCB2
aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODQyNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5MTQwMjAwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWdyZXNzaW9u
IHRlc3QgcHJvdmlkZWQgd2l0aCB0aGUgYnVnIHJlcG9ydCB2ZXJpZmllcyB0aGF0IHRoZSBBcnJh
eUJ1ZmZlciBpcyBwcm9wZXJseQorICAgICAgICBzZXJpYWxpemVkIC0gYmVmb3JlLCB0aGUgd2hv
bGUgZGF0YSBvYmplY3Qgd291bGQgYmUgbnVsbC4KKyAgICAgICAgVGVzdCBjYXNlIHByb3ZpZGVk
IGJ5IFlhbm4gQ2Fib24gPHljYWJvbkBlc3JpLmNvbT4gYXMgcGFydCBvZiB0aGUgYnVnIHJlcG9y
dC4KKworICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRtbDogQWRkZWQuCisKIDIwMTgtMDQt
MTAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS5odG1s
IGFzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYwZDE0NWU0NDc2ZThiZDFiZWU0NDllYzA3NDFlM2VlYWRiZTQ1ZjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorU2VuZHMgQXJyYXlCdWZmZXJzIHRocm91Z2ggTWVz
c2FnZVBvcnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworcG9ydDE6IG1lc3Nh
Z2UgcmVjZWl2ZWQKK3BvcnQyOiBtZXNzYWdlIHJlY2VpdmVkCitQQVNTIGFycmF5WzBdIGNvbnRh
aW5zIDMuMTQxNTkyNjUzNTg5NzkzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdl
LXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTIxY2I2MDdmYmQwZGY1ZDA1NWZkMmQ4ZmEwMWQ1ODA5YTg5MGQ0MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWwKQEAgLTAsMCAr
MSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJTZW5kcyBBcnJheUJ1ZmZlcnMgdGhyb3VnaCBNZXNzYWdlUG9ydHMu
Iik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBjaGFubmVsID0gbmV3IE1l
c3NhZ2VDaGFubmVsKCk7Cit2YXIgc2VudCA9IGZhbHNlOworY2hhbm5lbC5wb3J0MS5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgIGRlYnVnKCJwb3J0MTogbWVzc2Fn
ZSByZWNlaXZlZCIpOworCisgIGlmIChldmVudC5kYXRhID09IG51bGwpIHsKKyAgICBkZWJ1Zygi
bWVzc2FnZSBkYXRhIG51bGwhIik7CisgICAgcmV0dXJuOworICB9CisKKyAgdmFyIGRhdGEgPSBl
dmVudC5kYXRhOworICBldmVudC50YXJnZXQucG9zdE1lc3NhZ2UoeyBidWY6IGRhdGEuYnVmIH0s
IFtkYXRhLmJ1Zl0pOworfSk7CisKK2NoYW5uZWwucG9ydDIuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIChldmVudCkgPT4geworICBkZWJ1ZygicG9ydDI6IG1lc3NhZ2UgcmVjZWl2ZWQiKTsK
KworICB2YXIgYXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KGV2ZW50LmRhdGEuYnVmKTsKKyAgaWYg
KGFycmF5WzBdID09PSBNYXRoLlBJKQorICAgIHRlc3RQYXNzZWQoYGFycmF5WzBdIGNvbnRhaW5z
ICR7TWF0aC5QSX1gKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoYCR7YXJyYXlbMF19IHNob3Vs
ZCBiZSAke01hdGguUEl9YCk7CisKKyAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworY2hhbm5lbC5w
b3J0MS5zdGFydCgpOworY2hhbm5lbC5wb3J0Mi5zdGFydCgpOworCit2YXIgYXJyID0gbmV3IEZs
b2F0NjRBcnJheShbTWF0aC5QSV0pOworY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSh7IGJ1Zjog
YXJyLmJ1ZmZlciB9LCBbYXJyLmJ1ZmZlcl0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338017</attachid>
            <date>2018-04-16 11:41:52 -0700</date>
            <delta_ts>2018-04-17 12:27:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180416114152.patch</filename>
            <type>text/plain</type>
            <size>12207</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjU1ZTRlOWEyOGI2MWNiYWZkYTlmZjZlNjQ0ZTRhZmRkMTc3Li43MzY0MjY1MDAyOGIwZDI5
ZWM3NWVkZTlhOTVmOTUzNjJhZDIzZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvc2UgYW4gZXh0cmEgY29uc3RydWN0b3Igb2YgQXJyYXlCdWZmZXJD
b250ZW50cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRlY29kZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWVzLgorCisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
cnJheUJ1ZmZlckNvbnRlbnRzOjpBcnJheUJ1ZmZlckNvbnRlbnRzKToKKwogMjAxOC0wNC0wOSAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEV4ZWN1dGluZyBrbm93
biBlZGdlIHR5cGVzIG1heSByZXZlYWwgYSBjb250cmFkaWN0aW9uIGNhdXNpbmcgdXMgdG8gZW1p
dCBhbiBleGl0IGF0IGEgbm9kZSB0aGF0IGlzIG5vdCBhbGxvd2VkIHRvIGV4aXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMDM0Y2UzNGMwZDFjOTE5ZTMyMDc5Yzg1OGI5ZGEwYmI0YWZiNTc4Li5hMmRhOWY5MzMx
NjIxMmNhODdjMTlkOTgwNmFhZmU4YWIzZDE1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTgtMDQtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUkVHUkVTU0lPTihyMjI3MzQwKTogQXJyYXlCdWZmZXJzIHdlcmUgbm90IGJlaW5nIHNl
cmlhbGl6ZWQgd2hlbiBzZW50IHZpYSBNZXNzYWdlUG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDI1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzkxNDAyMDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IGVuY29kaW5nIG1ldGhvZCB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
dGhhdCBpbmNsdWRlcyBBcnJheUJ1ZmZlcnMuCisKKyAgICAgICAgVGVzdDogd29ya2Vycy9tZXNz
YWdlLXBvcnQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZSk6
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKToKKwog
MjAxOC0wNC0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERv
IG5vdCBsYXlvdXQgaW1hZ2VzIHdoZW4gd2Ugb25seSBuZWVkIHRoZSBvdmVyZmxvdyBpbmZvcm1h
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVm
ZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCmluZGV4
IDE4NzI1Y2M5Y2U3NWZiNjczY2FkZWJhZjY4YjMwYzZlMGI1NDFkMDUuLmZjMDI3ZWE3OWU2MmFl
ZmUzNTRkNzc1YTdlMTVhNTQ0OGVhYjJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlCdWZmZXIuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBBcnJheUJ1ZmZlckNv
bnRlbnRzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsK
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKCk7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24mJik7CiAgICAg
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyhBcnJheUJ1ZmZlckNv
bnRlbnRzJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMmIG9w
ZXJhdG9yPShBcnJheUJ1ZmZlckNvbnRlbnRzJiYpOwpAQCAtNzMsMTAgKzc0LDggQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIHNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplSW5CeXRl
czsgfQogICAgIAogICAgIGJvb2wgaXNTaGFyZWQoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZDsg
fQotCi1wcml2YXRlOgotICAgIEFycmF5QnVmZmVyQ29udGVudHModm9pZCogZGF0YSwgdW5zaWdu
ZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9uJiYpOwogICAgIAor
cHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKICAgICB2b2lkIHJlc2V0KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CmluZGV4IDU4ZTM5ZTlhMTg5MWRjMzUxOWU5YWU3ZWM2ZWI5OWEyYjNkNjA3ZTQuLmJiMTMyZmQy
NTJlOWY1YjBmMWIyYWIwM2VhNmI0MDJlNTgxMzFjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzE2OSw2ICsz
MTY5LDEyIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZl
Y3Rvcjx1aW50OF90PiYmIGJ1ZmZlcikKIHsKIH0KIAorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBzdGQ6OnVuaXF1
ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkp
CisgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQorICAgICwgbV9hcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQoreworfQorCiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRy
PEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBzdGQ6
OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJDb250ZW50
c0FycmF5LCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJv
b2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBz
dGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PiB3YXNtTW9kdWxlc0FycmF5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4
IDQzZDEzMDQzOTM5ZWIzZjgzYjJmYWM1ODg2MDUwZTgzNzQzNjZmNTUuLjNiMmRlYjg2ODE2ZGM0
NzRiZTAyYzNkMmJkMmU5MjhjYzAyNTM5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7CkBAIC0xMDEsMTAgKzEwMiwxNCBAQCBwdWJsaWM6
CiAgICAgfQogICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdG9XaXJlQnl0ZXMoKSBjb25zdCB7
IHJldHVybiBtX2RhdGE7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGVjb2RlKERlY29kZXImKTsKKwogICAgIFdF
QkNPUkVfRVhQT1JUIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToKICAgICBX
RUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5z
aWduZWQgY2hhcj4mJiwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4p
OwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4g
c2hhcmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAg
ICAgICwgc3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4KQEAgLTEyMSw0ICsxMjYsNjEg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxzOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZGF0YTsKKworICAgIGF1
dG8gaGFzQXJyYXkgPSBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheSAmJiBtX2FycmF5QnVmZmVy
Q29udGVudHNBcnJheS0+c2l6ZSgpID4gMDsKKyAgICBlbmNvZGVyIDw8IGhhc0FycmF5OworCisg
ICAgaWYgKGhhc0FycmF5KSB7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5zaXplKCkpOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAqbV9hcnJheUJ1ZmZlckNvbnRlbnRzQXJy
YXkpIHsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgYXJyYXlCdWZmZXJDb250ZW50cy5zaXplSW5C
eXRlcygpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEoc3RhdGlj
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyQ29udGVudHMuZGF0YSgpKSwgYXJyYXlC
dWZmZXJDb250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhKSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBib29sIGhhc0FycmF5OworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFzQXJyYXkpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN0ZDo6
dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNB
cnJheTsKKyAgICBpZiAoaGFzQXJyYXkpIHsKKyAgICAgICAgdWludDY0X3QgYXJyYXlMZW5ndGg7
CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJyYXlMZW5ndGgpKQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIEFTU0VSVChhcnJheUxlbmd0aCA+IDApOworCisgICAg
ICAgIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSA9IHN0ZDo6bWFrZV91bmlxdWU8QXJyYXlCdWZm
ZXJDb250ZW50c0FycmF5PigpOworICAgICAgICB3aGlsZSAoYXJyYXlMZW5ndGgtLSkgeworICAg
ICAgICAgICAgdW5zaWduZWQgYnVmZmVyU2l6ZTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYnVmZmVyU2l6ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICAgICAgICAgIHZvaWQqIGJ1ZmZlciA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBhdXRvIGRlc3RydWN0b3IgPSBbXSAo
dm9pZCogcHRyKSB7CisgICAgICAgICAgICAgICAgR2lnYWNhZ2U6OmZyZWUoR2lnYWNhZ2U6OlBy
aW1pdGl2ZSwgcHRyKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19jYXN0PHVpbnQ4X3QqPihidWZmZXIpLCBidWZm
ZXJTaXplLCAxKSkgeworICAgICAgICAgICAgICAgIGRlc3RydWN0b3IoYnVmZmVyKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFy
cmF5QnVmZmVyQ29udGVudHNBcnJheS0+YXBwZW5kKHsgYnVmZmVyLCBidWZmZXJTaXplLCBXVEZN
b3ZlKGRlc3RydWN0b3IpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUoZGF0YSksIFdURk1vdmUoYXJy
YXlCdWZmZXJDb250ZW50c0FycmF5KSkpOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaAppbmRl
eCA3Y2Q2MDY4MDAzNGQ5MDMzNjdiZjE2ZGI2ZjkwNmYwNGNhYjNlZWNhLi44ZGVkZjRlZDg4ZjBl
OWQ0MTVjYTQ3NmYwNmQ0YzZmMWM1YjBkODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oCkBAIC00OCw3
ICs0OCw3IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBBU1NFUlQobWVz
c2FnZSk7Ci0gICAgZW5jb2RlciA8PCBtZXNzYWdlLT50b1dpcmVCeXRlcygpIDw8IHRyYW5zZmVy
cmVkUG9ydHM7CisgICAgZW5jb2RlciA8PCAqbWVzc2FnZSA8PCB0cmFuc2ZlcnJlZFBvcnRzOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNTYsMTQgKzU2LDEzIEBAIHN0ZDo6b3B0
aW9uYWw8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpk
ZWNvZGUoRGVjb2RlciYKIHsKICAgICBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyByZXN1bHQ7CiAK
LSAgICBWZWN0b3I8dWludDhfdD4gd2lyZUJ5dGVzOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
d2lyZUJ5dGVzKSkKKyAgICByZXN1bHQubWVzc2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
ZGVjb2RlKGRlY29kZXIpOworICAgIGlmICghcmVzdWx0Lm1lc3NhZ2UpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFuc2Zl
cnJlZFBvcnRzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJlc3VsdC5t
ZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZUJ5dGVzKFdURk1v
dmUod2lyZUJ5dGVzKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVhYmFkNGMw
ZjhiNmVkYzY2YjE2ZjI2ZTc2NjU2OTRjNGUzMDJkNDYuLjhiZWMwZDg2ZDBlNTNlYjQ2NDhmNjAz
YmU5Y2YwYWU3NzNjYzNiYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wNC0wNSAgVGFk
ZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIy
MjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3QgYmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQg
dmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVncmVzc2lv
biB0ZXN0IHByb3ZpZGVkIHdpdGggdGhlIGJ1ZyByZXBvcnQgdmVyaWZpZXMgdGhhdCB0aGUgQXJy
YXlCdWZmZXIgaXMgcHJvcGVybHkKKyAgICAgICAgc2VyaWFsaXplZCAtIGJlZm9yZSwgdGhlIHdo
b2xlIGRhdGEgb2JqZWN0IHdvdWxkIGJlIG51bGwuCisgICAgICAgIFRlc3QgY2FzZSBwcm92aWRl
ZCBieSBZYW5uIENhYm9uIDx5Y2Fib25AZXNyaS5jb20+IGFzIHBhcnQgb2YgdGhlIGJ1ZyByZXBv
cnQuCisKKyAgICAgICAgKiB3b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWw6IEFkZGVkLgorCiAyMDE4LTA0
LTEwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHkuaHRt
bCBhcyBmbGFreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NzBlYzAxYWZjYmZkNTRkMDJlODQ5NTgyMzMxZDliNDJjOGJkZjQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdlLXBvcnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1NlbmRzIEFycmF5QnVmZmVycyB0aHJvdWdoIE1l
c3NhZ2VQb3J0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXJyYXlb
MF0gY29udGFpbnMgMy4xNDE1OTI2NTM1ODk3OTMKK1BBU1Mgc3VjY2Vzc2Z1bGx5IHRyYW5zZmVy
cmVkIGFycmF5IG9mIGxlbmd0aCAwCitQQVNTIHN1Y2Nlc3NmdWxseSB0cmFuc2ZlcnJlZCBhcnJh
eSBvZiBsZW5ndGggMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0
bWwgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRi
NGVkY2NiMDI3MWRjOWQ1NmJkZmM2ZGJhNWFhNWYxODEzNTdhNWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCkBAIC0wLDAgKzEsNjMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiU2VuZHMgQXJyYXlCdWZmZXJzIHRocm91Z2ggTWVzc2FnZVBvcnRzLiIpOword2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiB0ZXN0KGRhdGEsIHBvc3RNZXNz
YWdlLCBjaGVja1Jlc3VsdCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgeworICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisKKyAgICBjaGFu
bmVsLnBvcnQxLm9ubWVzc2FnZSA9IGV2ZW50ID0+IHsKKyAgICAgIGlmIChldmVudC5kYXRhID09
IG51bGwpCisgICAgICAgIGRlYnVnKCJtZXNzYWdlIGRhdGEgbnVsbCEiKTsKKyAgICAgIHBvc3RN
ZXNzYWdlKGV2ZW50LmRhdGEsIGV2ZW50LnRhcmdldCk7CisgICAgfTsKKworICAgIGNoYW5uZWwu
cG9ydDIub25tZXNzYWdlID0gZXZlbnQgPT4geworICAgICAgY2hlY2tSZXN1bHQoZXZlbnQuZGF0
YSk7CisgICAgICByZXNvbHZlKCk7CisgICAgfTsKKworICAgIHBvc3RNZXNzYWdlKGRhdGEsIGNo
YW5uZWwucG9ydDIpOworICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEVtcHR5QXJyYXkoYnVmKSB7
CisgIHZhciBhcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmKTsKKyAgaWYgKGFycmF5Lmxlbmd0
aCA9PT0gMCkKKyAgICB0ZXN0UGFzc2VkKGBzdWNjZXNzZnVsbHkgdHJhbnNmZXJyZWQgYXJyYXkg
b2YgbGVuZ3RoIDBgKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoYCR7YXJyYXl9IHNob3VsZCBi
ZSBhIEZsb2F0NjRBcnJheSBvZiBsZW5ndGggMGApOworfQorCit2YXIgYXJyYXkgPSBuZXcgRmxv
YXQ2NEFycmF5KFtNYXRoLlBJXSk7Cit2YXIgZW1wdHlBcnJheSA9IG5ldyBGbG9hdDY0QXJyYXko
KTsKK3ZhciBlbXB0eUFycmF5MiA9IG5ldyBGbG9hdDY0QXJyYXkoKTsKKwordGVzdCgKKyAgeyBi
dWY6IFthcnJheS5idWZmZXIsIGVtcHR5QXJyYXkuYnVmZmVyXSB9LAorICAoZGF0YSwgcG9ydCkg
PT4gcG9ydC5wb3N0TWVzc2FnZSh7IGJ1ZjogZGF0YS5idWYgfSwgZGF0YS5idWYpLAorICBkYXRh
ID0+IHsKKyAgICB2YXIgYXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KGRhdGEuYnVmWzBdKTsKKyAg
ICBpZiAoYXJyYXlbMF0gPT09IE1hdGguUEkpCisgICAgICB0ZXN0UGFzc2VkKGBhcnJheVswXSBj
b250YWlucyAke01hdGguUEl9YCk7CisgICAgZWxzZQorICAgICAgdGVzdEZhaWxlZChgJHthcnJh
eVswXX0gc2hvdWxkIGJlICR7TWF0aC5QSX1gKTsKKworICAgIHRlc3RFbXB0eUFycmF5KGRhdGEu
YnVmWzFdKTsKKyAgfQorKS50aGVuKCgpID0+CisgIHRlc3QoCisgICAgeyBidWY6IGVtcHR5QXJy
YXkyLmJ1ZmZlciB9LAorICAgIChkYXRhLCBwb3J0KSA9PiBwb3J0LnBvc3RNZXNzYWdlKHsgYnVm
OiBkYXRhLmJ1ZiB9LCBbZGF0YS5idWZdKSwKKyAgICBkYXRhID0+IHRlc3RFbXB0eUFycmF5KGRh
dGEuYnVmKQorICApLAorKS50aGVuKGZpbmlzaEpTVGVzdCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338142</attachid>
            <date>2018-04-17 12:27:26 -0700</date>
            <delta_ts>2018-04-19 14:52:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184254-20180417122725.patch</filename>
            <type>text/plain</type>
            <size>12240</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjU1ZTRlOWEyOGI2MWNiYWZkYTlmZjZlNjQ0ZTRhZmRkMTc3Li43MzY0MjY1MDAyOGIwZDI5
ZWM3NWVkZTlhOTVmOTUzNjJhZDIzZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFeHBvc2UgYW4gZXh0cmEgY29uc3RydWN0b3Igb2YgQXJyYXlCdWZmZXJD
b250ZW50cyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRlY29kZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWVzLgorCisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
cnJheUJ1ZmZlckNvbnRlbnRzOjpBcnJheUJ1ZmZlckNvbnRlbnRzKToKKwogMjAxOC0wNC0wOSAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEV4ZWN1dGluZyBrbm93
biBlZGdlIHR5cGVzIG1heSByZXZlYWwgYSBjb250cmFkaWN0aW9uIGNhdXNpbmcgdXMgdG8gZW1p
dCBhbiBleGl0IGF0IGEgbm9kZSB0aGF0IGlzIG5vdCBhbGxvd2VkIHRvIGV4aXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMDM0Y2UzNGMwZDFjOTE5ZTMyMDc5Yzg1OGI5ZGEwYmI0YWZiNTc4Li5hMmRhOWY5MzMx
NjIxMmNhODdjMTlkOTgwNmFhZmU4YWIzZDE1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTgtMDQtMDUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUkVHUkVTU0lPTihyMjI3MzQwKTogQXJyYXlCdWZmZXJzIHdlcmUgbm90IGJlaW5nIHNl
cmlhbGl6ZWQgd2hlbiBzZW50IHZpYSBNZXNzYWdlUG9ydHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDI1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzkxNDAyMDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IGVuY29kaW5nIG1ldGhvZCB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
dGhhdCBpbmNsdWRlcyBBcnJheUJ1ZmZlcnMuCisKKyAgICAgICAgVGVzdDogd29ya2Vycy9tZXNz
YWdlLXBvcnQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlY29kZSk6
CisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZGVjb2RlKToKKwog
MjAxOC0wNC0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIERv
IG5vdCBsYXlvdXQgaW1hZ2VzIHdoZW4gd2Ugb25seSBuZWVkIHRoZSBvdmVyZmxvdyBpbmZvcm1h
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVm
ZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCmluZGV4
IDE4NzI1Y2M5Y2U3NWZiNjczY2FkZWJhZjY4YjMwYzZlMGI1NDFkMDUuLmZjMDI3ZWE3OWU2MmFl
ZmUzNTRkNzc1YTdlMTVhNTQ0OGVhYjJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlCdWZmZXIuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBBcnJheUJ1ZmZlckNv
bnRlbnRzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBcnJheUJ1ZmZlckNvbnRlbnRzKTsK
IHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKCk7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNp
Z25lZCBzaXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24mJik7CiAgICAg
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyhBcnJheUJ1ZmZlckNv
bnRlbnRzJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMmIG9w
ZXJhdG9yPShBcnJheUJ1ZmZlckNvbnRlbnRzJiYpOwpAQCAtNzMsMTAgKzc0LDggQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIHNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zaXplSW5CeXRl
czsgfQogICAgIAogICAgIGJvb2wgaXNTaGFyZWQoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZDsg
fQotCi1wcml2YXRlOgotICAgIEFycmF5QnVmZmVyQ29udGVudHModm9pZCogZGF0YSwgdW5zaWdu
ZWQgc2l6ZUluQnl0ZXMsIEFycmF5QnVmZmVyRGVzdHJ1Y3RvckZ1bmN0aW9uJiYpOwogICAgIAor
cHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKICAgICB2b2lkIHJlc2V0KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CmluZGV4IDU4ZTM5ZTlhMTg5MWRjMzUxOWU5YWU3ZWM2ZWI5OWEyYjNkNjA3ZTQuLmJiMTMyZmQy
NTJlOWY1YjBmMWIyYWIwM2VhNmI0MDJlNTgxMzFjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzE2OSw2ICsz
MTY5LDEyIEBAIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZl
Y3Rvcjx1aW50OF90PiYmIGJ1ZmZlcikKIHsKIH0KIAorU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVpbnQ4X3Q+JiYgYnVmZmVyLCBzdGQ6OnVuaXF1
ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkp
CisgICAgOiBtX2RhdGEoV1RGTW92ZShidWZmZXIpKQorICAgICwgbV9hcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkoV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKQoreworfQorCiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4m
JiBidWZmZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgc3RkOjp1bmlxdWVfcHRy
PEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LCBzdGQ6
OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFyZWRCdWZmZXJDb250ZW50
c0FycmF5LCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4sIGJv
b2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgLCBz
dGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PiB3YXNtTW9kdWxlc0FycmF5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCmluZGV4
IDQzZDEzMDQzOTM5ZWIzZjgzYjJmYWM1ODg2MDUwZTgzNzQzNjZmNTUuLjUzNGNlMzExM2VmNjZj
MzdkODdmMDZlMGViYmVmYzkwYzFlMjBiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7CkBAIC0xMDEsMTAgKzEwMiwxNCBAQCBwdWJsaWM6
CiAgICAgfQogICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdG9XaXJlQnl0ZXMoKSBjb25zdCB7
IHJldHVybiBtX2RhdGE7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGVjb2RlKERlY29kZXImKTsKKwogICAgIFdF
QkNPUkVfRVhQT1JUIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToKICAgICBX
RUJDT1JFX0VYUE9SVCBTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9yPHVuc2lnbmVkIGNoYXI+
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5z
aWduZWQgY2hhcj4mJiwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4p
OwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJD
b250ZW50c0FycmF5Piwgc3RkOjp1bmlxdWVfcHRyPEFycmF5QnVmZmVyQ29udGVudHNBcnJheT4g
c2hhcmVkQnVmZmVycywgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+LCBib29sPj4mJiBpbWFnZUJ1ZmZlcnMKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAg
ICAgICwgc3RkOjp1bmlxdWVfcHRyPFdhc21Nb2R1bGVBcnJheT4KQEAgLTEyMSw0ICsxMjYsNjIg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Jsb2JVUkxzOwogfTsKIAordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fZGF0YTsKKworICAgIGF1
dG8gaGFzQXJyYXkgPSBtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheSAmJiBtX2FycmF5QnVmZmVy
Q29udGVudHNBcnJheS0+c2l6ZSgpOworICAgIGVuY29kZXIgPDwgaGFzQXJyYXk7CisKKyAgICBp
ZiAoIWhhc0FycmF5KQorICAgICAgICByZXR1cm47CisKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PHVpbnQ2NF90PihtX2FycmF5QnVmZmVyQ29udGVudHNBcnJheS0+c2l6ZSgpKTsKKyAgICBm
b3IgKGNvbnN0IGF1dG8gJmFycmF5QnVmZmVyQ29udGVudHMgOiAqbV9hcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXkpIHsKKyAgICAgICAgZW5jb2RlciA8PCBhcnJheUJ1ZmZlckNvbnRlbnRzLnNpemVJ
bkJ5dGVzKCk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1ZmZlckNvbnRlbnRzLmRhdGEoKSksIGFycmF5QnVm
ZmVyQ29udGVudHMuc2l6ZUluQnl0ZXMoKSwgMSk7CisgICAgfQorfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBWZWN0b3I8dWludDhfdD4g
ZGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGJvb2wgaGFzQXJyYXk7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNB
cnJheSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFoYXNBcnJheSkKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFdURk1vdmUo
ZGF0YSkpKTsKKworICAgIHVpbnQ2NF90IGFycmF5TGVuZ3RoOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJyYXlMZW5ndGgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlQo
YXJyYXlMZW5ndGggPiAwKTsKKworICAgIGF1dG8gYXJyYXlCdWZmZXJDb250ZW50c0FycmF5ID0g
c3RkOjptYWtlX3VuaXF1ZTxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+KCk7CisgICAgd2hpbGUg
KGFycmF5TGVuZ3RoLS0pIHsKKyAgICAgICAgdW5zaWduZWQgYnVmZmVyU2l6ZTsKKyAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShidWZmZXJTaXplKSkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgICAgIHZvaWQqIGJ1ZmZlciA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAgICAgIGF1dG8gZGVzdHJ1Y3RvciA9IFtd
ICh2b2lkKiBwdHIpIHsKKyAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmlt
aXRpdmUsIHB0cik7CisgICAgICAgIH07CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhl
ZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciksIGJ1ZmZlclNpemUsIDEp
KSB7CisgICAgICAgICAgICBkZXN0cnVjdG9yKGJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPmFw
cGVuZCh7IGJ1ZmZlciwgYnVmZmVyU2l6ZSwgV1RGTW92ZShkZXN0cnVjdG9yKSB9KTsKKyAgICB9
CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92
ZShkYXRhKSwgV1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7Cit9CisKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cy5oCmluZGV4IDdjZDYwNjgwMDM0ZDkwMzM2N2JmMTZkYjZmOTA2ZjA0Y2Fi
M2VlY2EuLjhkZWRmNGVkODhmMGU5ZDQxNWNhNDc2ZjA2ZDRjNmYxYzViMGQ4NWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZv
aWQgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewogICAgIEFTU0VSVChtZXNzYWdlKTsKLSAgICBlbmNvZGVyIDw8IG1lc3NhZ2UtPnRvV2ly
ZUJ5dGVzKCkgPDwgdHJhbnNmZXJyZWRQb3J0czsKKyAgICBlbmNvZGVyIDw8ICptZXNzYWdlIDw8
IHRyYW5zZmVycmVkUG9ydHM7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01Niwx
NCArNTYsMTMgQEAgc3RkOjpvcHRpb25hbDxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4gTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHM6OmRlY29kZShEZWNvZGVyJgogewogICAgIE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzIHJlc3VsdDsKIAotICAgIFZlY3Rvcjx1aW50OF90PiB3aXJlQnl0ZXM7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZSh3aXJlQnl0ZXMpKQorICAgIHJlc3VsdC5tZXNzYWdlID0gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgaWYgKCFyZXN1bHQubWVz
c2FnZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LnRyYW5zZmVycmVkUG9ydHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCi0gICAgcmVzdWx0Lm1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZUZyb21XaXJlQnl0ZXMoV1RGTW92ZSh3aXJlQnl0ZXMpKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZWFiYWQ0YzBmOGI2ZWRjNjZiMTZmMjZlNzY2NTY5NGM0ZTMwMmQ0Ni4uOGJl
YzBkODZkMGU1M2ViNDY0OGY2MDNiZTljZjBhZTc3M2NjM2JhYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE4LTA0LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisg
ICAgICAgIFJFR1JFU1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBz
ZXJpYWxpemVkIHdoZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM5MTQwMjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSByZWdyZXNzaW9uIHRlc3QgcHJvdmlkZWQgd2l0aCB0aGUgYnVnIHJlcG9ydCB2
ZXJpZmllcyB0aGF0IHRoZSBBcnJheUJ1ZmZlciBpcyBwcm9wZXJseQorICAgICAgICBzZXJpYWxp
emVkIC0gYmVmb3JlLCB0aGUgd2hvbGUgZGF0YSBvYmplY3Qgd291bGQgYmUgbnVsbC4KKyAgICAg
ICAgVGVzdCBjYXNlIHByb3ZpZGVkIGJ5IFlhbm4gQ2Fib24gPHljYWJvbkBlc3JpLmNvbT4gYXMg
cGFydCBvZiB0aGUgYnVnIHJlcG9ydC4KKworICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9tZXNzYWdlLXBvcnQuaHRt
bDogQWRkZWQuCisKIDIwMTgtMDQtMTAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFyayBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbmFtZS1wcm9wZXJ0eS5odG1sIGFzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d29ya2Vycy9tZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd29ya2Vycy9t
ZXNzYWdlLXBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3MGVjMDFhZmNiZmQ1NGQwMmU4
NDk1ODIzMzFkOWI0MmM4YmRmNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93b3Jr
ZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorU2VuZHMgQXJy
YXlCdWZmZXJzIHRocm91Z2ggTWVzc2FnZVBvcnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBhcnJheVswXSBjb250YWlucyAzLjE0MTU5MjY1MzU4OTc5MworUEFTUyBz
dWNjZXNzZnVsbHkgdHJhbnNmZXJyZWQgYXJyYXkgb2YgbGVuZ3RoIDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5IHRyYW5zZmVycmVkIGFycmF5IG9mIGxlbmd0aCAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd29y
a2Vycy9tZXNzYWdlLXBvcnQuaHRtbCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjkyYjYyZGQ5MzlkZDBiYmQ4NzA0Y2YzOWE1NjhjYzg0NmQxZDg0
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0
bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJTZW5kcyBBcnJheUJ1ZmZlcnMgdGhyb3VnaCBN
ZXNzYWdlUG9ydHMuIik7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9u
IHRlc3QoZGF0YSwgcG9zdE1lc3NhZ2UsIGNoZWNrUmVzdWx0KSB7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7CisgICAgICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcg
TWVzc2FnZUNoYW5uZWwoKTsKKworICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGV2
ZW50ID0+IHsKKyAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YSkKKyAgICAgICAgICAgICAgICBk
ZWJ1ZygibWVzc2FnZSBkYXRhIG51bGwhIik7CisgICAgICAgICAgICBwb3N0TWVzc2FnZShldmVu
dC5kYXRhLCBldmVudC50YXJnZXQpOworICAgICAgICB9OworCisgICAgICAgIGNoYW5uZWwucG9y
dDIub25tZXNzYWdlID0gZXZlbnQgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1bHQoZXZlbnQu
ZGF0YSk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisKKyAgICAgICAgcG9z
dE1lc3NhZ2UoZGF0YSwgY2hhbm5lbC5wb3J0Mik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RFbXB0eUFycmF5KGJ1ZikgeworICAgIGNvbnN0IGFycmF5ID0gbmV3IEZsb2F0NjRBcnJheShi
dWYpOworICAgIGlmICghYXJyYXkubGVuZ3RoKQorICAgICAgICB0ZXN0UGFzc2VkKGBzdWNjZXNz
ZnVsbHkgdHJhbnNmZXJyZWQgYXJyYXkgb2YgbGVuZ3RoIDBgKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoYCR7YXJyYXl9IHNob3VsZCBiZSBhIEZsb2F0NjRBcnJheSBvZiBsZW5ndGgg
MGApOworfQorCitjb25zdCBhcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoW01hdGguUEldKTsKK2Nv
bnN0IGVtcHR5QXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KCk7Citjb25zdCBlbXB0eUFycmF5MiA9
IG5ldyBGbG9hdDY0QXJyYXkoKTsKKwordGVzdCgKKyAgICB7IGJ1ZjogW2FycmF5LmJ1ZmZlciwg
ZW1wdHlBcnJheS5idWZmZXJdIH0sCisgICAgKGRhdGEsIHBvcnQpID0+IHBvcnQucG9zdE1lc3Nh
Z2UoeyBidWY6IGRhdGEuYnVmIH0sIGRhdGEuYnVmKSwKKyAgICBkYXRhID0+IHsKKyAgICAgICAg
Y29uc3QgYXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KGRhdGEuYnVmWzBdKTsKKyAgICAgICAgaWYg
KGFycmF5WzBdID09PSBNYXRoLlBJKQorICAgICAgICAgICAgdGVzdFBhc3NlZChgYXJyYXlbMF0g
Y29udGFpbnMgJHtNYXRoLlBJfWApOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKGAke2FycmF5WzBdfSBzaG91bGQgYmUgJHtNYXRoLlBJfWApOworCisgICAgICAgIHRlc3RF
bXB0eUFycmF5KGRhdGEuYnVmWzFdKTsKKyAgICB9CispLnRoZW4oKCkgPT4KKyAgICB0ZXN0KAor
ICAgICAgICB7IGJ1ZjogZW1wdHlBcnJheTIuYnVmZmVyIH0sCisgICAgICAgIChkYXRhLCBwb3J0
KSA9PiBwb3J0LnBvc3RNZXNzYWdlKHsgYnVmOiBkYXRhLmJ1ZiB9LCBbZGF0YS5idWZdKSwKKyAg
ICAgICAgZGF0YSA9PiB0ZXN0RW1wdHlBcnJheShkYXRhLmJ1ZikKKyAgICApLAorKS50aGVuKGZp
bmlzaEpTVGVzdCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338361</attachid>
            <date>2018-04-19 14:52:26 -0700</date>
            <delta_ts>2018-04-19 16:59:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-184254-20180419145225.patch</filename>
            <type>text/plain</type>
            <size>12229</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjU1ZTRlOWEyOGI2MWNiYWZkYTlmZjZlNjQ0ZTRhZmRkMTc3Li43NmE2YjM1ZTdjOTAxNzk3
YTI0M2VkMjI4MDdhZmRiMzg2ODdjZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOC0wNC0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyMjczNDApOiBBcnJheUJ1ZmZlcnMgd2VyZSBub3Qg
YmVpbmcgc2VyaWFsaXplZCB3aGVuIHNlbnQgdmlhIE1lc3NhZ2VQb3J0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zOTE0MDIwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMu
CisKKyAgICAgICAgRXhwb3NlIGFuIGV4dHJhIGNvbnN0cnVjdG9yIG9mIEFycmF5QnVmZmVyQ29u
dGVudHMgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBkZWNvZGUgU2VyaWFsaXplZFNjcmlwdFZhbHVl
cy4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6QXJy
YXlCdWZmZXJDb250ZW50czo6QXJyYXlCdWZmZXJDb250ZW50cyk6CisKIDIwMTgtMDQtMDkgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBFeGVjdXRpbmcga25vd24g
ZWRnZSB0eXBlcyBtYXkgcmV2ZWFsIGEgY29udHJhZGljdGlvbiBjYXVzaW5nIHVzIHRvIGVtaXQg
YW4gZXhpdCBhdCBhIG5vZGUgdGhhdCBpcyBub3QgYWxsb3dlZCB0byBleGl0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMTAzNGNlMzRjMGQxYzkxOWUzMjA3OWM4NThiOWRhMGJiNGFmYjU3OC4uYWUzMTRhNmJjYTY0
Mzc4ZmMzNWU3MTMyMDg0NDhhYTBjODI3M2I2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDE4LTA0LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJp
YWxpemVkIHdoZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzM5MTQwMjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAg
ICBBZGQgYSBuZXcgZW5jb2RpbmcgbWV0aG9kIHRvIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB0aGF0
IGluY2x1ZGVzIEFycmF5QnVmZmVycy4KKworICAgICAgICBUZXN0OiB3b3JrZXJzL21lc3NhZ2Ut
cG9ydC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOjpkZWNvZGUpOgorCiAyMDE4
LTA0LTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90
IGxheW91dCBpbWFnZXMgd2hlbiB3ZSBvbmx5IG5lZWQgdGhlIG92ZXJmbG93IGluZm9ybWF0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgKaW5kZXggMTg3
MjVjYzljZTc1ZmI2NzNjYWRlYmFmNjhiMzBjNmUwYjU0MWQwNS4uZmMwMjdlYTc5ZTYyYWVmZTM1
NGQ3NzVhN2UxNWE1NDQ4ZWFiMmQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUJ1ZmZlci5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIEFycmF5QnVmZmVyQ29udGVu
dHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFycmF5QnVmZmVyQ29udGVudHMpOwogcHVi
bGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEFycmF5QnVmZmVyQ29udGVudHMoKTsKKyAgICBK
U19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKHZvaWQqIGRhdGEsIHVuc2lnbmVk
IHNpemVJbkJ5dGVzLCBBcnJheUJ1ZmZlckRlc3RydWN0b3JGdW5jdGlvbiYmKTsKICAgICAKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBBcnJheUJ1ZmZlckNvbnRlbnRzKEFycmF5QnVmZmVyQ29udGVu
dHMmJik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQXJyYXlCdWZmZXJDb250ZW50cyYgb3BlcmF0
b3I9KEFycmF5QnVmZmVyQ29udGVudHMmJik7CkBAIC03MywxMCArNzQsOCBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgc2l6ZUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3NpemVJbkJ5dGVzOyB9
CiAgICAgCiAgICAgYm9vbCBpc1NoYXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkOyB9Ci0K
LXByaXZhdGU6Ci0gICAgQXJyYXlCdWZmZXJDb250ZW50cyh2b2lkKiBkYXRhLCB1bnNpZ25lZCBz
aXplSW5CeXRlcywgQXJyYXlCdWZmZXJEZXN0cnVjdG9yRnVuY3Rpb24mJik7CiAgICAgCitwcml2
YXRlOgogICAgIHZvaWQgZGVzdHJveSgpOwogICAgIHZvaWQgcmVzZXQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5k
ZXggNThlMzllOWExODkxZGMzNTE5ZTlhZTdlYzZlYjk5YTJiM2Q2MDdlNC4uYmIxMzJmZDI1MmU5
ZjViMGYxYjJhYjAzZWE2YjQwMmU1ODEzMWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMTY5LDYgKzMxNjks
MTIgQEAgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUoVmVjdG9y
PHVpbnQ4X3Q+JiYgYnVmZmVyKQogewogfQogCitTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mJiBidWZmZXIsIHN0ZDo6dW5pcXVlX3B0
cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkKKyAg
ICA6IG1fZGF0YShXVEZNb3ZlKGJ1ZmZlcikpCisgICAgLCBtX2FycmF5QnVmZmVyQ29udGVudHNB
cnJheShXVEZNb3ZlKGFycmF5QnVmZmVyQ29udGVudHNBcnJheSkpCit7Cit9CisKIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1aW50OF90PiYmIGJ1
ZmZlciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBzdGQ6OnVuaXF1ZV9wdHI8QXJy
YXlCdWZmZXJDb250ZW50c0FycmF5PiBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXksIHN0ZDo6dW5p
cXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXk+IHNoYXJlZEJ1ZmZlckNvbnRlbnRzQXJy
YXksIFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiwgYm9vbD4+
JiYgaW1hZ2VCdWZmZXJzCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICAgICAsIHN0ZDo6
dW5pcXVlX3B0cjxXYXNtTW9kdWxlQXJyYXk+IHdhc21Nb2R1bGVzQXJyYXkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKaW5kZXggNDNk
MTMwNDM5MzllYjNmODNiMmZhYzU4ODYwNTBlODM3NDM2NmY1NS4uMjM1MjkwNGQxNzQ1YjJkNWY4
ZjU5NTEzZWVhZDRmNmYyNTkzM2U1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9HaWdhY2FnZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVK
U0NvbnRleHQqIEpTQ29udGV4dFJlZjsKQEAgLTEwMSwxMCArMTAyLDE0IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB0b1dpcmVCeXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fZGF0YTsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBkZWNvZGUoRGVjb2RlciYpOworCiAgICAgV0VCQ09S
RV9FWFBPUlQgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiBwcml2YXRlOgogICAgIFdFQkNP
UkVfRVhQT1JUIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dW5zaWduZWQgY2hhcj4mJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25l
ZCBjaGFyPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5Pik7CiAg
ICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIHN0ZDo6dW5pcXVlX3B0cjxBcnJheUJ1ZmZlckNvbnRl
bnRzQXJyYXk+LCBzdGQ6OnVuaXF1ZV9wdHI8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PiBzaGFy
ZWRCdWZmZXJzLCBWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4s
IGJvb2w+PiYmIGltYWdlQnVmZmVycwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAg
LCBzdGQ6OnVuaXF1ZV9wdHI8V2FzbU1vZHVsZUFycmF5PgpAQCAtMTIxLDQgKzEyNiw2MiBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+IG1fYmxvYlVSTHM7CiB9OwogCit0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9kYXRhOworCisgICAgYXV0byBo
YXNBcnJheSA9IG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5ICYmIG1fYXJyYXlCdWZmZXJDb250
ZW50c0FycmF5LT5zaXplKCk7CisgICAgZW5jb2RlciA8PCBoYXNBcnJheTsKKworICAgIGlmICgh
aGFzQXJyYXkpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG1fYXJyYXlCdWZmZXJDb250ZW50c0FycmF5LT5zaXplKCkpOworICAgIGZvciAo
Y29uc3QgYXV0byAmYXJyYXlCdWZmZXJDb250ZW50cyA6ICptX2FycmF5QnVmZmVyQ29udGVudHNB
cnJheSkgeworICAgICAgICBlbmNvZGVyIDw8IGFycmF5QnVmZmVyQ29udGVudHMuc2l6ZUluQnl0
ZXMoKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEoc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGFycmF5QnVmZmVyQ29udGVudHMuZGF0YSgpKSwgYXJyYXlCdWZmZXJD
b250ZW50cy5zaXplSW5CeXRlcygpLCAxKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFZlY3Rvcjx1aW50OF90PiBkYXRh
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgYm9vbCBoYXNBcnJheTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0FycmF5
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIWhhc0FycmF5KQorICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRh
KSkpOworCisgICAgdWludDY0X3QgYXJyYXlMZW5ndGg7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShhcnJheUxlbmd0aCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVChhcnJh
eUxlbmd0aCk7CisKKyAgICBhdXRvIGFycmF5QnVmZmVyQ29udGVudHNBcnJheSA9IHN0ZDo6bWFr
ZV91bmlxdWU8QXJyYXlCdWZmZXJDb250ZW50c0FycmF5PigpOworICAgIHdoaWxlIChhcnJheUxl
bmd0aC0tKSB7CisgICAgICAgIHVuc2lnbmVkIGJ1ZmZlclNpemU7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoYnVmZmVyU2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgICAgICBhdXRvIGJ1ZmZlciA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNhZ2U6OlByaW1p
dGl2ZSwgYnVmZmVyU2l6ZSk7CisgICAgICAgIGF1dG8gZGVzdHJ1Y3RvciA9IFtdICh2b2lkKiBw
dHIpIHsKKyAgICAgICAgICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHB0
cik7CisgICAgICAgIH07CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVGaXhlZExlbmd0aERh
dGEoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1ZmZlciksIGJ1ZmZlclNpemUsIDEpKSB7CisgICAg
ICAgICAgICBkZXN0cnVjdG9yKGJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgfQorICAgICAgICBhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXktPmFwcGVuZCh7IGJ1
ZmZlciwgYnVmZmVyU2l6ZSwgV1RGTW92ZShkZXN0cnVjdG9yKSB9KTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoV1RGTW92ZShkYXRhKSwg
V1RGTW92ZShhcnJheUJ1ZmZlckNvbnRlbnRzQXJyYXkpKSk7Cit9CisKKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cy5oCmluZGV4IDdjZDYwNjgwMDM0ZDkwMzM2N2JmMTZkYjZmOTA2ZjA0Y2FiM2VlY2EuLjhk
ZWRmNGVkODhmMGU5ZDQxNWNhNDc2ZjA2ZDRjNmYxYzViMGQ4NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IEFTU0VSVChtZXNzYWdlKTsKLSAgICBlbmNvZGVyIDw8IG1lc3NhZ2UtPnRvV2lyZUJ5dGVzKCkg
PDwgdHJhbnNmZXJyZWRQb3J0czsKKyAgICBlbmNvZGVyIDw8ICptZXNzYWdlIDw8IHRyYW5zZmVy
cmVkUG9ydHM7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01NiwxNCArNTYsMTMg
QEAgc3RkOjpvcHRpb25hbDxNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4gTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHM6OmRlY29kZShEZWNvZGVyJgogewogICAgIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
IHJlc3VsdDsKIAotICAgIFZlY3Rvcjx1aW50OF90PiB3aXJlQnl0ZXM7Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh3aXJlQnl0ZXMpKQorICAgIHJlc3VsdC5tZXNzYWdlID0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkZWNvZGUoZGVjb2Rlcik7CisgICAgaWYgKCFyZXN1bHQubWVzc2FnZSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LnRyYW5zZmVycmVkUG9ydHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0g
ICAgcmVzdWx0Lm1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJl
Qnl0ZXMoV1RGTW92ZSh3aXJlQnl0ZXMpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZWFiYWQ0YzBmOGI2ZWRjNjZiMTZmMjZlNzY2NTY5NGM0ZTMwMmQ0Ni4uODlmMTJhYzA0MDNh
Yjk1YmQ5MmRiN2JlNzVmN2FhZDdjYjc3ODdjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4
LTA0LTA1ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT04ocjIyNzM0MCk6IEFycmF5QnVmZmVycyB3ZXJlIG5vdCBiZWluZyBzZXJpYWxpemVk
IHdoZW4gc2VudCB2aWEgTWVzc2FnZVBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5MTQw
MjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICBUaGUg
cmVncmVzc2lvbiB0ZXN0IHByb3ZpZGVkIHdpdGggdGhlIGJ1ZyByZXBvcnQgdmVyaWZpZXMgdGhh
dCB0aGUgQXJyYXlCdWZmZXIgaXMgcHJvcGVybHkKKyAgICAgICAgc2VyaWFsaXplZCAtIGJlZm9y
ZSwgdGhlIHdob2xlIGRhdGEgb2JqZWN0IHdvdWxkIGJlIG51bGwuCisgICAgICAgIFRlc3QgY2Fz
ZSBwcm92aWRlZCBieSBZYW5uIENhYm9uIDx5Y2Fib25AZXNyaS5jb20+IGFzIHBhcnQgb2YgdGhl
IGJ1ZyByZXBvcnQuCisKKyAgICAgICAgKiB3b3JrZXJzL21lc3NhZ2UtcG9ydC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvbWVzc2FnZS1wb3J0Lmh0bWw6IEFkZGVkLgor
CiAyMDE4LTA0LTEwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1hcmsgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJv
cGVydHkuaHRtbCBhcyBmbGFreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVz
c2FnZS1wb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2FnZS1wb3J0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzBlYzAxYWZjYmZkNTRkMDJlODQ5NTgyMzMxZDli
NDJjOGJkZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy9tZXNzYWdl
LXBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1NlbmRzIEFycmF5QnVmZmVycyB0
aHJvdWdoIE1lc3NhZ2VQb3J0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgYXJyYXlbMF0gY29udGFpbnMgMy4xNDE1OTI2NTM1ODk3OTMKK1BBU1Mgc3VjY2Vzc2Z1bGx5
IHRyYW5zZmVycmVkIGFycmF5IG9mIGxlbmd0aCAwCitQQVNTIHN1Y2Nlc3NmdWxseSB0cmFuc2Zl
cnJlZCBhcnJheSBvZiBsZW5ndGggMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvbWVzc2Fn
ZS1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI5MmI2MmRkOTM5ZGQwYmJkODcwNGNmMzlhNTY4Y2M4NDZkMWQ4NDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93b3JrZXJzL21lc3NhZ2UtcG9ydC5odG1sCkBAIC0wLDAg
KzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiU2VuZHMgQXJyYXlCdWZmZXJzIHRocm91Z2ggTWVzc2FnZVBvcnRz
LiIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiB0ZXN0KGRhdGEs
IHBvc3RNZXNzYWdlLCBjaGVja1Jlc3VsdCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbiAocmVzb2x2ZSkgeworICAgICAgICBjb25zdCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFu
bmVsKCk7CisKKyAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBldmVudCA9PiB7Cisg
ICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEpCisgICAgICAgICAgICAgICAgZGVidWcoIm1lc3Nh
Z2UgZGF0YSBudWxsISIpOworICAgICAgICAgICAgcG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSwgZXZl
bnQudGFyZ2V0KTsKKyAgICAgICAgfTsKKworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2Fn
ZSA9IGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGNoZWNrUmVzdWx0KGV2ZW50LmRhdGEpOworICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworCisgICAgICAgIHBvc3RNZXNzYWdlKGRh
dGEsIGNoYW5uZWwucG9ydDIpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0RW1wdHlBcnJh
eShidWYpIHsKKyAgICBjb25zdCBhcnJheSA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmKTsKKyAgICBp
ZiAoIWFycmF5Lmxlbmd0aCkKKyAgICAgICAgdGVzdFBhc3NlZChgc3VjY2Vzc2Z1bGx5IHRyYW5z
ZmVycmVkIGFycmF5IG9mIGxlbmd0aCAwYCk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVk
KGAke2FycmF5fSBzaG91bGQgYmUgYSBGbG9hdDY0QXJyYXkgb2YgbGVuZ3RoIDBgKTsKK30KKwor
Y29uc3QgYXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KFtNYXRoLlBJXSk7Citjb25zdCBlbXB0eUFy
cmF5ID0gbmV3IEZsb2F0NjRBcnJheSgpOworY29uc3QgZW1wdHlBcnJheTIgPSBuZXcgRmxvYXQ2
NEFycmF5KCk7CisKK3Rlc3QoCisgICAgeyBidWY6IFthcnJheS5idWZmZXIsIGVtcHR5QXJyYXku
YnVmZmVyXSB9LAorICAgIChkYXRhLCBwb3J0KSA9PiBwb3J0LnBvc3RNZXNzYWdlKHsgYnVmOiBk
YXRhLmJ1ZiB9LCBkYXRhLmJ1ZiksCisgICAgZGF0YSA9PiB7CisgICAgICAgIGNvbnN0IGFycmF5
ID0gbmV3IEZsb2F0NjRBcnJheShkYXRhLmJ1ZlswXSk7CisgICAgICAgIGlmIChhcnJheVswXSA9
PT0gTWF0aC5QSSkKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoYGFycmF5WzBdIGNvbnRhaW5zICR7
TWF0aC5QSX1gKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZChgJHthcnJh
eVswXX0gc2hvdWxkIGJlICR7TWF0aC5QSX1gKTsKKworICAgICAgICB0ZXN0RW1wdHlBcnJheShk
YXRhLmJ1ZlsxXSk7CisgICAgfQorKS50aGVuKCgpID0+CisgICAgdGVzdCgKKyAgICAgICAgeyBi
dWY6IGVtcHR5QXJyYXkyLmJ1ZmZlciB9LAorICAgICAgICAoZGF0YSwgcG9ydCkgPT4gcG9ydC5w
b3N0TWVzc2FnZSh7IGJ1ZjogZGF0YS5idWYgfSwgW2RhdGEuYnVmXSksCisgICAgICAgIGRhdGEg
PT4gdGVzdEVtcHR5QXJyYXkoZGF0YS5idWYpCisgICAgKSwKKykudGhlbihmaW5pc2hKU1Rlc3Qp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>