<?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>144457</bug_id>
          
          <creation_ts>2015-04-30 10:32:17 -0700</creation_ts>
          <short_desc>Use jsTypeofIsObject() in DFG AI and operationTypeOfIsObject()</short_desc>
          <delta_ts>2020-08-26 22:27:22 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214525</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144409</dependson>
    
    <dependson>215744</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1090475</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-30 10:32:17 -0700</bug_when>
    <thetext>This would allow it to fold IsFunction(exotic object constant) and IsObjectOrNull(exotic object constant).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681562</commentid>
    <comment_count>1</comment_count>
      <attachid>406897</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-19 17:49:53 -0700</bug_when>
    <thetext>Created attachment 406897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681574</commentid>
    <comment_count>2</comment_count>
      <attachid>406897</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:30:18 -0700</bug_when>
    <thetext>Comment on attachment 406897
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/Operations.h:38
&gt; +ALWAYS_INLINE bool jsTypeofIsObject(JSGlobalObject* globalObject, JSValue value)

nit: Maybe break this into two functions: JSObject* and JSValue as argument implementations, and have the DFG call the JSObject* parameter version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681575</commentid>
    <comment_count>3</comment_count>
      <attachid>406897</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-19 18:30:56 -0700</bug_when>
    <thetext>Comment on attachment 406897
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Operations.h:38
&gt;&gt; +ALWAYS_INLINE bool jsTypeofIsObject(JSGlobalObject* globalObject, JSValue value)
&gt; 
&gt; nit: Maybe break this into two functions: JSObject* and JSValue as argument implementations, and have the DFG call the JSObject* parameter version.

to specify more: the DFGOperations functions, which already has a known JSObject*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681755</commentid>
    <comment_count>4</comment_count>
      <attachid>406950</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-20 11:59:15 -0700</bug_when>
    <thetext>Created attachment 406950
Patch

Break jsTypeofIsObject() and jsTypeofIsFunction() into 2 functions (each).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681756</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-20 11:59:57 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; nit: Maybe break this into two functions: JSObject* and JSValue as argument
&gt; implementations, and have the DFG call the JSObject* parameter version.

Thank you for review, Saam.

I&apos;ve attempted to make this change in r265907 (per your earlier comment), but it was segfaulting.
TIL jsTypeofIsX(JSGlobalObject*, JSObject*) should come before TypeofIsX(JSGlobalObject*, JSValue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681757</commentid>
    <comment_count>6</comment_count>
      <attachid>406950</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-20 12:00:23 -0700</bug_when>
    <thetext>Comment on attachment 406950
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:-2112
&gt; -    ASSERT(jsDynamicCast&lt;JSObject*&gt;(vm, object));

Removing ASSERT since asObject() has it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681766</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-20 12:28:56 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #5)
&gt; (In reply to Saam Barati from comment #2)
&gt; &gt; nit: Maybe break this into two functions: JSObject* and JSValue as argument
&gt; &gt; implementations, and have the DFG call the JSObject* parameter version.
&gt; 
&gt; Thank you for review, Saam.
&gt; 
&gt; I&apos;ve attempted to make this change in r265907 (per your earlier comment),
&gt; but it was segfaulting.
&gt; TIL jsTypeofIsX(JSGlobalObject*, JSObject*) should come before
&gt; TypeofIsX(JSGlobalObject*, JSValue).

What do you mean by &quot;come before&quot;?

Why is it segfaulting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681771</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-20 12:36:39 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #7)
&gt; What do you mean by &quot;come before&quot;?
&gt; 
&gt; Why is it segfaulting?

I meant jsTypeofIsX(JSGlobalObject*, JSObject*) should be declared before TypeofIsX(JSGlobalObject*, JSValue) in Operations.h, otherwise TypeofIsX(JSGlobalObject*, JSValue) would be calling TypeofIsX(JSGlobalObject*, JSValue) for object values over and over again, segfaulting in --debug.

All fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681819</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-20 14:26:02 -0700</bug_when>
    <thetext>Committed r265965: &lt;https://trac.webkit.org/changeset/265965&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406950.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681835</commentid>
    <comment_count>10</comment_count>
      <attachid>406950</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-20 15:06:55 -0700</bug_when>
    <thetext>Comment on attachment 406950
Patch

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

&gt; Source/JavaScriptCore/runtime/Operations.h:45
&gt; +    if (object-&gt;structure(vm)-&gt;masqueradesAsUndefined(globalObject))
&gt; +        return false;
&gt; +    if (object-&gt;isCallable(vm))
&gt; +        return false;
&gt; +    return true;

Style thought for the future in cases like this. I think this would read really nicely as a boolean expression:

    return !object-&gt;structure(vm)-&gt;masqueradesAsUndefined(globalObject) &amp;&amp; !object-&gt;isCallable(vm);

I think it is easier to read and understand than the multiple return statements.

&gt; Source/JavaScriptCore/runtime/Operations.h:52
&gt; +    if (value.isObject())
&gt; +        return jsTypeofIsObject(globalObject, asObject(value));
&gt; +    return value.isNull();

Please consider the same kind of thing for this:

    return value.isNull() || (value.isObject() &amp;&amp; jsTypeofIsObject(globalObject, asObject(value));

&gt; Source/JavaScriptCore/runtime/Operations.h:62
&gt; +    if (object-&gt;structure(vm)-&gt;masqueradesAsUndefined(globalObject))
&gt; +        return false;
&gt; +    if (object-&gt;isCallable(vm))
&gt; +        return true;
&gt; +    return false;

And for this:

    return !object-&gt;structure(vm)-&gt;masqueradesAsUndefined(globalObject) &amp;&amp; object-&gt;isCallable(vm);

&gt; Source/JavaScriptCore/runtime/Operations.h:69
&gt; +    if (value.isObject())
&gt; +        return jsTypeofIsFunction(globalObject, asObject(value));
&gt;      return false;

And for this:

    return value.isObject() &amp;&amp; jsTypeofIsFunction(globalObject, asObject(value));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681836</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-20 15:07:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/67508764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681872</commentid>
    <comment_count>12</comment_count>
      <attachid>406950</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-20 17:21:00 -0700</bug_when>
    <thetext>Comment on attachment 406950
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Operations.h:45
&gt;&gt; +    return true;
&gt; 
&gt; Style thought for the future in cases like this. I think this would read really nicely as a boolean expression:
&gt; 
&gt;     return !object-&gt;structure(vm)-&gt;masqueradesAsUndefined(globalObject) &amp;&amp; !object-&gt;isCallable(vm);
&gt; 
&gt; I think it is easier to read and understand than the multiple return statements.

I actually find, for me, that as it&apos;s written, it&apos;s much easier to understand. I frequently write code like this instead of putting it all in one expression</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681891</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-20 17:45:25 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #12)
&gt; I actually find, for me, that as it&apos;s written, it&apos;s much easier to
&gt; understand. I frequently write code like this instead of putting it all in
&gt; one expression.

I find it’s easier to *write* with the returns, but easier to *read* with the boolean expressions.

I wonder how we’ll settle this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681893</commentid>
    <comment_count>14</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-08-20 17:50:31 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #13)
&gt; (In reply to Saam Barati from comment #12)
&gt; &gt; I actually find, for me, that as it&apos;s written, it&apos;s much easier to
&gt; &gt; understand. I frequently write code like this instead of putting it all in
&gt; &gt; one expression.
&gt; 
&gt; I find it’s easier to *write* with the returns, but easier to *read* with
&gt; the boolean expressions.
&gt; 
&gt; I wonder how we’ll settle this!

So after I typed this, I thought about it more. I don’t have any strict guidelines, but sometimes I find one form more readable than the other. And tend to lean towards early returns. I think it usually has to do with how many negations I’m dealing with, and if it’s combined with &amp;&amp; or ||</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682037</commentid>
    <comment_count>15</comment_count>
      <attachid>406950</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-21 15:04:56 -0700</bug_when>
    <thetext>Comment on attachment 406950
Patch

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

&gt; Source/JavaScriptCore/runtime/Operations.h:43
&gt; +    if (object-&gt;isCallable(vm))

I wonder if this is OK. This will invoke getCallData for non function objects. But this function can be called from the concurrent compiler too.
So, we need to ensure that getCallData implementation is OK for concurrent access.
Can you review all `getCallData` implementation and ensure this is safe for concurrent calls?
And maybe, we should rename it to `getCallDataConcurrently` to make it explicit that this is called concurrently...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682067</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-08-21 16:45:02 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 215744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682862</commentid>
    <comment_count>17</comment_count>
      <attachid>407254</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-25 18:12:25 -0700</bug_when>
    <thetext>Created attachment 407254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682863</commentid>
    <comment_count>18</comment_count>
      <attachid>407254</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-25 18:14:41 -0700</bug_when>
    <thetext>Comment on attachment 407254
Patch

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

&gt; Source/JavaScriptCore/runtime/Operations.h:46
&gt; +    return triState(object-&gt;isCallableWithConcurrency&lt;concurrency&gt;(vm) == TriState::False);

We may consider overriding logical not (!) operator for TriState that flips True &lt;=&gt; False while preserving Indeterminate state.

(In reply to Saam Barati from comment #2)
&gt; nit: Maybe break this into two functions: JSObject* and JSValue as argument
&gt; implementations, and have the DFG call the JSObject* parameter version.

Given the introduction of *WithConcurrency() versions, I&apos;m not sure we should do this as it requires adding jsTypeofIsObject(JSGlobalObject*, JSObject*) + a template method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682869</commentid>
    <comment_count>19</comment_count>
      <attachid>407254</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-25 18:37:36 -0700</bug_when>
    <thetext>Comment on attachment 407254
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/Operations.h:46
&gt;&gt; +    return triState(object-&gt;isCallableWithConcurrency&lt;concurrency&gt;(vm) == TriState::False);
&gt; 
&gt; We may consider overriding logical not (!) operator for TriState that flips True &lt;=&gt; False while preserving Indeterminate state.
&gt; 
&gt; (In reply to Saam Barati from comment #2)

If `object-&gt;isCallableWithConcurrency&lt;concurrency&gt;(vm)` returns TriState::Indeterminnate (this is possible when concurrency is ConcurrentThread), we should return TriState::Indeterminate instead of true/false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683068</commentid>
    <comment_count>20</comment_count>
      <attachid>407318</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-26 12:04:51 -0700</bug_when>
    <thetext>Created attachment 407318
Patch

Introduce invert(TriState).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683282</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-26 22:27:20 -0700</bug_when>
    <thetext>Committed r266223: &lt;https://trac.webkit.org/changeset/266223&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407318.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406897</attachid>
            <date>2020-08-19 17:49:53 -0700</date>
            <delta_ts>2020-08-20 11:59:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144457-20200820034952.patch</filename>
            <type>text/plain</type>
            <size>6899</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1OTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ODNlZjY1MTJhNTZjMTVhNjE3MzU5MDJkYzY1MjA3ZGM5NzEyMDI0Li4zZGQ3NjcxNjRjYzc0M2E2
NjM0YzIwMzlhZmJlY2M2NjBiMDUzOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wOC0xOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgVXNlIGpzVHlwZW9mSXNPYmplY3QoKSBpbiBERkcgQUkgYW5kIG9w
ZXJhdGlvblR5cGVPZklzT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIGpzVHlwZW9mSXNPYmplY3QoKSwg
bGV2ZXJhZ2luZyBmYXN0IHBhdGggb2YgaXNDYWxsYWJsZSgpLAorICAgICAgICBtb3ZlcyBpdCB0
byB0aGUgaGVhZGVyLCBhbmQgdXRpbGl6ZXMgaXQgaW4gREZHIEFJIGFuZCBvcGVyYXRpb25UeXBl
T2ZJc09iamVjdCgpLAorICAgICAgICByZWR1Y2luZyBjb2RlIGR1cGxpY2F0aW9uLiBBbHNvLCBy
ZW1vdmVzIG9ycGhhbmVkIHNsb3dfcGF0aF9pc19vYmplY3QgZGVjbGFyYXRpb24uCisKKyAgICAg
ICAgTm8gYmVoYXZpb3IgY2hhbmdlLCBgdHlwZW9mYCBtaWNyb2JlbmNobWFya3MgYXJlIG5ldXRy
YWwuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmpzVHlwZW9mSXNPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgorICAgICAgICAoSlNDOjpqc1R5cGVvZklzT2Jq
ZWN0KToKKwogMjAyMC0wOC0xOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIE9wSXNDYWxsYWJsZSBieXRlY29kZSBhbmQgaW50cmlu
c2ljCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYWY1OGY3YWIyZmEwMzliNTBmZGY2YmFkMDIyYjA2
NjE0Yzk3MzQ4ZS4uZWVmM2E0M2I2M2JlYjAzNGUwYWJlMWU5YmFjMTdiMGE0NTcyZGFjMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMTQ3NywxOSArMTQ3Nyw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgICAgICAgICAgICAgIDogY2hpbGQudmFsdWUoKS5pc1VuZGVmaW5lZCgp
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFR5cGVPZklzT2Jq
ZWN0OgotICAgICAgICAgICAgICAgIGlmIChjaGlsZC52YWx1ZSgpLmlzT2JqZWN0KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGNoaWxkLnZhbHVl
KCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gSlNGdW5jdGlv
blR5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xl
YW4oZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIShvYmplY3QtPmlubGlu
ZVR5cGVGbGFncygpICYgT3ZlcnJpZGVzR2V0Q2FsbERhdGEpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKCFjaGlsZC52YWx1ZSgpLmFzQ2VsbCgp
LT5zdHJ1Y3R1cmUobV92bSktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQobV9jb2RlQmxvY2stPmds
b2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSkpOwotICAgICAgICAgICAgICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxk
IGp1c3QgY2FsbCBnZXRDYWxsRGF0YS4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTcKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQo
bm9kZSwganNCb29sZWFuKGNoaWxkLnZhbHVlKCkuaXNOdWxsKCkpKTsKKyAgICAgICAgICAgICAg
ICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oanNUeXBlb2ZJc09iamVjdChtX2NvZGVCbG9j
ay0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyksIGNoaWxkLnZhbHVlKCkp
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFR5cGVPZklzRnVu
Y3Rpb246CiAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGpzVHlw
ZW9mSXNGdW5jdGlvbihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYyksIGNoaWxkLnZhbHVlKCkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAppbmRleCAwOGUxZTA3NGUyZmJlOWE5MTk3OWNjNGEzYWE0MjU0NzIx
N2Y4NzcyLi4zYzQ0ZTk2Zjc2OTExNjlkMmEzZjVjMDY1N2RkZDA1Njc3MmYxZjVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTIxMTEsMTEgKzIx
MTEsNyBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc09iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbAogCiAgICAgQVNTRVJUKGpzRHluYW1pY0Nh
c3Q8SlNPYmplY3QqPih2bSwgb2JqZWN0KSk7CiAgICAgCi0gICAgaWYgKG9iamVjdC0+c3RydWN0
dXJlKHZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChnbG9iYWxPYmplY3QpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG9iamVjdC0+aXNDYWxsYWJsZSh2bSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4ganNUeXBlb2ZJc09iamVj
dChnbG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblR5cGVPZklzRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5oCmluZGV4IDdhMzlhZjg5OWYyYWY1YjczYzkyMDRiYWMzNmE1ZGNkMDRiYTA2YTAuLjU1
Yjc3MDYyOTg0Yjc3YTlkYzY2MGU5ZjMyZTk0ZGU4OGEwYTdkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCkBAIC0yNTMsNyArMjUzLDYg
QEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9iaXR4b3IpOwogU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2YpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF90eXBlb2ZfaXNfb2JqZWN0KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
dHlwZW9mX2lzX2Z1bmN0aW9uKTsKLVNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNf
b2JqZWN0KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNfY2FsbGFibGUpOwog
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19jb25zdHJ1Y3Rvcik7CiBTTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKaW5kZXggZDEwOTM3N2M0YmFlMjA2Y2IwMTQ3NjJl
ZjAyMjU1ZmFhZDBlNzdlZi4uNWJiNjJiOGU0ODViN2FkMzMzMWUwMWRjMzYyYzcxNDM4Y2FjMjdi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKQEAg
LTEwNiwyNSArMTA2LDYgQEAgSlNWYWx1ZSBqc1R5cGVTdHJpbmdGb3JWYWx1ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYpCiAgICAgcmV0dXJuIGpzVHlwZVN0cmluZ0Zv
clZhbHVlKGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LCB2KTsKIH0KIAotYm9vbCBq
c1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdikK
LXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCF2LmlzQ2VsbCgp
KQotICAgICAgICByZXR1cm4gdi5pc051bGwoKTsKLQotICAgIEpTVHlwZSB0eXBlID0gdi5hc0Nl
bGwoKS0+dHlwZSgpOwotICAgIGlmICh0eXBlID09IFN0cmluZ1R5cGUgfHwgdHlwZSA9PSBTeW1i
b2xUeXBlIHx8IHR5cGUgPT0gSGVhcEJpZ0ludFR5cGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAodHlwZSA+PSBPYmplY3RUeXBlKSB7Ci0gICAgICAgIGlmIChhc09iamVjdCh2KS0+
c3RydWN0dXJlKHZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChnbG9iYWxPYmplY3QpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmpl
Y3Qodik7Ci0gICAgICAgIGlmIChvYmplY3QtPmlzQ2FsbGFibGUodm0pKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogc2l6ZV90IG5vcm1h
bGl6ZVByb3RvdHlwZUNoYWluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
YmFzZSwgYm9vbCYgc2F3UG9seVByb3RvKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAppbmRleCBm
MzE0MWU2MDU4YmYzMWI2M2FiNGQ4NmJjOTRjNThhN2M1ZDZlNDBkLi43M2Q2M2Y2NmNmZDVlZTA1
N2Q4MWFkMWJlZGJjOThlMGJhODU4MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5oCkBAIC0zMyw5ICszMywyMiBAQCBuYW1lc3BhY2UgSlNDIHsKIE5FVkVS
X0lOTElORSBKU1ZhbHVlIGpzQWRkU2xvd0Nhc2UoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBK
U1ZhbHVlKTsKIEpTVmFsdWUganNUeXBlU3RyaW5nRm9yVmFsdWUoSlNHbG9iYWxPYmplY3QqLCBK
U1ZhbHVlKTsKIEpTVmFsdWUganNUeXBlU3RyaW5nRm9yVmFsdWUoVk0mLCBKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUpOwotYm9vbCBqc1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSk7CiBzaXplX3Qgbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBib29sJiBzYXdQb2x5UHJvdG8pOwogCitBTFdBWVNfSU5MSU5FIGJvb2wganNUeXBl
b2ZJc09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAodmFsdWUuaXNPYmpl
Y3QoKSkgeworICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOworICAg
ICAgICBpZiAob2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGds
b2JhbE9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChvYmpl
Y3QtPmlzQ2FsbGFibGUodm0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgpOworfQorCiBBTFdB
WVNfSU5MSU5FIGJvb2wganNUeXBlb2ZJc0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406950</attachid>
            <date>2020-08-20 11:59:15 -0700</date>
            <delta_ts>2020-08-25 18:12:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144457-20200820215914.patch</filename>
            <type>text/plain</type>
            <size>8522</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1OTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ODNlZjY1MTJhNTZjMTVhNjE3MzU5MDJkYzY1MjA3ZGM5NzEyMDI0Li5jMGMzNGVkOWNmZDViYzc3
NmNjMTk1N2Y2M2IxYTZmZjYzMzE3YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMC0wOC0yMCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgVXNlIGpzVHlwZW9mSXNPYmplY3QoKSBpbiBERkcgQUkgYW5kIG9w
ZXJhdGlvblR5cGVPZklzT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRp
LgorCisgICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgMS4gUmVmYWN0b3JzIGpzVHlwZW9m
SXNPYmplY3QoKSwgbGV2ZXJhZ2luZyBmYXN0IHBhdGggb2YgaXNDYWxsYWJsZSgpLAorICAgICAg
ICAgICBtb3ZlcyBpdCB0byB0aGUgaGVhZGVyLCBhbmQgdXRpbGl6ZXMgaXQgaW4gREZHIEFJIGFu
ZAorICAgICAgICAgICBvcGVyYXRpb25UeXBlT2ZJc09iamVjdCgpIHRvIGVsaW1pbmF0ZSBjb2Rl
IGR1cGxpY2F0aW9uLgorCisgICAgICAgIDIuIFNwbGl0cyBqc1R5cGVvZklzRnVuY3Rpb24oKSBp
bnRvIDIgbWV0aG9kcyB0byBhY2NvbW9kYXRlCisgICAgICAgICAgIG9wZXJhdGlvblR5cGVPZklz
RnVuY3Rpb24oKSBjYWxsaW5nIGl0IHdpdGggSlNPYmplY3QqIGFyZ3VtZW50LgorCisgICAgICAg
IDMuIFJlbW92ZXMgb3JwaGFuZWQgc2xvd19wYXRoX2lzX29iamVjdCBkZWNsYXJhdGlvbi4KKwor
ICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UsIGB0eXBlb2ZgIG1pY3JvYmVuY2htYXJrcyBhcmUg
bmV1dHJhbC4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmg6CisgICAgICAgICogcnVudGltZS9P
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6anNUeXBlb2ZJc09iamVjdCk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6OmpzVHlwZW9m
SXNPYmplY3QpOgorICAgICAgICAoSlNDOjpqc1R5cGVvZklzRnVuY3Rpb24pOgorCiAyMDIwLTA4
LTE5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJ
bnRyb2R1Y2UgT3BJc0NhbGxhYmxlIGJ5dGVjb2RlIGFuZCBpbnRyaW5zaWMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAppbmRleCBhZjU4ZjdhYjJmYTAzOWI1MGZkZjZiYWQwMjJiMDY2MTRjOTczNDhlLi5lZWYz
YTQzYjYzYmViMDM0ZTBhYmUxZTliYWMxN2IwYTQ1NzJkYWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CkBAIC0xNDc3LDE5ICsxNDc3LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAg
ICAgICAgICAgICAgOiBjaGlsZC52YWx1ZSgpLmlzVW5kZWZpbmVkKCkpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6Ci0gICAgICAgICAg
ICAgICAgaWYgKGNoaWxkLnZhbHVlKCkuaXNPYmplY3QoKSkgewotICAgICAgICAgICAgICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoY2hpbGQudmFsdWUoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChvYmplY3QtPnR5cGUoKSA9PSBKU0Z1bmN0aW9uVHlwZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOwotICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmICghKG9iamVjdC0+aW5saW5lVHlwZUZsYWdzKCkgJiBP
dmVycmlkZXNHZXRDYWxsRGF0YSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFu
dChub2RlLCBqc0Jvb2xlYW4oIWNoaWxkLnZhbHVlKCkuYXNDZWxsKCktPnN0cnVjdHVyZShtX3Zt
KS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY291bGQganVzdCBjYWxsIGdldENh
bGxEYXRhLgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1NwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rh
bnRXYXNTZXQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4o
Y2hpbGQudmFsdWUoKS5pc051bGwoKSkpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGpzQm9vbGVhbihqc1R5cGVvZklzT2JqZWN0KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RG
b3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSwgY2hpbGQudmFsdWUoKSkpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVHlwZU9mSXNGdW5jdGlvbjoKICAgICAgICAg
ICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oanNUeXBlb2ZJc0Z1bmN0aW9uKG1f
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSwgY2hpbGQu
dmFsdWUoKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CmluZGV4IDA4ZTFlMDc0ZTJmYmU5YTkxOTc5Y2M0YTNhYTQyNTQ3MjE3Zjg3NzIuLmNhNjU1NzZj
MzllOTkyMTgyYjhmNTFmMzAxNWE3OWZjODY5ZmU5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjEwOSwxMyArMjEwOSw3IEBAIHNpemVfdCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsCiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKIAotICAgIEFTU0VSVChqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4o
dm0sIG9iamVjdCkpOwotICAgIAotICAgIGlmIChvYmplY3QtPnN0cnVjdHVyZSh2bSktPm1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChvYmplY3QtPmlzQ2FsbGFibGUodm0pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGpzVHlwZW9mSXNPYmplY3QoZ2xvYmFsT2JqZWN0
LCBhc09iamVjdChvYmplY3QpKTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VHlwZU9mSXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9i
amVjdCkKQEAgLTIxMjQsOSArMjExOCw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blR5cGVPZklzRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDCiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKIAot
ICAgIEFTU0VSVChqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIG9iamVjdCkpOwotCi0gICAg
cmV0dXJuIGpzVHlwZW9mSXNGdW5jdGlvbihnbG9iYWxPYmplY3QsIG9iamVjdCk7CisgICAgcmV0
dXJuIGpzVHlwZW9mSXNGdW5jdGlvbihnbG9iYWxPYmplY3QsIGFzT2JqZWN0KG9iamVjdCkpOwog
fQogCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCA3YTM5YWY4OTlmMmFm
NWI3M2M5MjA0YmFjMzZhNWRjZDA0YmEwNmEwLi41NWI3NzA2Mjk4NGI3N2E5ZGM2NjBlOWYzMmU5
NGRlODhhMGE3ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25TbG93UGF0aHMuaApAQCAtMjUzLDcgKzI1Myw2IEBAIFNMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfYml0eG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdHlwZW9m
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdHlwZW9mX2lzX29iamVjdCk7CiBT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3R5cGVvZl9pc19mdW5jdGlvbik7Ci1TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2lzX29iamVjdCk7CiBTTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2lzX2NhbGxhYmxlKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfaXNfY29uc3RydWN0b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9p
bl9ieV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3Bw
CmluZGV4IGQxMDkzNzdjNGJhZTIwNmNiMDE0NzYyZWYwMjI1NWZhYWQwZTc3ZWYuLjViYjYyYjhl
NDg1YjdhZDMzMzFlMDFkYzM2MmM3MTQzOGNhYzI3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwCkBAIC0xMDYsMjUgKzEwNiw2IEBAIEpTVmFsdWUg
anNUeXBlU3RyaW5nRm9yVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2KQogICAgIHJldHVybiBqc1R5cGVTdHJpbmdGb3JWYWx1ZShnbG9iYWxPYmplY3QtPnZtKCks
IGdsb2JhbE9iamVjdCwgdik7CiB9CiAKLWJvb2wganNUeXBlb2ZJc09iamVjdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwotICAgIGlmICghdi5pc0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIHYuaXNOdWxs
KCk7Ci0KLSAgICBKU1R5cGUgdHlwZSA9IHYuYXNDZWxsKCktPnR5cGUoKTsKLSAgICBpZiAodHlw
ZSA9PSBTdHJpbmdUeXBlIHx8IHR5cGUgPT0gU3ltYm9sVHlwZSB8fCB0eXBlID09IEhlYXBCaWdJ
bnRUeXBlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHR5cGUgPj0gT2JqZWN0VHlw
ZSkgewotICAgICAgICBpZiAoYXNPYmplY3QodiktPnN0cnVjdHVyZSh2bSktPm1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHYpOwotICAgICAgICBpZiAob2JqZWN0
LT5pc0NhbGxhYmxlKHZtKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIHNpemVfdCBub3JtYWxpemVQcm90b3R5cGVDaGFpbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIGJvb2wmIHNhd1BvbHlQcm90bykK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggZjMxNDFlNjA1OGJmMzFiNjNhYjRkODZiYzk0
YzU4YTdjNWQ2ZTQwZC4uOTc1MmMxYWU4YmU1MDE5M2NlYWI5YWNiMjVkMTFkMmY0NzY5MjgxNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMzMsMTkg
KzMzLDM5IEBAIG5hbWVzcGFjZSBKU0MgewogTkVWRVJfSU5MSU5FIEpTVmFsdWUganNBZGRTbG93
Q2FzZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUsIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVT
dHJpbmdGb3JWYWx1ZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVT
dHJpbmdGb3JWYWx1ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci1ib29sIGpzVHlw
ZW9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKIHNpemVfdCBub3JtYWxpemVQ
cm90b3R5cGVDaGFpbihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGJvb2wmIHNhd1BvbHlQcm90
byk7CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBqc1R5cGVvZklzRnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK0FMV0FZU19JTkxJTkUgYm9vbCBqc1R5
cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmpl
Y3QpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmICh2YWx1ZS5p
c09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7
Ci0gICAgICAgIGlmIChvYmplY3QtPnN0cnVjdHVyZSh2bSktPm1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYg
KG9iamVjdC0+aXNDYWxsYWJsZSh2bSkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
CisgICAgaWYgKG9iamVjdC0+c3RydWN0dXJlKHZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChn
bG9iYWxPYmplY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG9iamVjdC0+aXND
YWxsYWJsZSh2bSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQUxXQVlTX0lOTElORSBib29sIGpzVHlwZW9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkK
KyAgICAgICAgcmV0dXJuIGpzVHlwZW9mSXNPYmplY3QoZ2xvYmFsT2JqZWN0LCBhc09iamVjdCh2
YWx1ZSkpOworICAgIHJldHVybiB2YWx1ZS5pc051bGwoKTsKK30KKworQUxXQVlTX0lOTElORSBi
b29sIGpzVHlwZW9mSXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogb2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBp
ZiAob2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9i
amVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAob2JqZWN0LT5pc0NhbGxhYmxl
KHZtKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitBTFdB
WVNfSU5MSU5FIGJvb2wganNUeXBlb2ZJc0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpCisgICAg
ICAgIHJldHVybiBqc1R5cGVvZklzRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhc09iamVjdCh2YWx1
ZSkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407254</attachid>
            <date>2020-08-25 18:12:25 -0700</date>
            <delta_ts>2020-08-26 12:04:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144457-20200826041224.patch</filename>
            <type>text/plain</type>
            <size>8251</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
M2FiZTlhMzhjZGJkZDM4MjFkMWM4OTM4ZjE3NTUzMWY3Y2Q5OWJhLi43YzA5NTgxM2RlMzRhNDZh
ZDBkMmIwMWM4NDY3MjdkMTQ4ZmNmYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wOC0yNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgVXNlIGpzVHlwZW9mSXNPYmplY3QoKSBpbiBERkcgQUkgYW5kIG9w
ZXJhdGlvblR5cGVPZklzT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIGpzVHlwZW9mSXNPYmplY3QoKSwgbGV2
ZXJhZ2luZyBmYXN0IHBhdGggb2YgaXNDYWxsYWJsZSgpLAorICAgICAgICBtb3ZlcyBpdCB0byB0
aGUgaGVhZGVyLCBhbmQgdXRpbGl6ZXMgaXQgaW4gb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoKSAm
IERGRyBBSQorICAgICAgICAobWluZGluZyBjb25jdXJyZW5jeSkgdG8gZWxpbWluYXRlIGNvZGUg
ZHVwbGljYXRpb24uCisKKyAgICAgICAgQWxzbywgcmVtb3ZlcyBvcnBoYW5lZCBzbG93X3BhdGhf
aXNfb2JqZWN0IGRlY2xhcmF0aW9uLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSwgYHR5
cGVvZmAgbWljcm9iZW5jaG1hcmtzIGFyZSBuZXV0cmFsLgorCisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAg
KiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0
aHMuaDoKKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpq
c1R5cGVvZklzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMu
aDoKKyAgICAgICAgKEpTQzo6anNUeXBlb2ZJc09iamVjdFdpdGhDb25jdXJyZW5jeSk6CisgICAg
ICAgIChKU0M6OmpzVHlwZW9mSXNPYmplY3QpOgorCiAyMDIwLTA4LTI1ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBicmVha3BvaW50
IGNvbmRpdGlvbiBzaG91bGQgYmUgZXZhbHVhdGVkIGJlZm9yZSB0aGUgaWdub3JlIGNvdW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKaW5kZXggNzA4MzFiOWI4NTEzM2U5ZmM4YjRiOWYwY2I0M2ZlNTFiZDRk
Y2MzMy4uOGJjNjVmNjAyMzliMTlmMjljZjYyZWIwNzg1Yzk1NTJhNDYyY2U3MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaApAQCAtMTQ3NiwyMSArMTQ3NiwxNCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGlt
aQogICAgICAgICAgICAgICAgICAgICA/IGNoaWxkLnZhbHVlKCkuYXNDZWxsKCktPnN0cnVjdHVy
ZShtX3ZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpCiAgICAgICAgICAgICAgICAgICAgIDogY2hpbGQu
dmFsdWUoKS5pc1VuZGVmaW5lZCgpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgotICAgICAgICAgICAgICAgIGlmIChjaGlsZC52YWx1
ZSgpLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KGNoaWxkLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0
LT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRD
b25zdGFudChub2RlLCBqc0Jvb2xlYW4oZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoIShvYmplY3QtPmlubGluZVR5cGVGbGFncygpICYgT3ZlcnJpZGVzR2V0Q2FsbERhdGEp
KQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKCFj
aGlsZC52YWx1ZSgpLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUobV92bSktPm1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMp
KSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGNvdWxkIGp1c3QgY2FsbCBnZXRDYWxsRGF0YS4KLSAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQ0NTcKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGNoaWxkLnZhbHVlKCkuaXNOdWxs
KCkpKTsKKyAgICAgICAgICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6IHsKKyAgICAgICAgICAgICAg
ICBUcmlTdGF0ZSByZXN1bHQgPSBqc1R5cGVvZklzT2JqZWN0V2l0aENvbmN1cnJlbmN5PENvbmN1
cnJlbmN5OjpDb25jdXJyZW50VGhyZWFkPihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0Rm9yKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYyksIGNoaWxkLnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQgIT0gVHJpU3RhdGU6OkluZGV0ZXJtaW5hdGUpCisgICAgICAgICAgICAgICAgICAg
IHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihyZXN1bHQgPT0gVHJpU3RhdGU6OlRydWUpKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBjYXNlIFR5cGVPZklzRnVuY3Rpb246IHsKICAgICAgICAgICAgICAgICBUcmlTdGF0ZSBy
ZXN1bHQgPSBqc1R5cGVvZklzRnVuY3Rpb25XaXRoQ29uY3VycmVuY3k8Q29uY3VycmVuY3k6OkNv
bmN1cnJlbnRUaHJlYWQ+KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSwgY2hpbGQudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAh
PSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCmluZGV4IDY4ZGFiNjFhYzAzYTE4NWU5NzMyOTYxODQ5ZDc5MmZhNzc2
ZTg2NDcuLjFkYzViNjU5YzZiNDFkMWJlNzA5M2E4Mzc1MzE0NmEzMWY2MzZlNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjEzMiwxMSArMjEz
Miw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsCiAKICAgICBBU1NFUlQoanNEeW5hbWljQ2Fz
dDxKU09iamVjdCo+KHZtLCBvYmplY3QpKTsKICAgICAKLSAgICBpZiAob2JqZWN0LT5zdHJ1Y3R1
cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9iamVjdCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAob2JqZWN0LT5pc0NhbGxhYmxlKHZtKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBqc1R5cGVvZklzT2JqZWN0
KGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVHlwZU9mSXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmgKaW5kZXggN2EzOWFmODk5ZjJhZjViNzNjOTIwNGJhYzM2YTVkY2QwNGJhMDZhMC4uNTVi
NzcwNjI5ODRiNzdhOWRjNjYwZTlmMzJlOTRkZTg4YTBhN2Q3OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI1Myw3ICsyNTMsNiBA
QCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2JpdHhvcik7CiBTTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX3R5cGVvZik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3R5cGVvZl9pc19vYmplY3QpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90
eXBlb2ZfaXNfZnVuY3Rpb24pOwotU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19v
YmplY3QpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19jYWxsYWJsZSk7CiBT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2lzX2NvbnN0cnVjdG9yKTsKIFNMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfaW5fYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAppbmRleCBjYmMxMDA1MmM4NzY3ODUwNjE2OTQxNDQ5
OWJlNTcxMWMzYTgzZWUzLi4yYzMzZGRmOTQ4ODgwM2ZlOWJlMDUyMGEzNGI5MzYzZjY2MjRiNDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcApAQCAt
MTEzLDI1ICsxMTMsNiBAQCBKU1N0cmluZyoganNUeXBlU3RyaW5nRm9yVmFsdWVXaXRoQ29uY3Vy
cmVuY3koVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiB2bS5z
bWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nKCk7CiB9CiAKLWJvb2wganNUeXBlb2ZJc09iamVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHYpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmICghdi5pc0NlbGwoKSkKLSAgICAgICAgcmV0dXJu
IHYuaXNOdWxsKCk7Ci0KLSAgICBKU1R5cGUgdHlwZSA9IHYuYXNDZWxsKCktPnR5cGUoKTsKLSAg
ICBpZiAodHlwZSA9PSBTdHJpbmdUeXBlIHx8IHR5cGUgPT0gU3ltYm9sVHlwZSB8fCB0eXBlID09
IEhlYXBCaWdJbnRUeXBlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHR5cGUgPj0g
T2JqZWN0VHlwZSkgewotICAgICAgICBpZiAoYXNPYmplY3QodiktPnN0cnVjdHVyZSh2bSktPm1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHYpOwotICAgICAgICBp
ZiAob2JqZWN0LT5pc0NhbGxhYmxlKHZtKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHNpemVfdCBub3JtYWxpemVQcm90b3R5cGVDaGFp
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIGJvb2wmIHNhd1Bv
bHlQcm90bykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggNWU5MGFiYjVlMGY1NWM0YTlm
NmI4MzFmZTUyNzc5M2I3MjJlZTFmOC4uMDEwY2QzN2NiMmY2ZTkwZWMxMGI3ZTZmOTliNTIzNWVk
NTI0OTA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApA
QCAtMzIsOSArMzIsMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIE5FVkVSX0lOTElORSBKU1ZhbHVl
IGpzQWRkU2xvd0Nhc2UoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIEpTU3Ry
aW5nKiBqc1R5cGVTdHJpbmdGb3JWYWx1ZVdpdGhDb25jdXJyZW5jeShWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSwgQ29uY3VycmVuY3kpOwotYm9vbCBqc1R5cGVvZklzT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiBzaXplX3Qgbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBib29sJiBzYXdQb2x5UHJvdG8pOwogCit0ZW1wbGF0ZTxD
b25jdXJyZW5jeSBjb25jdXJyZW5jeT4KK0FMV0FZU19JTkxJTkUgVHJpU3RhdGUganNUeXBlb2ZJ
c09iamVjdFdpdGhDb25jdXJyZW5jeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAo
IXZhbHVlLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0cmlTdGF0ZSh2YWx1ZS5pc051bGwo
KSk7CisgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKKyAgICBpZiAob2Jq
ZWN0LT5zdHJ1Y3R1cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9iamVjdCkp
CisgICAgICAgIHJldHVybiBUcmlTdGF0ZTo6RmFsc2U7CisgICAgcmV0dXJuIHRyaVN0YXRlKG9i
amVjdC0+aXNDYWxsYWJsZVdpdGhDb25jdXJyZW5jeTxjb25jdXJyZW5jeT4odm0pID09IFRyaVN0
YXRlOjpGYWxzZSk7Cit9CisKIHRlbXBsYXRlPENvbmN1cnJlbmN5IGNvbmN1cnJlbmN5PgogQUxX
QVlTX0lOTElORSBUcmlTdGF0ZSBqc1R5cGVvZklzRnVuY3Rpb25XaXRoQ29uY3VycmVuY3koSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKQEAgLTUyLDYgKzYz
LDEzIEBAIGlubGluZSBKU1N0cmluZyoganNUeXBlU3RyaW5nRm9yVmFsdWUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1CiAgICAgcmV0dXJuIGpzVHlwZVN0cmluZ0Zv
clZhbHVlV2l0aENvbmN1cnJlbmN5KGdldFZNKGdsb2JhbE9iamVjdCksIGdsb2JhbE9iamVjdCwg
dmFsdWUsIENvbmN1cnJlbmN5OjpNYWluVGhyZWFkKTsKIH0KIAorQUxXQVlTX0lOTElORSBib29s
IGpzVHlwZW9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGpzVHlwZW9mSXNPYmplY3RXaXRoQ29uY3VycmVu
Y3k8Q29uY3VycmVuY3k6Ok1haW5UaHJlYWQ+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgIEFT
U0VSVChyZXN1bHQgIT0gVHJpU3RhdGU6OkluZGV0ZXJtaW5hdGUpOworICAgIHJldHVybiByZXN1
bHQgPT0gVHJpU3RhdGU6OlRydWU7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBqc1R5cGVvZklz
RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBhdXRvIHJlc3VsdCA9IGpzVHlwZW9mSXNGdW5jdGlvbldpdGhDb25jdXJyZW5jeTxDb25j
dXJyZW5jeTo6TWFpblRocmVhZD4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407318</attachid>
            <date>2020-08-26 12:04:51 -0700</date>
            <delta_ts>2020-08-26 22:27:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144457-20200826220449.patch</filename>
            <type>text/plain</type>
            <size>9464</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
M2FiZTlhMzhjZGJkZDM4MjFkMWM4OTM4ZjE3NTUzMWY3Y2Q5OWJhLi5kNWMzYzlkMmQxMjU4MWI0
ODZkY2I5ZTA1N2FjNzE1NzNmZjY4YmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMC0wOC0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgVXNlIGpzVHlwZW9mSXNPYmplY3QoKSBpbiBERkcgQUkgYW5kIG9w
ZXJhdGlvblR5cGVPZklzT2JqZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVmYWN0b3JzIGpzVHlwZW9mSXNPYmplY3QoKSwgbGV2
ZXJhZ2luZyBmYXN0IHBhdGggb2YgaXNDYWxsYWJsZSgpLAorICAgICAgICBtb3ZlcyBpdCB0byB0
aGUgaGVhZGVyLCBhbmQgdXRpbGl6ZXMgaXQgaW4gb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoKSAm
IERGRyBBSQorICAgICAgICAobWluZGluZyBjb25jdXJyZW5jeSkgdG8gZWxpbWluYXRlIGNvZGUg
ZHVwbGljYXRpb24uCisKKyAgICAgICAgQWxzbywgcmVtb3ZlcyBvcnBoYW5lZCBzbG93X3BhdGhf
aXNfb2JqZWN0IGRlY2xhcmF0aW9uLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSwgYHR5
cGVvZmAgbWljcm9iZW5jaG1hcmtzIGFyZSBuZXV0cmFsLgorCisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAg
KiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0
aHMuaDoKKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpq
c1R5cGVvZklzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMu
aDoKKyAgICAgICAgKEpTQzo6anNUeXBlb2ZJc09iamVjdFdpdGhDb25jdXJyZW5jeSk6CisgICAg
ICAgIChKU0M6OmpzVHlwZW9mSXNPYmplY3QpOgorCiAyMDIwLTA4LTI1ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBicmVha3BvaW50
IGNvbmRpdGlvbiBzaG91bGQgYmUgZXZhbHVhdGVkIGJlZm9yZSB0aGUgaWdub3JlIGNvdW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IGEwMjkxNGMxMzZlNjFkZjQ0YTE3ZjFhNzgwMTNhZDIzYTJmNDgzYTEuLmNhOTA5NjFjMjBl
ZGRiZjk5YTQ5MTA0N2UyNmE4Y2ZiMGRjZjA3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAt
MDgtMjYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IFVzZSBqc1R5cGVvZklzT2JqZWN0KCkgaW4gREZHIEFJIGFuZCBvcGVyYXRpb25UeXBlT2ZJc09i
amVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQ0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIHd0
Zi9UcmlTdGF0ZS5oOgorICAgICAgICAoV1RGOjppbnZlcnQpOgorCiAyMDIwLTA4LTI1ICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBBc3NlcnQg
ZmFpbHVyZSB1bmRlciBSdW5Mb29wOjpSdW5Mb29wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggNzA4
MzFiOWI4NTEzM2U5ZmM4YjRiOWYwY2I0M2ZlNTFiZDRkY2MzMy4uOGJjNjVmNjAyMzliMTlmMjlj
ZjYyZWIwNzg1Yzk1NTJhNDYyY2U3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMTQ3NiwyMSAr
MTQ3NiwxNCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+Ojpl
eGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgICAgICAgICA/
IGNoaWxkLnZhbHVlKCkuYXNDZWxsKCktPnN0cnVjdHVyZShtX3ZtKS0+bWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZChtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpCiAgICAgICAgICAgICAgICAgICAgIDogY2hpbGQudmFsdWUoKS5pc1VuZGVmaW5lZCgpKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGVPZklzT2JqZWN0
OgotICAgICAgICAgICAgICAgIGlmIChjaGlsZC52YWx1ZSgpLmlzT2JqZWN0KCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGNoaWxkLnZhbHVlKCkp
OwotICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gSlNGdW5jdGlvblR5
cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4o
ZmFsc2UpKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIShvYmplY3QtPmlubGluZVR5
cGVGbGFncygpICYgT3ZlcnJpZGVzR2V0Q2FsbERhdGEpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKCFjaGlsZC52YWx1ZSgpLmFzQ2VsbCgpLT5z
dHJ1Y3R1cmUobV92bSktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQobV9jb2RlQmxvY2stPmdsb2Jh
bE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSkpOwotICAgICAgICAgICAgICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGp1
c3QgY2FsbCBnZXRDYWxsRGF0YS4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTcKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9k
ZSwganNCb29sZWFuKGNoaWxkLnZhbHVlKCkuaXNOdWxsKCkpKTsKKyAgICAgICAgICAgIGNhc2Ug
VHlwZU9mSXNPYmplY3Q6IHsKKyAgICAgICAgICAgICAgICBUcmlTdGF0ZSByZXN1bHQgPSBqc1R5
cGVvZklzT2JqZWN0V2l0aENvbmN1cnJlbmN5PENvbmN1cnJlbmN5OjpDb25jdXJyZW50VGhyZWFk
PihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyksIGNo
aWxkLnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gVHJpU3RhdGU6Oklu
ZGV0ZXJtaW5hdGUpCisgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9v
bGVhbihyZXN1bHQgPT0gVHJpU3RhdGU6OlRydWUpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIFR5cGVPZklzRnVuY3Rp
b246IHsKICAgICAgICAgICAgICAgICBUcmlTdGF0ZSByZXN1bHQgPSBqc1R5cGVvZklzRnVuY3Rp
b25XaXRoQ29uY3VycmVuY3k8Q29uY3VycmVuY3k6OkNvbmN1cnJlbnRUaHJlYWQ+KG1fY29kZUJs
b2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSwgY2hpbGQudmFsdWUo
KSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDY4
ZGFiNjFhYzAzYTE4NWU5NzMyOTYxODQ5ZDc5MmZhNzc2ZTg2NDcuLjFkYzViNjU5YzZiNDFkMWJl
NzA5M2E4Mzc1MzE0NmEzMWY2MzZlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtMjEzMiwxMSArMjEzMiw3IEBAIHNpemVfdCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsCiAKICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBvYmplY3Qp
KTsKICAgICAKLSAgICBpZiAob2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKGdsb2JhbE9iamVjdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAob2Jq
ZWN0LT5pc0NhbGxhYmxlKHZtKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggN2EzOWFmODk5ZjJh
ZjViNzNjOTIwNGJhYzM2YTVkY2QwNGJhMDZhMC4uNTViNzcwNjI5ODRiNzdhOWRjNjYwZTlmMzJl
OTRkZTg4YTBhN2Q3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmgKQEAgLTI1Myw3ICsyNTMsNiBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX2JpdHhvcik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3R5cGVv
Zik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3R5cGVvZl9pc19vYmplY3QpOwog
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2ZfaXNfZnVuY3Rpb24pOwotU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19vYmplY3QpOwogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9pc19jYWxsYWJsZSk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX2lzX2NvbnN0cnVjdG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
aW5fYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNw
cAppbmRleCBjYmMxMDA1MmM4NzY3ODUwNjE2OTQxNDQ5OWJlNTcxMWMzYTgzZWUzLi4yYzMzZGRm
OTQ4ODgwM2ZlOWJlMDUyMGEzNGI5MzYzZjY2MjRiNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcApAQCAtMTEzLDI1ICsxMTMsNiBAQCBKU1N0cmlu
ZyoganNUeXBlU3RyaW5nRm9yVmFsdWVXaXRoQ29uY3VycmVuY3koVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiB2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5n
KCk7CiB9CiAKLWJvb2wganNUeXBlb2ZJc09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHYpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAg
IGlmICghdi5pc0NlbGwoKSkKLSAgICAgICAgcmV0dXJuIHYuaXNOdWxsKCk7Ci0KLSAgICBKU1R5
cGUgdHlwZSA9IHYuYXNDZWxsKCktPnR5cGUoKTsKLSAgICBpZiAodHlwZSA9PSBTdHJpbmdUeXBl
IHx8IHR5cGUgPT0gU3ltYm9sVHlwZSB8fCB0eXBlID09IEhlYXBCaWdJbnRUeXBlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHR5cGUgPj0gT2JqZWN0VHlwZSkgewotICAgICAgICBp
ZiAoYXNPYmplY3QodiktPnN0cnVjdHVyZSh2bSktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoZ2xv
YmFsT2JqZWN0KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGFzT2JqZWN0KHYpOwotICAgICAgICBpZiAob2JqZWN0LT5pc0NhbGxhYmxlKHZt
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KIHNpemVfdCBub3JtYWxpemVQcm90b3R5cGVDaGFpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIGJhc2UsIGJvb2wmIHNhd1BvbHlQcm90bykKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVy
YXRpb25zLmgKaW5kZXggNWU5MGFiYjVlMGY1NWM0YTlmNmI4MzFmZTUyNzc5M2I3MjJlZTFmOC4u
ZDRhNWU0OTY3NmE3N2E4OTA5YjNmYzkyNzRiYjM4MTQ1ZTdjNGUxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtMzIsOSArMzIsMjAgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIE5FVkVSX0lOTElORSBKU1ZhbHVlIGpzQWRkU2xvd0Nhc2UoSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKIEpTU3RyaW5nKiBqc1R5cGVTdHJpbmdGb3JWYWx1
ZVdpdGhDb25jdXJyZW5jeShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSwgQ29uY3VycmVu
Y3kpOwotYm9vbCBqc1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiBz
aXplX3Qgbm9ybWFsaXplUHJvdG90eXBlQ2hhaW4oSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBi
b29sJiBzYXdQb2x5UHJvdG8pOwogCit0ZW1wbGF0ZTxDb25jdXJyZW5jeSBjb25jdXJyZW5jeT4K
K0FMV0FZU19JTkxJTkUgVHJpU3RhdGUganNUeXBlb2ZJc09iamVjdFdpdGhDb25jdXJyZW5jeShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCisgICAg
ICAgIHJldHVybiB0cmlTdGF0ZSh2YWx1ZS5pc051bGwoKSk7CisgICAgSlNPYmplY3QqIG9iamVj
dCA9IGFzT2JqZWN0KHZhbHVlKTsKKyAgICBpZiAob2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5tYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9iamVjdCkpCisgICAgICAgIHJldHVybiBUcmlTdGF0
ZTo6RmFsc2U7CisgICAgcmV0dXJuIGludmVydChvYmplY3QtPmlzQ2FsbGFibGVXaXRoQ29uY3Vy
cmVuY3k8Y29uY3VycmVuY3k+KHZtKSk7Cit9CisKIHRlbXBsYXRlPENvbmN1cnJlbmN5IGNvbmN1
cnJlbmN5PgogQUxXQVlTX0lOTElORSBUcmlTdGF0ZSBqc1R5cGVvZklzRnVuY3Rpb25XaXRoQ29u
Y3VycmVuY3koSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsK
QEAgLTUyLDYgKzYzLDEzIEBAIGlubGluZSBKU1N0cmluZyoganNUeXBlU3RyaW5nRm9yVmFsdWUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1CiAgICAgcmV0dXJuIGpz
VHlwZVN0cmluZ0ZvclZhbHVlV2l0aENvbmN1cnJlbmN5KGdldFZNKGdsb2JhbE9iamVjdCksIGds
b2JhbE9iamVjdCwgdmFsdWUsIENvbmN1cnJlbmN5OjpNYWluVGhyZWFkKTsKIH0KIAorQUxXQVlT
X0lOTElORSBib29sIGpzVHlwZW9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGpzVHlwZW9mSXNPYmplY3RX
aXRoQ29uY3VycmVuY3k8Q29uY3VycmVuY3k6Ok1haW5UaHJlYWQ+KGdsb2JhbE9iamVjdCwgdmFs
dWUpOworICAgIEFTU0VSVChyZXN1bHQgIT0gVHJpU3RhdGU6OkluZGV0ZXJtaW5hdGUpOworICAg
IHJldHVybiByZXN1bHQgPT0gVHJpU3RhdGU6OlRydWU7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9v
bCBqc1R5cGVvZklzRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBhdXRvIHJlc3VsdCA9IGpzVHlwZW9mSXNGdW5jdGlvbldpdGhDb25j
dXJyZW5jeTxDb25jdXJyZW5jeTo6TWFpblRocmVhZD4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UcmlTdGF0ZS5oIGIvU291cmNlL1dURi93dGYvVHJp
U3RhdGUuaAppbmRleCA3ZTUyZTdiMzYxOWU3MzUyYjVlNGY1ZjdkOTRlOWJlMTk5ZmM1NDMyLi44
MjQ1Mzc2ZWRmZGQyNWZjMjlhMWRkMTBlZTMzMWEzYWU1ZTNmM2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9UcmlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RyaVN0YXRlLmgKQEAg
LTM4LDcgKzM4LDE3IEBAIGlubGluZSBUcmlTdGF0ZSB0cmlTdGF0ZShib29sIGJvb2xlYW4pCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFRyaVN0YXRlPihib29sZWFuKTsKIH0KIAoraW5saW5lIFRy
aVN0YXRlIGludmVydChUcmlTdGF0ZSB0cmlTdGF0ZSkKK3sKKyAgICBpZiAodHJpU3RhdGUgPT0g
VHJpU3RhdGU6OlRydWUpCisgICAgICAgIHJldHVybiBUcmlTdGF0ZTo6RmFsc2U7CisgICAgaWYg
KHRyaVN0YXRlID09IFRyaVN0YXRlOjpGYWxzZSkKKyAgICAgICAgcmV0dXJuIFRyaVN0YXRlOjpU
cnVlOworICAgIHJldHVybiBUcmlTdGF0ZTo6SW5kZXRlcm1pbmF0ZTsKK30KKwogfQogCiB1c2lu
ZyBXVEY6OlRyaVN0YXRlOwogdXNpbmcgV1RGOjp0cmlTdGF0ZTsKK3VzaW5nIFdURjo6aW52ZXJ0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>