<?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>157358</bug_id>
          
          <creation_ts>2016-05-04 15:06:29 -0700</creation_ts>
          <short_desc>[JSC] In DFG, an OSR Exit on SetLocal can trash its child node</short_desc>
          <delta_ts>2016-05-06 17:14:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190226</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-04 15:06:29 -0700</bug_when>
    <thetext>[JSC] In DFG, an OSR Exit on SetLocal can trash its child node</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190230</commentid>
    <comment_count>1</comment_count>
      <attachid>278130</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-04 15:12:20 -0700</bug_when>
    <thetext>Created attachment 278130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190236</commentid>
    <comment_count>2</comment_count>
      <attachid>278130</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-04 15:16:22 -0700</bug_when>
    <thetext>Comment on attachment 278130
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +            @1 = SomethingProducingDouble()
&gt; +            @2 = MovHint(@1)
&gt; +            @3 = ValueRep(@1)
&gt; +            @4 = SetLocal(@3, FlushedInt32)
&gt; +
&gt; +        When we lower SetLocal(), we start by speculating that @3 is an Int32.
&gt; +        Now this can fail if @1 was really a double.
&gt; +        When that happens, we go over the VariableEventStream to find where values
&gt; +        are, and @1 died at @3. Since the speculation failure happens before
&gt; +        the SetLocal event, we don&apos;t do anything with @3.

The bug is that the PhantomInsertionPhase didn&apos;t put a Phantom for @1 immediately after @4.  Do you know why it did that?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:2109
&gt; +        Node* child = node-&gt;child1().node();
&gt; +        noticeOSRBirth(child);
&gt; +        m_stream-&gt;appendAndLog(VariableEvent::movHint(MinifiedID(child), node-&gt;local()));

I think that this is just wrong.  I see what you&apos;re trying to do, but SetLocal isn&apos;t supposed to have this kind of power.  The DFG should be getting the value that was MovHinted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190294</commentid>
    <comment_count>3</comment_count>
      <attachid>278149</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-04 17:55:05 -0700</bug_when>
    <thetext>Created attachment 278149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190297</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-04 17:58:06 -0700</bug_when>
    <thetext>I took a bit of a shortcut here: instead of querying if the Local is really killed after the current bytecode index, I assumed the local is always killed from SetLocal. I did that because it is cheaper than iterating until the next origin and getting the live locals there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190311</commentid>
    <comment_count>5</comment_count>
      <attachid>278149</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-04 19:52:12 -0700</bug_when>
    <thetext>Comment on attachment 278149
Patch

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

A bit ugly, but it looks right.  Damn that&apos;s a tricky corner case!

&gt; Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:142
&gt; +            auto processKilledOperand = [&amp;] (VirtualRegister reg)
&gt; +            {

I think that our style is to put the { on the same line as the lambda variable.  The style bot complains about this because it does not understand lambdas.  But, this is the style that I have followed, because that&apos;s what I saw elsewhere in WK when I first started using them.  So, let&apos;s go with that style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190466</commentid>
    <comment_count>6</comment_count>
      <attachid>278192</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-05 14:59:31 -0700</bug_when>
    <thetext>Created attachment 278192
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190497</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-05 16:11:01 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 278192:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190501</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-05 16:11:38 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 278192:

transitions/default-timing-function.html bug 138901 (author: simon.fraser@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190529</commentid>
    <comment_count>9</comment_count>
      <attachid>278192</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-05 17:04:28 -0700</bug_when>
    <thetext>Comment on attachment 278192
Patch for landing

Clearing flags on attachment: 278192

Committed r200498: &lt;http://trac.webkit.org/changeset/200498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190530</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-05 17:04:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190661</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-05-06 02:18:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 278192 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 278192
&gt; 
&gt; Committed r200498: &lt;http://trac.webkit.org/changeset/200498&gt;

It made stress/tagged-templates-template-object.js assert
on Apple Mac x86 32-bit debug bots:
- https://build.webkit.org/builders/Apple%20Yosemite%2032-bit%20JSC%20%28BuildAndTest%29/builds/9046
- https://build.webkit.org/builders/Apple%20El%20Capitan%2032-bit%20JSC%20%28BuildAndTest%29/builds/2305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190806</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-06 15:46:32 -0700</bug_when>
    <thetext>I&apos;ll have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190837</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-06 17:14:55 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I&apos;ll have a look.

The fix is here: https://bugs.webkit.org/show_bug.cgi?id=157436</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278130</attachid>
            <date>2016-05-04 15:12:20 -0700</date>
            <delta_ts>2016-05-04 17:55:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157358-20160504151300.patch</filename>
            <type>text/plain</type>
            <size>4983</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmJiN2ZmOWFiNmJiYjA5M2IxMGQyZDQ5ZjhhZDQ3MDgyN2JkNTAyLi5jODc4Nzc0MDhlM2E0N2Ni
YWM1NGUwN2FiYmZiYjQzMTk4NWQ5MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNi0wNS0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbiBERkcsIGFuIE9TUiBFeGl0IG9uIFNldExvY2FsIGNh
biB0cmFzaCBpdHMgY2hpbGQgbm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3MzU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI1MzM5NjQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBP
U1IgRXhpdCBvbiBTZXRMb2NhbCwgdGhlIGNoaWxkIGlzIG5ldmVyIHJlc3RvcmVkIGlmIGl0cyBy
ZXByZXNlbnRhdGlvbgorICAgICAgICB3YXMgY2hhbmdlZCBzaW5jZSB0aGUgTW92SGludC4KKwor
ICAgICAgICBGb3IgZXhhbXBsZSwgc2F5IHdlIGhhdmU6CisgICAgICAgICAgICBAMSA9IFNvbWV0
aGluZ1Byb2R1Y2luZ0RvdWJsZSgpCisgICAgICAgICAgICBAMiA9IE1vdkhpbnQoQDEpCisgICAg
ICAgICAgICBAMyA9IFZhbHVlUmVwKEAxKQorICAgICAgICAgICAgQDQgPSBTZXRMb2NhbChAMywg
Rmx1c2hlZEludDMyKQorCisgICAgICAgIFdoZW4gd2UgbG93ZXIgU2V0TG9jYWwoKSwgd2Ugc3Rh
cnQgYnkgc3BlY3VsYXRpbmcgdGhhdCBAMyBpcyBhbiBJbnQzMi4KKyAgICAgICAgTm93IHRoaXMg
Y2FuIGZhaWwgaWYgQDEgd2FzIHJlYWxseSBhIGRvdWJsZS4KKyAgICAgICAgV2hlbiB0aGF0IGhh
cHBlbnMsIHdlIGdvIG92ZXIgdGhlIFZhcmlhYmxlRXZlbnRTdHJlYW0gdG8gZmluZCB3aGVyZSB2
YWx1ZXMKKyAgICAgICAgYXJlLCBhbmQgQDEgZGllZCBhdCBAMy4gU2luY2UgdGhlIHNwZWN1bGF0
aW9uIGZhaWx1cmUgaGFwcGVucyBiZWZvcmUKKyAgICAgICAgdGhlIFNldExvY2FsIGV2ZW50LCB3
ZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIEAzLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIEkg
YWRkIGEgTW92SGludCBldmVudCBiZWZvcmUgdGhlIHNwZWN1bGF0aW9uIHRvIGVuc3VyZQorICAg
ICAgICB0aGUgdmFsdWUgZW5kcyB1cCBpbiBhIGxvY2FsIHdoZW4gdGhlIHNwZWN1bGF0aW9uIGZh
aWxzLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvbXVsdGlwbHktdHlwZWQtZG91YmxlLWFuZC1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAo
b3RoZXJPYmplY3QudmFsdWVPZik6CisgICAgICAgICh0YXJnZXRERkcubXVsdGlwbHkpOgorICAg
ICAgICAodGFyZ2V0RlRMLm11bHRpcGx5KToKKwogMjAxNi0wNS0wMyAgTWljaGFlbCBTYWJvZmYg
IDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaDogQXJyYXkucHJvdG90eXBlLnNs
aWNlKCkgYW5kIC5zcGxpY2UoKSBjYW4gY2FsbCBmYXN0U2xpY2UoKSBhZnRlciBhbiBhcnJheSBp
cyB0cnVuY2F0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDY5NjQ5MWU3ZWY3ZmEzMTk2NzIzYzFjNjE4OTg3M2ZkZDIwMjVm
NWQuLjRmMGFiYzZlZTU0N2ZmNGUyZmY3YzA0ZjI5ZWQ0Yjg2MGU5MWE0OGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjEw
NCw2ICsyMTA0LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgU2V0TG9jYWw6IHsKKyAgICAgICAgTm9kZSogY2hp
bGQgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7CisgICAgICAgIG5vdGljZU9TUkJpcnRoKGNoaWxk
KTsKKyAgICAgICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50Ojptb3ZIaW50
KE1pbmlmaWVkSUQoY2hpbGQpLCBub2RlLT5sb2NhbCgpKSk7CisKICAgICAgICAgc3dpdGNoIChu
b2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+Zmx1c2hGb3JtYXQoKSkgewogICAgICAgICBjYXNl
IEZsdXNoZWREb3VibGU6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgdmFs
dWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tdWx0aXBseS10eXBlZC1kb3VibGUtYW5kLW9iamVjdC5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQtZG91YmxlLWFu
ZC1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxZjRkNWRjMWE5MGUzNjQzZTNmOWYyOTg3YWIyNzgy
YWVlZGY0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbXVsdGlwbHktdHlwZWQtZG91YmxlLWFuZC1vYmplY3QuanMKQEAgLTAsMCArMSw2MyBA
QAordmFyIG90aGVyT2JqZWN0ID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
NS4xOyB9Cit9OworLy8gREZHLgordmFyIHRhcmdldERGRyA9IHsKKyAgICB2YWx1ZTogNS41LAor
ICAgIG11bHRpcGx5OiBmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgbGV0IHJldHVyblZhbHVlID0g
MTsKKyAgICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIHJl
dHVyblZhbHVlID0gdGhpcy52YWx1ZSAqIGFyZzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
cmV0dXJuVmFsdWUgKyAxOworICAgIH0KK307Citub0lubGluZSh0YXJnZXRERkcubXVsdGlwbHkp
OworCitmb3IgKGxldCBpID0gMDsgaSA8IDQwMDsgKytpKSB7CisgICAgaWYgKHRhcmdldERGRy5t
dWx0aXBseShvdGhlck9iamVjdCkgIT09IDIpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGFyZ2V0
REZHLm11bHRpcGx5KG90aGVyT2JqZWN0KSI7CisgICAgbGV0IHJlc3VsdCA9IHRhcmdldERGRy5t
dWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAoNS41ICogTWF0aC5QSSArIDEp
KQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJKSwgZXhw
ZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsgMSkgKyAiIGdvdCAiICsgcmVzdWx0ICsgIiBhdCBp
dGVyYXRpb24gIiArIGk7Cit9Citmb3IgKGxldCBpID0gMDsgaSA8IDFlMzsgKytpKSB7CisgICAg
bGV0IHJlc3VsdCA9IHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0
ICE9PSAoNS41ICogTWF0aC5QSSArIDEpKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRhcmdldERG
Ry5tdWx0aXBseShNYXRoLlBJKSwgZXhwZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsgMSkgKyAi
IGdvdCAiICsgcmVzdWx0ICsgIiBhdCBpdGVyYXRpb24gIiArIGk7Cit9CisKKy8vIEZUTC4KK3Zh
ciB0YXJnZXRGVEwgPSB7CisgICAgdmFsdWU6IDUuNSwKKyAgICBtdWx0aXBseTogZnVuY3Rpb24o
YXJnKSB7CisgICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IDE7CisgICAgICAgIGlmICh0eXBlb2Yg
YXJnID09ICJudW1iZXIiKSB7CisgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRoaXMudmFsdWUg
KiBhcmc7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlICsgMTsKKyAgICB9
Cit9Oworbm9JbmxpbmUodGFyZ2V0RlRMLm11bHRpcGx5KTsKKworLy8gV2FybXVwIHRvIGJhc2Vs
aW5lLgorZm9yIChsZXQgaSA9IDA7IGkgPCA0MDA7ICsraSkgeworICAgIGlmICh0YXJnZXRGVEwu
bXVsdGlwbHkob3RoZXJPYmplY3QpICE9PSAyKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRhcmdl
dEZUTC5tdWx0aXBseShvdGhlck9iamVjdCkiOworICAgIGxldCByZXN1bHQgPSB0YXJnZXRGVEwu
bXVsdGlwbHkoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gKDUuNSAqIE1hdGguUEkgKyAx
KSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0YXJnZXRGVEwubXVsdGlwbHkoTWF0aC5QSSksIGV4
cGVjdGVkICIgKyAoNS41ICogTWF0aC5QSSArIDEpICsgIiBnb3QgIiArIHJlc3VsdCArICIgYXQg
aXRlcmF0aW9uICIgKyBpOworfQorCisvLyBTdGVwIG92ZXIgREZHICpXSVRIT1VUKiBPU1IgRXhp
dC4KK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBpZiAodGFyZ2V0RlRMLm11
bHRpcGx5KG90aGVyT2JqZWN0KSAhPT0gMikKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0YXJnZXRG
VEwubXVsdGlwbHkob3RoZXJPYmplY3QpIjsKK30KKworLy8gTm93IE9TUiBFeGl0IGluIEZUTC4K
K2ZvciAobGV0IGkgPSAwOyBpIDwgMWUyOyArK2kpIHsKKyAgICBsZXQgcmVzdWx0ID0gdGFyZ2V0
RlRMLm11bHRpcGx5KE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09ICg1LjUgKiBNYXRoLlBJ
ICsgMSkpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGFyZ2V0RlRMLm11bHRpcGx5KE1hdGguUEkp
LCBleHBlY3RlZCAiICsgKDUuNSAqIE1hdGguUEkgKyAxKSArICIgZ290ICIgKyByZXN1bHQgKyAi
IGF0IGl0ZXJhdGlvbiAiICsgaTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278149</attachid>
            <date>2016-05-04 17:55:05 -0700</date>
            <delta_ts>2016-05-05 14:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157358-20160504175545.patch</filename>
            <type>text/plain</type>
            <size>8865</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmJiN2ZmOWFiNmJiYjA5M2IxMGQyZDQ5ZjhhZDQ3MDgyN2JkNTAyLi4wOWMzNWRiOTBmZDc2NzAz
YWE2Yjg4MTIyMWNiMWZhNTA0M2FiYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNi0wNS0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbiBERkcsIGFuIE9TUiBFeGl0IG9uIFNldExvY2FsIGNh
biB0cmFzaCBpdHMgY2hpbGQgbm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3MzU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI1MzM5NjQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiB3ZSBP
U1IgRXhpdCBvbiBTZXRMb2NhbCwgdGhlIGNoaWxkIGlzIG5ldmVyIHJlc3RvcmVkIGlmIGl0cyBy
ZXByZXNlbnRhdGlvbgorICAgICAgICB3YXMgY2hhbmdlZCBzaW5jZSB0aGUgTW92SGludC4KKwor
ICAgICAgICBGb3IgZXhhbXBsZSwgc2F5IHdlIGhhdmU6CisgICAgICAgICAgICBAMSA9IFNvbWV0
aGluZ1Byb2R1Y2luZ0RvdWJsZSgpCisgICAgICAgICAgICBAMiA9IE1vdkhpbnQoQDEpCisgICAg
ICAgICAgICBAMyA9IFZhbHVlUmVwKEAxKQorICAgICAgICAgICAgQDQgPSBTZXRMb2NhbChAMywg
Rmx1c2hlZEludDMyKQorCisgICAgICAgIFdoZW4gd2UgbG93ZXIgU2V0TG9jYWwoKSwgd2Ugc3Rh
cnQgYnkgc3BlY3VsYXRpbmcgdGhhdCBAMyBpcyBhbiBJbnQzMi4KKyAgICAgICAgTm93IHRoaXMg
Y2FuIGZhaWwgaWYgQDEgd2FzIHJlYWxseSBhIGRvdWJsZS4KKyAgICAgICAgV2hlbiB0aGF0IGhh
cHBlbnMsIHdlIGdvIG92ZXIgdGhlIFZhcmlhYmxlRXZlbnRTdHJlYW0gdG8gZmluZCB3aGVyZSB2
YWx1ZXMKKyAgICAgICAgYXJlLCBhbmQgQDEgZGllZCBhdCBAMy4gU2luY2UgdGhlIHNwZWN1bGF0
aW9uIGZhaWx1cmUgaGFwcGVucyBiZWZvcmUKKyAgICAgICAgdGhlIFNldExvY2FsIGV2ZW50LCB3
ZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIEAzLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIEkg
ZXh0ZW5kIHRoZSBQaGFudG9tSW5zZXJ0aW9uIHBoYXNlIHRvIGtlZXAgdGhlIE1vdkhpbnQKKyAg
ICAgICAgYWxpdmUgcGFzdCB0aGUgU2V0TG9jYWwuCisKKyAgICAgICAgKiBkZmcvREZHUGhhbnRv
bUluc2VydGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlw
ZWQtZG91YmxlLWFuZC1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAob3RoZXJPYmplY3QudmFs
dWVPZik6CisgICAgICAgICh0YXJnZXRERkcubXVsdGlwbHkpOgorICAgICAgICAodGFyZ2V0RlRM
Lm11bHRpcGx5KToKKwogMjAxNi0wNS0wMyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxl
LmNvbT4KIAogICAgICAgICBDcmFzaDogQXJyYXkucHJvdG90eXBlLnNsaWNlKCkgYW5kIC5zcGxp
Y2UoKSBjYW4gY2FsbCBmYXN0U2xpY2UoKSBhZnRlciBhbiBhcnJheSBpcyB0cnVuY2F0ZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBo
YXNlLmNwcAppbmRleCBlMDk1ODVjNGY0ZjE3Y2JjNzJkOThhOTRhMzRlNTBhNTlhMTlkYzFlLi43
YTkxZjUzNGMwNzlmZjVjY2IxYzdlMmRkOWJlMTFjM2UxY2VhNTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3BwCkBA
IC0xMTMsNyArMTEzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX3ZhbHVlcy5vcGVy
YW5kKG5vZGUtPnVubGlua2VkTG9jYWwoKSkgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogCi0gICAgICAgICAgICBjYXNlIFNldExvY2FsOgogICAgICAgICAgICAgY2FzZSBHZXRM
b2NhbDoKICAgICAgICAgICAgIGNhc2UgU2V0QXJndW1lbnQ6CiAgICAgICAgICAgICAgICAgbV92
YWx1ZXMub3BlcmFuZChub2RlLT5sb2NhbCgpKSA9IG51bGxwdHI7CkBAIC0xMjIsOCArMTIxLDkg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChtYXlFeGl0KG1f
Z3JhcGgsIG5vZGUpICE9IERvZXNOb3RFeGl0KSB7CisKKyAgICAgICAgICAgIGJvb2wgbm9kZU1h
eUV4aXQgPSBtYXlFeGl0KG1fZ3JhcGgsIG5vZGUpICE9IERvZXNOb3RFeGl0OworICAgICAgICAg
ICAgaWYgKG5vZGVNYXlFeGl0KSB7CiAgICAgICAgICAgICAgICAgY3VycmVudEVwb2NoLmJ1bXAo
KTsKICAgICAgICAgICAgICAgICBsYXN0RXhpdGluZ0luZGV4ID0gbm9kZUluZGV4OwogICAgICAg
ICAgICAgfQpAQCAtMTM2LDM4ICsxMzYsNTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbm9kZS0+c2V0RXBvY2goY3VycmVudEVwb2NoKTsKIAotICAgICAgICAgICAgZm9y
QWxsS2lsbGVkT3BlcmFuZHMoCi0gICAgICAgICAgICAgICAgbV9ncmFwaCwgbm9kZSwgYmxvY2st
PnRyeUF0KG5vZGVJbmRleCArIDEpLAotICAgICAgICAgICAgICAgIFsmXSAoVmlydHVhbFJlZ2lz
dGVyIHJlZykgewotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGFMb2coIiAgICBLaWxsZWQgb3BlcmFuZDogIiwgcmVnLCAiXG4iKTsK
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIE5vZGUqIGtpbGxlZE5v
ZGUgPSBtX3ZhbHVlcy5vcGVyYW5kKHJlZyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgha2ls
bGVkTm9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBpbnNlcnQgYSBQ
aGFudG9tIGlmIHRoZSBub2RlIGhhc24ndCBiZWVuIHVzZWQgc2luY2UgdGhlIGxhc3QKLSAgICAg
ICAgICAgICAgICAgICAgLy8gZXhpdCwgYW5kIHdhcyBib3JuIGJlZm9yZSB0aGUgbGFzdCBleGl0
LgotICAgICAgICAgICAgICAgICAgICBpZiAoa2lsbGVkTm9kZS0+ZXBvY2goKSA9PSBjdXJyZW50
RXBvY2gpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YUxvZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIEluc2Vy
dGluZyBQaGFudG9tIG9uICIsIGtpbGxlZE5vZGUsICIgYWZ0ZXIgIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBibG9jay0+YXQobGFzdEV4aXRpbmdJbmRleCksICJcbiIpOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAvLyBXZSBoYXZlIGV4YWN0IHJlZiBjb3VudHMsIHNvIGNyZWF0aW5nIGEgbmV3IHVzZSBtZWFu
cyB0aGF0IHdlIGhhdmUgdG8KLSAgICAgICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50IHRoZSBy
ZWYgY291bnQuCi0gICAgICAgICAgICAgICAgICAgIGtpbGxlZE5vZGUtPnBvc3RmaXhSZWYoKTsK
LQotICAgICAgICAgICAgICAgICAgICBOb2RlKiBsYXN0RXhpdGluZ05vZGUgPSBibG9jay0+YXQo
bGFzdEV4aXRpbmdJbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAg
bGFzdEV4aXRpbmdJbmRleCArIDEsIFNwZWNOb25lLCBQaGFudG9tLAotICAgICAgICAgICAgICAg
ICAgICAgICAgbGFzdEV4aXRpbmdOb2RlLT5vcmlnaW4uZm9ySW5zZXJ0aW5nQWZ0ZXIobV9ncmFw
aCwgbGFzdEV4aXRpbmdOb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGtpbGxlZE5vZGUt
PmRlZmF1bHRFZGdlKCkpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBWaXJ0dWFsUmVn
aXN0ZXIgYWxyZWFkeUtpbGxlZDsKKworICAgICAgICAgICAgYXV0byBwcm9jZXNzS2lsbGVkT3Bl
cmFuZCA9IFsmXSAoVmlydHVhbFJlZ2lzdGVyIHJlZykKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEtp
bGxlZCBvcGVyYW5kOiAiLCByZWcsICJcbiIpOworCisgICAgICAgICAgICAgICAgLy8gQWxyZWFk
eSBoYW5kbGVkIGZyb20gU2V0TG9jYWwuCisgICAgICAgICAgICAgICAgaWYgKHJlZyA9PSBhbHJl
YWR5S2lsbGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgTm9kZSoga2lsbGVkTm9kZSA9IG1fdmFsdWVzLm9wZXJhbmQocmVn
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWtpbGxlZE5vZGUpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5l
ZWQgdG8gaW5zZXJ0IGEgUGhhbnRvbSBpZiB0aGUgbm9kZSBoYXNuJ3QgYmVlbiB1c2VkIHNpbmNl
IHRoZSBsYXN0CisgICAgICAgICAgICAgICAgLy8gZXhpdCwgYW5kIHdhcyBib3JuIGJlZm9yZSB0
aGUgbGFzdCBleGl0LgorICAgICAgICAgICAgICAgIGlmIChraWxsZWROb2RlLT5lcG9jaCgpID09
IGN1cnJlbnRFcG9jaCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2coCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgIEluc2VydGluZyBQaGFudG9t
IG9uICIsIGtpbGxlZE5vZGUsICIgYWZ0ZXIgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5hdChsYXN0RXhpdGluZ0luZGV4KSwgIlxuIik7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgZXhhY3QgcmVmIGNvdW50
cywgc28gY3JlYXRpbmcgYSBuZXcgdXNlIG1lYW5zIHRoYXQgd2UgaGF2ZSB0bworICAgICAgICAg
ICAgICAgIC8vIGluY3JlbWVudCB0aGUgcmVmIGNvdW50LgorICAgICAgICAgICAgICAgIGtpbGxl
ZE5vZGUtPnBvc3RmaXhSZWYoKTsKKworICAgICAgICAgICAgICAgIE5vZGUqIGxhc3RFeGl0aW5n
Tm9kZSA9IGJsb2NrLT5hdChsYXN0RXhpdGluZ0luZGV4KTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAg
ICAgICBsYXN0RXhpdGluZ0luZGV4ICsgMSwgU3BlY05vbmUsIFBoYW50b20sCisgICAgICAgICAg
ICAgICAgICAgIGxhc3RFeGl0aW5nTm9kZS0+b3JpZ2luLmZvckluc2VydGluZ0FmdGVyKG1fZ3Jh
cGgsIGxhc3RFeGl0aW5nTm9kZSksCisgICAgICAgICAgICAgICAgICAgIGtpbGxlZE5vZGUtPmRl
ZmF1bHRFZGdlKCkpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgaWYgKG5vZGVNYXlF
eGl0ICYmIG5vZGUtPm9wKCkgPT0gU2V0TG9jYWwpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0
aGUgU2V0TG9jYWwgZG9lcyBleGl0LCB3ZSBuZWVkIHRoZSBNb3ZIaW50IG9mIGl0cyBsb2NhbAor
ICAgICAgICAgICAgICAgIC8vIHRvIGJlIGxpdmUgdW50aWwgdGhlIFNldExvY2FsIGlzIGRvbmUu
CisgICAgICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIGxvY2FsID0gbm9kZS0+bG9jYWwoKTsK
KyAgICAgICAgICAgICAgICBwcm9jZXNzS2lsbGVkT3BlcmFuZChsb2NhbCk7CisgICAgICAgICAg
ICAgICAgYWxyZWFkeUtpbGxlZCA9IGxvY2FsOworICAgICAgICAgICAgICAgIG1fdmFsdWVzLm9w
ZXJhbmQobG9jYWwpID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9y
QWxsS2lsbGVkT3BlcmFuZHMobV9ncmFwaCwgbm9kZSwgYmxvY2stPnRyeUF0KG5vZGVJbmRleCAr
IDEpLCBwcm9jZXNzS2lsbGVkT3BlcmFuZCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tdWx0aXBseS10eXBlZC1kb3VibGUtYW5kLW9iamVjdC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQtZG91
YmxlLWFuZC1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxZjRkNWRjMWE5MGUzNjQzZTNmOWYyOTg3
YWIyNzgyYWVlZGY0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQtZG91YmxlLWFuZC1vYmplY3QuanMKQEAgLTAsMCAr
MSw2MyBAQAordmFyIG90aGVyT2JqZWN0ID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gNS4xOyB9Cit9OworLy8gREZHLgordmFyIHRhcmdldERGRyA9IHsKKyAgICB2YWx1ZTog
NS41LAorICAgIG11bHRpcGx5OiBmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgbGV0IHJldHVyblZh
bHVlID0gMTsKKyAgICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gIm51bWJlciIpIHsKKyAgICAgICAg
ICAgIHJldHVyblZhbHVlID0gdGhpcy52YWx1ZSAqIGFyZzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gcmV0dXJuVmFsdWUgKyAxOworICAgIH0KK307Citub0lubGluZSh0YXJnZXRERkcubXVs
dGlwbHkpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDQwMDsgKytpKSB7CisgICAgaWYgKHRhcmdl
dERGRy5tdWx0aXBseShvdGhlck9iamVjdCkgIT09IDIpCisgICAgICAgIHRocm93ICJGYWlsZWQg
dGFyZ2V0REZHLm11bHRpcGx5KG90aGVyT2JqZWN0KSI7CisgICAgbGV0IHJlc3VsdCA9IHRhcmdl
dERGRy5tdWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAoNS41ICogTWF0aC5Q
SSArIDEpKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJ
KSwgZXhwZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsgMSkgKyAiIGdvdCAiICsgcmVzdWx0ICsg
IiBhdCBpdGVyYXRpb24gIiArIGk7Cit9Citmb3IgKGxldCBpID0gMDsgaSA8IDFlMzsgKytpKSB7
CisgICAgbGV0IHJlc3VsdCA9IHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAo
cmVzdWx0ICE9PSAoNS41ICogTWF0aC5QSSArIDEpKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRh
cmdldERGRy5tdWx0aXBseShNYXRoLlBJKSwgZXhwZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsg
MSkgKyAiIGdvdCAiICsgcmVzdWx0ICsgIiBhdCBpdGVyYXRpb24gIiArIGk7Cit9CisKKy8vIEZU
TC4KK3ZhciB0YXJnZXRGVEwgPSB7CisgICAgdmFsdWU6IDUuNSwKKyAgICBtdWx0aXBseTogZnVu
Y3Rpb24oYXJnKSB7CisgICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IDE7CisgICAgICAgIGlmICh0
eXBlb2YgYXJnID09ICJudW1iZXIiKSB7CisgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRoaXMu
dmFsdWUgKiBhcmc7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlICsgMTsK
KyAgICB9Cit9Oworbm9JbmxpbmUodGFyZ2V0RlRMLm11bHRpcGx5KTsKKworLy8gV2FybXVwIHRv
IGJhc2VsaW5lLgorZm9yIChsZXQgaSA9IDA7IGkgPCA0MDA7ICsraSkgeworICAgIGlmICh0YXJn
ZXRGVEwubXVsdGlwbHkob3RoZXJPYmplY3QpICE9PSAyKQorICAgICAgICB0aHJvdyAiRmFpbGVk
IHRhcmdldEZUTC5tdWx0aXBseShvdGhlck9iamVjdCkiOworICAgIGxldCByZXN1bHQgPSB0YXJn
ZXRGVEwubXVsdGlwbHkoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gKDUuNSAqIE1hdGgu
UEkgKyAxKSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0YXJnZXRGVEwubXVsdGlwbHkoTWF0aC5Q
SSksIGV4cGVjdGVkICIgKyAoNS41ICogTWF0aC5QSSArIDEpICsgIiBnb3QgIiArIHJlc3VsdCAr
ICIgYXQgaXRlcmF0aW9uICIgKyBpOworfQorCisvLyBTdGVwIG92ZXIgREZHICpXSVRIT1VUKiBP
U1IgRXhpdC4KK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBpZiAodGFyZ2V0
RlRMLm11bHRpcGx5KG90aGVyT2JqZWN0KSAhPT0gMikKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0
YXJnZXRGVEwubXVsdGlwbHkob3RoZXJPYmplY3QpIjsKK30KKworLy8gTm93IE9TUiBFeGl0IGlu
IEZUTC4KK2ZvciAobGV0IGkgPSAwOyBpIDwgMWUyOyArK2kpIHsKKyAgICBsZXQgcmVzdWx0ID0g
dGFyZ2V0RlRMLm11bHRpcGx5KE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09ICg1LjUgKiBN
YXRoLlBJICsgMSkpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGFyZ2V0RlRMLm11bHRpcGx5KE1h
dGguUEkpLCBleHBlY3RlZCAiICsgKDUuNSAqIE1hdGguUEkgKyAxKSArICIgZ290ICIgKyByZXN1
bHQgKyAiIGF0IGl0ZXJhdGlvbiAiICsgaTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278192</attachid>
            <date>2016-05-05 14:59:31 -0700</date>
            <delta_ts>2016-05-05 17:04:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-157358-20160505150012.patch</filename>
            <type>text/plain</type>
            <size>8808</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTMwYjMxYzFjMTE1YzY1YzUyOWVjMGRiZWE2ZWYwYjUyOWE0MmQ0Li5mZGZmODhjOGUxZjBhZjVj
NzMyNGI1NWY3NThiMDVlMmNkNGIwZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNi0wNS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbiBERkcsIGFuIE9TUiBFeGl0IG9uIFNldExvY2FsIGNh
biB0cmFzaCBpdHMgY2hpbGQgbm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3MzU4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI1MzM5NjQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgV2hlbiB3ZSBPU1Ig
RXhpdCBvbiBTZXRMb2NhbCwgdGhlIGNoaWxkIGlzIG5ldmVyIHJlc3RvcmVkIGlmIGl0cyByZXBy
ZXNlbnRhdGlvbgorICAgICAgICB3YXMgY2hhbmdlZCBzaW5jZSB0aGUgTW92SGludC4KKworICAg
ICAgICBGb3IgZXhhbXBsZSwgc2F5IHdlIGhhdmU6CisgICAgICAgICAgICBAMSA9IFNvbWV0aGlu
Z1Byb2R1Y2luZ0RvdWJsZSgpCisgICAgICAgICAgICBAMiA9IE1vdkhpbnQoQDEpCisgICAgICAg
ICAgICBAMyA9IFZhbHVlUmVwKEAxKQorICAgICAgICAgICAgQDQgPSBTZXRMb2NhbChAMywgRmx1
c2hlZEludDMyKQorCisgICAgICAgIFdoZW4gd2UgbG93ZXIgU2V0TG9jYWwoKSwgd2Ugc3RhcnQg
Ynkgc3BlY3VsYXRpbmcgdGhhdCBAMyBpcyBhbiBJbnQzMi4KKyAgICAgICAgTm93IHRoaXMgY2Fu
IGZhaWwgaWYgQDEgd2FzIHJlYWxseSBhIGRvdWJsZS4KKyAgICAgICAgV2hlbiB0aGF0IGhhcHBl
bnMsIHdlIGdvIG92ZXIgdGhlIFZhcmlhYmxlRXZlbnRTdHJlYW0gdG8gZmluZCB3aGVyZSB2YWx1
ZXMKKyAgICAgICAgYXJlLCBhbmQgQDEgZGllZCBhdCBAMy4gU2luY2UgdGhlIHNwZWN1bGF0aW9u
IGZhaWx1cmUgaGFwcGVucyBiZWZvcmUKKyAgICAgICAgdGhlIFNldExvY2FsIGV2ZW50LCB3ZSBk
b24ndCBkbyBhbnl0aGluZyB3aXRoIEAzLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIEkgZXh0
ZW5kIHRoZSBQaGFudG9tSW5zZXJ0aW9uIHBoYXNlIHRvIGtlZXAgdGhlIE1vdkhpbnQKKyAgICAg
ICAgYWxpdmUgcGFzdCB0aGUgU2V0TG9jYWwuCisKKyAgICAgICAgKiBkZmcvREZHUGhhbnRvbUlu
c2VydGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQt
ZG91YmxlLWFuZC1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAob3RoZXJPYmplY3QudmFsdWVP
Zik6CisgICAgICAgICh0YXJnZXRERkcubXVsdGlwbHkpOgorICAgICAgICAodGFyZ2V0RlRMLm11
bHRpcGx5KToKKwogMjAxNi0wNS0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZHVjZSB0aHJlc2hvbGRzIHRoYXQgY29udHJvbCB0aGUgbWF4aW11bSBJQyBz
dHViIHNpemUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50
b21JbnNlcnRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50
b21JbnNlcnRpb25QaGFzZS5jcHAKaW5kZXggZTA5NTg1YzRmNGYxN2NiYzcyZDk4YTk0YTM0ZTUw
YTU5YTE5ZGMxZS4uYjYxZWEwMjc0OTZhNmE2YmFkNzNkZGZjZDExZWU3NzMwMGEzNDZjZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlv
blBoYXNlLmNwcApAQCAtMTEzLDcgKzExMyw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
bV92YWx1ZXMub3BlcmFuZChub2RlLT51bmxpbmtlZExvY2FsKCkpID0gbnVsbHB0cjsKICAgICAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgY2FzZSBTZXRMb2NhbDoKICAgICAgICAg
ICAgIGNhc2UgR2V0TG9jYWw6CiAgICAgICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgogICAgICAg
ICAgICAgICAgIG1fdmFsdWVzLm9wZXJhbmQobm9kZS0+bG9jYWwoKSkgPSBudWxscHRyOwpAQCAt
MTIyLDggKzEyMSw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBp
ZiAobWF5RXhpdChtX2dyYXBoLCBub2RlKSAhPSBEb2VzTm90RXhpdCkgeworCisgICAgICAgICAg
ICBib29sIG5vZGVNYXlFeGl0ID0gbWF5RXhpdChtX2dyYXBoLCBub2RlKSAhPSBEb2VzTm90RXhp
dDsKKyAgICAgICAgICAgIGlmIChub2RlTWF5RXhpdCkgewogICAgICAgICAgICAgICAgIGN1cnJl
bnRFcG9jaC5idW1wKCk7CiAgICAgICAgICAgICAgICAgbGFzdEV4aXRpbmdJbmRleCA9IG5vZGVJ
bmRleDsKICAgICAgICAgICAgIH0KQEAgLTEzNiwzOCArMTM2LDUzIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIG5vZGUtPnNldEVwb2NoKGN1cnJlbnRFcG9jaCk7CiAKLSAg
ICAgICAgICAgIGZvckFsbEtpbGxlZE9wZXJhbmRzKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgs
IG5vZGUsIGJsb2NrLT50cnlBdChub2RlSW5kZXggKyAxKSwKLSAgICAgICAgICAgICAgICBbJl0g
KFZpcnR1YWxSZWdpc3RlciByZWcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgS2lsbGVkIG9wZXJhbmQ6ICIs
IHJlZywgIlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBO
b2RlKiBraWxsZWROb2RlID0gbV92YWx1ZXMub3BlcmFuZChyZWcpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWtpbGxlZE5vZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQg
dG8gaW5zZXJ0IGEgUGhhbnRvbSBpZiB0aGUgbm9kZSBoYXNuJ3QgYmVlbiB1c2VkIHNpbmNlIHRo
ZSBsYXN0Ci0gICAgICAgICAgICAgICAgICAgIC8vIGV4aXQsIGFuZCB3YXMgYm9ybiBiZWZvcmUg
dGhlIGxhc3QgZXhpdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKGtpbGxlZE5vZGUtPmVwb2No
KCkgPT0gY3VycmVudEVwb2NoKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiAgICBJbnNlcnRpbmcgUGhhbnRvbSBvbiAiLCBraWxsZWROb2RlLCAiIGFmdGVyICIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmF0KGxhc3RFeGl0aW5nSW5kZXgpLCAi
XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBleGFjdCByZWYgY291bnRzLCBzbyBjcmVhdGluZyBh
IG5ldyB1c2UgbWVhbnMgdGhhdCB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgICAgIC8vIGlu
Y3JlbWVudCB0aGUgcmVmIGNvdW50LgotICAgICAgICAgICAgICAgICAgICBraWxsZWROb2RlLT5w
b3N0Zml4UmVmKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgTm9kZSogbGFzdEV4aXRpbmdOb2Rl
ID0gYmxvY2stPmF0KGxhc3RFeGl0aW5nSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGxhc3RFeGl0aW5nSW5kZXggKyAxLCBTcGVjTm9uZSwgUGhhbnRvbSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGxhc3RFeGl0aW5nTm9kZS0+b3JpZ2luLmZvckluc2VydGlu
Z0FmdGVyKG1fZ3JhcGgsIGxhc3RFeGl0aW5nTm9kZSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBraWxsZWROb2RlLT5kZWZhdWx0RWRnZSgpKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgVmlydHVhbFJlZ2lzdGVyIGFscmVhZHlLaWxsZWQ7CisKKyAgICAgICAgICAgIGF1dG8gcHJv
Y2Vzc0tpbGxlZE9wZXJhbmQgPSBbJl0gKFZpcnR1YWxSZWdpc3RlciByZWcpIHsKKyAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEtp
bGxlZCBvcGVyYW5kOiAiLCByZWcsICJcbiIpOworCisgICAgICAgICAgICAgICAgLy8gQWxyZWFk
eSBoYW5kbGVkIGZyb20gU2V0TG9jYWwuCisgICAgICAgICAgICAgICAgaWYgKHJlZyA9PSBhbHJl
YWR5S2lsbGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgTm9kZSoga2lsbGVkTm9kZSA9IG1fdmFsdWVzLm9wZXJhbmQocmVn
KTsKKyAgICAgICAgICAgICAgICBpZiAoIWtpbGxlZE5vZGUpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5l
ZWQgdG8gaW5zZXJ0IGEgUGhhbnRvbSBpZiB0aGUgbm9kZSBoYXNuJ3QgYmVlbiB1c2VkIHNpbmNl
IHRoZSBsYXN0CisgICAgICAgICAgICAgICAgLy8gZXhpdCwgYW5kIHdhcyBib3JuIGJlZm9yZSB0
aGUgbGFzdCBleGl0LgorICAgICAgICAgICAgICAgIGlmIChraWxsZWROb2RlLT5lcG9jaCgpID09
IGN1cnJlbnRFcG9jaCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2coCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgIEluc2VydGluZyBQaGFudG9t
IG9uICIsIGtpbGxlZE5vZGUsICIgYWZ0ZXIgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5hdChsYXN0RXhpdGluZ0luZGV4KSwgIlxuIik7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgZXhhY3QgcmVmIGNvdW50
cywgc28gY3JlYXRpbmcgYSBuZXcgdXNlIG1lYW5zIHRoYXQgd2UgaGF2ZSB0bworICAgICAgICAg
ICAgICAgIC8vIGluY3JlbWVudCB0aGUgcmVmIGNvdW50LgorICAgICAgICAgICAgICAgIGtpbGxl
ZE5vZGUtPnBvc3RmaXhSZWYoKTsKKworICAgICAgICAgICAgICAgIE5vZGUqIGxhc3RFeGl0aW5n
Tm9kZSA9IGJsb2NrLT5hdChsYXN0RXhpdGluZ0luZGV4KTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAg
ICAgICBsYXN0RXhpdGluZ0luZGV4ICsgMSwgU3BlY05vbmUsIFBoYW50b20sCisgICAgICAgICAg
ICAgICAgICAgIGxhc3RFeGl0aW5nTm9kZS0+b3JpZ2luLmZvckluc2VydGluZ0FmdGVyKG1fZ3Jh
cGgsIGxhc3RFeGl0aW5nTm9kZSksCisgICAgICAgICAgICAgICAgICAgIGtpbGxlZE5vZGUtPmRl
ZmF1bHRFZGdlKCkpOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgaWYgKG5vZGVNYXlF
eGl0ICYmIG5vZGUtPm9wKCkgPT0gU2V0TG9jYWwpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0
aGUgU2V0TG9jYWwgZG9lcyBleGl0LCB3ZSBuZWVkIHRoZSBNb3ZIaW50IG9mIGl0cyBsb2NhbAor
ICAgICAgICAgICAgICAgIC8vIHRvIGJlIGxpdmUgdW50aWwgdGhlIFNldExvY2FsIGlzIGRvbmUu
CisgICAgICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIGxvY2FsID0gbm9kZS0+bG9jYWwoKTsK
KyAgICAgICAgICAgICAgICBwcm9jZXNzS2lsbGVkT3BlcmFuZChsb2NhbCk7CisgICAgICAgICAg
ICAgICAgYWxyZWFkeUtpbGxlZCA9IGxvY2FsOworICAgICAgICAgICAgICAgIG1fdmFsdWVzLm9w
ZXJhbmQobG9jYWwpID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9y
QWxsS2lsbGVkT3BlcmFuZHMobV9ncmFwaCwgbm9kZSwgYmxvY2stPnRyeUF0KG5vZGVJbmRleCAr
IDEpLCBwcm9jZXNzS2lsbGVkT3BlcmFuZCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tdWx0aXBseS10eXBlZC1kb3VibGUtYW5kLW9iamVjdC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQtZG91
YmxlLWFuZC1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxZjRkNWRjMWE5MGUzNjQzZTNmOWYyOTg3
YWIyNzgyYWVlZGY0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbXVsdGlwbHktdHlwZWQtZG91YmxlLWFuZC1vYmplY3QuanMKQEAgLTAsMCAr
MSw2MyBAQAordmFyIG90aGVyT2JqZWN0ID0geworICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gNS4xOyB9Cit9OworLy8gREZHLgordmFyIHRhcmdldERGRyA9IHsKKyAgICB2YWx1ZTog
NS41LAorICAgIG11bHRpcGx5OiBmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgbGV0IHJldHVyblZh
bHVlID0gMTsKKyAgICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gIm51bWJlciIpIHsKKyAgICAgICAg
ICAgIHJldHVyblZhbHVlID0gdGhpcy52YWx1ZSAqIGFyZzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gcmV0dXJuVmFsdWUgKyAxOworICAgIH0KK307Citub0lubGluZSh0YXJnZXRERkcubXVs
dGlwbHkpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDQwMDsgKytpKSB7CisgICAgaWYgKHRhcmdl
dERGRy5tdWx0aXBseShvdGhlck9iamVjdCkgIT09IDIpCisgICAgICAgIHRocm93ICJGYWlsZWQg
dGFyZ2V0REZHLm11bHRpcGx5KG90aGVyT2JqZWN0KSI7CisgICAgbGV0IHJlc3VsdCA9IHRhcmdl
dERGRy5tdWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAocmVzdWx0ICE9PSAoNS41ICogTWF0aC5Q
SSArIDEpKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJ
KSwgZXhwZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsgMSkgKyAiIGdvdCAiICsgcmVzdWx0ICsg
IiBhdCBpdGVyYXRpb24gIiArIGk7Cit9Citmb3IgKGxldCBpID0gMDsgaSA8IDFlMzsgKytpKSB7
CisgICAgbGV0IHJlc3VsdCA9IHRhcmdldERGRy5tdWx0aXBseShNYXRoLlBJKTsKKyAgICBpZiAo
cmVzdWx0ICE9PSAoNS41ICogTWF0aC5QSSArIDEpKQorICAgICAgICB0aHJvdyAiRmFpbGVkIHRh
cmdldERGRy5tdWx0aXBseShNYXRoLlBJKSwgZXhwZWN0ZWQgIiArICg1LjUgKiBNYXRoLlBJICsg
MSkgKyAiIGdvdCAiICsgcmVzdWx0ICsgIiBhdCBpdGVyYXRpb24gIiArIGk7Cit9CisKKy8vIEZU
TC4KK3ZhciB0YXJnZXRGVEwgPSB7CisgICAgdmFsdWU6IDUuNSwKKyAgICBtdWx0aXBseTogZnVu
Y3Rpb24oYXJnKSB7CisgICAgICAgIGxldCByZXR1cm5WYWx1ZSA9IDE7CisgICAgICAgIGlmICh0
eXBlb2YgYXJnID09ICJudW1iZXIiKSB7CisgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRoaXMu
dmFsdWUgKiBhcmc7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlICsgMTsK
KyAgICB9Cit9Oworbm9JbmxpbmUodGFyZ2V0RlRMLm11bHRpcGx5KTsKKworLy8gV2FybXVwIHRv
IGJhc2VsaW5lLgorZm9yIChsZXQgaSA9IDA7IGkgPCA0MDA7ICsraSkgeworICAgIGlmICh0YXJn
ZXRGVEwubXVsdGlwbHkob3RoZXJPYmplY3QpICE9PSAyKQorICAgICAgICB0aHJvdyAiRmFpbGVk
IHRhcmdldEZUTC5tdWx0aXBseShvdGhlck9iamVjdCkiOworICAgIGxldCByZXN1bHQgPSB0YXJn
ZXRGVEwubXVsdGlwbHkoTWF0aC5QSSk7CisgICAgaWYgKHJlc3VsdCAhPT0gKDUuNSAqIE1hdGgu
UEkgKyAxKSkKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0YXJnZXRGVEwubXVsdGlwbHkoTWF0aC5Q
SSksIGV4cGVjdGVkICIgKyAoNS41ICogTWF0aC5QSSArIDEpICsgIiBnb3QgIiArIHJlc3VsdCAr
ICIgYXQgaXRlcmF0aW9uICIgKyBpOworfQorCisvLyBTdGVwIG92ZXIgREZHICpXSVRIT1VUKiBP
U1IgRXhpdC4KK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBpZiAodGFyZ2V0
RlRMLm11bHRpcGx5KG90aGVyT2JqZWN0KSAhPT0gMikKKyAgICAgICAgdGhyb3cgIkZhaWxlZCB0
YXJnZXRGVEwubXVsdGlwbHkob3RoZXJPYmplY3QpIjsKK30KKworLy8gTm93IE9TUiBFeGl0IGlu
IEZUTC4KK2ZvciAobGV0IGkgPSAwOyBpIDwgMWUyOyArK2kpIHsKKyAgICBsZXQgcmVzdWx0ID0g
dGFyZ2V0RlRMLm11bHRpcGx5KE1hdGguUEkpOworICAgIGlmIChyZXN1bHQgIT09ICg1LjUgKiBN
YXRoLlBJICsgMSkpCisgICAgICAgIHRocm93ICJGYWlsZWQgdGFyZ2V0RlRMLm11bHRpcGx5KE1h
dGguUEkpLCBleHBlY3RlZCAiICsgKDUuNSAqIE1hdGguUEkgKyAxKSArICIgZ290ICIgKyByZXN1
bHQgKyAiIGF0IGl0ZXJhdGlvbiAiICsgaTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>