<?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>172115</bug_id>
          
          <creation_ts>2017-05-15 05:36:15 -0700</creation_ts>
          <short_desc>[DFG] Constant Folding Phase should convert MakeRope(&quot;&quot;, String) =&gt; Identity(String)</short_desc>
          <delta_ts>2017-05-17 02:39:20 -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>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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308636</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 05:36:15 -0700</bug_when>
    <thetext>This optimization is performed in Fixup phase. But in fixup phase, we may not figure out many constant values...
We should later perform this optimization in constant folding phase again.

I investigated ARES-6 Babylon and figured out that Babylon&apos;s Array#indexOf repeatedly find roped string.
This is because of readWord1 in Babylon, the implementation is like,

var word = &quot;&quot;;
...
...
...
return word + data.slice(...);

Due to the above limitation, this now accidentally produces MakeRope!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308637</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 05:41:29 -0700</bug_when>
    <thetext>Before:

firstIteration:     50.02 +- 14.56 ms
averageWorstCase:   26.52 +- 4.52 ms
steadyState:        8.15 +- 0.23 ms
summary:            22.03 +- 3.38 ms

After:

firstIteration:     49.08 +- 12.90 ms
averageWorstCase:   25.16 +- 3.82 ms
steadyState:        7.58 +- 0.21 ms
summary:            20.99 +- 2.73 ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308639</commentid>
    <comment_count>2</comment_count>
      <attachid>310129</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 06:32:57 -0700</bug_when>
    <thetext>Created attachment 310129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308640</commentid>
    <comment_count>3</comment_count>
      <attachid>310130</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 06:33:36 -0700</bug_when>
    <thetext>Created attachment 310130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308651</commentid>
    <comment_count>4</comment_count>
      <attachid>310136</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-15 07:45:44 -0700</bug_when>
    <thetext>Created attachment 310136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308754</commentid>
    <comment_count>5</comment_count>
      <attachid>310136</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-15 12:34:31 -0700</bug_when>
    <thetext>Comment on attachment 310136
Patch

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

Mostly LGTM, just a few comments

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:643
&gt; +            case MakeRope: {

I believe you need this code inside AbstractInterpreter as well to indicate we&apos;ve found a constant. Perhaps all of it can just be moved there.

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:653
&gt; +                    const auto* string = asString(childConstant)-&gt;tryGetValueImpl();

Nit: Can we give this a type, since it&apos;s hard to see what&apos;s going on here without reading tryGetValueImpl()&apos;s type?

&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:661
&gt; +                    // Don&apos;t allow the MakeRope to have zero children.
&gt; +                    if (!i &amp;&amp; !node-&gt;child2())
&gt; +                        break;

Why not just convert to lazy constant for &quot;&quot; here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309095</commentid>
    <comment_count>6</comment_count>
      <attachid>310136</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 04:29:57 -0700</bug_when>
    <thetext>Comment on attachment 310136
Patch

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

Thanks

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:643
&gt;&gt; +            case MakeRope: {
&gt; 
&gt; I believe you need this code inside AbstractInterpreter as well to indicate we&apos;ve found a constant. Perhaps all of it can just be moved there.

Oops, right. I think we should have MakeRope here too since it can reduce the number of children (like, &quot;&quot; + a + b =&gt; a + b).

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:653
&gt;&gt; +                    const auto* string = asString(childConstant)-&gt;tryGetValueImpl();
&gt; 
&gt; Nit: Can we give this a type, since it&apos;s hard to see what&apos;s going on here without reading tryGetValueImpl()&apos;s type?

OK, I&apos;ve changed it to `StringImpl*`.

&gt;&gt; Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:661
&gt;&gt; +                        break;
&gt; 
&gt; Why not just convert to lazy constant for &quot;&quot; here?

I think it is better to replace it to Identity(child1).
And current code covers all the cases in the following (L668) convertToIdentity simply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309112</commentid>
    <comment_count>7</comment_count>
      <attachid>310257</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 05:59:59 -0700</bug_when>
    <thetext>Created attachment 310257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309118</commentid>
    <comment_count>8</comment_count>
      <attachid>310259</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 06:42:23 -0700</bug_when>
    <thetext>Created attachment 310259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309177</commentid>
    <comment_count>9</comment_count>
      <attachid>310259</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 10:42:48 -0700</bug_when>
    <thetext>Comment on attachment 310259
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:575
&gt; +            if (!edge)
&gt; +                break;

How can edge be null if it is a reference? I guess that works if Edge has a operator!, but its still a bit odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309182</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-16 10:47:28 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; Comment on attachment 310259 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=310259&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:575
&gt; &gt; +            if (!edge)
&gt; &gt; +                break;
&gt; 
&gt; How can edge be null if it is a reference? I guess that works if Edge has a
&gt; operator!, but its still a bit odd.

I agree it&apos;s a bit odd, but we do this all over the DFG. It does have an operator!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309190</commentid>
    <comment_count>11</comment_count>
      <attachid>310259</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-16 10:58:57 -0700</bug_when>
    <thetext>Comment on attachment 310259
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309293</commentid>
    <comment_count>12</comment_count>
      <attachid>310259</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-16 14:25:57 -0700</bug_when>
    <thetext>Comment on attachment 310259
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309316</commentid>
    <comment_count>13</comment_count>
      <attachid>310259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 14:54:04 -0700</bug_when>
    <thetext>Comment on attachment 310259
Patch

Clearing flags on attachment: 310259

Committed r216948: &lt;http://trac.webkit.org/changeset/216948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309317</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 14:54:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309514</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-17 02:39:20 -0700</bug_when>
    <thetext>It also works in six-speed. https://arewefastyet.com/#machine=29&amp;view=single&amp;suite=six-speed&amp;subtest=templatestringtag-es5</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310129</attachid>
            <date>2017-05-15 06:32:57 -0700</date>
            <delta_ts>2017-05-15 06:33:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172115-20170515223256.patch</filename>
            <type>text/plain</type>
            <size>5877</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li5jNmVkZjliNjY3MmQzMjVm
MjkyMzU4ZGU0MjAzOTg3YTZiMjlhZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6
Zm9sZENvbnN0YW50cyk6CisKIDIwMTctMDUtMTMgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnVzZWQgbGFtYmRhIGNhcHR1cmUgaW4gSlNDb250ZXh0R3Jv
dXBBZGRNYXJraW5nQ29uc3RyYWludCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDExNGYwMWRlZjFhZWIzZDA3
NWQ4NmNiNDA2MzFiYmRhOGRjOGY4YWQuLjJjZmQ1YzIxM2ExNTcxMDZmNzhmNDg3NjAzMmY4NmE0
MDljYjUwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC02MzksNiArNjM5LDM4IEBAIGNsYXNzIENvbnN0YW50
Rm9sZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNhc2UgTWFrZVJv
cGU6IHsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgQWRqYWNlbmN5
TGlzdDo6U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIEVkZ2UmIGVkZ2UgPSBub2Rl
LT5jaGlsZHJlbi5jaGlsZChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFlZGdlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUg
Y2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShlZGdlKS52YWx1ZSgpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWNoaWxkQ29uc3RhbnQpCisgICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZENvbnN0YW50LmlzU3RyaW5n
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byogc3RyaW5nID0gYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZh
bHVlSW1wbCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLT5s
ZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICAgICAgICAgIC8vIERvbid0IGFsbG93IHRoZSBNYWtlUm9wZSB0byBoYXZlIHplcm8gY2hpbGRy
ZW4uCisgICAgICAgICAgICAgICAgICAgIGlmICghaSAmJiAhbm9kZS0+Y2hpbGQyKCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBub2RlLT5j
aGlsZHJlbi5yZW1vdmVFZGdlKGktLSk7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghbm9kZS0+Y2hp
bGQyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFub2RlLT5jaGlsZDMoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0lkZW50aXR5KCk7CisgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUzNTIxZTkyMDMxYjUyNGE2Mjg4N2Y5
NTljYWVjNzRkNjkxM2E2YjYuLjE1MjdkYzM0YWE1MjA3YzNhMWExY2IxMTU3OGM4NDY5OTVkY2Fi
MjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDIgQEAKKzIwMTctMDUtMTUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RGR10gQ29uc3RhbnQgRm9sZGluZyBQaGFzZSBzaG91
bGQgY29udmVydCBNYWtlUm9wZSgiIiwgU3RyaW5nKSA9PiBJZGVudGl0eShTdHJpbmcpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBGaXh1cCBwaGFz
ZSwgd2UgYXR0ZW1wdCB0byBmb2xkIE1ha2VSb3BlIHRvIElkZW50aXR5IChvciByZWR1Y2UgYXJn
dW1lbnRzKSBieSBkcm9wcGluZworICAgICAgICBlbXB0eSBzdHJpbmdzLiBIb3dldmVyLCB3aGVu
IHdlIGFyZSBpbiBGaXh1cCBwaGFzZSwgd2UgZG8gbm90IGhhdmUgbXVjaCBpbmZvcm1hdGlvbiBh
Ym91dAorICAgICAgICBjb25zdGFudCB2YWx1ZXMuCisKKyAgICAgICAgSW4gQVJFUy02IEJhYnls
b24sIHdlIGZpbmQgdGhhdCB3ZSBjYW4gY29uc3RhbnQtZm9sZCBNYWtlUm9wZSBieSB1c2luZyBj
b25zdGFudHMgZmlndXJlZAorICAgICAgICBvdXQgYnkgQ0ZBLiBXaXRob3V0IGl0LCBCYWJ5bG9u
IHJlcGVhdGVkbHkgcHJvZHVjZXMgcm9wZSBzdHJpbmdzIHRoYXQgYXJlIG5vdCBlc3NlbnRpYWxs
eQorICAgICAgICByb3Blcy4gQW5kIGl0IHNpZ25pZmljYW50bHkgZGVncmFkZXMgc3RyaWN0IGVx
dWFsIG9wZXJhdGlvbiBpbiBBcnJheSNpbmRleE9mLgorICAgICAgICBUbyBmaXggdGhpcywgd2Ug
aW50cm9kdWNlIE1ha2VSb3BlIGhhbmRsaW5nIGluIGNvbnN0YW50IGZvbGRpbmcgcGhhc2UuCisK
KyAgICAgICAgSXQgc2hvd3MgNy41JSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBpbiBBUkVTLTYg
QmFieWxvbiBzdGVhZHlTdGF0ZS4KKworICAgICAgICAgICAgQmVmb3JlOgorCisgICAgICAgICAg
ICBmaXJzdEl0ZXJhdGlvbjogICAgIDUwLjAyICstIDE0LjU2IG1zCisgICAgICAgICAgICBhdmVy
YWdlV29yc3RDYXNlOiAgIDI2LjUyICstIDQuNTIgbXMKKyAgICAgICAgICAgIHN0ZWFkeVN0YXRl
OiAgICAgICAgOC4xNSArLSAwLjIzIG1zCisKKyAgICAgICAgICAgIEFmdGVyOgorCisgICAgICAg
ICAgICBmaXJzdEl0ZXJhdGlvbjogICAgIDQ5LjA4ICstIDEyLjkwIG1zCisgICAgICAgICAgICBh
dmVyYWdlV29yc3RDYXNlOiAgIDI1LjE2ICstIDMuODIgbXMKKyAgICAgICAgICAgIHN0ZWFkeVN0
YXRlOiAgICAgICAgNy41OCArLSAwLjIxIG1zCisKKworICAgICAgICAqIHN0cmVzcy9jb25zdGFu
dC1mb2xkaW5nLXNob3VsZC1mb2xkLW1ha2Utcm9wZS13aXRoLWVtcHR5LXN0cmluZ3MuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodW5rbm93bik6CisgICAgICAgIChy
ZWFkV29yZDEpOgorICAgICAgICAocmVhZFdvcmQyKToKKyAgICAgICAgKHJlYWRXb3JkMyk6Cisg
ICAgICAgIChyZWFkV29yZDQpOgorCiAyMDE3LTA1LTExICBKRiBCYXN0aWVuICA8amZiYXN0aWVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogc3RvcCBzdXBwb3J0aW5nIDB4RApk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGluZy1zaG91bGQtZm9sZC1t
YWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzIGIvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQt
Zm9sZGluZy1zaG91bGQtZm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk1Mzg2MmViZmJlZTdhY2IyYjA3ZDgwYjMzZjc2ZDI0NjYzNTAzNTkKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9jb25zdGFudC1mb2xkaW5nLXNob3VsZC1mb2xkLW1h
a2Utcm9wZS13aXRoLWVtcHR5LXN0cmluZ3MuanMKQEAgLTAsMCArMSw2MSBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIHVua25vd24oKQoreworICAgIHJldHVybiAiT0siOworfQorbm9JbmxpbmUodW5r
bm93bik7CisKK2Z1bmN0aW9uIHJlYWRXb3JkMShmbGFnKQoreworICAgIHZhciB3b3JkID0gIiI7
CisgICAgaWYgKGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3duKCk7CisgICAgfQorICAg
IHJldHVybiB3b3JkICsgIkhlbGxvV29ybGQiOworfQorbm9JbmxpbmUocmVhZFdvcmQxKTsKKwor
ZnVuY3Rpb24gcmVhZFdvcmQyKGZsYWcpCit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAo
ZmxhZykgeworICAgICAgICB3b3JkICs9IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0dXJuICJI
ZWxsb1dvcmxkIiArIHdvcmQ7Cit9Citub0lubGluZShyZWFkV29yZDIpOworCitmdW5jdGlvbiBy
ZWFkV29yZDMoZmxhZykKK3sKKyAgICB2YXIgd29yZCA9ICIiOworICAgIGlmIChmbGFnKSB7Cisg
ICAgICAgIHdvcmQgKz0gdW5rbm93bigpOworICAgIH0KKyAgICByZXR1cm4gIiIgKyB3b3JkOwor
fQorbm9JbmxpbmUocmVhZFdvcmQzKTsKKworZnVuY3Rpb24gcmVhZFdvcmQ0KGZsYWcpCit7Cisg
ICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykgeworICAgICAgICB3b3JkICs9IHVua25v
d24oKTsKKyAgICB9CisgICAgcmV0dXJuICJIZWxsb1dvcmxkIiArIHdvcmQgKyB3b3JkOworfQor
bm9JbmxpbmUocmVhZFdvcmQ0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgewor
ICAgIHNob3VsZEJlKHJlYWRXb3JkMShmYWxzZSksICJIZWxsb1dvcmxkIik7CisgICAgc2hvdWxk
QmUocmVhZFdvcmQyKGZhbHNlKSwgIkhlbGxvV29ybGQiKTsKKyAgICBzaG91bGRCZShyZWFkV29y
ZDMoZmFsc2UpLCAiIik7CisgICAgc2hvdWxkQmUocmVhZFdvcmQ0KGZhbHNlKSwgIkhlbGxvV29y
bGQiKTsKK30KK3Nob3VsZEJlKHJlYWRXb3JkMSh0cnVlKSwgIk9LSGVsbG9Xb3JsZCIpOworc2hv
dWxkQmUocmVhZFdvcmQyKHRydWUpLCAiSGVsbG9Xb3JsZE9LIik7CitzaG91bGRCZShyZWFkV29y
ZDModHJ1ZSksICJPSyIpOworc2hvdWxkQmUocmVhZFdvcmQ0KHRydWUpLCAiSGVsbG9Xb3JsZE9L
T0siKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310130</attachid>
            <date>2017-05-15 06:33:36 -0700</date>
            <delta_ts>2017-05-15 07:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172115-20170515223336.patch</filename>
            <type>text/plain</type>
            <size>5875</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li41ZjQzODBkODI2ZjM5NDgw
ZDQyZDk5ZTAwZjhmMzUxMzg1MWZiMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIEZpeHVwIHBoYXNlLCB3ZSBh
dHRlbXB0IHRvIGZvbGQgTWFrZVJvcGUgdG8gSWRlbnRpdHkgKG9yIHJlZHVjZSBhcmd1bWVudHMp
IGJ5IGRyb3BwaW5nCisgICAgICAgIGVtcHR5IHN0cmluZ3MuIEhvd2V2ZXIsIHdoZW4gd2UgYXJl
IGluIEZpeHVwIHBoYXNlLCB3ZSBkbyBub3QgaGF2ZSBtdWNoIGluZm9ybWF0aW9uIGFib3V0Cisg
ICAgICAgIGNvbnN0YW50IHZhbHVlcy4KKworICAgICAgICBJbiBBUkVTLTYgQmFieWxvbiwgd2Ug
ZmluZCB0aGF0IHdlIGNhbiBjb25zdGFudC1mb2xkIE1ha2VSb3BlIGJ5IHVzaW5nIGNvbnN0YW50
cyBmaWd1cmVkCisgICAgICAgIG91dCBieSBDRkEuIFdpdGhvdXQgaXQsIEJhYnlsb24gcmVwZWF0
ZWRseSBwcm9kdWNlcyByb3BlIHN0cmluZ3MgdGhhdCBhcmUgbm90IGVzc2VudGlhbGx5CisgICAg
ICAgIHJvcGVzLiBBbmQgaXQgc2lnbmlmaWNhbnRseSBkZWdyYWRlcyBzdHJpY3QgZXF1YWwgb3Bl
cmF0aW9uIGluIEFycmF5I2luZGV4T2YuCisgICAgICAgIFRvIGZpeCB0aGlzLCB3ZSBpbnRyb2R1
Y2UgTWFrZVJvcGUgaGFuZGxpbmcgaW4gY29uc3RhbnQgZm9sZGluZyBwaGFzZS4KKworICAgICAg
ICBJdCBzaG93cyA3LjUlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGluIEFSRVMtNiBCYWJ5bG9u
IHN0ZWFkeVN0YXRlLgorCisgICAgICAgICAgICBCZWZvcmU6CisKKyAgICAgICAgICAgIGZpcnN0
SXRlcmF0aW9uOiAgICAgNTAuMDIgKy0gMTQuNTYgbXMKKyAgICAgICAgICAgIGF2ZXJhZ2VXb3Jz
dENhc2U6ICAgMjYuNTIgKy0gNC41MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6ICAgICAg
ICA4LjE1ICstIDAuMjMgbXMKKworICAgICAgICAgICAgQWZ0ZXI6CisKKyAgICAgICAgICAgIGZp
cnN0SXRlcmF0aW9uOiAgICAgNDkuMDggKy0gMTIuOTAgbXMKKyAgICAgICAgICAgIGF2ZXJhZ2VX
b3JzdENhc2U6ICAgMjUuMTYgKy0gMy44MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6ICAg
ICAgICA3LjU4ICstIDAuMjEgbXMKKworICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRD
b25zdGFudHMpOgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGluIEpTQ29udGV4dEdyb3VwQWRk
TWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCAxMTRmMDFkZWYxYWViM2QwNzVkODZj
YjQwNjMxYmJkYThkYzhmOGFkLi4yY2ZkNWMyMTNhMTU3MTA2Zjc4ZjQ4NzYwMzJmODZhNDA5Y2I1
MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcApAQCAtNjM5LDYgKzYzOSwzOCBAQCBjbGFzcyBDb25zdGFudEZvbGRp
bmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYXNlIE1ha2VSb3BlOiB7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEFkamFjZW5jeUxpc3Q6
OlNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBFZGdlJiBlZGdlID0gbm9kZS0+Y2hp
bGRyZW4uY2hpbGQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZWRnZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxk
Q29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUoZWRnZSkudmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFjaGlsZENvbnN0YW50KQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGRDb25zdGFudC5pc1N0cmluZygpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGF1dG8qIHN0cmluZyA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUlt
cGwoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcpCisgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy0+bGVuZ3Ro
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAg
ICAgICAvLyBEb24ndCBhbGxvdyB0aGUgTWFrZVJvcGUgdG8gaGF2ZSB6ZXJvIGNoaWxkcmVuLgor
ICAgICAgICAgICAgICAgICAgICBpZiAoIWkgJiYgIW5vZGUtPmNoaWxkMigpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRy
ZW4ucmVtb3ZlRWRnZShpLS0pOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmNoaWxkMigp
KSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghbm9kZS0+Y2hpbGQzKCkpOworICAgICAg
ICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VM
b2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA1MzUyMWU5MjAzMWI1MjRhNjI4ODdmOTU5Y2Fl
Yzc0ZDY5MTNhNmI2Li5iMTY1NWVmMjc1ZmYzMzA2NTcyNDVmYjQyMTI1OGIwNTU5NjI4YzZiIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDE3LTA1LTE1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtERkddIENvbnN0YW50IEZvbGRpbmcgUGhhc2Ugc2hvdWxkIGNv
bnZlcnQgTWFrZVJvcGUoIiIsIFN0cmluZykgPT4gSWRlbnRpdHkoU3RyaW5nKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTE1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY29uc3RhbnQt
Zm9sZGluZy1zaG91bGQtZm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHVua25vd24pOgorICAgICAgICAocmVh
ZFdvcmQxKToKKyAgICAgICAgKHJlYWRXb3JkMik6CisgICAgICAgIChyZWFkV29yZDMpOgorICAg
ICAgICAocmVhZFdvcmQ0KToKKwogMjAxNy0wNS0xMSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IHN0b3Agc3VwcG9ydGluZyAweEQKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NvbnN0YW50LWZvbGRpbmctc2hvdWxkLWZvbGQtbWFr
ZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5ncy5qcyBiL0pTVGVzdHMvc3RyZXNzL2NvbnN0YW50LWZv
bGRpbmctc2hvdWxkLWZvbGQtbWFrZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5ncy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NTM4NjJlYmZiZWU3YWNiMmIwN2Q4MGIzM2Y3NmQyNDY2MzUwMzU5Ci0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGluZy1zaG91bGQtZm9sZC1tYWtl
LXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzCkBAIC0wLDAgKzEsNjEgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB1bmtub3duKCkKK3sKKyAgICByZXR1cm4gIk9LIjsKK30KK25vSW5saW5lKHVua25v
d24pOworCitmdW5jdGlvbiByZWFkV29yZDEoZmxhZykKK3sKKyAgICB2YXIgd29yZCA9ICIiOwor
ICAgIGlmIChmbGFnKSB7CisgICAgICAgIHdvcmQgKz0gdW5rbm93bigpOworICAgIH0KKyAgICBy
ZXR1cm4gd29yZCArICJIZWxsb1dvcmxkIjsKK30KK25vSW5saW5lKHJlYWRXb3JkMSk7CisKK2Z1
bmN0aW9uIHJlYWRXb3JkMihmbGFnKQoreworICAgIHZhciB3b3JkID0gIiI7CisgICAgaWYgKGZs
YWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3duKCk7CisgICAgfQorICAgIHJldHVybiAiSGVs
bG9Xb3JsZCIgKyB3b3JkOworfQorbm9JbmxpbmUocmVhZFdvcmQyKTsKKworZnVuY3Rpb24gcmVh
ZFdvcmQzKGZsYWcpCit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykgeworICAg
ICAgICB3b3JkICs9IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0dXJuICIiICsgd29yZDsKK30K
K25vSW5saW5lKHJlYWRXb3JkMyk7CisKK2Z1bmN0aW9uIHJlYWRXb3JkNChmbGFnKQoreworICAg
IHZhciB3b3JkID0gIiI7CisgICAgaWYgKGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3du
KCk7CisgICAgfQorICAgIHJldHVybiAiSGVsbG9Xb3JsZCIgKyB3b3JkICsgd29yZDsKK30KK25v
SW5saW5lKHJlYWRXb3JkNCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAg
ICBzaG91bGRCZShyZWFkV29yZDEoZmFsc2UpLCAiSGVsbG9Xb3JsZCIpOworICAgIHNob3VsZEJl
KHJlYWRXb3JkMihmYWxzZSksICJIZWxsb1dvcmxkIik7CisgICAgc2hvdWxkQmUocmVhZFdvcmQz
KGZhbHNlKSwgIiIpOworICAgIHNob3VsZEJlKHJlYWRXb3JkNChmYWxzZSksICJIZWxsb1dvcmxk
Iik7Cit9CitzaG91bGRCZShyZWFkV29yZDEodHJ1ZSksICJPS0hlbGxvV29ybGQiKTsKK3Nob3Vs
ZEJlKHJlYWRXb3JkMih0cnVlKSwgIkhlbGxvV29ybGRPSyIpOworc2hvdWxkQmUocmVhZFdvcmQz
KHRydWUpLCAiT0siKTsKK3Nob3VsZEJlKHJlYWRXb3JkNCh0cnVlKSwgIkhlbGxvV29ybGRPS09L
Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310136</attachid>
            <date>2017-05-15 07:45:44 -0700</date>
            <delta_ts>2017-05-16 05:59:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172115-20170515234543.patch</filename>
            <type>text/plain</type>
            <size>5764</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTU4MDYwYTc5YjBiNjlkZDExNGVkMTQxNmE3YWJlODNkNGUzNTE2Li5jNGIzODdjMjU3NzlhN2Q0
NTM2Yjg1MTFlZDYwMjRkM2I4ZjIxNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNy0wNS0xNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIEZpeHVwIHBoYXNlLCB3ZSBh
dHRlbXB0IHRvIGZvbGQgTWFrZVJvcGUgdG8gSWRlbnRpdHkgKG9yIHJlZHVjZSBhcmd1bWVudHMp
IGJ5IGRyb3BwaW5nCisgICAgICAgIGVtcHR5IHN0cmluZ3MuIEhvd2V2ZXIsIHdoZW4gd2UgYXJl
IGluIEZpeHVwIHBoYXNlLCB3ZSBkbyBub3QgaGF2ZSBtdWNoIGluZm9ybWF0aW9uIGFib3V0Cisg
ICAgICAgIGNvbnN0YW50IHZhbHVlcy4KKworICAgICAgICBJbiBBUkVTLTYgQmFieWxvbiwgd2Ug
ZmluZCB0aGF0IHdlIGNhbiBjb25zdGFudC1mb2xkIE1ha2VSb3BlIGJ5IHVzaW5nIGNvbnN0YW50
cyBmaWd1cmVkCisgICAgICAgIG91dCBieSBDRkEuIFdpdGhvdXQgaXQsIEJhYnlsb24gcmVwZWF0
ZWRseSBwcm9kdWNlcyByb3BlIHN0cmluZ3MuIFRvIGZpeCB0aGlzLCB3ZSBpbnRyb2R1Y2UKKyAg
ICAgICAgTWFrZVJvcGUgaGFuZGxpbmcgaW4gY29uc3RhbnQgZm9sZGluZyBwaGFzZS4KKworICAg
ICAgICBJdCBzaG93cyA3LjUlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGluIEFSRVMtNiBCYWJ5
bG9uIHN0ZWFkeVN0YXRlLgorCisgICAgICAgICAgICBCZWZvcmU6CisKKyAgICAgICAgICAgIGZp
cnN0SXRlcmF0aW9uOiAgICAgNTAuMDIgKy0gMTQuNTYgbXMKKyAgICAgICAgICAgIGF2ZXJhZ2VX
b3JzdENhc2U6ICAgMjYuNTIgKy0gNC41MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6ICAg
ICAgICA4LjE1ICstIDAuMjMgbXMKKworICAgICAgICAgICAgQWZ0ZXI6CisKKyAgICAgICAgICAg
IGZpcnN0SXRlcmF0aW9uOiAgICAgNDkuMDggKy0gMTIuOTAgbXMKKyAgICAgICAgICAgIGF2ZXJh
Z2VXb3JzdENhc2U6ICAgMjUuMTYgKy0gMy44MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6
ICAgICAgICA3LjU4ICstIDAuMjEgbXMKKworICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZv
bGRDb25zdGFudHMpOgorCiAyMDE3LTA1LTEzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW51c2VkIGxhbWJkYSBjYXB0dXJlIGluIEpTQ29udGV4dEdyb3Vw
QWRkTWFya2luZ0NvbnN0cmFpbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCAxMTRmMDFkZWYxYWViM2QwNzVk
ODZjYjQwNjMxYmJkYThkYzhmOGFkLi4yY2ZkNWMyMTNhMTU3MTA2Zjc4ZjQ4NzYwMzJmODZhNDA5
Y2I1MDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtNjM5LDYgKzYzOSwzOCBAQCBjbGFzcyBDb25zdGFudEZv
bGRpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjYXNlIE1ha2VSb3Bl
OiB7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEFkamFjZW5jeUxp
c3Q6OlNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBFZGdlJiBlZGdlID0gbm9kZS0+
Y2hpbGRyZW4uY2hpbGQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZWRnZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNo
aWxkQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUoZWRnZSkudmFsdWUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFjaGlsZENvbnN0YW50KQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGRDb25zdGFudC5pc1N0cmluZygp
KQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGF1dG8qIHN0cmluZyA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1
ZUltcGwoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy0+bGVu
Z3RoKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
ICAgICAgICAvLyBEb24ndCBhbGxvdyB0aGUgTWFrZVJvcGUgdG8gaGF2ZSB6ZXJvIGNoaWxkcmVu
LgorICAgICAgICAgICAgICAgICAgICBpZiAoIWkgJiYgIW5vZGUtPmNoaWxkMigpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGRyZW4ucmVtb3ZlRWRnZShpLS0pOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPmNoaWxk
MigpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghbm9kZS0+Y2hpbGQzKCkpOworICAg
ICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA1MzUyMWU5MjAzMWI1MjRhNjI4ODdmOTU5
Y2FlYzc0ZDY5MTNhNmI2Li5iMTY1NWVmMjc1ZmYzMzA2NTcyNDVmYjQyMTI1OGIwNTU5NjI4YzZi
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDE3LTA1LTE1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtERkddIENvbnN0YW50IEZvbGRpbmcgUGhhc2Ugc2hvdWxk
IGNvbnZlcnQgTWFrZVJvcGUoIiIsIFN0cmluZykgPT4gSWRlbnRpdHkoU3RyaW5nKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY29uc3Rh
bnQtZm9sZGluZy1zaG91bGQtZm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHVua25vd24pOgorICAgICAgICAo
cmVhZFdvcmQxKToKKyAgICAgICAgKHJlYWRXb3JkMik6CisgICAgICAgIChyZWFkV29yZDMpOgor
ICAgICAgICAocmVhZFdvcmQ0KToKKwogMjAxNy0wNS0xMSAgSkYgQmFzdGllbiAgPGpmYmFzdGll
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IHN0b3Agc3VwcG9ydGluZyAweEQK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NvbnN0YW50LWZvbGRpbmctc2hvdWxkLWZvbGQt
bWFrZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5ncy5qcyBiL0pTVGVzdHMvc3RyZXNzL2NvbnN0YW50
LWZvbGRpbmctc2hvdWxkLWZvbGQtbWFrZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5ncy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NTM4NjJlYmZiZWU3YWNiMmIwN2Q4MGIzM2Y3NmQyNDY2MzUwMzU5Ci0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGluZy1zaG91bGQtZm9sZC1t
YWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzCkBAIC0wLDAgKzEsNjEgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB1bmtub3duKCkKK3sKKyAgICByZXR1cm4gIk9LIjsKK30KK25vSW5saW5lKHVu
a25vd24pOworCitmdW5jdGlvbiByZWFkV29yZDEoZmxhZykKK3sKKyAgICB2YXIgd29yZCA9ICIi
OworICAgIGlmIChmbGFnKSB7CisgICAgICAgIHdvcmQgKz0gdW5rbm93bigpOworICAgIH0KKyAg
ICByZXR1cm4gd29yZCArICJIZWxsb1dvcmxkIjsKK30KK25vSW5saW5lKHJlYWRXb3JkMSk7CisK
K2Z1bmN0aW9uIHJlYWRXb3JkMihmbGFnKQoreworICAgIHZhciB3b3JkID0gIiI7CisgICAgaWYg
KGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3duKCk7CisgICAgfQorICAgIHJldHVybiAi
SGVsbG9Xb3JsZCIgKyB3b3JkOworfQorbm9JbmxpbmUocmVhZFdvcmQyKTsKKworZnVuY3Rpb24g
cmVhZFdvcmQzKGZsYWcpCit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykgewor
ICAgICAgICB3b3JkICs9IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0dXJuICIiICsgd29yZDsK
K30KK25vSW5saW5lKHJlYWRXb3JkMyk7CisKK2Z1bmN0aW9uIHJlYWRXb3JkNChmbGFnKQorewor
ICAgIHZhciB3b3JkID0gIiI7CisgICAgaWYgKGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtu
b3duKCk7CisgICAgfQorICAgIHJldHVybiAiSGVsbG9Xb3JsZCIgKyB3b3JkICsgd29yZDsKK30K
K25vSW5saW5lKHJlYWRXb3JkNCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
KyAgICBzaG91bGRCZShyZWFkV29yZDEoZmFsc2UpLCAiSGVsbG9Xb3JsZCIpOworICAgIHNob3Vs
ZEJlKHJlYWRXb3JkMihmYWxzZSksICJIZWxsb1dvcmxkIik7CisgICAgc2hvdWxkQmUocmVhZFdv
cmQzKGZhbHNlKSwgIiIpOworICAgIHNob3VsZEJlKHJlYWRXb3JkNChmYWxzZSksICJIZWxsb1dv
cmxkIik7Cit9CitzaG91bGRCZShyZWFkV29yZDEodHJ1ZSksICJPS0hlbGxvV29ybGQiKTsKK3No
b3VsZEJlKHJlYWRXb3JkMih0cnVlKSwgIkhlbGxvV29ybGRPSyIpOworc2hvdWxkQmUocmVhZFdv
cmQzKHRydWUpLCAiT0siKTsKK3Nob3VsZEJlKHJlYWRXb3JkNCh0cnVlKSwgIkhlbGxvV29ybGRP
S09LIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310257</attachid>
            <date>2017-05-16 05:59:59 -0700</date>
            <delta_ts>2017-05-16 06:42:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172115-20170516215958.patch</filename>
            <type>text/plain</type>
            <size>7638</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjUwMGMwMjk2Zjc1MzcxMmI5NDY0MDU2ZmM1ZTdiMGIxYzRhZTRhLi5hZDNkOTQ5ZTM3YmQzODgy
ZWQ4YzZhYjcwYWFmMGQzMWUxZTUwYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOSBAQAogMjAxNy0wNS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIEZpeHVwIHBoYXNlLCB3ZSBh
dHRlbXB0IHRvIGZvbGQgTWFrZVJvcGUgdG8gSWRlbnRpdHkgKG9yIHJlZHVjZSBhcmd1bWVudHMp
IGJ5IGRyb3BwaW5nCisgICAgICAgIGVtcHR5IHN0cmluZ3MuIEhvd2V2ZXIsIHdoZW4gd2UgYXJl
IGluIEZpeHVwIHBoYXNlLCB3ZSBkbyBub3QgaGF2ZSBtdWNoIGluZm9ybWF0aW9uIGFib3V0Cisg
ICAgICAgIGNvbnN0YW50IHZhbHVlcy4KKworICAgICAgICBJbiBBUkVTLTYgQmFieWxvbiwgd2Ug
ZmluZCB0aGF0IHdlIGNhbiBjb25zdGFudC1mb2xkIE1ha2VSb3BlIGJ5IHVzaW5nIGNvbnN0YW50
cyBmaWd1cmVkCisgICAgICAgIG91dCBieSBDRkEuIFdpdGhvdXQgaXQsIEJhYnlsb24gcmVwZWF0
ZWRseSBwcm9kdWNlcyByb3BlIHN0cmluZ3MuIFRvIGZpeCB0aGlzLCB3ZSBpbnRyb2R1Y2UKKyAg
ICAgICAgTWFrZVJvcGUgaGFuZGxpbmcgaW4gY29uc3RhbnQgZm9sZGluZyBwaGFzZS4KKworICAg
ICAgICBJdCBzaG93cyA3LjUlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGluIEFSRVMtNiBCYWJ5
bG9uIHN0ZWFkeVN0YXRlLgorCisgICAgICAgICAgICBCZWZvcmU6CisKKyAgICAgICAgICAgIGZp
cnN0SXRlcmF0aW9uOiAgICAgNTAuMDIgKy0gMTQuNTYgbXMKKyAgICAgICAgICAgIGF2ZXJhZ2VX
b3JzdENhc2U6ICAgMjYuNTIgKy0gNC41MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6ICAg
ICAgICA4LjE1ICstIDAuMjMgbXMKKworICAgICAgICAgICAgQWZ0ZXI6CisKKyAgICAgICAgICAg
IGZpcnN0SXRlcmF0aW9uOiAgICAgNDkuMDggKy0gMTIuOTAgbXMKKyAgICAgICAgICAgIGF2ZXJh
Z2VXb3JzdENhc2U6ICAgMjUuMTYgKy0gMy44MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6
ICAgICAgICA3LjU4ICstIDAuMjEgbXMKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRp
bmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisKKzIwMTctMDUtMTYgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkIE9iamVjdGl2
ZSBDIGZpbGVzIHRvIENNYWtlIE1hYyBwb3J0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM1ZDQ0
YjQ3YWM4YTBhMzE4MWY3NGZhODZhNmFiNTg0ODAwYTUxOWEuLjE3NjlhNDdhZWI4ODg3NDU5YmE0
N2ExZDFmM2EzMTVjMmY3MWI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTU2Niw2ICs1NjYs
MzYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICB9CiAKICAgICBjYXNlIE1ha2VSb3Bl
OiB7CisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mQ2hpbGRyZW4gPSAwOworICAgICAgICB1bnNp
Z25lZCBudW1iZXJPZlJlbW92ZWRDaGlsZHJlbiA9IDA7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBBZGphY2VuY3lMaXN0OjpTaXplOyArK2kpIHsKKyAgICAgICAgICAgIEVkZ2Um
IGVkZ2UgPSBub2RlLT5jaGlsZHJlbi5jaGlsZChpKTsKKyAgICAgICAgICAgIGlmICghZWRnZSkK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICsrbnVtYmVyT2ZDaGlsZHJlbjsK
KworICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKGVk
Z2UpLnZhbHVlKCk7CisgICAgICAgICAgICBpZiAoIWNoaWxkQ29uc3RhbnQpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoIWNoaWxkQ29uc3RhbnQuaXNTdHJpbmco
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZ0lt
cGwqIHN0cmluZyA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKTsK
KyAgICAgICAgICAgIGlmICghc3RyaW5nKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgaWYgKHN0cmluZy0+bGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgICAgICsrbnVtYmVyT2ZSZW1vdmVkQ2hpbGRyZW47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAobnVtYmVyT2ZSZW1vdmVkQ2hpbGRyZW4pIHsKKyAgICAgICAgICAgIG1fc3Rh
dGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGhl
IGxhc3QgY2hpbGQuCisgICAgICAgICAgICBpZiAobnVtYmVyT2ZSZW1vdmVkQ2hpbGRyZW4gPT0g
bnVtYmVyT2ZDaGlsZHJlbiB8fCAobnVtYmVyT2ZSZW1vdmVkQ2hpbGRyZW4gKyAxKSA9PSBudW1i
ZXJPZkNoaWxkcmVuKSB7CisgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKSA9IGZvck5vZGUo
bm9kZS0+Y2hpbGRyZW4uY2hpbGQobnVtYmVyT2ZDaGlsZHJlbiAtIDEpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBmb3JOb2RlKG5v
ZGUpLnNldChtX2dyYXBoLCBtX3ZtLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMTE0ZjAxZGVmMWFlYjNkMDc1ZDg2Y2I0MDYzMWJi
ZGE4ZGM4ZjhhZC4uODk4MjU0MjIxYWFlYzkwOTY2ODdkYTkyZWU0N2NkOGU1Yjc3OGUyOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKQEAgLTYzOSw2ICs2MzksMzggQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FzZSBNYWtlUm9wZTogeworICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBBZGphY2VuY3lMaXN0OjpTaXplOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRWRnZSYgZWRnZSA9IG5vZGUtPmNoaWxkcmVuLmNo
aWxkKGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWVkZ2UpCisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50
ID0gbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghY2hpbGRDb25zdGFudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmdJbXBsKiBzdHJpbmcgPSBhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBs
KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nKQorICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmctPmxlbmd0aCgp
KQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAg
ICAgLy8gRG9uJ3QgYWxsb3cgdGhlIE1ha2VSb3BlIHRvIGhhdmUgemVybyBjaGlsZHJlbi4KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFpICYmICFub2RlLT5jaGlsZDIoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNoaWxkcmVu
LnJlbW92ZUVkZ2UoaS0tKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFub2RlLT5jaGlsZDIoKSkg
eworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIW5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKKyAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9n
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRlZGU1OGE5MmE4YmRkODIzMGRlZDdmMTcxNzhi
MzU1ZjJlZDI2My4uZTlkZDYwMWY3NzA2Y2IyNDkzNzExMjU1N2YxZDJkYWFhZmJmNWVmZiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNy0wNS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NvbnN0YW50LWZv
bGRpbmctc2hvdWxkLWZvbGQtbWFrZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5ncy5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh1bmtub3duKToKKyAgICAgICAgKHJlYWRX
b3JkMSk6CisgICAgICAgIChyZWFkV29yZDIpOgorICAgICAgICAocmVhZFdvcmQzKToKKyAgICAg
ICAgKHJlYWRXb3JkNCk6CisKIDIwMTctMDUtMTYgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5OiBhZGQgbWVtb3J5IGZ1enplcgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGluZy1zaG91bGQtZm9sZC1tYWtlLXJv
cGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzIGIvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGlu
Zy1zaG91bGQtZm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk1Mzg2MmViZmJlZTdhY2IyYjA3ZDgwYjMzZjc2ZDI0NjYzNTAzNTkKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9jb25zdGFudC1mb2xkaW5nLXNob3VsZC1mb2xkLW1ha2Utcm9w
ZS13aXRoLWVtcHR5LXN0cmluZ3MuanMKQEAgLTAsMCArMSw2MSBAQAorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0
aW9uIHVua25vd24oKQoreworICAgIHJldHVybiAiT0siOworfQorbm9JbmxpbmUodW5rbm93bik7
CisKK2Z1bmN0aW9uIHJlYWRXb3JkMShmbGFnKQoreworICAgIHZhciB3b3JkID0gIiI7CisgICAg
aWYgKGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3duKCk7CisgICAgfQorICAgIHJldHVy
biB3b3JkICsgIkhlbGxvV29ybGQiOworfQorbm9JbmxpbmUocmVhZFdvcmQxKTsKKworZnVuY3Rp
b24gcmVhZFdvcmQyKGZsYWcpCit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykg
eworICAgICAgICB3b3JkICs9IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0dXJuICJIZWxsb1dv
cmxkIiArIHdvcmQ7Cit9Citub0lubGluZShyZWFkV29yZDIpOworCitmdW5jdGlvbiByZWFkV29y
ZDMoZmxhZykKK3sKKyAgICB2YXIgd29yZCA9ICIiOworICAgIGlmIChmbGFnKSB7CisgICAgICAg
IHdvcmQgKz0gdW5rbm93bigpOworICAgIH0KKyAgICByZXR1cm4gIiIgKyB3b3JkOworfQorbm9J
bmxpbmUocmVhZFdvcmQzKTsKKworZnVuY3Rpb24gcmVhZFdvcmQ0KGZsYWcpCit7CisgICAgdmFy
IHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykgeworICAgICAgICB3b3JkICs9IHVua25vd24oKTsK
KyAgICB9CisgICAgcmV0dXJuICJIZWxsb1dvcmxkIiArIHdvcmQgKyB3b3JkOworfQorbm9Jbmxp
bmUocmVhZFdvcmQ0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNo
b3VsZEJlKHJlYWRXb3JkMShmYWxzZSksICJIZWxsb1dvcmxkIik7CisgICAgc2hvdWxkQmUocmVh
ZFdvcmQyKGZhbHNlKSwgIkhlbGxvV29ybGQiKTsKKyAgICBzaG91bGRCZShyZWFkV29yZDMoZmFs
c2UpLCAiIik7CisgICAgc2hvdWxkQmUocmVhZFdvcmQ0KGZhbHNlKSwgIkhlbGxvV29ybGQiKTsK
K30KK3Nob3VsZEJlKHJlYWRXb3JkMSh0cnVlKSwgIk9LSGVsbG9Xb3JsZCIpOworc2hvdWxkQmUo
cmVhZFdvcmQyKHRydWUpLCAiSGVsbG9Xb3JsZE9LIik7CitzaG91bGRCZShyZWFkV29yZDModHJ1
ZSksICJPSyIpOworc2hvdWxkQmUocmVhZFdvcmQ0KHRydWUpLCAiSGVsbG9Xb3JsZE9LT0siKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310259</attachid>
            <date>2017-05-16 06:42:23 -0700</date>
            <delta_ts>2017-05-16 14:54:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172115-20170516224222.patch</filename>
            <type>text/plain</type>
            <size>7821</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjUwMGMwMjk2Zjc1MzcxMmI5NDY0MDU2ZmM1ZTdiMGIxYzRhZTRhLi5hZDNkOTQ5ZTM3YmQzODgy
ZWQ4YzZhYjcwYWFmMGQzMWUxZTUwYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOSBAQAogMjAxNy0wNS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNlIHNob3VsZCBjb252
ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIEZpeHVwIHBoYXNlLCB3ZSBh
dHRlbXB0IHRvIGZvbGQgTWFrZVJvcGUgdG8gSWRlbnRpdHkgKG9yIHJlZHVjZSBhcmd1bWVudHMp
IGJ5IGRyb3BwaW5nCisgICAgICAgIGVtcHR5IHN0cmluZ3MuIEhvd2V2ZXIsIHdoZW4gd2UgYXJl
IGluIEZpeHVwIHBoYXNlLCB3ZSBkbyBub3QgaGF2ZSBtdWNoIGluZm9ybWF0aW9uIGFib3V0Cisg
ICAgICAgIGNvbnN0YW50IHZhbHVlcy4KKworICAgICAgICBJbiBBUkVTLTYgQmFieWxvbiwgd2Ug
ZmluZCB0aGF0IHdlIGNhbiBjb25zdGFudC1mb2xkIE1ha2VSb3BlIGJ5IHVzaW5nIGNvbnN0YW50
cyBmaWd1cmVkCisgICAgICAgIG91dCBieSBDRkEuIFdpdGhvdXQgaXQsIEJhYnlsb24gcmVwZWF0
ZWRseSBwcm9kdWNlcyByb3BlIHN0cmluZ3MuIFRvIGZpeCB0aGlzLCB3ZSBpbnRyb2R1Y2UKKyAg
ICAgICAgTWFrZVJvcGUgaGFuZGxpbmcgaW4gY29uc3RhbnQgZm9sZGluZyBwaGFzZS4KKworICAg
ICAgICBJdCBzaG93cyA3LjUlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGluIEFSRVMtNiBCYWJ5
bG9uIHN0ZWFkeVN0YXRlLgorCisgICAgICAgICAgICBCZWZvcmU6CisKKyAgICAgICAgICAgIGZp
cnN0SXRlcmF0aW9uOiAgICAgNTAuMDIgKy0gMTQuNTYgbXMKKyAgICAgICAgICAgIGF2ZXJhZ2VX
b3JzdENhc2U6ICAgMjYuNTIgKy0gNC41MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6ICAg
ICAgICA4LjE1ICstIDAuMjMgbXMKKworICAgICAgICAgICAgQWZ0ZXI6CisKKyAgICAgICAgICAg
IGZpcnN0SXRlcmF0aW9uOiAgICAgNDkuMDggKy0gMTIuOTAgbXMKKyAgICAgICAgICAgIGF2ZXJh
Z2VXb3JzdENhc2U6ICAgMjUuMTYgKy0gMy44MiBtcworICAgICAgICAgICAgc3RlYWR5U3RhdGU6
ICAgICAgICA3LjU4ICstIDAuMjEgbXMKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRp
bmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisKKzIwMTctMDUtMTYgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkIE9iamVjdGl2
ZSBDIGZpbGVzIHRvIENNYWtlIE1hYyBwb3J0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM1ZDQ0
YjQ3YWM4YTBhMzE4MWY3NGZhODZhNmFiNTg0ODAwYTUxOWEuLmNhYmQ2M2JjZDY2ZDY1N2E5NGE3
NGQ2YmNlZWZiNTE3NDBlOTM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTU2Niw2ICs1NjYs
NDUgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICB9CiAKICAgICBjYXNlIE1ha2VSb3Bl
OiB7CisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mQ2hpbGRyZW4gPSAwOworICAgICAgICB1bnNp
Z25lZCBudW1iZXJPZlJlbW92ZWRDaGlsZHJlbiA9IDA7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+IG5vbkVtcHR5SW5kZXg7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBBZGphY2VuY3lMaXN0OjpTaXplOyArK2kpIHsKKyAgICAgICAgICAgIEVkZ2UmIGVkZ2UgPSBu
b2RlLT5jaGlsZHJlbi5jaGlsZChpKTsKKyAgICAgICAgICAgIGlmICghZWRnZSkKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICsrbnVtYmVyT2ZDaGlsZHJlbjsKKworICAgICAg
ICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLnZhbHVl
KCk7CisgICAgICAgICAgICBpZiAoIWNoaWxkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgICBu
b25FbXB0eUluZGV4ID0gaTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmICghY2hpbGRDb25zdGFudC5pc1N0cmluZygpKSB7CisgICAgICAg
ICAgICAgICAgbm9uRW1wdHlJbmRleCA9IGk7CisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPmxl
bmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbm9uRW1wdHlJbmRleCA9IGk7CisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICsrbnVtYmVyT2ZS
ZW1vdmVkQ2hpbGRyZW47CisgICAgICAgIH0KKworICAgICAgICBpZiAobnVtYmVyT2ZSZW1vdmVk
Q2hpbGRyZW4pIHsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7
CisgICAgICAgICAgICBpZiAobnVtYmVyT2ZSZW1vdmVkQ2hpbGRyZW4gPT0gbnVtYmVyT2ZDaGls
ZHJlbikgeworICAgICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgbGFzdCBjaGlsZC4gVGhp
cyBpcyB0aGUgd2F5IHRha2VuIGluIHRoZSBjb25zdGFudCBmb2xkaW5nIHBoYXNlLgorICAgICAg
ICAgICAgICAgIGZvck5vZGUobm9kZSkgPSBmb3JOb2RlKG5vZGUtPmNoaWxkcmVuLmNoaWxkKG51
bWJlck9mQ2hpbGRyZW4gLSAxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoKG51bWJlck9mUmVtb3ZlZENoaWxkcmVuICsgMSkgPT0gbnVt
YmVyT2ZDaGlsZHJlbikgeworICAgICAgICAgICAgICAgIEFTU0VSVChub25FbXB0eUluZGV4KTsK
KyAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpID0gZm9yTm9kZShub2RlLT5jaGlsZHJlbi5j
aGlsZChub25FbXB0eUluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldChtX2dyYXBo
LCBtX3ZtLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKaW5kZXggMTE0ZjAxZGVmMWFlYjNkMDc1ZDg2Y2I0MDYzMWJiZGE4ZGM4ZjhhZC4uMzFh
YWUwZjA1NjkyZDQyM2QxMjE3MmY0OGMxYjRmNzhjZmYwYjI0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTYz
OSw2ICs2MzksMzUgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgY2FzZSBNYWtlUm9wZTogeworICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBBZGphY2VuY3lMaXN0OjpTaXplOyArK2kpIHsKKyAgICAgICAg
ICAgICAgICAgICAgRWRnZSYgZWRnZSA9IG5vZGUtPmNoaWxkcmVuLmNoaWxkKGkpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoIWVkZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gbV9zdGF0ZS5mb3JO
b2RlKGVkZ2UpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGRDb25zdGFu
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAg
ICBpZiAoIWNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoY2hpbGRDb25zdGFu
dCktPmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgdGhlIE1ha2VSb3BlIHRvIGhhdmUgemVybyBj
aGlsZHJlbi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpICYmICFub2RlLT5jaGlsZDIoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkcmVuLnJlbW92ZUVkZ2UoaS0tKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFub2Rl
LT5jaGlsZDIoKSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIW5vZGUtPmNoaWxkMygp
KTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKKyAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTRlZGU1OGE5MmE4YmRkODIz
MGRlZDdmMTcxNzhiMzU1ZjJlZDI2My4uZTlkZDYwMWY3NzA2Y2IyNDkzNzExMjU1N2YxZDJkYWFh
ZmJmNWVmZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wNS0xNiAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBDb25zdGFudCBGb2xkaW5nIFBoYXNl
IHNob3VsZCBjb252ZXJ0IE1ha2VSb3BlKCIiLCBTdHJpbmcpID0+IElkZW50aXR5KFN0cmluZykK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjExNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNz
L2NvbnN0YW50LWZvbGRpbmctc2hvdWxkLWZvbGQtbWFrZS1yb3BlLXdpdGgtZW1wdHktc3RyaW5n
cy5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh1bmtub3duKToKKyAg
ICAgICAgKHJlYWRXb3JkMSk6CisgICAgICAgIChyZWFkV29yZDIpOgorICAgICAgICAocmVhZFdv
cmQzKToKKyAgICAgICAgKHJlYWRXb3JkNCk6CisKIDIwMTctMDUtMTYgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5OiBhZGQgbWVtb3J5IGZ1
enplcgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY29uc3RhbnQtZm9sZGluZy1zaG91bGQt
Zm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpzIGIvSlNUZXN0cy9zdHJlc3MvY29u
c3RhbnQtZm9sZGluZy1zaG91bGQtZm9sZC1tYWtlLXJvcGUtd2l0aC1lbXB0eS1zdHJpbmdzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk1Mzg2MmViZmJlZTdhY2IyYjA3ZDgwYjMzZjc2ZDI0NjYzNTAzNTkKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9jb25zdGFudC1mb2xkaW5nLXNob3VsZC1m
b2xkLW1ha2Utcm9wZS13aXRoLWVtcHR5LXN0cmluZ3MuanMKQEAgLTAsMCArMSw2MSBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIHVua25vd24oKQoreworICAgIHJldHVybiAiT0siOworfQorbm9Jbmxp
bmUodW5rbm93bik7CisKK2Z1bmN0aW9uIHJlYWRXb3JkMShmbGFnKQoreworICAgIHZhciB3b3Jk
ID0gIiI7CisgICAgaWYgKGZsYWcpIHsKKyAgICAgICAgd29yZCArPSB1bmtub3duKCk7CisgICAg
fQorICAgIHJldHVybiB3b3JkICsgIkhlbGxvV29ybGQiOworfQorbm9JbmxpbmUocmVhZFdvcmQx
KTsKKworZnVuY3Rpb24gcmVhZFdvcmQyKGZsYWcpCit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAg
ICBpZiAoZmxhZykgeworICAgICAgICB3b3JkICs9IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0
dXJuICJIZWxsb1dvcmxkIiArIHdvcmQ7Cit9Citub0lubGluZShyZWFkV29yZDIpOworCitmdW5j
dGlvbiByZWFkV29yZDMoZmxhZykKK3sKKyAgICB2YXIgd29yZCA9ICIiOworICAgIGlmIChmbGFn
KSB7CisgICAgICAgIHdvcmQgKz0gdW5rbm93bigpOworICAgIH0KKyAgICByZXR1cm4gIiIgKyB3
b3JkOworfQorbm9JbmxpbmUocmVhZFdvcmQzKTsKKworZnVuY3Rpb24gcmVhZFdvcmQ0KGZsYWcp
Cit7CisgICAgdmFyIHdvcmQgPSAiIjsKKyAgICBpZiAoZmxhZykgeworICAgICAgICB3b3JkICs9
IHVua25vd24oKTsKKyAgICB9CisgICAgcmV0dXJuICJIZWxsb1dvcmxkIiArIHdvcmQgKyB3b3Jk
OworfQorbm9JbmxpbmUocmVhZFdvcmQ0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsr
aSkgeworICAgIHNob3VsZEJlKHJlYWRXb3JkMShmYWxzZSksICJIZWxsb1dvcmxkIik7CisgICAg
c2hvdWxkQmUocmVhZFdvcmQyKGZhbHNlKSwgIkhlbGxvV29ybGQiKTsKKyAgICBzaG91bGRCZShy
ZWFkV29yZDMoZmFsc2UpLCAiIik7CisgICAgc2hvdWxkQmUocmVhZFdvcmQ0KGZhbHNlKSwgIkhl
bGxvV29ybGQiKTsKK30KK3Nob3VsZEJlKHJlYWRXb3JkMSh0cnVlKSwgIk9LSGVsbG9Xb3JsZCIp
Oworc2hvdWxkQmUocmVhZFdvcmQyKHRydWUpLCAiSGVsbG9Xb3JsZE9LIik7CitzaG91bGRCZShy
ZWFkV29yZDModHJ1ZSksICJPSyIpOworc2hvdWxkQmUocmVhZFdvcmQ0KHRydWUpLCAiSGVsbG9X
b3JsZE9LT0siKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>