<?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>182792</bug_id>
          
          <creation_ts>2018-02-14 06:16:36 -0800</creation_ts>
          <short_desc>[FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage</short_desc>
          <delta_ts>2018-02-22 22:42:25 -0800</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>InRadar</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>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1399040</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-14 06:16:36 -0800</bug_when>
    <thetext>[FTL] Support HasIndexedProperty for ArrayStorage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399041</commentid>
    <comment_count>1</comment_count>
      <attachid>333791</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-14 06:17:38 -0800</bug_when>
    <thetext>Created attachment 333791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400620</commentid>
    <comment_count>2</comment_count>
      <attachid>333791</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-02-19 19:02:56 -0800</bug_when>
    <thetext>Comment on attachment 333791
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        [FTL] Support HasIndexedProperty for ArrayStorage

And SlowPutArrayStorage.

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This patch adds HasIndexedProperty for ArrayStorage in FTL.

And SlowPutArrayStorage.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:9781
&gt; +                m_out.jump(checkHole);

This needs to do a speculation check that it&apos;s not out of bounds. Seems like this should be testable via crashing on some OOB read. You also won&apos;t need a &quot;checkHole&quot; dedicated block if it&apos;s in bounds, you can just use the incoming block we&apos;re emitting code in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400673</commentid>
    <comment_count>3</comment_count>
      <attachid>333791</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-19 23:06:20 -0800</bug_when>
    <thetext>Comment on attachment 333791
Patch

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

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:9781
&gt;&gt; +                m_out.jump(checkHole);
&gt; 
&gt; This needs to do a speculation check that it&apos;s not out of bounds. Seems like this should be testable via crashing on some OOB read. You also won&apos;t need a &quot;checkHole&quot; dedicated block if it&apos;s in bounds, you can just use the incoming block we&apos;re emitting code in.

As is the same to GetByVal etc., HasIndexedProperty also has special lowering rule in SSA lowering phase, which emits CheckInBounds.
We do not need to perform out-of-bounds speculation here since preceeding CheckInBounds does this. For ArrayStorage/SlowPutArrayStorage, we emit GetVectorLength and CheckInBounds instead of GetArrayLength and CheckInBounds. So it is correctly handled.

For checkHole case, I&apos;ll update the patch to drop checkHole BB for InBounds case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400676</commentid>
    <comment_count>4</comment_count>
      <attachid>334244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-19 23:16:55 -0800</bug_when>
    <thetext>Created attachment 334244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401644</commentid>
    <comment_count>5</comment_count>
      <attachid>334244</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-22 20:47:58 -0800</bug_when>
    <thetext>Comment on attachment 334244
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401653</commentid>
    <comment_count>6</comment_count>
      <attachid>334244</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 22:18:23 -0800</bug_when>
    <thetext>Comment on attachment 334244
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401657</commentid>
    <comment_count>7</comment_count>
      <attachid>334244</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-22 22:41:54 -0800</bug_when>
    <thetext>Comment on attachment 334244
Patch

Clearing flags on attachment: 334244

Committed r228943: &lt;https://trac.webkit.org/changeset/228943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401658</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-22 22:41:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401660</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-22 22:42:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/37816653&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333791</attachid>
            <date>2018-02-14 06:17:38 -0800</date>
            <delta_ts>2018-02-19 23:16:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182792-20180214231737.patch</filename>
            <type>text/plain</type>
            <size>6858</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NmUxYWNmMmJiZWMyOTM0ZWUyNGNjM2E2YTIzY2M4OTcwM2IzNzZhLi4wYjY2ZmZhOTBiNjhiZGNk
ZDhhYTMyMGMyMWVjN2Q2YzBlNmFhZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wMi0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRlRMXSBTdXBwb3J0IEhhc0luZGV4ZWRQcm9wZXJ0eSBmb3IgQXJy
YXlTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODI3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgSGFzSW5kZXhlZFByb3BlcnR5IGZvciBBcnJheVN0b3JhZ2UgaW4g
RlRMLgorICAgICAgICBIYXNJbmRleGVkUHJvcGVydHkgd2l0aCBBcnJheVN0b3JhZ2UgZnJlcXVl
bnRseSBjYXVzZXMgRlRMIGNvbXBpbGF0aW9uIGZhaWx1cmVzCisgICAgICAgIGluIHdlYi10b29s
aW5nLWJlbmNobWFya3MuCisKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUhh
c0luZGV4ZWRQcm9wZXJ0eSk6CisKIDIwMTgtMDItMTMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgcHV0RGlyZWN0SW5kZXhTbG93T3JCZXlvbmRWZWN0b3JMZW5n
dGggbmVlZHMgdG8gY29udmVydCB0byBkaWN0aW9uYXJ5IGluZGV4aW5nIG1vZGUgYWx3YXlzIGlm
IGF0dHJpYnV0ZXMgYXJlIHByZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAppbmRleCA0OTk1ZTNkMjViNzU2M2VhZTM5N2M3MzIyODA5Yjc2ZTgx
NWEwZThkLi45ZTIxMzAxYmNhYWY3ZTMzZThiMzU5OTRlNGI2ZmRjYmE3Mjg5YWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yMzYsNiAr
MjM2LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBCb29sZWFuVG9OdW1iZXI6CiAgICAgY2FzZSBIYXNHZW5lcmljUHJvcGVydHk6CiAg
ICAgY2FzZSBIYXNTdHJ1Y3R1cmVQcm9wZXJ0eToKKyAgICBjYXNlIEhhc0luZGV4ZWRQcm9wZXJ0
eToKICAgICBjYXNlIEdldERpcmVjdFBuYW1lOgogICAgIGNhc2UgR2V0RW51bWVyYWJsZUxlbmd0
aDoKICAgICBjYXNlIEdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2U6CkBAIC0zOTQsMTcgKzM5NSw2
IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEhhc0luZGV4ZWRQcm9wZXJ0eToKLSAgICAgICAgc3dpdGNoIChub2Rl
LT5hcnJheU1vZGUoKS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBBcnJheTo6Rm9yY2VFeGl0Ogot
ICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgot
ICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKLSAgICAgICAg
fQotICAgICAgICBicmVhazsKICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICBzd2l0Y2ggKG5v
ZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXgg
ZDBmMjVjNzczY2Y0ODk3YjI3ZDA1NjE5ZWZmYmUwNmM3ZDI5NTgxOS4uYmUwMzVmODFkZmRlM2Uy
NTVjN2FiNmZiOTQ2OWEwYzcyMzVkNjNkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTc2MSwxMCArOTc2MSw1MSBAQCBjbGFzcyBMb3dl
ckRGR1RvQjMgewogICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5waGkoSW50MzIsIGNoZWNr
SG9sZVJlc3VsdCwgc2xvd1Jlc3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBB
cnJheTo6QXJyYXlTdG9yYWdlOiB7CisgICAgICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMiht
X25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdG9yYWdlID0gbG93U3RvcmFn
ZShtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbnRlcm5hbE1ldGhvZFR5
cGUgPSBtX291dC5jb25zdEludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1fbm9kZS0+aW50ZXJu
YWxNZXRob2RUeXBlKCkpKTsKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY2hlY2tIb2xlID0g
bV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9v
dXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1f
b3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgICAgIGlmICghbV9ub2RlLT5hcnJheU1vZGUoKS5p
c0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlu
ZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV92
ZWN0b3JMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAgICAgcmFyZWx5KHNsb3dDYXNlKSwgdXN1
YWxseShjaGVja0hvbGUpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY2hlY2tIb2xlKTsKKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQg
PSBtX291dC5hcHBlbmRUbyhjaGVja0hvbGUsIHNsb3dDYXNlKTsKKyAgICAgICAgICAgIExWYWx1
ZSBjaGVja0hvbGVSZXN1bHRWYWx1ZSA9CisgICAgICAgICAgICAgICAgbV9vdXQubm90WmVybzY0
KG1fb3V0LmxvYWQ2NChiYXNlSW5kZXgobV9oZWFwcy5BcnJheVN0b3JhZ2VfdmVjdG9yLCBzdG9y
YWdlLCBpbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjaGVja0hvbGVSZXN1bHRWYWx1ZSk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goY2hlY2tIb2xlUmVzdWx0VmFsdWUsIHVzdWFsbHko
Y29udGludWF0aW9uKSwgcmFyZWx5KHNsb3dDYXNlKSk7CisKKyAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAg
ICBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwKKyAg
ICAgICAgICAgICAgICB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlCeUludCksIG1fY2FsbEZyYW1lLCBiYXNlLCBpbmRleCwgaW50ZXJuYWxN
ZXRob2RUeXBlKSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAg
ICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKEludDMyLCBjaGVja0hvbGVSZXN1bHQsIHNsb3dS
ZXN1bHQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVs
dDogeworICAgICAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7
CisgICAgICAgICAgICBMVmFsdWUgaW50ZXJuYWxNZXRob2RUeXBlID0gbV9vdXQuY29uc3RJbnQz
MihzdGF0aWNfY2FzdDxpbnQzMl90PihtX25vZGUtPmludGVybmFsTWV0aG9kVHlwZSgpKSk7Cisg
ICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0
LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpLAorICAgICAgICAg
ICAgICAgIHZtQ2FsbChJbnQ2NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQ
cm9wZXJ0eUJ5SW50KSwgbV9jYWxsRnJhbWUsIGJhc2UsIGluZGV4LCBpbnRlcm5hbE1ldGhvZFR5
cGUpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDNlNzZiZTc0YjRmOWMzYWNjYjA4ZDk4YTIxMWEzNmFiZDE1N2FmOTcuLjRhNzg5NGE1MGFjZGNl
ZWQ2OTliZmM1ZTI2MjQ5Zjc2OTc5ZTQ0MmEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMDItMTQgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0ZUTF0gU3Vw
cG9ydCBIYXNJbmRleGVkUHJvcGVydHkgZm9yIEFycmF5U3RvcmFnZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNzkyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvaGFzLWluZGV4ZWQtcHJv
cGVydHktYXJyYXktc3RvcmFnZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgICh0ZXN0MSk6CisgICAgICAgICh0ZXN0Mik6CisKIDIwMTgtMDItMTMgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgcHV0RGlyZWN0SW5kZXhTbG93T3JCZXlv
bmRWZWN0b3JMZW5ndGggbmVlZHMgdG8gY29udmVydCB0byBkaWN0aW9uYXJ5IGluZGV4aW5nIG1v
ZGUgYWx3YXlzIGlmIGF0dHJpYnV0ZXMgYXJlIHByZXNlbnQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LWFycmF5LXN0b3JhZ2UuanMgYi9KU1Rlc3RzL3N0
cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1hcnJheS1zdG9yYWdlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3
NjUyN2E1NTNiZjU1ZWRjNzkwMWYzODQ5ZjZhYTBmYjQ0YmRhYmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1hcnJheS1zdG9yYWdlLmpzCkBA
IC0wLDAgKzEsMzggQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0MShhcnJheSkKK3sKKyAgICBy
ZXR1cm4gMiBpbiBhcnJheTsKK30KK25vSW5saW5lKHRlc3QxKTsKKwordmFyIGFycmF5ID0gWzEs
IDIsIDMsIDRdOworZW5zdXJlQXJyYXlTdG9yYWdlKGFycmF5KTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWU1OyArK2kpCisgICAgc2hvdWxkQmUodGVzdDEoYXJyYXkpLCB0cnVlKTsKKwordmFyIGFy
cmF5ID0gWzEsIDIsICwgNF07CitlbnN1cmVBcnJheVN0b3JhZ2UoYXJyYXkpOworc2hvdWxkQmUo
dGVzdDEoYXJyYXkpLCBmYWxzZSk7CisKK3ZhciBhcnJheSA9IFtdOworZW5zdXJlQXJyYXlTdG9y
YWdlKGFycmF5KTsKK3Nob3VsZEJlKHRlc3QxKGFycmF5KSwgZmFsc2UpOworCitmdW5jdGlvbiB0
ZXN0MihhcnJheSkKK3sKKyAgICByZXR1cm4gMiBpbiBhcnJheTsKK30KK25vSW5saW5lKHRlc3Qy
KTsKKwordmFyIGFycmF5MSA9IFsxLCAyLCAzLCA0XTsKK2Vuc3VyZUFycmF5U3RvcmFnZShhcnJh
eTEpOwordmFyIGFycmF5MiA9IFsxLCAyXTsKK2Vuc3VyZUFycmF5U3RvcmFnZShhcnJheTIpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkKKyAgICBzaG91bGRCZSh0ZXN0MihhcnJheTIp
LCBmYWxzZSk7CitzaG91bGRCZSh0ZXN0MihhcnJheTIpLCBmYWxzZSk7CitzaG91bGRCZSh0ZXN0
MihhcnJheTEpLCB0cnVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334244</attachid>
            <date>2018-02-19 23:16:55 -0800</date>
            <delta_ts>2018-02-22 22:41:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182792-20180220161654.patch</filename>
            <type>text/plain</type>
            <size>10975</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZDNkZTAxYWUzY2Y0ZDE5N2M5YjIzMjcxOGE1ZmEzZGRkZDY4NzBmLi5mNDkyZmVmNWU1NWJlMDVl
ZTBjZjcyYTkwNGNkYTEzNjQ5NzE0NGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wMi0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRlRMXSBTdXBwb3J0IEhhc0luZGV4ZWRQcm9wZXJ0eSBmb3IgQXJy
YXlTdG9yYWdlIGFuZCBTbG93UHV0QXJyYXlTdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgSGFzSW5kZXhlZFByb3Bl
cnR5IGZvciBBcnJheVN0b3JhZ2UgYW5kIFNsb3dQdXRBcnJheVN0b3JhZ2UgaW4gRlRMLgorICAg
ICAgICBIYXNJbmRleGVkUHJvcGVydHkgd2l0aCBBcnJheVN0b3JhZ2UgZnJlcXVlbnRseSBjYXVz
ZXMgRlRMIGNvbXBpbGF0aW9uIGZhaWx1cmVzCisgICAgICAgIGluIHdlYi10b29saW5nLWJlbmNo
bWFya3MuCisKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUhhc0luZGV4ZWRQ
cm9wZXJ0eSk6CisKIDIwMTgtMDItMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKICAgICAgICAgW0ZUTF0gU3VwcG9ydCBBcnJheVB1c2ggZm9yIEFycmF5U3RvcmFn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4
IDQxOGQ5MDI2MWFkZjdhNWZkMGJmMDI1ZTQ5NTMwYjk2MjQ3ZWQzNmYuLjgxNzMwZjkxNzkzMmYx
ZjYwNDMwYzk1ZDc4OGY4ZmUwYzk4NWNkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTIzNyw2ICsyMzcsNyBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIEJvb2xlYW5Ub051bWJl
cjoKICAgICBjYXNlIEhhc0dlbmVyaWNQcm9wZXJ0eToKICAgICBjYXNlIEhhc1N0cnVjdHVyZVBy
b3BlcnR5OgorICAgIGNhc2UgSGFzSW5kZXhlZFByb3BlcnR5OgogICAgIGNhc2UgR2V0RGlyZWN0
UG5hbWU6CiAgICAgY2FzZSBHZXRFbnVtZXJhYmxlTGVuZ3RoOgogICAgIGNhc2UgR2V0SW5kZXhl
ZFByb3BlcnR5U3RvcmFnZToKQEAgLTM4NywxNyArMzg4LDYgQEAgaW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSGFzSW5k
ZXhlZFByb3BlcnR5OgotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkg
ewotICAgICAgICBjYXNlIEFycmF5OjpGb3JjZUV4aXQ6Ci0gICAgICAgIGNhc2UgQXJyYXk6Oklu
dDMyOgotICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNv
bnRpZ3VvdXM6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIHJldHVybiBDYW5ub3RDb21waWxlOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwogICAg
IGNhc2UgR2V0QnlWYWw6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgp
KSB7CiAgICAgICAgIGNhc2UgQXJyYXk6OkZvcmNlRXhpdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwY2MyMmExN2M4MjllNDRmZmY4M2Rj
NWY2YTYxZDFiNzdjMDg0MTAxLi43YzBjZmM3MzQ5M2JlMGVhNjQxNGMyYTEzZmIyN2IxMTJkZDc0
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CkBAIC05ODM0LDE5ICs5ODM0LDIwIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAg
ICBJbmRleGVkQWJzdHJhY3RIZWFwJiBoZWFwID0gbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkg
PT0gQXJyYXk6OkludDMyID8KICAgICAgICAgICAgICAgICBtX2hlYXBzLmluZGV4ZWRJbnQzMlBy
b3BlcnRpZXMgOiBtX2hlYXBzLmluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllczsKIAotICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgY2hlY2tIb2xlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG51bGxwdHI7CiAKICAgICAgICAgICAgIGlmICghbV9u
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNC
bG9jayBjaGVja0hvbGUgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgICAgIG1fb3V0
LmJyYW5jaCgKICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKAogICAgICAg
ICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2Us
IG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpLAogICAgICAgICAgICAgICAgICAgICBy
YXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGNoZWNrSG9sZSkpOworICAgICAgICAgICAgICAgIGxh
c3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oY2hlY2tIb2xlLCBzbG93Q2FzZSk7CiAgICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtX291dC5qdW1wKGNoZWNrSG9sZSk7CisgICAgICAg
ICAgICAgICAgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd0Nhc2Up
OwogCi0gICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGNo
ZWNrSG9sZSwgc2xvd0Nhc2UpOwogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZh
bHVlID0KICAgICAgICAgICAgICAgICBtX291dC5ub3RaZXJvNjQobV9vdXQubG9hZDY0KGJhc2VJ
bmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwgbV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjaGVja0hv
bGVSZXN1bHRWYWx1ZSk7CkBAIC05ODcwLDE5ICs5ODcxLDIwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAg
PSBtX2hlYXBzLmluZGV4ZWREb3VibGVQcm9wZXJ0aWVzOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBMQmFzaWNCbG9jayBjaGVja0hvbGUgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAg
TEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbnVsbHB0cjsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNoZWNrSG9sZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1
YWwoCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRp
dmUoc3RvcmFnZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCiAgICAgICAgICAg
ICAgICAgICAgIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoY2hlY2tIb2xlKSk7CisgICAgICAg
ICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhjaGVja0hvbGUsIHNsb3dDYXNlKTsK
ICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY2hlY2tIb2xl
KTsKKyAgICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5ld0Jsb2Nrc0JlZm9y
ZShzbG93Q2FzZSk7CiAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQu
YXBwZW5kVG8oY2hlY2tIb2xlLCBzbG93Q2FzZSk7CiAgICAgICAgICAgICBMVmFsdWUgZG91Ymxl
VmFsdWUgPSBtX291dC5sb2FkRG91YmxlKGJhc2VJbmRleChoZWFwLCBzdG9yYWdlLCBpbmRleCwg
bV9ub2RlLT5jaGlsZDIoKSkpOwogICAgICAgICAgICAgTFZhbHVlIGNoZWNrSG9sZVJlc3VsdFZh
bHVlID0gbV9vdXQuZG91YmxlRXF1YWwoZG91YmxlVmFsdWUsIGRvdWJsZVZhbHVlKTsKICAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGNoZWNrSG9sZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjaGVj
a0hvbGVSZXN1bHRWYWx1ZSk7CkBAIC05ODk4LDEwICs5OTAwLDUyIEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShJbnQzMiwgY2hlY2tIb2xl
UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICAgICAgIAotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIEFycmF5
OjpBcnJheVN0b3JhZ2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fbm9k
ZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1f
bm9kZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgTFZhbHVlIGludGVybmFsTWV0aG9kVHlwZSA9
IG1fb3V0LmNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9ub2RlLT5pbnRlcm5hbE1l
dGhvZFR5cGUoKSkpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291
dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBudWxscHRy
OworCisgICAgICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7
CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgY2hlY2tIb2xlID0gbV9vdXQubmV3QmxvY2so
KTsKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmFib3ZlT3JFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5s
b2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZseV92ZWN0b3JMZW5ndGgp
KSwKKyAgICAgICAgICAgICAgICAgICAgcmFyZWx5KHNsb3dDYXNlKSwgdXN1YWxseShjaGVja0hv
bGUpKTsKKyAgICAgICAgICAgICAgICBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGNoZWNrSG9s
ZSwgc2xvd0Nhc2UpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbGFzdE5l
eHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd0Nhc2UpOworCisgICAgICAgICAg
ICBMVmFsdWUgY2hlY2tIb2xlUmVzdWx0VmFsdWUgPQorICAgICAgICAgICAgICAgIG1fb3V0Lm5v
dFplcm82NChtX291dC5sb2FkNjQoYmFzZUluZGV4KG1faGVhcHMuQXJyYXlTdG9yYWdlX3ZlY3Rv
ciwgc3RvcmFnZSwgaW5kZXgsIG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBjaGVja0hvbGVSZXN1bHQgPSBtX291dC5hbmNob3IoY2hlY2tIb2xlUmVzdWx0
VmFsdWUpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGNoZWNrSG9sZVJlc3VsdFZhbHVlLCB1
c3VhbGx5KGNvbnRpbnVhdGlvbiksIHJhcmVseShzbG93Q2FzZSkpOworCisgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuZXF1YWwoCisgICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUp
KSksCisgICAgICAgICAgICAgICAgdm1DYWxsKEludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0
aW9uSGFzSW5kZXhlZFByb3BlcnR5QnlJbnQpLCBtX2NhbGxGcmFtZSwgYmFzZSwgaW5kZXgsIGlu
dGVybmFsTWV0aG9kVHlwZSkpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7
CisgICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShJbnQzMiwgY2hlY2tIb2xlUmVzdWx0
LCBzbG93UmVzdWx0KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg
IGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hp
bGQyKCkpOworICAgICAgICAgICAgTFZhbHVlIGludGVybmFsTWV0aG9kVHlwZSA9IG1fb3V0LmNv
bnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9ub2RlLT5pbnRlcm5hbE1ldGhvZFR5cGUo
KSkpOworICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAg
ICBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwKKyAg
ICAgICAgICAgICAgICB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlCeUludCksIG1fY2FsbEZyYW1lLCBiYXNlLCBpbmRleCwgaW50ZXJuYWxN
ZXRob2RUeXBlKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwppbmRleCBkN2EwOTkzZWMwMDJkMzRmY2MwZDFkNzEwMGRlOWI2NjMxZjg4YTQ1Li45Mzg5NmY2
Zjc1YWNhY2NkNDQ2MDBlN2IwZmM5YjVhNGRkNGJlNTE4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTAy
LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtG
VExdIFN1cHBvcnQgSGFzSW5kZXhlZFByb3BlcnR5IGZvciBBcnJheVN0b3JhZ2UgYW5kIFNsb3dQ
dXRBcnJheVN0b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4Mjc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL2hhcy1pbmRleGVkLXByb3BlcnR5LWFycmF5LXN0b3JhZ2UuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdDEpOgorICAgICAgICAodGVz
dDIpOgorICAgICAgICAqIHN0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1zbG93LXB1dC1hcnJh
eS1zdG9yYWdlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3Qx
KToKKyAgICAgICAgKHRlc3QyKToKKwogMjAxOC0wMi0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRlRMXSBTdXBwb3J0IEFycmF5UHVzaCBmb3Ig
QXJyYXlTdG9yYWdlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9w
ZXJ0eS1hcnJheS1zdG9yYWdlLmpzIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVy
dHktYXJyYXktc3RvcmFnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzY1MjdhNTUzYmY1NWVkYzc5MDFmMzg0
OWY2YWEwZmI0NGJkYWJhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWlu
ZGV4ZWQtcHJvcGVydHktYXJyYXktc3RvcmFnZS5qcwpAQCAtMCwwICsxLDM4IEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworZnVuY3Rpb24gdGVzdDEoYXJyYXkpCit7CisgICAgcmV0dXJuIDIgaW4gYXJyYXk7Cit9Citu
b0lubGluZSh0ZXN0MSk7CisKK3ZhciBhcnJheSA9IFsxLCAyLCAzLCA0XTsKK2Vuc3VyZUFycmF5
U3RvcmFnZShhcnJheSk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytpKQorICAgIHNob3Vs
ZEJlKHRlc3QxKGFycmF5KSwgdHJ1ZSk7CisKK3ZhciBhcnJheSA9IFsxLCAyLCAsIDRdOworZW5z
dXJlQXJyYXlTdG9yYWdlKGFycmF5KTsKK3Nob3VsZEJlKHRlc3QxKGFycmF5KSwgZmFsc2UpOwor
Cit2YXIgYXJyYXkgPSBbXTsKK2Vuc3VyZUFycmF5U3RvcmFnZShhcnJheSk7CitzaG91bGRCZSh0
ZXN0MShhcnJheSksIGZhbHNlKTsKKworZnVuY3Rpb24gdGVzdDIoYXJyYXkpCit7CisgICAgcmV0
dXJuIDIgaW4gYXJyYXk7Cit9Citub0lubGluZSh0ZXN0Mik7CisKK3ZhciBhcnJheTEgPSBbMSwg
MiwgMywgNF07CitlbnN1cmVBcnJheVN0b3JhZ2UoYXJyYXkxKTsKK3ZhciBhcnJheTIgPSBbMSwg
Ml07CitlbnN1cmVBcnJheVN0b3JhZ2UoYXJyYXkyKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1
OyArK2kpCisgICAgc2hvdWxkQmUodGVzdDIoYXJyYXkyKSwgZmFsc2UpOworc2hvdWxkQmUodGVz
dDIoYXJyYXkyKSwgZmFsc2UpOworc2hvdWxkQmUodGVzdDIoYXJyYXkxKSwgdHJ1ZSk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9oYXMtaW5kZXhlZC1wcm9wZXJ0eS1zbG93LXB1dC1hcnJh
eS1zdG9yYWdlLmpzIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWluZGV4ZWQtcHJvcGVydHktc2xvdy1w
dXQtYXJyYXktc3RvcmFnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWU0YTkyNzE3ZDc4MWQzNmZlMzFhYWM4
YjkwMjJmOTc1Yjk1ZTRmCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLWlu
ZGV4ZWQtcHJvcGVydHktc2xvdy1wdXQtYXJyYXktc3RvcmFnZS5qcwpAQCAtMCwwICsxLDUxIEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdDEoYXJyYXkpCit7CisgICAgcmV0dXJuIDIgaW4gYXJy
YXk7Cit9Citub0lubGluZSh0ZXN0MSk7CisKK3ZhciBvYmplY3QgPSB7IGE6IDEwIH07CitPYmpl
Y3QuZGVmaW5lUHJvcGVydGllcyhvYmplY3QsIHsKKyAgICAiMCI6IHsKKyAgICAgICAgZ2V0OiBm
dW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuYTsgfSwKKyAgICAgICAgc2V0OiBmdW5jdGlvbih4KSB7
IHRoaXMuYSA9IHg7IH0sCisgICAgfSwKK30pOworCit2YXIgYXJyYXkgPSBbMSwgMiwgMywgNF07
CithcnJheS5fX3Byb3RvX18gPSBvYmplY3Q7CitlbnN1cmVBcnJheVN0b3JhZ2UoYXJyYXkpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkKKyAgICBzaG91bGRCZSh0ZXN0MShhcnJheSks
IHRydWUpOworCit2YXIgYXJyYXkgPSBbMSwgMiwgLCA0XTsKK2FycmF5Ll9fcHJvdG9fXyA9IG9i
amVjdDsKK2Vuc3VyZUFycmF5U3RvcmFnZShhcnJheSk7CitzaG91bGRCZSh0ZXN0MShhcnJheSks
IGZhbHNlKTsKKwordmFyIGFycmF5ID0gW107CithcnJheS5fX3Byb3RvX18gPSBvYmplY3Q7Citl
bnN1cmVBcnJheVN0b3JhZ2UoYXJyYXkpOworc2hvdWxkQmUodGVzdDEoYXJyYXkpLCBmYWxzZSk7
CisKK2Z1bmN0aW9uIHRlc3QyKGFycmF5KQoreworICAgIHJldHVybiAyIGluIGFycmF5OworfQor
bm9JbmxpbmUodGVzdDIpOworCit2YXIgYXJyYXkxID0gWzEsIDIsIDMsIDRdOworYXJyYXkxLl9f
cHJvdG9fXyA9IG9iamVjdDsKK2Vuc3VyZUFycmF5U3RvcmFnZShhcnJheTEpOwordmFyIGFycmF5
MiA9IFsxLCAyXTsKK2FycmF5Mi5fX3Byb3RvX18gPSBvYmplY3Q7CitlbnN1cmVBcnJheVN0b3Jh
Z2UoYXJyYXkyKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpCisgICAgc2hvdWxkQmUo
dGVzdDIoYXJyYXkyKSwgZmFsc2UpOworc2hvdWxkQmUodGVzdDIoYXJyYXkyKSwgZmFsc2UpOwor
c2hvdWxkQmUodGVzdDIoYXJyYXkxKSwgdHJ1ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>