<?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>176685</bug_id>
          
          <creation_ts>2017-09-11 03:44:01 -0700</creation_ts>
          <short_desc>Safari 10 /11 problem with if (!await get(something)).</short_desc>
          <delta_ts>2023-10-11 17:06:31 -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=177851</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>myfele</reporter>
          <assigned_to name="GSkachkov">gskachkov</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>caitp</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>klimashkin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347372</commentid>
    <comment_count>0</comment_count>
    <who name="">myfele</who>
    <bug_when>2017-09-11 03:44:01 -0700</bug_when>
    <thetext>This code doesn&apos;t work in Safari (10 and 11, with Technology preview 39a), it blocks page rendering and says::

if(!await a(t, &quot;myPromise&quot;).content) {
console.log(&apos;ByBye&apos;);
}

Of course if I remove await from my source code or check it like this:

if (myPromiseContent === 0) {

it works again.

But I can&apos;t use &quot;!&quot; with an await? Is it generally wrong? &quot;eslint&quot; doesn&apos;t warn me about this.

Am I wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348827</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-09-14 10:14:18 -0700</bug_when>
    <thetext>Could you please attach a complete reproducible test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356425</commentid>
    <comment_count>2</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-04 08:35:13 -0700</bug_when>
    <thetext>Will look to this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356428</commentid>
    <comment_count>3</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-04 08:47:44 -0700</bug_when>
    <thetext>I&apos;m receiving error in following script:
```
(async () =&gt; { 
     var obj = { content: Promise.resolve(&apos;abc&apos;) }; 
     var a = !await obj.content; 
     console.log(a); 
})();
// SyntaxError: Unexpected identifier &apos;obj&apos;. Expected &apos;;&apos; after variable declaration.
```
Work well if wraps await in parentheses:
```
(async () =&gt; { 
     var obj = { content: Promise.resolve(&apos;abc&apos;) }; 
     var a = !(await obj.content); 
     console.log(a); 
})();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1356576</commentid>
    <comment_count>4</comment_count>
      <attachid>322700</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-04 12:22:32 -0700</bug_when>
    <thetext>Created attachment 322700
Patch

WiP. Need more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357066</commentid>
    <comment_count>5</comment_count>
      <attachid>322850</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-05 10:29:35 -0700</bug_when>
    <thetext>Created attachment 322850
Patch

Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357245</commentid>
    <comment_count>6</comment_count>
      <attachid>322850</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-05 14:20:59 -0700</bug_when>
    <thetext>Comment on attachment 322850
Patch

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

&gt; Source/JavaScriptCore/parser/Parser.cpp:4447
&gt; +        else if (currentFunctionScope()-&gt;isAsyncFunctionBoundary())

Is this the grammar that is specified?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357510</commentid>
    <comment_count>7</comment_count>
      <attachid>322850</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-06 01:17:33 -0700</bug_when>
    <thetext>Comment on attachment 322850
Patch

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

I think I&apos;ll update ChangeLog description to the link of the spec

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:4447
&gt;&gt; +        else if (currentFunctionScope()-&gt;isAsyncFunctionBoundary())
&gt; 
&gt; Is this the grammar that is specified?

This is how I understand Note 1 in https://tc39.github.io/ecma262/#sec-async-function-definitions:

```
AsyncFunctionBody:
          FunctionBody[~Yield, +Await]

AwaitExpression[Yield]:
          awaitUnaryExpression[?Yield, +Await]

Note 1
await is parsed as an AwaitExpression when the [Await] parameter is present. The [Await] parameter is present in the following contexts:
In an AsyncFunctionBody.
In the FormalParameters of an AsyncFunctionDeclaration and AsyncFunctionExpression. AwaitExpression in this position is a Syntax error via static semantics.
```
I hope this is  correct understanding of the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357747</commentid>
    <comment_count>8</comment_count>
      <attachid>323048</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-10-06 15:06:44 -0700</bug_when>
    <thetext>Created attachment 323048
Patch

Fix ChangeLog description</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358200</commentid>
    <comment_count>9</comment_count>
      <attachid>323048</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 02:59:30 -0700</bug_when>
    <thetext>Comment on attachment 323048
Patch

Clearing flags on attachment: 323048

Committed r223043: &lt;http://trac.webkit.org/changeset/223043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358201</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-09 02:59:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358202</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-09 03:00:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/34882523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358392</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-10-09 13:27:49 -0700</bug_when>
    <thetext>This change caused 32 test262 &quot;failures&quot; which are seemingly unexpected passes:

test262.yaml/test262/test/language/expressions/async-arrow-function/await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-function/await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-function/await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-function/named-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-function/named-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-generator/await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-generator/await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-generator/named-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/async-generator/named-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-gen-method-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-gen-method-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-method-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-method-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-method-static-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/class/async-method-static-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/object/method-definition/async-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/object/method-definition/async-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/async-function/await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/async-function/await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/async-generator/await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/async-generator/await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-gen-method-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-gen-method-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-gen-method-static-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-gen-method-static-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-method-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-method-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-method-static-await-as-identifier-reference.js.default-strict: ERROR: Unexpected exit code: 0
test262.yaml/test262/test/language/statements/class/async-method-static-await-as-identifier-reference.js.default: ERROR: Unexpected exit code: 0

https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20Test262%20%28Tests%29/builds/4709

I will update the expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358404</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-10-09 13:46:38 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #12)
&gt; I will update the expectations.
Done in https://trac.webkit.org/changeset/223067/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1984469</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2023-10-11 17:06:31 -0700</bug_when>
    <thetext>*** Bug 177851 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322700</attachid>
            <date>2017-10-04 12:22:32 -0700</date>
            <delta_ts>2017-10-05 10:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176685-20171004222230.patch</filename>
            <type>text/plain</type>
            <size>4796</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZmFkZWFjNWQyYmJmZWU3MjhlYTI5MGQyYjM3MjdkNjc5OTE2ZDc0Li5mNmI1MGE2OGU0YmM3Y2Ri
MDA1OTFlMmEzZTViMzhlNGRlNGViMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0xMC0wNCAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBTYWZhcmkgMTAgLzExIHByb2JsZW0gd2l0aCBpZiAoIWF3YWl0
IGdldChzb21ldGhpbmcpKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzaW5nIHVuYXJ5IG9wZXJhdG9yIGJlZm9yZSBgYXdhaXRgIGxlYWQgdG8gY291
bnQgaXQgYXMgaWRlbnRpZmllcgorCisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKwog
MjAxNy0xMC0wMyAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IFdlYkFzc2VtYmx5IHRvICJTdXBwb3J0ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5jcHAKaW5kZXggOGJjMjBkMjIwMzdhMDBkYmQ3NzI1OTg3Mzg2OTVjNDRmNDhmODUyNC4u
Zjg3ZWE2NjFhYjYzM2ZjOTlmNmFiZDBlYmI2ZDQ1ZGQ3N2YwM2JmZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtNDQ0NCw2ICs0NDQ0LDkgQEAgdGVtcGxhdGUg
PGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VQcmltYXJ5RXhwcmUKICAgICBjYXNlIEFXQUlUOgogICAgICAgICBpZiAobV9wYXJzZXJTdGF0
ZS5mdW5jdGlvblBhcnNlUGhhc2UgPT0gRnVuY3Rpb25QYXJzZVBoYXNlOjpQYXJhbWV0ZXJzKQog
ICAgICAgICAgICAgZmFpbElmRmFsc2UobV9wYXJzZXJTdGF0ZS5hbGxvd0F3YWl0LCAiQ2Fubm90
IHVzZSBhd2FpdCBleHByZXNzaW9uIHdpdGhpbiBwYXJhbWV0ZXJzIik7CisgICAgICAgIGVsc2Ug
aWYgKGN1cnJlbnRGdW5jdGlvblNjb3BlKCktPmlzQXN5bmNGdW5jdGlvbkJvdW5kYXJ5KCkpCisg
ICAgICAgICAgICByZXR1cm4gcGFyc2VBd2FpdEV4cHJlc3Npb24oY29udGV4dCk7CisKICAgICAg
ICAgZ290byBpZGVudGlmaWVyRXhwcmVzc2lvbjsKICAgICBjYXNlIEFTWU5DOiB7CiAgICAgICAg
IEpTVGV4dFBvc2l0aW9uIHN0YXJ0ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0MWNkNmVmYjg3
Y2JiNmM2NDA0ZjlhM2E3NTM5MTBmZmI0YmNkMzUuLjM0ODU2MTZhMjE4NGY4NzhiZWUyZDMxNWQy
MTUyYTA3NTliMmU0MzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTAtMDQgIE9sZWtzYW5kciBTa2Fj
aGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CisKKyAgICAgICAgU2FmYXJpIDEwIC8xMSBwcm9i
bGVtIHdpdGggaWYgKCFhd2FpdCBnZXQoc29tZXRoaW5nKSkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2ODUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9hc3luYy1hd2FpdC1zeW50YXgu
anM6CisgICAgICAgICh0ZXN0VG9wTGV2ZWxBc3luY0F3YWl0U3ludGF4U2xvcHB5TW9kZS50ZXN0
U3ludGF4KToKKyAgICAgICAgKHByb3RvdHlwZS50ZXN0VG9wTGV2ZWxBc3luY0F3YWl0U3ludGF4
U3RyaWN0TW9kZSk6CisKIDIwMTctMTAtMDMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHBvbHltb3JwaGljIHByb3RvdHlwZXMKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LXN5bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2FzeW5jLWF3YWl0LXN5bnRheC5qcwppbmRleCBjYjI5ODQzMzU3NTRlZjE2MjFlNjIwNjMxOWU0
ZDQzNzJiNTM2ZGM0Li4zMzVmYjVlOGFmYTE0MzIyMTg2ZWVjMzRhODZlNWUzMzRhZjIwNzkwIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1zeW50YXguanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYXN5bmMtYXdhaXQtc3ludGF4LmpzCkBAIC0zNCw2ICszNCwxNiBAQCBmdW5j
dGlvbiB0ZXN0U3ludGF4RXJyb3Ioc2NyaXB0LCBtZXNzYWdlKSB7CiAoZnVuY3Rpb24gdGVzdFRv
cExldmVsQXN5bmNBd2FpdFN5bnRheFNsb3BweU1vZGUoKSB7CiAgICAgdGVzdFN5bnRheChgKHth
c3luYzogMX0pYCk7CiAgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlv
bigpIHsgYXdhaXQgMTsgfTtgKTsKKworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5
bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gIWF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChg
dmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB+YXdhaXQgMTsgfTtgKTsK
KyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9
IHR5cGVvZiBhd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5
bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdm9pZCBhd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50
YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gIShhd2FpdCAxKTsg
fTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2
YXIgdCA9IH4oYXdhaXQgMSk7IH07YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBh
c3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB0eXBlb2YgKGF3YWl0IDEpOyB9O2ApOworICAgIHRl
c3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdm9pZCAo
YXdhaXQgMSk7IH07YCk7CisKICAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uIHdpdGhOYW1lKCkgeyBhd2FpdCAxOyB9O2ApOwogICAgIHRlc3RTeW50YXgoYHZhciBh
c3luY0ZuID0gYXN5bmMgKCkgPT4gYXdhaXQgJ3Rlc3QnO2ApOwogICAgIHRlc3RTeW50YXgoYHZh
ciBhc3luY0ZuID0gYXN5bmMgeCA9PiBhd2FpdCB4ICsgJ3Rlc3QnO2ApOwpAQCAtNjksNiArNzks
MTYgQEAgZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgewogKGZ1bmN0
aW9uIHRlc3RUb3BMZXZlbEFzeW5jQXdhaXRTeW50YXhTdHJpY3RNb2RlKCkgewogICAgIHRlc3RT
eW50YXgoYCJ1c2Ugc3RyaWN0IjsgKHthc3luYzogMX0pYCk7CiAgICAgdGVzdFN5bnRheChgInVz
ZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyBhd2FpdCAxOyB9O2Ap
OworCisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uKCkgeyB2YXIgdCA9ICFhd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ug
c3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB+YXdhaXQg
MTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5
bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdHlwZW9mIGF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5
bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIg
dCA9IHZvaWQgYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZh
ciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gIShhd2FpdCAxKTsgfTtgKTsK
KyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rp
b24oKSB7IHZhciB0ID0gfihhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0
cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdHlwZW9mIChh
d2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0Zu
ID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdm9pZCAoYXdhaXQgMSk7IH07YCk7CisKICAg
ICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24g
d2l0aE5hbWUoKSB7IGF3YWl0IDE7IH07YCk7CiAgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3Qi
OyB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+IGF3YWl0ICd0ZXN0JztgKTsKICAgICB0ZXN0U3lu
dGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgeCA9PiBhd2FpdCB4ICsgJ3Rl
c3QnO2ApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322850</attachid>
            <date>2017-10-05 10:29:35 -0700</date>
            <delta_ts>2017-10-06 15:06:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176685-20171005202933.patch</filename>
            <type>text/plain</type>
            <size>8780</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZmFkZWFjNWQyYmJmZWU3MjhlYTI5MGQyYjM3MjdkNjc5OTE2ZDc0Li45NjkzZjhjYTJjZjE0YzA4
YTJjNzAyZTFjYmQyZjAyMTNkZTMyYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0xMC0wNSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBTYWZhcmkgMTAgLzExIHByb2JsZW0gd2l0aCBpZiAoIWF3YWl0
IGdldChzb21ldGhpbmcpKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzaW5nIHVuYXJ5IG9wZXJhdG9yIGJlZm9yZSBgYXdhaXRgIGxlYWQgdG8gY291
bnQgaXQgYXMgaWRlbnRpZmllcgorCisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKwog
MjAxNy0xMC0wMyAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IFdlYkFzc2VtYmx5IHRvICJTdXBwb3J0ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5jcHAKaW5kZXggOGJjMjBkMjIwMzdhMDBkYmQ3NzI1OTg3Mzg2OTVjNDRmNDhmODUyNC4u
Zjg3ZWE2NjFhYjYzM2ZjOTlmNmFiZDBlYmI2ZDQ1ZGQ3N2YwM2JmZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtNDQ0NCw2ICs0NDQ0LDkgQEAgdGVtcGxhdGUg
PGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VQcmltYXJ5RXhwcmUKICAgICBjYXNlIEFXQUlUOgogICAgICAgICBpZiAobV9wYXJzZXJTdGF0
ZS5mdW5jdGlvblBhcnNlUGhhc2UgPT0gRnVuY3Rpb25QYXJzZVBoYXNlOjpQYXJhbWV0ZXJzKQog
ICAgICAgICAgICAgZmFpbElmRmFsc2UobV9wYXJzZXJTdGF0ZS5hbGxvd0F3YWl0LCAiQ2Fubm90
IHVzZSBhd2FpdCBleHByZXNzaW9uIHdpdGhpbiBwYXJhbWV0ZXJzIik7CisgICAgICAgIGVsc2Ug
aWYgKGN1cnJlbnRGdW5jdGlvblNjb3BlKCktPmlzQXN5bmNGdW5jdGlvbkJvdW5kYXJ5KCkpCisg
ICAgICAgICAgICByZXR1cm4gcGFyc2VBd2FpdEV4cHJlc3Npb24oY29udGV4dCk7CisKICAgICAg
ICAgZ290byBpZGVudGlmaWVyRXhwcmVzc2lvbjsKICAgICBjYXNlIEFTWU5DOiB7CiAgICAgICAg
IEpTVGV4dFBvc2l0aW9uIHN0YXJ0ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0MWNkNmVmYjg3
Y2JiNmM2NDA0ZjlhM2E3NTM5MTBmZmI0YmNkMzUuLjNiNDc2MjQ4Nzc1MTRkMDI1NzhmYjQ4NmIz
MDY0ZWQyMGMwNThiNTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTAtMDUgIE9sZWtzYW5kciBTa2Fj
aGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CisKKyAgICAgICAgU2FmYXJpIDEwIC8xMSBwcm9i
bGVtIHdpdGggaWYgKCFhd2FpdCBnZXQoc29tZXRoaW5nKSkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2ODUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9hc3luYy1hd2FpdC1iYXNpYy5q
czoKKyAgICAgICAgKGF3YWl0RXByZXNzaW9uLmFzeW5jKToKKyAgICAgICAgKiBzdHJlc3MvYXN5
bmMtYXdhaXQtc3ludGF4LmpzOgorICAgICAgICAodGVzdFRvcExldmVsQXN5bmNBd2FpdFN5bnRh
eFNsb3BweU1vZGUudGVzdFN5bnRheCk6CisgICAgICAgIChwcm90b3R5cGUudGVzdFRvcExldmVs
QXN5bmNBd2FpdFN5bnRheFN0cmljdE1vZGUpOgorCiAyMDE3LTEwLTAzICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBwb2x5bW9ycGhpYyBwcm90
b3R5cGVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1iYXNpYy5qcyBi
L0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LWJhc2ljLmpzCmluZGV4IDA4ZGFkMzRiODE1NzNk
ZWFiNjUzOTg3OWNiYjQ1MjlmNGFkZTVkNjguLmRmZWVmZWZiM2NlNTYyM2I3YmUxMWIwOWRkODEz
MjFjYmMzYzlmNmEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LWJhc2lj
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LWJhc2ljLmpzCkBAIC0yNTQsNiAr
MjU0LDQ1IEBAIGxvZyA9IFtdOwogc2hvdWxkQmVBc3luYyg1LCAoKSA9PiByZXN1bWVBZnRlclRo
cm93RXZhbCg0KSk7CiBzaG91bGRCZSgic3RhcnQ6NCByZXN1bWU6dGhyb3cxIHJlc3VtZTp0aHJv
dzIiLCBsb2cuam9pbigiICIpKTsKIAordmFyIGF3YWl0RXByZXNzaW9uID0gYXN5bmMgKHZhbHVl
KSA9PiB7CisgICAgbG9nLnB1c2goInN0YXJ0OiIgKyB2YWx1ZSk7CisgICAgaWYgKCFhd2FpdCBm
YWxzZSkKKyAgICAgICAgbG9nLnB1c2goJ3N0ZXAgMScpOworICAgIHZhciB0ID0gfmF3YWl0IHRy
dWU7CisgICAgbG9nLnB1c2goJ3N0ZXAgMiAnICsgdCk7CisKKyAgICB2YXIgdDEgPSArYXdhaXQg
UHJvbWlzZS5yZXNvbHZlKDEyMzQ1KTsKKyAgICBsb2cucHVzaCgnc3RlcCAzICcgKyB0MSk7CisK
KyAgICB2YXIgdDIgPSAtYXdhaXQgNTQzMjE7CisgICAgbG9nLnB1c2goJ3N0ZXAgNCAnICsgdDIp
OworCisgICAgdmFyIHQzID0gISEhISFhd2FpdCBQcm9taXNlLnJlc29sdmUodHJ1ZSk7CisgICAg
bG9nLnB1c2goJ3N0ZXAgNSAnICsgdDMpOworCisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHQ0ID0g
Kythd2FpdCAxOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFJl
ZmVyZW5jZUVycm9yKSB7CisgICAgICAgICAgICBsb2cucHVzaCgnc3RlcCA2ICcpOworICAgICAg
ICB9IAorICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHZhciB0NSA9IC0tYXdhaXQgMTsKKyAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikg
eworICAgICAgICAgICAgbG9nLnB1c2goJ3N0ZXAgNycpOworICAgICAgICB9IAorICAgIH0KKwor
ICAgIHJldHVybiB2b2lkIGF3YWl0ICd0ZXN0JzsKK307Citsb2cgPSBbXTsKKworc2hvdWxkQmVB
c3luYyh1bmRlZmluZWQsICgpID0+IGF3YWl0RXByZXNzaW9uKDUpKTsKK3Nob3VsZEJlKCJzdGFy
dDo1IHN0ZXAgMSBzdGVwIDIgLTIgc3RlcCAzIDEyMzQ1IHN0ZXAgNCAtNTQzMjEgc3RlcCA1IGZh
bHNlIHN0ZXAgNiAgc3RlcCA3IiwgbG9nLmpvaW4oIiAiKSk7CisKIC8vIE1ldGhvb2REZWZpbml0
aW9uIFN5bnRheEVycm9ycwogc2hvdWxkVGhyb3dTeW50YXhFcnJvcigidmFyIG9iaiA9IHsgYXN5
bmMgZm9vIDogdHJ1ZSB9OyIsICJVbmV4cGVjdGVkIHRva2VuICc6Jy4gRXhwZWN0ZWQgYSBwYXJl
bnRoZXNpcyBmb3IgYXJndW1lbnQgbGlzdC4iKTsKIHNob3VsZFRocm93U3ludGF4RXJyb3IoInZh
ciBvYmogPSB7IGFzeW5jIGZvbyA9IHRydWUgfTsiLCAiVW5leHBlY3RlZCB0b2tlbiAnPScuIEV4
cGVjdGVkIGEgcGFyZW50aGVzaXMgZm9yIGFyZ3VtZW50IGxpc3QuIik7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1zeW50YXguanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3lu
Yy1hd2FpdC1zeW50YXguanMKaW5kZXggY2IyOTg0MzM1NzU0ZWYxNjIxZTYyMDYzMTllNGQ0Mzcy
YjUzNmRjNC4uNjEyMWQ0MTI2OGVjOWZmOTI4OWE1ZjkzNGNiYWZmM2UwOTY1OWRlMiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXdhaXQtc3ludGF4LmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2FzeW5jLWF3YWl0LXN5bnRheC5qcwpAQCAtMzQsOCArMzQsMzggQEAgZnVuY3Rpb24g
dGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgewogKGZ1bmN0aW9uIHRlc3RUb3BMZXZl
bEFzeW5jQXdhaXRTeW50YXhTbG9wcHlNb2RlKCkgewogICAgIHRlc3RTeW50YXgoYCh7YXN5bmM6
IDF9KWApOwogICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7
IGF3YWl0IDE7IH07YCk7CisKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uKCkgeyB2YXIgdCA9ICFhd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYHZhciBh
c3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gfmF3YWl0IDE7IH07YCk7CisgICAg
dGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB0eXBl
b2YgYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uKCkgeyB2YXIgdCA9IHZvaWQgYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2
YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICEoYXdhaXQgMSk7IH07YCk7
CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQg
PSB+KGF3YWl0IDEpOyB9O2ApOworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMg
ZnVuY3Rpb24oKSB7IHZhciB0ID0gdHlwZW9mIChhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3lu
dGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IHZvaWQgKGF3YWl0
IDEpOyB9O2ApOworCisKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0
aW9uKCkgeyB2YXIgdCA9ICEhYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5
bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IH5+YXdhaXQgMTsgfTtgKTsKKyAgICB0
ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IHR5cGVv
ZiB0eXBlb2YgYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFz
eW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IHZvaWQgdm9pZCBhd2FpdCAxOyB9O2ApOworCiAgICAg
dGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbiB3aXRoTmFtZSgpIHsgYXdh
aXQgMTsgfTtgKTsKICAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+IGF3
YWl0ICd0ZXN0JztgKTsKKworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgKCkg
PT4gIWF3YWl0ICd0ZXN0JztgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5j
ICgpID0+IH5hd2FpdCAndGVzdCc7YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBh
c3luYyAoKSA9PiB0eXBlb2YgYXdhaXQgJ3Rlc3QnO2ApOworICAgIHRlc3RTeW50YXgoYHZhciBh
c3luY0ZuID0gYXN5bmMgKCkgPT4gdm9pZCBhd2FpdCAndGVzdCc7YCk7CisgICAgdGVzdFN5bnRh
eChgdmFyIGFzeW5jRm4gPSBhc3luYyAoKSA9PiAtIGF3YWl0ICd0ZXN0JztgKTsKKyAgICB0ZXN0
U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+ICsgYXdhaXQgJ3Rlc3QnO2ApOworICAg
IHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgKCkgPT4gZGVsZXRlIGF3YWl0ICd0ZXN0
JztgKTsKKworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgKCkgPT4gISFhd2Fp
dCAndGVzdCc7YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyAoKSA9PiB+
fmF3YWl0ICd0ZXN0JztgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgp
ID0+IHR5cGVvZiB0eXBlb2YgYXdhaXQgJ3Rlc3QnO2ApOworICAgIHRlc3RTeW50YXgoYHZhciBh
c3luY0ZuID0gYXN5bmMgKCkgPT4gdm9pZCB2b2lkIGF3YWl0ICd0ZXN0JztgKTsKKwogICAgIHRl
c3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgeCA9PiBhd2FpdCB4ICsgJ3Rlc3QnO2ApOwog
ICAgIHRlc3RTeW50YXgoYGZ1bmN0aW9uIGZvbyhmbikgeyBmbih7IGFzeW5jOiB0cnVlIH0pOyB9
YCk7CiAgICAgdGVzdFN5bnRheChgYXN5bmMgZnVuY3Rpb24gYXN5bmNGbigpIHsgYXdhaXQgMTsg
fWApOwpAQCAtNjksNiArOTksMzEgQEAgZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwg
bWVzc2FnZSkgewogKGZ1bmN0aW9uIHRlc3RUb3BMZXZlbEFzeW5jQXdhaXRTeW50YXhTdHJpY3RN
b2RlKCkgewogICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgKHthc3luYzogMX0pYCk7CiAg
ICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9u
KCkgeyBhd2FpdCAxOyB9O2ApOworCisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIg
YXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICFhd2FpdCAxOyB9O2ApOworICAg
IHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigp
IHsgdmFyIHQgPSB+YXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7
IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gK2F3YWl0IDE7IH07YCk7
CisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0
aW9uKCkgeyB2YXIgdCA9IC1hd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3Ry
aWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB0eXBlb2YgYXdh
aXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0g
YXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdm9pZCBhd2FpdCAxOyB9O2ApOworICAgIHRlc3RT
eW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFy
IHQgPSAhKGF3YWl0IDEpOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFy
IGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB+KGF3YWl0IDEpOyB9O2ApOwor
ICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlv
bigpIHsgdmFyIHQgPSAtKGF3YWl0IDEpOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3Ry
aWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSArKGF3YWl0IDEp
OyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3lu
YyBmdW5jdGlvbigpIHsgdmFyIHQgPSB0eXBlb2YgKGF3YWl0IDEpOyB9O2ApOworICAgIHRlc3RT
eW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFy
IHQgPSB2b2lkIChhd2FpdCAxKTsgfTtgKTsKKworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0
IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhIWF3YWl0IDE7IH07
YCk7CisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uKCkgeyB2YXIgdCA9IH5+YXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNl
IHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdHlwZW9m
IHR5cGVvZiBhd2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFy
IGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB2b2lkIHZvaWQgYXdhaXQgMTsg
fTtgKTsKKworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3lu
YyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhIWF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChg
InVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICF+
YXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0Zu
ID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gIXR5cGVvZiB0eXBlb2YgYXdhaXQgMTsgfTtg
KTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVu
Y3Rpb24oKSB7IHZhciB0ID0gIXZvaWQgdm9pZCBhd2FpdCAxOyB9O2ApOworCisKICAgICB0ZXN0
U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24gd2l0aE5h
bWUoKSB7IGF3YWl0IDE7IH07YCk7CiAgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIg
YXN5bmNGbiA9IGFzeW5jICgpID0+IGF3YWl0ICd0ZXN0JztgKTsKICAgICB0ZXN0U3ludGF4KGAi
dXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgeCA9PiBhd2FpdCB4ICsgJ3Rlc3QnO2Ap
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323048</attachid>
            <date>2017-10-06 15:06:44 -0700</date>
            <delta_ts>2017-10-09 02:59:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176685-20171007010642.patch</filename>
            <type>text/plain</type>
            <size>8961</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZmFkZWFjNWQyYmJmZWU3MjhlYTI5MGQyYjM3MjdkNjc5OTE2ZDc0Li4zZTFlYTU1MDkyNzE5YTBl
MDMxZTRkMWIzMzI1MTk2ODJhODY5NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0xMC0wNSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICBTYWZhcmkgMTAgLzExIHByb2JsZW0gd2l0aCBpZiAoIWF3YWl0
IGdldChzb21ldGhpbmcpKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzaW5nIHVuYXJ5IG9wZXJhdG9yIGJlZm9yZSBgYXdhaXRgIGxlYWQgdG8gY291
bnQgaXQgYXMgaWRlbnRpZmllci4KKyAgICAgICAgQWNjb3JkaW5nIHRvIHNwZWMgaHR0cHM6Ly90
YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXN5bmMtZnVuY3Rpb24tZGVmaW5pdGlvbnMKKyAg
ICAgICAgYW5kIE5vdGUgMSBgYXdhaXRgIGlzIGFzIEF3YWl0RXhwcmVzc2lvbiBhbmQgaXQgaXMg
YWxsb3dlZCB0byB1c2UgdW5hcnkgb3BlcmF0b3IKKworICAgICAgICAqIHBhcnNlci9QYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVz
c2lvbik6CisKIDIwMTctMTAtMDMgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVwZGF0ZSBXZWJBc3NlbWJseSB0byAiU3VwcG9ydGVkIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDhiYzIwZDIyMDM3YTAwZGJkNzcyNTk4NzM4Njk1YzQ0
ZjQ4Zjg1MjQuLmY4N2VhNjYxYWI2MzNmYzk5ZjZhYmQwZWJiNmQ0NWRkNzdmMDNiZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ0NDQsNiArNDQ0NCw5IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVy
VHlwZT46OnBhcnNlUHJpbWFyeUV4cHJlCiAgICAgY2FzZSBBV0FJVDoKICAgICAgICAgaWYgKG1f
cGFyc2VyU3RhdGUuZnVuY3Rpb25QYXJzZVBoYXNlID09IEZ1bmN0aW9uUGFyc2VQaGFzZTo6UGFy
YW1ldGVycykKICAgICAgICAgICAgIGZhaWxJZkZhbHNlKG1fcGFyc2VyU3RhdGUuYWxsb3dBd2Fp
dCwgIkNhbm5vdCB1c2UgYXdhaXQgZXhwcmVzc2lvbiB3aXRoaW4gcGFyYW1ldGVycyIpOworICAg
ICAgICBlbHNlIGlmIChjdXJyZW50RnVuY3Rpb25TY29wZSgpLT5pc0FzeW5jRnVuY3Rpb25Cb3Vu
ZGFyeSgpKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQXdhaXRFeHByZXNzaW9uKGNvbnRleHQp
OworCiAgICAgICAgIGdvdG8gaWRlbnRpZmllckV4cHJlc3Npb247CiAgICAgY2FzZSBBU1lOQzog
ewogICAgICAgICBKU1RleHRQb3NpdGlvbiBzdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA5
NDFjZDZlZmI4N2NiYjZjNjQwNGY5YTNhNzUzOTEwZmZiNGJjZDM1Li4zYjQ3NjI0ODc3NTE0ZDAy
NTc4ZmI0ODZiMzA2NGVkMjBjMDU4YjUzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEwLTA1ICBPbGVr
c2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgorCisgICAgICAgIFNhZmFyaSAx
MCAvMTEgcHJvYmxlbSB3aXRoIGlmICghYXdhaXQgZ2V0KHNvbWV0aGluZykpLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2Njg1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMtYXdh
aXQtYmFzaWMuanM6CisgICAgICAgIChhd2FpdEVwcmVzc2lvbi5hc3luYyk6CisgICAgICAgICog
c3RyZXNzL2FzeW5jLWF3YWl0LXN5bnRheC5qczoKKyAgICAgICAgKHRlc3RUb3BMZXZlbEFzeW5j
QXdhaXRTeW50YXhTbG9wcHlNb2RlLnRlc3RTeW50YXgpOgorICAgICAgICAocHJvdG90eXBlLnRl
c3RUb3BMZXZlbEFzeW5jQXdhaXRTeW50YXhTdHJpY3RNb2RlKToKKwogMjAxNy0xMC0wMyAgU2Fh
bSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgcG9seW1v
cnBoaWMgcHJvdG90eXBlcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXdhaXQt
YmFzaWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1iYXNpYy5qcwppbmRleCAwOGRh
ZDM0YjgxNTczZGVhYjY1Mzk4NzljYmI0NTI5ZjRhZGU1ZDY4Li5kZmVlZmVmYjNjZTU2MjNiN2Jl
MTFiMDlkZDgxMzIxY2JjM2M5ZjZhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hc3luYy1h
d2FpdC1iYXNpYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1iYXNpYy5qcwpA
QCAtMjU0LDYgKzI1NCw0NSBAQCBsb2cgPSBbXTsKIHNob3VsZEJlQXN5bmMoNSwgKCkgPT4gcmVz
dW1lQWZ0ZXJUaHJvd0V2YWwoNCkpOwogc2hvdWxkQmUoInN0YXJ0OjQgcmVzdW1lOnRocm93MSBy
ZXN1bWU6dGhyb3cyIiwgbG9nLmpvaW4oIiAiKSk7CiAKK3ZhciBhd2FpdEVwcmVzc2lvbiA9IGFz
eW5jICh2YWx1ZSkgPT4geworICAgIGxvZy5wdXNoKCJzdGFydDoiICsgdmFsdWUpOworICAgIGlm
ICghYXdhaXQgZmFsc2UpCisgICAgICAgIGxvZy5wdXNoKCdzdGVwIDEnKTsKKyAgICB2YXIgdCA9
IH5hd2FpdCB0cnVlOworICAgIGxvZy5wdXNoKCdzdGVwIDIgJyArIHQpOworCisgICAgdmFyIHQx
ID0gK2F3YWl0IFByb21pc2UucmVzb2x2ZSgxMjM0NSk7CisgICAgbG9nLnB1c2goJ3N0ZXAgMyAn
ICsgdDEpOworCisgICAgdmFyIHQyID0gLWF3YWl0IDU0MzIxOworICAgIGxvZy5wdXNoKCdzdGVw
IDQgJyArIHQyKTsKKworICAgIHZhciB0MyA9ICEhISEhYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRy
dWUpOworICAgIGxvZy5wdXNoKCdzdGVwIDUgJyArIHQzKTsKKworICAgIHRyeSB7CisgICAgICAg
IHZhciB0NCA9ICsrYXdhaXQgMTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgaWYgKGUgaW5z
dGFuY2VvZiBSZWZlcmVuY2VFcnJvcikgeworICAgICAgICAgICAgbG9nLnB1c2goJ3N0ZXAgNiAn
KTsKKyAgICAgICAgfSAKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICB2YXIgdDUgPSAtLWF3
YWl0IDE7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVmZXJl
bmNlRXJyb3IpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCdzdGVwIDcnKTsKKyAgICAgICAgfSAK
KyAgICB9CisKKyAgICByZXR1cm4gdm9pZCBhd2FpdCAndGVzdCc7Cit9OworbG9nID0gW107CisK
K3Nob3VsZEJlQXN5bmModW5kZWZpbmVkLCAoKSA9PiBhd2FpdEVwcmVzc2lvbig1KSk7CitzaG91
bGRCZSgic3RhcnQ6NSBzdGVwIDEgc3RlcCAyIC0yIHN0ZXAgMyAxMjM0NSBzdGVwIDQgLTU0MzIx
IHN0ZXAgNSBmYWxzZSBzdGVwIDYgIHN0ZXAgNyIsIGxvZy5qb2luKCIgIikpOworCiAvLyBNZXRo
b29kRGVmaW5pdGlvbiBTeW50YXhFcnJvcnMKIHNob3VsZFRocm93U3ludGF4RXJyb3IoInZhciBv
YmogPSB7IGFzeW5jIGZvbyA6IHRydWUgfTsiLCAiVW5leHBlY3RlZCB0b2tlbiAnOicuIEV4cGVj
dGVkIGEgcGFyZW50aGVzaXMgZm9yIGFyZ3VtZW50IGxpc3QuIik7CiBzaG91bGRUaHJvd1N5bnRh
eEVycm9yKCJ2YXIgb2JqID0geyBhc3luYyBmb28gPSB0cnVlIH07IiwgIlVuZXhwZWN0ZWQgdG9r
ZW4gJz0nLiBFeHBlY3RlZCBhIHBhcmVudGhlc2lzIGZvciBhcmd1bWVudCBsaXN0LiIpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXdhaXQtc3ludGF4LmpzIGIvSlNUZXN0cy9z
dHJlc3MvYXN5bmMtYXdhaXQtc3ludGF4LmpzCmluZGV4IGNiMjk4NDMzNTc1NGVmMTYyMWU2MjA2
MzE5ZTRkNDM3MmI1MzZkYzQuLjYxMjFkNDEyNjhlYzlmZjkyODlhNWY5MzRjYmFmZjNlMDk2NTlk
ZTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWF3YWl0LXN5bnRheC5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hd2FpdC1zeW50YXguanMKQEAgLTM0LDggKzM0LDM4IEBA
IGZ1bmN0aW9uIHRlc3RTeW50YXhFcnJvcihzY3JpcHQsIG1lc3NhZ2UpIHsKIChmdW5jdGlvbiB0
ZXN0VG9wTGV2ZWxBc3luY0F3YWl0U3ludGF4U2xvcHB5TW9kZSgpIHsKICAgICB0ZXN0U3ludGF4
KGAoe2FzeW5jOiAxfSlgKTsKICAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1
bmN0aW9uKCkgeyBhd2FpdCAxOyB9O2ApOworCisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4g
PSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3lu
dGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IH5hd2FpdCAxOyB9
O2ApOworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZh
ciB0ID0gdHlwZW9mIGF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4g
PSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB2b2lkIGF3YWl0IDE7IH07YCk7CisgICAgdGVz
dFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhKGF3YWl0
IDEpOyB9O2ApOworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24o
KSB7IHZhciB0ID0gfihhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNG
biA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IHR5cGVvZiAoYXdhaXQgMSk7IH07YCk7Cisg
ICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB2
b2lkIChhd2FpdCAxKTsgfTtgKTsKKworCisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBh
c3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhIWF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRh
eChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB+fmF3YWl0IDE7IH07
YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFy
IHQgPSB0eXBlb2YgdHlwZW9mIGF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFz
eW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB2b2lkIHZvaWQgYXdhaXQgMTsgfTtg
KTsKKwogICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24gd2l0aE5h
bWUoKSB7IGF3YWl0IDE7IH07YCk7CiAgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3lu
YyAoKSA9PiBhd2FpdCAndGVzdCc7YCk7CisKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9
IGFzeW5jICgpID0+ICFhd2FpdCAndGVzdCc7YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5j
Rm4gPSBhc3luYyAoKSA9PiB+YXdhaXQgJ3Rlc3QnO2ApOworICAgIHRlc3RTeW50YXgoYHZhciBh
c3luY0ZuID0gYXN5bmMgKCkgPT4gdHlwZW9mIGF3YWl0ICd0ZXN0JztgKTsKKyAgICB0ZXN0U3lu
dGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+IHZvaWQgYXdhaXQgJ3Rlc3QnO2ApOworICAg
IHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5bmMgKCkgPT4gLSBhd2FpdCAndGVzdCc7YCk7
CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4gPSBhc3luYyAoKSA9PiArIGF3YWl0ICd0ZXN0
JztgKTsKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+IGRlbGV0ZSBh
d2FpdCAndGVzdCc7YCk7CisKKyAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgp
ID0+ICEhYXdhaXQgJ3Rlc3QnO2ApOworICAgIHRlc3RTeW50YXgoYHZhciBhc3luY0ZuID0gYXN5
bmMgKCkgPT4gfn5hd2FpdCAndGVzdCc7YCk7CisgICAgdGVzdFN5bnRheChgdmFyIGFzeW5jRm4g
PSBhc3luYyAoKSA9PiB0eXBlb2YgdHlwZW9mIGF3YWl0ICd0ZXN0JztgKTsKKyAgICB0ZXN0U3lu
dGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jICgpID0+IHZvaWQgdm9pZCBhd2FpdCAndGVzdCc7YCk7
CisKICAgICB0ZXN0U3ludGF4KGB2YXIgYXN5bmNGbiA9IGFzeW5jIHggPT4gYXdhaXQgeCArICd0
ZXN0JztgKTsKICAgICB0ZXN0U3ludGF4KGBmdW5jdGlvbiBmb28oZm4pIHsgZm4oeyBhc3luYzog
dHJ1ZSB9KTsgfWApOwogICAgIHRlc3RTeW50YXgoYGFzeW5jIGZ1bmN0aW9uIGFzeW5jRm4oKSB7
IGF3YWl0IDE7IH1gKTsKQEAgLTY5LDYgKzk5LDMxIEBAIGZ1bmN0aW9uIHRlc3RTeW50YXhFcnJv
cihzY3JpcHQsIG1lc3NhZ2UpIHsKIChmdW5jdGlvbiB0ZXN0VG9wTGV2ZWxBc3luY0F3YWl0U3lu
dGF4U3RyaWN0TW9kZSgpIHsKICAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7ICh7YXN5bmM6
IDF9KWApOwogICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3lu
YyBmdW5jdGlvbigpIHsgYXdhaXQgMTsgfTtgKTsKKworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3Ry
aWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAhYXdhaXQgMTsg
fTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMg
ZnVuY3Rpb24oKSB7IHZhciB0ID0gfmF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgInVz
ZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICthd2Fp
dCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBh
c3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSAtYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4
KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0g
dHlwZW9mIGF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIg
YXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9IHZvaWQgYXdhaXQgMTsgfTtgKTsK
KyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rp
b24oKSB7IHZhciB0ID0gIShhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0
cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gfihhd2FpdCAx
KTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5
bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gLShhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4
KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0g
Kyhhd2FpdCAxKTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3lu
Y0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdHlwZW9mIChhd2FpdCAxKTsgfTtgKTsK
KyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rp
b24oKSB7IHZhciB0ID0gdm9pZCAoYXdhaXQgMSk7IH07YCk7CisKKyAgICB0ZXN0U3ludGF4KGAi
dXNlIHN0cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gISFh
d2FpdCAxOyB9O2ApOworICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4g
PSBhc3luYyBmdW5jdGlvbigpIHsgdmFyIHQgPSB+fmF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5
bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIg
dCA9IHR5cGVvZiB0eXBlb2YgYXdhaXQgMTsgfTtgKTsKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0
cmljdCI7IHZhciBhc3luY0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gdm9pZCB2b2lk
IGF3YWl0IDE7IH07YCk7CisKKyAgICB0ZXN0U3ludGF4KGAidXNlIHN0cmljdCI7IHZhciBhc3lu
Y0ZuID0gYXN5bmMgZnVuY3Rpb24oKSB7IHZhciB0ID0gISFhd2FpdCAxOyB9O2ApOworICAgIHRl
c3RTeW50YXgoYCJ1c2Ugc3RyaWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyBmdW5jdGlvbigpIHsg
dmFyIHQgPSAhfmF3YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2
YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICF0eXBlb2YgdHlwZW9mIGF3
YWl0IDE7IH07YCk7CisgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9
IGFzeW5jIGZ1bmN0aW9uKCkgeyB2YXIgdCA9ICF2b2lkIHZvaWQgYXdhaXQgMTsgfTtgKTsKKwor
CiAgICAgdGVzdFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIGZ1bmN0
aW9uIHdpdGhOYW1lKCkgeyBhd2FpdCAxOyB9O2ApOwogICAgIHRlc3RTeW50YXgoYCJ1c2Ugc3Ry
aWN0IjsgdmFyIGFzeW5jRm4gPSBhc3luYyAoKSA9PiBhd2FpdCAndGVzdCc7YCk7CiAgICAgdGVz
dFN5bnRheChgInVzZSBzdHJpY3QiOyB2YXIgYXN5bmNGbiA9IGFzeW5jIHggPT4gYXdhaXQgeCAr
ICd0ZXN0JztgKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>