<?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>176334</bug_id>
          
          <creation_ts>2017-09-04 13:46:35 -0700</creation_ts>
          <short_desc>[WSL] Rationalize how protocol inheritance deals with type parameters</short_desc>
          <delta_ts>2018-10-13 17:00:12 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1345249</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-04 13:46:35 -0700</bug_when>
    <thetext>If a signature in a protocol has type parameters, then we should probably pass those type parameters as type arguments during inheritance resolution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346384</commentid>
    <comment_count>1</comment_count>
      <attachid>320127</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-07 10:26:41 -0700</bug_when>
    <thetext>Created attachment 320127
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346392</commentid>
    <comment_count>2</comment_count>
      <attachid>320130</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-07 10:34:45 -0700</bug_when>
    <thetext>Created attachment 320130
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346409</commentid>
    <comment_count>3</comment_count>
      <attachid>320130</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-09-07 10:48:26 -0700</bug_when>
    <thetext>Comment on attachment 320130
the patch

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

r=me

&gt; Tools/WebGPUShadingLanguageRI/ProtocolDecl.js:93
&gt; +            let overload = this.program.resolveFuncOverload(signature.name, signature.typeParameters, signature.parameterTypes);

Not really due to this patch but &quot;typeParameters&quot; and &quot;parameterTypes&quot; sound too similar.  Can there be better names for these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346415</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-07 10:52:58 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #3)
&gt; Comment on attachment 320130 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=320130&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/WebGPUShadingLanguageRI/ProtocolDecl.js:93
&gt; &gt; +            let overload = this.program.resolveFuncOverload(signature.name, signature.typeParameters, signature.parameterTypes);
&gt; 
&gt; Not really due to this patch but &quot;typeParameters&quot; and &quot;parameterTypes&quot; sound
&gt; too similar.  Can there be better names for these?

They are indeed confusing.  But, they are terms of art.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346418</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-07 10:54:15 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/221740/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353544</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:37:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468951</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 17:00:12 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/152</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320127</attachid>
            <date>2017-09-07 10:26:41 -0700</date>
            <delta_ts>2017-09-07 10:34:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7778</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMTczOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE3LTA5LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW1dTTF0gUmF0aW9uYWxpemUgaG93IHByb3RvY29sIGluaGVyaXRhbmNlIGRlYWxz
IHdpdGggdHlwZSBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzYzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIGJ1bmNoIG9mIHRlc3RzIGZvciBzdHJ1
Y3RzLCBwcm90b2NvbHMsIGFuZCBmdW5jdGlvbnMgaW50ZXJhY3RpbmcgaW4gaW50ZXJlc3RpbmcK
KyAgICAgICAgd2F5cy4gVGhlIG1vc3QgY29tcGxleCBvZiB0aGVzZSB0ZXN0cyB0cmlnZ2VycyB0
aGUgY2FzZSB3aGVyZSB0aGUgcHJvdG9jb2wgY29udGFpbnMgYSBmdW5jdGlvbgorICAgICAgICB3
aXRoIG9uZSB0eXBlIHBhcmFtZXRlciBhbmQgdGhlIHJlYWwgZnVuY3Rpb24gaGFzIG1vcmUgdGhh
biBvbmUuIFRoaXMgc2hvdWxkIGdpdmUgYSBXVHlwZUVycm9yLAorICAgICAgICBhbmQgbm93IGl0
IGRvZXMuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wu
anM6CisgICAgICAgIChQcm90b2NvbERlY2wucHJvdG90eXBlLmhhc0hlaXIpOgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanM6CisgICAgICAgIChURVNUX3Byb3RvY29s
TW9ub1NpZ1BvbHlEZWYpOgorICAgICAgICAoVEVTVF9wcm90b2NvbFBvbHlTaWdQb2x5RGVmKToK
KyAgICAgICAgKFRFU1RfcHJvdG9jb2xEb3VibGVQb2x5U2lnRG91YmxlUG9seURlZik6CisgICAg
ICAgIChURVNUX3Byb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCk6Cisg
ICAgICAgIChURVNUX3Byb3RvY29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qczoKKyAgICAg
ICAgKFR5cGVWYXJpYWJsZS5wcm90b3R5cGUuZ2V0IG9yaWdpbik6CisKIDIwMTctMDktMDcgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIERhc2hi
b2FyZCB0ZXN0IGlzIGZhaWxpbmcuCkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Qcm90b2NvbERlY2wuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJvdG9jb2xEZWNsLmpzCShyZXZpc2lvbiAyMjE3MzcpCisrKyBUb29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanMJKHdvcmtpbmcgY29weSkKQEAgLTkwLDgg
KzkwLDggQEAgY2xhc3MgUHJvdG9jb2xEZWNsIGV4dGVuZHMgUHJvdG9jb2wgewogICAgICAgICBs
ZXQgc2lnbmF0dXJlcyA9IHRoaXMuc2lnbmF0dXJlczsKICAgICAgICAgZm9yIChsZXQgc2lnbmF0
dXJlIG9mIHNpZ25hdHVyZXMpIHsKICAgICAgICAgICAgIHNpZ25hdHVyZSA9IHNpZ25hdHVyZS52
aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gdGhpcy5wcm9n
cmFtLnJlc29sdmVGdW5jT3ZlcmxvYWQoc2lnbmF0dXJlLm5hbWUsIFtdLCBzaWduYXR1cmUucGFy
YW1ldGVyVHlwZXMpOwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZCkKKyAgICAgICAgICAgIGxl
dCBvdmVybG9hZCA9IHRoaXMucHJvZ3JhbS5yZXNvbHZlRnVuY092ZXJsb2FkKHNpZ25hdHVyZS5u
YW1lLCBzaWduYXR1cmUudHlwZVBhcmFtZXRlcnMsIHNpZ25hdHVyZS5wYXJhbWV0ZXJUeXBlcyk7
CisgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5U
eXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKApJ
bmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCShyZXZpc2lvbiAyMjE3Mzcp
CisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC05ODksNiArOTg5LDE0NiBAQCBmdW5jdGlvbiBURVNUX2RvdWJsZU5vdCgpCiAgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwogfQogCitmdW5jdGlvbiBURVNUX3Byb3RvY29s
TW9ub1NpZ1BvbHlEZWYoKQoreworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAg
c3RydWN0IEludEFuZDxUPiB7CisgICAgICAgICAgICBpbnQgZmlyc3Q7CisgICAgICAgICAgICBU
IHNlY29uZDsKKyAgICAgICAgfQorICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJz
dCwgVCBzZWNvbmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Cisg
ICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKKyAgICAgICAgICAgIHJlc3VsdC5zZWNv
bmQgPSBzZWNvbmQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAg
ICAgIHByb3RvY29sIEludEFuZGFibGUgeworICAgICAgICAgICAgSW50QW5kPGludD4gaW50QW5k
KEludEFuZGFibGUsIGludCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzxUOkludEFuZGFi
bGU+KFQgZmlyc3QsIGludCBzZWNvbmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEludEFuZDxp
bnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1NCArIDEyKTsKK30KKworZnVu
Y3Rpb24gVEVTVF9wcm90b2NvbFBvbHlTaWdQb2x5RGVmKCkKK3sKKyAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCisgICAgICAgIHN0cnVjdCBJbnRBbmQ8VD4geworICAgICAgICAgICAgaW50IGZp
cnN0OworICAgICAgICAgICAgVCBzZWNvbmQ7CisgICAgICAgIH0KKyAgICAgICAgSW50QW5kPFQ+
IGludEFuZDxUPihpbnQgZmlyc3QsIFQgc2Vjb25kKQorICAgICAgICB7CisgICAgICAgICAgICBJ
bnRBbmQ8VD4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7CisgICAg
ICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOworICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgfQorICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKKyAgICAgICAgICAg
IEludEFuZDxUPiBpbnRBbmQ8VD4oSW50QW5kYWJsZSwgVCk7CisgICAgICAgIH0KKyAgICAgICAg
aW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEludEFuZDxpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kOworICAgICAgICB9
CisgICAgYCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1
NCArIDEyKTsKK30KKworZnVuY3Rpb24gVEVTVF9wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQ
b2x5RGVmKCkKK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCisgICAgICAgIHN0cnVjdCBJ
bnRBbmQ8VCwgVT4geworICAgICAgICAgICAgaW50IGZpcnN0OworICAgICAgICAgICAgVCBzZWNv
bmQ7CisgICAgICAgICAgICBVIHRoaXJkOworICAgICAgICB9CisgICAgICAgIEludEFuZDxULCBV
PiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKKyAgICAgICAgewor
ICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdC5maXJz
dCA9IGZpcnN0OworICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKKyAgICAgICAg
ICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgfQorICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKKyAgICAgICAgICAgIEludEFu
ZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7CisgICAgICAgIH0KKyAgICAg
ICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkK
KyAgICAgICAgeworICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQo
Zmlyc3QsIHNlY29uZCwgdGhpcmQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCAr
IHJlc3VsdC5zZWNvbmQgKyByZXN1bHQudGhpcmQ7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5
KV0pLCA1NCArIDEyICsgMzkpOworfQorCitmdW5jdGlvbiBURVNUX3Byb3RvY29sRG91YmxlUG9s
eVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCgpCit7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAorICAgICAgICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKKyAgICAgICAgICAgIGludCBmaXJzdDsK
KyAgICAgICAgICAgIFQgc2Vjb25kOworICAgICAgICAgICAgVSB0aGlyZDsKKyAgICAgICAgfQor
ICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUg
dGhpcmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7CisgICAg
ICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKKyAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQg
PSBzZWNvbmQ7CisgICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7
CisgICAgICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQsIFUp
OworICAgICAgICB9CisgICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQg
c2Vjb25kLCBpbnQgdGhpcmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEludEFuZDxpbnQsIGlu
dD4gcmVzdWx0ID0gaW50QW5kPGludCwgaW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGly
ZDsKKyAgICAgICAgfQorICAgIGApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9n
cmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Cit9CisKK2Z1
bmN0aW9uIFRFU1RfcHJvdG9jb2xNb25vUG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCgpCit7
CisgICAgY2hlY2tGYWlsKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCisgICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7CisgICAg
ICAgICAgICAgICAgICAgIGludCBmaXJzdDsKKyAgICAgICAgICAgICAgICAgICAgVCBzZWNvbmQ7
CisgICAgICAgICAgICAgICAgICAgIFUgdGhpcmQ7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwg
VSB0aGlyZCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEludEFuZDxU
LCBVPiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0Owor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOworICAgICAgICAgICAg
ICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvdG9jb2wgSW50
QW5kYWJsZSB7CisgICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGludEFuZDxUPihJ
bnRBbmRhYmxlLCBULCBpbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
bnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQorICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1
bHQgPSBpbnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGApOworICAgICAgICAgICAgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHBy
b2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKKyAgICAgICAgfSwKKyAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKK30KKwogbGV0IGZpbHRlciA9IC8uKi87
IC8vIHJ1biBldmVyeXRoaW5nIGJ5IGRlZmF1bHQKIGlmICh0aGlzWyJhcmd1bWVudHMiXSkgewog
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CkluZGV4OiBU
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzCShyZXZpc2lv
biAyMjE3MzcpCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgY2xhc3MgVHlwZVZhcmlhYmxlIGV4
dGVuZHMgVHlwZSB7CiAgICAgICAgIHRoaXMuX3Byb3RvY29sID0gcHJvdG9jb2w7CiAgICAgfQog
ICAgIAorICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQg
bmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KICAgICBnZXQgcHJvdG9jb2woKSB7IHJldHVy
biB0aGlzLl9wcm90b2NvbDsgfQogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320130</attachid>
            <date>2017-09-07 10:34:45 -0700</date>
            <delta_ts>2017-09-07 10:48:26 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8062</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMTczOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE3LTA5LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW1dTTF0gUmF0aW9uYWxpemUgaG93IHByb3RvY29sIGluaGVyaXRhbmNlIGRlYWxz
IHdpdGggdHlwZSBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzYzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIGJ1bmNoIG9mIHRlc3RzIGZvciBzdHJ1
Y3RzLCBwcm90b2NvbHMsIGFuZCBmdW5jdGlvbnMgaW50ZXJhY3RpbmcgaW4gaW50ZXJlc3RpbmcK
KyAgICAgICAgd2F5cy4gVGhlIG1vc3QgY29tcGxleCBvZiB0aGVzZSB0ZXN0cyB0cmlnZ2VycyB0
aGUgY2FzZSB3aGVyZSB0aGUgcHJvdG9jb2wgY29udGFpbnMgYSBmdW5jdGlvbgorICAgICAgICB3
aXRoIG9uZSB0eXBlIHBhcmFtZXRlciBhbmQgdGhlIHJlYWwgZnVuY3Rpb24gaGFzIG1vcmUgdGhh
biBvbmUuIFRoaXMgc2hvdWxkIGdpdmUgYSBXVHlwZUVycm9yLAorICAgICAgICBhbmQgbm93IGl0
IGRvZXMuCisgICAgICAgIAorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3Rv
Y29sRGVjbC5qczoKKyAgICAgICAgKFByb3RvY29sRGVjbC5wcm90b3R5cGUuaGFzSGVpcik6IEZp
eCB0aGUgaGFuZGxpbmcgb2YgYSBtaXNtYXRjaCBvZiBudW1iZXIgb2YgdHlwZSBwYXJhbWV0ZXJz
IGJ5IGFjdHVhbGx5IHBhc3NpbmcgdGhlIHR5cGUgcGFyYW1ldGVycyBhbmQgdGhlbiBjb3JyZWN0
bHkgaGFuZGxpbmcgdGhlIGVycm9yLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuanM6IEFkZCBhIGJ1bmNoIG9mIHRlc3RzIGZvciB0aGlzIGNhc2UgYW5kIGEgbG90IG9m
IG90aGVyIHByb3RvY29sIGNhc2VzLgorICAgICAgICAoVEVTVF9wcm90b2NvbE1vbm9TaWdQb2x5
RGVmKToKKyAgICAgICAgKFRFU1RfcHJvdG9jb2xQb2x5U2lnUG9seURlZik6CisgICAgICAgIChU
RVNUX3Byb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWYpOgorICAgICAgICAoVEVTVF9w
cm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQpOgorICAgICAgICAoVEVT
VF9wcm90b2NvbE1vbm9Qb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0KToKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanM6CisgICAgICAgIChUeXBlVmFy
aWFibGUucHJvdG90eXBlLmdldCBvcmlnaW4pOiBUaGlzIHdhc24ndCBpbXBsZW1lbnRlZCBiZWZv
cmUsIHdoaWNoIG1hZGUgZXJyb3IgcmVwb3J0aW5nIGhhcmRlci4KKwogMjAxNy0wOS0wNyAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRGFzaGJv
YXJkIHRlc3QgaXMgZmFpbGluZy4KSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRGVjbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm90b2NvbERlY2wuanMJKHJldmlzaW9uIDIyMTczNykKKysrIFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcwkod29ya2luZyBjb3B5KQpAQCAtOTAsOCAr
OTAsOCBAQCBjbGFzcyBQcm90b2NvbERlY2wgZXh0ZW5kcyBQcm90b2NvbCB7CiAgICAgICAgIGxl
dCBzaWduYXR1cmVzID0gdGhpcy5zaWduYXR1cmVzOwogICAgICAgICBmb3IgKGxldCBzaWduYXR1
cmUgb2Ygc2lnbmF0dXJlcykgewogICAgICAgICAgICAgc2lnbmF0dXJlID0gc2lnbmF0dXJlLnZp
c2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSB0aGlzLnByb2dy
YW0ucmVzb2x2ZUZ1bmNPdmVybG9hZChzaWduYXR1cmUubmFtZSwgW10sIHNpZ25hdHVyZS5wYXJh
bWV0ZXJUeXBlcyk7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkKQorICAgICAgICAgICAgbGV0
IG92ZXJsb2FkID0gdGhpcy5wcm9ncmFtLnJlc29sdmVGdW5jT3ZlcmxvYWQoc2lnbmF0dXJlLm5h
bWUsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycywgc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzKTsK
KyAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlZFJldHVyblR5
cGUgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCklu
ZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMJKHJldmlzaW9uIDIyMTczNykK
KysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMJKHdvcmtpbmcgY29weSkK
QEAgLTk4OSw2ICs5ODksMTQ2IEBAIGZ1bmN0aW9uIFRFU1RfZG91YmxlTm90KCkKICAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKK2Z1bmN0aW9uIFRFU1RfcHJvdG9jb2xN
b25vU2lnUG9seURlZigpCit7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBz
dHJ1Y3QgSW50QW5kPFQ+IHsKKyAgICAgICAgICAgIGludCBmaXJzdDsKKyAgICAgICAgICAgIFQg
c2Vjb25kOworICAgICAgICB9CisgICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0
LCBUIHNlY29uZCkKKyAgICAgICAgeworICAgICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKKyAg
ICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OworICAgICAgICAgICAgcmVzdWx0LnNlY29u
ZCA9IHNlY29uZDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAg
ICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7CisgICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQo
SW50QW5kYWJsZSwgaW50KTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJs
ZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKKyAgICAgICAgeworICAgICAgICAgICAgSW50QW5kPGlu
dD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOworICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOworfQorCitmdW5j
dGlvbiBURVNUX3Byb3RvY29sUG9seVNpZ1BvbHlEZWYoKQoreworICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKKyAgICAgICAgc3RydWN0IEludEFuZDxUPiB7CisgICAgICAgICAgICBpbnQgZmly
c3Q7CisgICAgICAgICAgICBUIHNlY29uZDsKKyAgICAgICAgfQorICAgICAgICBJbnRBbmQ8VD4g
aW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQpCisgICAgICAgIHsKKyAgICAgICAgICAgIElu
dEFuZDxUPiByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKKyAgICAg
ICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgICAgICB9CisgICAgICAgIHByb3RvY29sIEludEFuZGFibGUgeworICAgICAgICAgICAg
SW50QW5kPFQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBUKTsKKyAgICAgICAgfQorICAgICAgICBp
bnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKKyAgICAgICAgeworICAg
ICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOworICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7CisgICAgICAgIH0K
KyAgICBgKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0
ICsgMTIpOworfQorCitmdW5jdGlvbiBURVNUX3Byb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBv
bHlEZWYoKQoreworICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKKyAgICAgICAgc3RydWN0IElu
dEFuZDxULCBVPiB7CisgICAgICAgICAgICBpbnQgZmlyc3Q7CisgICAgICAgICAgICBUIHNlY29u
ZDsKKyAgICAgICAgICAgIFUgdGhpcmQ7CisgICAgICAgIH0KKyAgICAgICAgSW50QW5kPFQsIFU+
IGludEFuZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQorICAgICAgICB7Cisg
ICAgICAgICAgICBJbnRBbmQ8VCwgVT4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmZpcnN0
ID0gZmlyc3Q7CisgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOworICAgICAgICAg
ICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICB9CisgICAgICAgIHByb3RvY29sIEludEFuZGFibGUgeworICAgICAgICAgICAgSW50QW5k
PFQsIFU+IGludEFuZDxULCBVPihJbnRBbmRhYmxlLCBULCBVKTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQor
ICAgICAgICB7CisgICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChm
aXJzdCwgc2Vjb25kLCB0aGlyZCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsg
cmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKKyAgICAgICAgfQorICAgIGApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkp
XSksIDU0ICsgMTIgKyAzOSk7Cit9CisKK2Z1bmN0aW9uIFRFU1RfcHJvdG9jb2xEb3VibGVQb2x5
U2lnRG91YmxlUG9seURlZkV4cGxpY2l0KCkKK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChg
CisgICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4geworICAgICAgICAgICAgaW50IGZpcnN0Owor
ICAgICAgICAgICAgVCBzZWNvbmQ7CisgICAgICAgICAgICBVIHRoaXJkOworICAgICAgICB9Cisg
ICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0
aGlyZCkKKyAgICAgICAgeworICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKKyAgICAg
ICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OworICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9
IHNlY29uZDsKKyAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOworICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsK
KyAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7
CisgICAgICAgIH0KKyAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBz
ZWNvbmQsIGludCB0aGlyZCkKKyAgICAgICAgeworICAgICAgICAgICAgSW50QW5kPGludCwgaW50
PiByZXN1bHQgPSBpbnRBbmQ8aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJk
OworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dy
YW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKK30KKworZnVu
Y3Rpb24gVEVTVF9wcm90b2NvbE1vbm9Qb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0KCkKK3sK
KyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKKyAgICAg
ICAgICAgICAgICAgICAgaW50IGZpcnN0OworICAgICAgICAgICAgICAgICAgICBUIHNlY29uZDsK
KyAgICAgICAgICAgICAgICAgICAgVSB0aGlyZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBV
IHRoaXJkKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSW50QW5kPFQs
IFU+IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7CisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcm90b2NvbCBJbnRB
bmRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgSW50QW5kPFQsIGludD4gaW50QW5kPFQ+KElu
dEFuZGFibGUsIFQsIGludCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlu
dCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kLCBpbnQgdGhpcmQpCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3Vs
dCA9IGludEFuZDxpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQgKyByZXN1bHQudGhpcmQ7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgYCk7CisgICAgICAgICAgICBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJv
Z3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5KV0pOworICAgICAgICB9LAorICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOworfQorCiBsZXQgZmlsdGVyID0gLy4qLzsg
Ly8gcnVuIGV2ZXJ5dGhpbmcgYnkgZGVmYXVsdAogaWYgKHRoaXNbImFyZ3VtZW50cyJdKSB7CiAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKSW5kZXg6IFRv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMJKHJldmlzaW9u
IDIyMTczNykKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBjbGFzcyBUeXBlVmFyaWFibGUgZXh0
ZW5kcyBUeXBlIHsKICAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKICAgICB9CiAg
ICAgCisgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBu
YW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJu
IHRoaXMuX3Byb3RvY29sOyB9CiAgICAgCg==
</data>
<flag name="review"
          id="340276"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>