<?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>180363</bug_id>
          
          <creation_ts>2017-12-04 10:03:03 -0800</creation_ts>
          <short_desc>WTF Hasher: disallow -0. and NaNs</short_desc>
          <delta_ts>2018-02-01 10:09:01 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>180318</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jfbastien</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377732</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-12-04 10:03:03 -0800</bug_when>
    <thetext>I want to see if we can just outright disallow them by adding a debug check that we never hash them. This is based on a discussion here:
  https://bugs.webkit.org/show_bug.cgi?id=180318

Let&apos;s see what the tests say, and if anyone has opinions.


Original comment:

I&apos;ve been thinking about this, and I think there are 3 things we could plausibly want:

  1. Deal with bits only, treating -0. != +0. and all NaNs with different payload as different (and same payload as the same).
  2. Deal with IEEE-754 semantics, treating -0. == +0., and all NaNs as different.
  3. Ban -0. and all NaNs from hashing.

I think these all make sense in different context, but choosing 1. and 2. requires knowing what situation we&apos;re in! It seems like 3. is the most conservative thing to do if we don&apos;t know how hashing is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377734</commentid>
    <comment_count>1</comment_count>
      <attachid>328355</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-12-04 10:04:34 -0800</bug_when>
    <thetext>Created attachment 328355
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377772</commentid>
    <comment_count>2</comment_count>
      <attachid>328362</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-12-04 10:47:54 -0800</bug_when>
    <thetext>Created attachment 328362
patch

Fix typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377834</commentid>
    <comment_count>3</comment_count>
      <attachid>328377</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-12-04 12:46:17 -0800</bug_when>
    <thetext>Created attachment 328377
patch

Missing include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377838</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-04 12:49:18 -0800</bug_when>
    <thetext>Attachment 328377 did not pass style-queue:


ERROR: Source/WTF/wtf/Hasher.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377986</commentid>
    <comment_count>5</comment_count>
      <attachid>328406</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-12-04 16:29:21 -0800</bug_when>
    <thetext>Created attachment 328406
patch

Comment out long-running test.

FWIW I also test that all 16-bit values hash uniquely (they do) and that the collision rate is low for 32-bit values (it&apos;s 3%). I haven&apos;t checked the clustering of collisions in 32-bit. Presumably if we wanted to prevent hashflood we&apos;d use another hash and we would mix in a per-process salt anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395529</commentid>
    <comment_count>6</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-02-01 10:09:01 -0800</bug_when>
    <thetext>Not sure we want to do this. Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328355</attachid>
            <date>2017-12-04 10:04:34 -0800</date>
            <delta_ts>2017-12-04 10:47:54 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WTF-Hasher-disallow-0.-and-NaNs.patch</filename>
            <type>text/plain</type>
            <size>3896</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBhYTcyNzk3ODYxMDU5MmY4NGQ4NTllOTE5MWFjZGFkYjJlNWVlMWQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDQgRGVjIDIwMTcgMTA6MDQ6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBXVEYgSGFz
aGVyOiBkaXNhbGxvdyAtMC4gYW5kIE5hTnMKCi0tLQogU291cmNlL1dURi93dGYvSGFzaGVyLmgg
ICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoZXIuY3BwIHwgMTQgKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hh
bmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9IYXNoZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oCmluZGV4IDhhMDk0
M2UuLjdiZTIyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hlci5oCkBAIC05MCwxMSArOTAsMjggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgU2lnbmVkQXJpdGhtZXRpYz4gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NpZ25lZDxTaWdu
ZWRBcml0aG0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBkb3VibGUgbnVtYmVy
KQogeworICAgIC8vIEhhc2hpbmcgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBpZ25vcmVzIHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgLy8gICogLTAuID09ICswLgorICAgIC8vICAqIEFsbCBOYU5z
IGNvbXBhcmUgbm9uLWVxdWFsCisgICAgLy8KKyAgICAvLyBBIGdlbmVyYWwtcHVycG9zZSBoYXNo
ZXIgY2Fubm90IGtub3cgd2hldGhlciB0aGVzZSBwcm9wZXJ0aWVzIGFyZQorICAgIC8vIGRlc2ly
YWJsZSBvciBub3QuIEEgaGFzaGVyIGNvdWxkIGRlY2lkZSB0byBjYW5vbmljYWxpemUsIG9yIGxl
YXZlIHRoZQorICAgIC8vIGJpdHMgYXMtaXMuIFRoZSBtb3JlIGNvbnNlcnZhdGl2ZSB0aGluZyBp
cyB0aGVyZWZvcmUgdG8gZGlzYWxsb3cgdGhlc2UKKyAgICAvLyB2YWx1ZXMgc2luY2Ugd2UgZG9u
J3Qga25vdyB3aGF0IHRoZSByaWdodCB0aGluZyBpcy4KKyAgICBpZiAobnVtYmVyID09IDAuKQor
ICAgICAgICBBU1NFUlQoIXN0ZDo6c2lnbmJpdChudW1iZXIpKTsKKyAgICBpZiAoc3RkOjppc25h
bihudW1iZXIpKQorICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKSA9PSBiaXR3aXNlX2Nhc2U8dWludDY0
X3Q+KG51bWJlcikpOwogICAgIGFkZChoYXNoZXIsIGJpdHdpc2VfY2FzdDx1aW50NjRfdD4obnVt
YmVyKSk7CiB9CiAKIGlubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgZmxvYXQgbnVtYmVy
KQogeworICAgIC8vIFNlZSBhYm92ZSBjb21tZW50IGZvciBkb3VibGUuCisgICAgaWYgKG51bWJl
ciA9PSAwLikKKyAgICAgICAgQVNTRVJUKCFzdGQ6OnNpZ25iaXQobnVtYmVyKSk7CisgICAgaWYg
KHN0ZDo6aXNuYW4obnVtYmVyKSkKKyAgICAgICAgQVNTRVJUKGJpdHdpc2VfY2FzdDx1aW50MzJf
dD4oc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpKSA9PSBiaXR3aXNlX2Nh
c2U8dWludDMyX3Q+KG51bWJlcikpOwogICAgIGFkZChoYXNoZXIsIGJpdHdpc2VfY2FzdDx1aW50
MzJfdD4obnVtYmVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hhc2hlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoZXIu
Y3BwCmluZGV4IDc0NjZlMDcuLjU1YmUxZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hhc2hlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaGVyLmNwcApAQCAtMTIzLDcgKzEyMyw2IEBAIFRFU1QoV1RGLCBIYXNoZXJfaW50ZWdl
cikKIFRFU1QoV1RGLCBIYXNoZXJfZmxvYXRpbmdQb2ludCkKIHsKICAgICBFWFBFQ1RfRVEoemVy
bzY0Qml0SGFzaCwgY29tcHV0ZUhhc2goMC4wKSk7Ci0gICAgRVhQRUNUX0VRKDEyNjQ1MzI2MDRV
LCBjb21wdXRlSGFzaCgtMC4wKSk7IC8vIE5vdGUsIG5vdCBzYW1lIGFzIGhhc2ggb2YgMC4wLgog
ICAgIEVYUEVDVF9FUShvbmU2NEJpdEhhc2gsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6ZGVub3JtX21pbigpKSk7CiAKICAgICBFWFBFQ1RfRVEoMjI3ODM5OTk4MFUs
IGNvbXB1dGVIYXNoKDEuMCkpOwpAQCAtMTM1LDEyICsxMzQsMTAgQEAgVEVTVChXVEYsIEhhc2hl
cl9mbG9hdGluZ1BvaW50KQogICAgIEVYUEVDVF9FUSgyNTAxNzAyNTU2VSwgY29tcHV0ZUhhc2go
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpsb3dlc3QoKSkpOwogICAgIEVYUEVDVF9FUSgy
MjE0NDM5ODAyVSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjplcHNp
bG9uKCkpKTsKIAotICAgIEVYUEVDVF9FUSgyNjc4MDg2NzU5VSwgY29tcHV0ZUhhc2goc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSkpOwogICAgIEVYUEVDVF9FUSgyMzA0
NDQ1MzkzVSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpKSk7CiAgICAgRVhQRUNUX0VRKDIyMzI1OTMzMTFVLCBjb21wdXRlSGFzaCgtc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKSk7CiAKICAgICBFWFBFQ1RfRVEoemVybzMy
Qml0SGFzaCwgY29tcHV0ZUhhc2goMC4wZikpOwotICAgIEVYUEVDVF9FUSgyNDI1NjgzNDI4VSwg
Y29tcHV0ZUhhc2goLTAuMGYpKTsgLy8gTm90ZSwgbm90IHNhbWUgYXMgaGFzaCBvZiAwLjBmLgog
ICAgIEVYUEVDVF9FUShvbmUzMkJpdEhhc2gsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjpkZW5vcm1fbWluKCkpKTsKIAogICAgIEVYUEVDVF9FUSgxMDgxNTc1OTY2VSwg
Y29tcHV0ZUhhc2goMS4wZikpOwpAQCAtMTUyLDcgKzE0OSw2IEBAIFRFU1QoV1RGLCBIYXNoZXJf
ZmxvYXRpbmdQb2ludCkKICAgICBFWFBFQ1RfRVEoMzIxMjA2OTUwNlUsIGNvbXB1dGVIYXNoKHN0
ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSkpOwogICAgIEVYUEVDVF9FUSgxMzA4
Nzg0NTA2VSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24o
KSkpOwogCi0gICAgRVhQRUNUX0VRKDI3NTEyODg1MTFVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCkpKTsKICAgICBFWFBFQ1RfRVEoMzQ1NzA0OTI1
NlUsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpKSk7
CiAgICAgRVhQRUNUX0VRKDQyMDg4NzM5NzFVLCBjb21wdXRlSGFzaCgtc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmluZmluaXR5KCkpKTsKIH0KQEAgLTI0OSwzICsyNDUsMTMgQEAgVEVTVChX
VEYsIEhhc2hlcl90dXBsZUxpa2UpCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCitURVNUKFdURiwgSGFzaGVyX2FsbDE2Yml0VmFsdWVzSGFzaFVuaXF1ZWx5KQorewor
ICAgIHN0ZDo6c2V0PHVpbnQzMl90PiBoYXNoZWRUbzsKKyAgICBmb3IgKHVuc2lnbmVkIHZhbHVl
ID0gMDsgdmFsdWUgPCAweEZGRkY7ICsrdmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgaGFzaGVk
ID0gY29tcHV0ZUhhc2godmFsdWUpOworICAgICAgICBhdXRvIGluc2VydGVkID0gaGFzaGVkVG8u
aW5zZXJ0KGhhc2hlZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGluc2VydGVkLnNlY29uZCk7Cisg
ICAgfQorfQotLSAKMi4xMC4xCgo=
</data>
<flag name="commit-queue"
          id="347532"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328362</attachid>
            <date>2017-12-04 10:47:54 -0800</date>
            <delta_ts>2017-12-04 12:46:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WTF-Hasher-disallow-0.-and-NaNs.patch</filename>
            <type>text/plain</type>
            <size>3896</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAyYmNlY2EyYzIxYzA1MzgyMzhlN2QyZGJjZTRmNDhmNWNiN2Q3N2VkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDQgRGVjIDIwMTcgMTA6MDQ6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBXVEYgSGFz
aGVyOiBkaXNhbGxvdyAtMC4gYW5kIE5hTnMKCi0tLQogU291cmNlL1dURi93dGYvSGFzaGVyLmgg
ICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoZXIuY3BwIHwgMTQgKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hh
bmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9IYXNoZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oCmluZGV4IDhhMDk0
M2UuLmUyZDY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hlci5oCkBAIC05MCwxMSArOTAsMjggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgU2lnbmVkQXJpdGhtZXRpYz4gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NpZ25lZDxTaWdu
ZWRBcml0aG0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBkb3VibGUgbnVtYmVy
KQogeworICAgIC8vIEhhc2hpbmcgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBpZ25vcmVzIHRoZSBm
b2xsb3dpbmcgZmFjdHM6CisgICAgLy8gICogLTAuID09ICswLgorICAgIC8vICAqIEFsbCBOYU5z
IGNvbXBhcmUgbm9uLWVxdWFsCisgICAgLy8KKyAgICAvLyBBIGdlbmVyYWwtcHVycG9zZSBoYXNo
ZXIgY2Fubm90IGtub3cgd2hldGhlciB0aGVzZSBwcm9wZXJ0aWVzIGFyZQorICAgIC8vIGRlc2ly
YWJsZSBvciBub3QuIEEgaGFzaGVyIGNvdWxkIGRlY2lkZSB0byBjYW5vbmljYWxpemUsIG9yIGxl
YXZlIHRoZQorICAgIC8vIGJpdHMgYXMtaXMuIFRoZSBtb3JlIGNvbnNlcnZhdGl2ZSB0aGluZyBp
cyB0aGVyZWZvcmUgdG8gZGlzYWxsb3cgdGhlc2UKKyAgICAvLyB2YWx1ZXMgc2luY2Ugd2UgZG9u
J3Qga25vdyB3aGF0IHRoZSByaWdodCB0aGluZyBpcy4KKyAgICBpZiAobnVtYmVyID09IDAuKQor
ICAgICAgICBBU1NFUlQoIXN0ZDo6c2lnbmJpdChudW1iZXIpKTsKKyAgICBpZiAoc3RkOjppc25h
bihudW1iZXIpKQorICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKSA9PSBiaXR3aXNlX2Nhc3Q8dWludDY0
X3Q+KG51bWJlcikpOwogICAgIGFkZChoYXNoZXIsIGJpdHdpc2VfY2FzdDx1aW50NjRfdD4obnVt
YmVyKSk7CiB9CiAKIGlubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgZmxvYXQgbnVtYmVy
KQogeworICAgIC8vIFNlZSBhYm92ZSBjb21tZW50IGZvciBkb3VibGUuCisgICAgaWYgKG51bWJl
ciA9PSAwLikKKyAgICAgICAgQVNTRVJUKCFzdGQ6OnNpZ25iaXQobnVtYmVyKSk7CisgICAgaWYg
KHN0ZDo6aXNuYW4obnVtYmVyKSkKKyAgICAgICAgQVNTRVJUKGJpdHdpc2VfY2FzdDx1aW50MzJf
dD4oc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpKSA9PSBiaXR3aXNlX2Nh
c3Q8dWludDMyX3Q+KG51bWJlcikpOwogICAgIGFkZChoYXNoZXIsIGJpdHdpc2VfY2FzdDx1aW50
MzJfdD4obnVtYmVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hhc2hlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoZXIu
Y3BwCmluZGV4IDc0NjZlMDcuLjU1YmUxZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hhc2hlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaGVyLmNwcApAQCAtMTIzLDcgKzEyMyw2IEBAIFRFU1QoV1RGLCBIYXNoZXJfaW50ZWdl
cikKIFRFU1QoV1RGLCBIYXNoZXJfZmxvYXRpbmdQb2ludCkKIHsKICAgICBFWFBFQ1RfRVEoemVy
bzY0Qml0SGFzaCwgY29tcHV0ZUhhc2goMC4wKSk7Ci0gICAgRVhQRUNUX0VRKDEyNjQ1MzI2MDRV
LCBjb21wdXRlSGFzaCgtMC4wKSk7IC8vIE5vdGUsIG5vdCBzYW1lIGFzIGhhc2ggb2YgMC4wLgog
ICAgIEVYUEVDVF9FUShvbmU2NEJpdEhhc2gsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6ZGVub3JtX21pbigpKSk7CiAKICAgICBFWFBFQ1RfRVEoMjI3ODM5OTk4MFUs
IGNvbXB1dGVIYXNoKDEuMCkpOwpAQCAtMTM1LDEyICsxMzQsMTAgQEAgVEVTVChXVEYsIEhhc2hl
cl9mbG9hdGluZ1BvaW50KQogICAgIEVYUEVDVF9FUSgyNTAxNzAyNTU2VSwgY29tcHV0ZUhhc2go
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpsb3dlc3QoKSkpOwogICAgIEVYUEVDVF9FUSgy
MjE0NDM5ODAyVSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjplcHNp
bG9uKCkpKTsKIAotICAgIEVYUEVDVF9FUSgyNjc4MDg2NzU5VSwgY29tcHV0ZUhhc2goc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSkpOwogICAgIEVYUEVDVF9FUSgyMzA0
NDQ1MzkzVSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpKSk7CiAgICAgRVhQRUNUX0VRKDIyMzI1OTMzMTFVLCBjb21wdXRlSGFzaCgtc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKSk7CiAKICAgICBFWFBFQ1RfRVEoemVybzMy
Qml0SGFzaCwgY29tcHV0ZUhhc2goMC4wZikpOwotICAgIEVYUEVDVF9FUSgyNDI1NjgzNDI4VSwg
Y29tcHV0ZUhhc2goLTAuMGYpKTsgLy8gTm90ZSwgbm90IHNhbWUgYXMgaGFzaCBvZiAwLjBmLgog
ICAgIEVYUEVDVF9FUShvbmUzMkJpdEhhc2gsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjpkZW5vcm1fbWluKCkpKTsKIAogICAgIEVYUEVDVF9FUSgxMDgxNTc1OTY2VSwg
Y29tcHV0ZUhhc2goMS4wZikpOwpAQCAtMTUyLDcgKzE0OSw2IEBAIFRFU1QoV1RGLCBIYXNoZXJf
ZmxvYXRpbmdQb2ludCkKICAgICBFWFBFQ1RfRVEoMzIxMjA2OTUwNlUsIGNvbXB1dGVIYXNoKHN0
ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSkpOwogICAgIEVYUEVDVF9FUSgxMzA4
Nzg0NTA2VSwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24o
KSkpOwogCi0gICAgRVhQRUNUX0VRKDI3NTEyODg1MTFVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVy
aWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCkpKTsKICAgICBFWFBFQ1RfRVEoMzQ1NzA0OTI1
NlUsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpKSk7
CiAgICAgRVhQRUNUX0VRKDQyMDg4NzM5NzFVLCBjb21wdXRlSGFzaCgtc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmluZmluaXR5KCkpKTsKIH0KQEAgLTI0OSwzICsyNDUsMTMgQEAgVEVTVChX
VEYsIEhhc2hlcl90dXBsZUxpa2UpCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCitURVNUKFdURiwgSGFzaGVyX2FsbDE2Yml0VmFsdWVzSGFzaFVuaXF1ZWx5KQorewor
ICAgIHN0ZDo6c2V0PHVpbnQzMl90PiBoYXNoZWRUbzsKKyAgICBmb3IgKHVuc2lnbmVkIHZhbHVl
ID0gMDsgdmFsdWUgPCAweEZGRkY7ICsrdmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgaGFzaGVk
ID0gY29tcHV0ZUhhc2godmFsdWUpOworICAgICAgICBhdXRvIGluc2VydGVkID0gaGFzaGVkVG8u
aW5zZXJ0KGhhc2hlZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGluc2VydGVkLnNlY29uZCk7Cisg
ICAgfQorfQotLSAKMi4xMC4xCgo=
</data>
<flag name="commit-queue"
          id="347545"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328377</attachid>
            <date>2017-12-04 12:46:17 -0800</date>
            <delta_ts>2017-12-04 16:29:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WTF-Hasher-disallow-0.-and-NaNs.patch</filename>
            <type>text/plain</type>
            <size>4504</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAzMGQ1YzM2NjI4ZDA5MDIwYjU0NjMyMTQ2NTQzYzIxZjQ2NzE2NjQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDQgRGVjIDIwMTcgMTA6MDQ6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBXVEYgSGFz
aGVyOiBkaXNhbGxvdyAtMC4gYW5kIE5hTnMKCi0tLQogU291cmNlL1dURi93dGYvSGFzaGVyLmgg
ICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSGFzaGVyLmNwcCB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrLS0t
LQogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oIGIvU291cmNlL1dURi93dGYvSGFzaGVy
LmgKaW5kZXggOGEwOTQzZS4uNmQ3MDUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFz
aGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaGVyLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoZXIuaD4KKyNpbmNsdWRlIDxjbWF0aD4KIAogbmFt
ZXNwYWNlIFdURiB7CiAKQEAgLTkwLDExICs5MSwyOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBTaWdu
ZWRBcml0aG1ldGljPiBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2lnbmVkPFNpZ25lZEFyaXRo
bQogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGRvdWJsZSBudW1iZXIpCiB7Cisg
ICAgLy8gSGFzaGluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzIGlnbm9yZXMgdGhlIGZvbGxvd2lu
ZyBmYWN0czoKKyAgICAvLyAgKiAtMC4gPT0gKzAuCisgICAgLy8gICogQWxsIE5hTnMgY29tcGFy
ZSBub24tZXF1YWwKKyAgICAvLworICAgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGhhc2hlciBjYW5u
b3Qga25vdyB3aGV0aGVyIHRoZXNlIHByb3BlcnRpZXMgYXJlCisgICAgLy8gZGVzaXJhYmxlIG9y
IG5vdC4gQSBoYXNoZXIgY291bGQgZGVjaWRlIHRvIGNhbm9uaWNhbGl6ZSwgb3IgbGVhdmUgdGhl
CisgICAgLy8gYml0cyBhcy1pcy4gVGhlIG1vcmUgY29uc2VydmF0aXZlIHRoaW5nIGlzIHRoZXJl
Zm9yZSB0byBkaXNhbGxvdyB0aGVzZQorICAgIC8vIHZhbHVlcyBzaW5jZSB3ZSBkb24ndCBrbm93
IHdoYXQgdGhlIHJpZ2h0IHRoaW5nIGlzLgorICAgIGlmIChudW1iZXIgPT0gMC4pCisgICAgICAg
IEFTU0VSVCghc3RkOjpzaWduYml0KG51bWJlcikpOworICAgIGlmIChzdGQ6OmlzbmFuKG51bWJl
cikpCisgICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpID09IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4obnVt
YmVyKSk7CiAgICAgYWRkKGhhc2hlciwgYml0d2lzZV9jYXN0PHVpbnQ2NF90PihudW1iZXIpKTsK
IH0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBmbG9hdCBudW1iZXIpCiB7Cisg
ICAgLy8gU2VlIGFib3ZlIGNvbW1lbnQgZm9yIGRvdWJsZS4KKyAgICBpZiAobnVtYmVyID09IDAu
KQorICAgICAgICBBU1NFUlQoIXN0ZDo6c2lnbmJpdChudW1iZXIpKTsKKyAgICBpZiAoc3RkOjpp
c25hbihudW1iZXIpKQorICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnQzMl90PihzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCkpID09IGJpdHdpc2VfY2FzdDx1aW50
MzJfdD4obnVtYmVyKSk7CiAgICAgYWRkKGhhc2hlciwgYml0d2lzZV9jYXN0PHVpbnQzMl90Pihu
dW1iZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
SGFzaGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hlci5jcHAKaW5k
ZXggNzQ2NmUwNy4uZWRiMGNlZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSGFzaGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNo
ZXIuY3BwCkBAIC0xMjMsNyArMTIzLDYgQEAgVEVTVChXVEYsIEhhc2hlcl9pbnRlZ2VyKQogVEVT
VChXVEYsIEhhc2hlcl9mbG9hdGluZ1BvaW50KQogewogICAgIEVYUEVDVF9FUSh6ZXJvNjRCaXRI
YXNoLCBjb21wdXRlSGFzaCgwLjApKTsKLSAgICBFWFBFQ1RfRVEoMTI2NDUzMjYwNFUsIGNvbXB1
dGVIYXNoKC0wLjApKTsgLy8gTm90ZSwgbm90IHNhbWUgYXMgaGFzaCBvZiAwLjAuCiAgICAgRVhQ
RUNUX0VRKG9uZTY0Qml0SGFzaCwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpkZW5vcm1fbWluKCkpKTsKIAogICAgIEVYUEVDVF9FUSgyMjc4Mzk5OTgwVSwgY29tcHV0
ZUhhc2goMS4wKSk7CkBAIC0xMzUsMTIgKzEzNCwxMCBAQCBURVNUKFdURiwgSGFzaGVyX2Zsb2F0
aW5nUG9pbnQpCiAgICAgRVhQRUNUX0VRKDI1MDE3MDI1NTZVLCBjb21wdXRlSGFzaChzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46Omxvd2VzdCgpKSk7CiAgICAgRVhQRUNUX0VRKDIyMTQ0Mzk4
MDJVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmVwc2lsb24oKSkp
OwogCi0gICAgRVhQRUNUX0VRKDI2NzgwODY3NTlVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKSk7CiAgICAgRVhQRUNUX0VRKDIzMDQ0NDUzOTNV
LCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpKTsK
ICAgICBFWFBFQ1RfRVEoMjIzMjU5MzMxMVUsIGNvbXB1dGVIYXNoKC1zdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OmluZmluaXR5KCkpKTsKIAogICAgIEVYUEVDVF9FUSh6ZXJvMzJCaXRIYXNo
LCBjb21wdXRlSGFzaCgwLjBmKSk7Ci0gICAgRVhQRUNUX0VRKDI0MjU2ODM0MjhVLCBjb21wdXRl
SGFzaCgtMC4wZikpOyAvLyBOb3RlLCBub3Qgc2FtZSBhcyBoYXNoIG9mIDAuMGYuCiAgICAgRVhQ
RUNUX0VRKG9uZTMyQml0SGFzaCwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxmbG9h
dD46OmRlbm9ybV9taW4oKSkpOwogCiAgICAgRVhQRUNUX0VRKDEwODE1NzU5NjZVLCBjb21wdXRl
SGFzaCgxLjBmKSk7CkBAIC0xNTIsNyArMTQ5LDYgQEAgVEVTVChXVEYsIEhhc2hlcl9mbG9hdGlu
Z1BvaW50KQogICAgIEVYUEVDVF9FUSgzMjEyMDY5NTA2VSwgY29tcHV0ZUhhc2goc3RkOjpudW1l
cmljX2xpbWl0czxmbG9hdD46Omxvd2VzdCgpKSk7CiAgICAgRVhQRUNUX0VRKDEzMDg3ODQ1MDZV
LCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSk7CiAK
LSAgICBFWFBFQ1RfRVEoMjc1MTI4ODUxMVUsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjpxdWlldF9OYU4oKSkpOwogICAgIEVYUEVDVF9FUSgzNDU3MDQ5MjU2VSwgY29t
cHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCkpKTsKICAgICBF
WFBFQ1RfRVEoNDIwODg3Mzk3MVUsIGNvbXB1dGVIYXNoKC1zdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6aW5maW5pdHkoKSkpOwogfQpAQCAtMjQ5LDMgKzI0NSwyNiBAQCBURVNUKFdURiwgSGFz
aGVyX3R1cGxlTGlrZSkKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
K1RFU1QoV1RGLCBIYXNoZXJfYWxsMTZiaXRWYWx1ZXNIYXNoVW5pcXVlbHkpCit7CisgICAgc3Rk
OjpzZXQ8dWludDMyX3Q+IGhhc2hlZFRvOworICAgIGZvciAodW5zaWduZWQgdmFsdWUgPSAwOyB2
YWx1ZSA8IDB4RkZGRjsgKyt2YWx1ZSkgeworICAgICAgICB1aW50MzJfdCBoYXNoZWQgPSBjb21w
dXRlSGFzaCh2YWx1ZSk7CisgICAgICAgIGF1dG8gaW5zZXJ0ZWQgPSBoYXNoZWRUby5pbnNlcnQo
aGFzaGVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaW5zZXJ0ZWQuc2Vjb25kKTsKKyAgICB9Cit9
CisKK1RFU1QoV1RGLCBIYXNoZXJfVW5pcXVlXzMyYml0KQoreworICAgIHVuc2lnbmVkIGNvbGxp
c2lvbnMgPSAwOworICAgIHN0ZDo6c2V0PHVpbnQzMl90PiBoYXNoZWRUbzsKKyAgICBmb3IgKHVp
bnQ2NF90IHZhbHVlID0gMDsgdmFsdWUgPCAweEZGRkZGRkZGdTsgKyt2YWx1ZSkgeworICAgICAg
ICB1aW50MzJfdCBoYXNoZWQgPSBjb21wdXRlSGFzaChzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFs
dWUpKTsKKyAgICAgICAgYXV0byBpbnNlcnRlZCA9IGhhc2hlZFRvLmluc2VydChoYXNoZWQpOwor
ICAgICAgICBpZiAoIWluc2VydGVkLnNlY29uZCkKKyAgICAgICAgICAgICsrY29sbGlzaW9uczsK
KyAgICB9CisgICAgZnByaW50ZihzdGRlcnIsICJDT0xMSVNJT05TICV1ID0gJWYlJVxuIiwgY29s
bGlzaW9ucywgY29sbGlzaW9ucyAqIDEwMC4gLyAweEZGRkZGRkZGdSk7Cit9Ci0tIAoyLjEwLjEK
Cg==
</data>
<flag name="commit-queue"
          id="347559"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328406</attachid>
            <date>2017-12-04 16:29:21 -0800</date>
            <delta_ts>2017-12-04 16:29:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WTF-Hasher-disallow-0.-and-NaNs.patch</filename>
            <type>text/plain</type>
            <size>4862</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAyMzZjNTAxZWFkZmI4NTU5NDFjOGE5ZWUyNGY0NWI0OTY5MGMyZTAxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDQgRGVjIDIwMTcgMTA6MDQ6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBXVEYgSGFz
aGVyOiBkaXNhbGxvdyAtMC4gYW5kIE5hTnMKCi0tLQogU291cmNlL1dURi93dGYvSGFzaGVyLmgg
ICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysKIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0hhc2hlci5jcHAgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr
LS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hlci5oIGIvU291cmNlL1dURi93dGYvSGFz
aGVyLmgKaW5kZXggOGEwOTQzZS4uNmQ3MDUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
SGFzaGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaGVyLmgKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoZXIuaD4KKyNpbmNsdWRlIDxjbWF0aD4KIAog
bmFtZXNwYWNlIFdURiB7CiAKQEAgLTkwLDExICs5MSwyOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBT
aWduZWRBcml0aG1ldGljPiBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2lnbmVkPFNpZ25lZEFy
aXRobQogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGRvdWJsZSBudW1iZXIpCiB7
CisgICAgLy8gSGFzaGluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzIGlnbm9yZXMgdGhlIGZvbGxv
d2luZyBmYWN0czoKKyAgICAvLyAgKiAtMC4gPT0gKzAuCisgICAgLy8gICogQWxsIE5hTnMgY29t
cGFyZSBub24tZXF1YWwKKyAgICAvLworICAgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGhhc2hlciBj
YW5ub3Qga25vdyB3aGV0aGVyIHRoZXNlIHByb3BlcnRpZXMgYXJlCisgICAgLy8gZGVzaXJhYmxl
IG9yIG5vdC4gQSBoYXNoZXIgY291bGQgZGVjaWRlIHRvIGNhbm9uaWNhbGl6ZSwgb3IgbGVhdmUg
dGhlCisgICAgLy8gYml0cyBhcy1pcy4gVGhlIG1vcmUgY29uc2VydmF0aXZlIHRoaW5nIGlzIHRo
ZXJlZm9yZSB0byBkaXNhbGxvdyB0aGVzZQorICAgIC8vIHZhbHVlcyBzaW5jZSB3ZSBkb24ndCBr
bm93IHdoYXQgdGhlIHJpZ2h0IHRoaW5nIGlzLgorICAgIGlmIChudW1iZXIgPT0gMC4pCisgICAg
ICAgIEFTU0VSVCghc3RkOjpzaWduYml0KG51bWJlcikpOworICAgIGlmIChzdGQ6OmlzbmFuKG51
bWJlcikpCisgICAgICAgIEFTU0VSVChiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpID09IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4o
bnVtYmVyKSk7CiAgICAgYWRkKGhhc2hlciwgYml0d2lzZV9jYXN0PHVpbnQ2NF90PihudW1iZXIp
KTsKIH0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBmbG9hdCBudW1iZXIpCiB7
CisgICAgLy8gU2VlIGFib3ZlIGNvbW1lbnQgZm9yIGRvdWJsZS4KKyAgICBpZiAobnVtYmVyID09
IDAuKQorICAgICAgICBBU1NFUlQoIXN0ZDo6c2lnbmJpdChudW1iZXIpKTsKKyAgICBpZiAoc3Rk
Ojppc25hbihudW1iZXIpKQorICAgICAgICBBU1NFUlQoYml0d2lzZV9jYXN0PHVpbnQzMl90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCkpID09IGJpdHdpc2VfY2FzdDx1
aW50MzJfdD4obnVtYmVyKSk7CiAgICAgYWRkKGhhc2hlciwgYml0d2lzZV9jYXN0PHVpbnQzMl90
PihudW1iZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hlci5jcHAK
aW5kZXggNzQ2NmUwNy4uYTU4MTY1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSGFzaGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoZXIuY3BwCkBAIC0xMjMsNyArMTIzLDYgQEAgVEVTVChXVEYsIEhhc2hlcl9pbnRlZ2VyKQog
VEVTVChXVEYsIEhhc2hlcl9mbG9hdGluZ1BvaW50KQogewogICAgIEVYUEVDVF9FUSh6ZXJvNjRC
aXRIYXNoLCBjb21wdXRlSGFzaCgwLjApKTsKLSAgICBFWFBFQ1RfRVEoMTI2NDUzMjYwNFUsIGNv
bXB1dGVIYXNoKC0wLjApKTsgLy8gTm90ZSwgbm90IHNhbWUgYXMgaGFzaCBvZiAwLjAuCiAgICAg
RVhQRUNUX0VRKG9uZTY0Qml0SGFzaCwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpkZW5vcm1fbWluKCkpKTsKIAogICAgIEVYUEVDVF9FUSgyMjc4Mzk5OTgwVSwgY29t
cHV0ZUhhc2goMS4wKSk7CkBAIC0xMzUsMTIgKzEzNCwxMCBAQCBURVNUKFdURiwgSGFzaGVyX2Zs
b2F0aW5nUG9pbnQpCiAgICAgRVhQRUNUX0VRKDI1MDE3MDI1NTZVLCBjb21wdXRlSGFzaChzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Omxvd2VzdCgpKSk7CiAgICAgRVhQRUNUX0VRKDIyMTQ0
Mzk4MDJVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmVwc2lsb24o
KSkpOwogCi0gICAgRVhQRUNUX0VRKDI2NzgwODY3NTlVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpKSk7CiAgICAgRVhQRUNUX0VRKDIzMDQ0NDUz
OTNVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkp
KTsKICAgICBFWFBFQ1RfRVEoMjIzMjU5MzMxMVUsIGNvbXB1dGVIYXNoKC1zdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpKTsKIAogICAgIEVYUEVDVF9FUSh6ZXJvMzJCaXRI
YXNoLCBjb21wdXRlSGFzaCgwLjBmKSk7Ci0gICAgRVhQRUNUX0VRKDI0MjU2ODM0MjhVLCBjb21w
dXRlSGFzaCgtMC4wZikpOyAvLyBOb3RlLCBub3Qgc2FtZSBhcyBoYXNoIG9mIDAuMGYuCiAgICAg
RVhQRUNUX0VRKG9uZTMyQml0SGFzaCwgY29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46OmRlbm9ybV9taW4oKSkpOwogCiAgICAgRVhQRUNUX0VRKDEwODE1NzU5NjZVLCBjb21w
dXRlSGFzaCgxLjBmKSk7CkBAIC0xNTIsNyArMTQ5LDYgQEAgVEVTVChXVEYsIEhhc2hlcl9mbG9h
dGluZ1BvaW50KQogICAgIEVYUEVDVF9FUSgzMjEyMDY5NTA2VSwgY29tcHV0ZUhhc2goc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Omxvd2VzdCgpKSk7CiAgICAgRVhQRUNUX0VRKDEzMDg3ODQ1
MDZVLCBjb21wdXRlSGFzaChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSk7
CiAKLSAgICBFWFBFQ1RfRVEoMjc1MTI4ODUxMVUsIGNvbXB1dGVIYXNoKHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjpxdWlldF9OYU4oKSkpOwogICAgIEVYUEVDVF9FUSgzNDU3MDQ5MjU2VSwg
Y29tcHV0ZUhhc2goc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCkpKTsKICAg
ICBFWFBFQ1RfRVEoNDIwODg3Mzk3MVUsIGNvbXB1dGVIYXNoKC1zdGQ6Om51bWVyaWNfbGltaXRz
PGZsb2F0Pjo6aW5maW5pdHkoKSkpOwogfQpAQCAtMjQ5LDMgKzI0NSwzNCBAQCBURVNUKFdURiwg
SGFzaGVyX3R1cGxlTGlrZSkKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CisKK1RFU1QoV1RGLCBIYXNoZXJfYWxsMTZiaXRWYWx1ZXNIYXNoVW5pcXVlbHkpCit7CisgICAg
c3RkOjpzZXQ8dWludDMyX3Q+IGhhc2hlZFRvOworICAgIGZvciAodW5zaWduZWQgdmFsdWUgPSAw
OyB2YWx1ZSA8PSAweEZGRkY7ICsrdmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgaGFzaGVkID0g
Y29tcHV0ZUhhc2godmFsdWUpOworICAgICAgICBhdXRvIGluc2VydGVkID0gaGFzaGVkVG8uaW5z
ZXJ0KGhhc2hlZCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGluc2VydGVkLnNlY29uZCk7CisgICAg
fQorfQorCisjaWYgMCAvLyBEaXNhYmxlZCBiZWNhdXNlIGl0IHRha2VzIGEgd2hpbGUgdG8gcnVu
IGFuZCBhbGxvY2F0ZXMgYSBsb3QuCitURVNUKFdURiwgSGFzaGVyXzMyYml0Q29sbGlzaW9uUmF0
ZSkKK3sKKyAgICB1bnNpZ25lZCBjb2xsaXNpb25zID0gMDsKKyAgICB1aW50MzJfdCogaGFzaGVk
VG8gPSBuZXcgdWludDMyX3RbMHhGRkZGRkZGRnUgLyAzMl07CisgICAgQVNTRVJUKGhhc2hlZFRv
KTsKKyAgICBtZW1zZXQoaGFzaGVkVG8sIDAsIDB4RkZGRkZGRkZ1IC8gMzIpOworICAgIGZvciAo
dWludDY0X3QgdmFsdWUgPSAwOyB2YWx1ZSA8PSAweEZGRkZGRkZGdTsgKyt2YWx1ZSkgeworICAg
ICAgICB1aW50MzJfdCBoYXNoZWQgPSBjb21wdXRlSGFzaChzdGF0aWNfY2FzdDx1aW50MzJfdD4o
dmFsdWUpKTsKKyAgICAgICAgYm9vbCBjb2xsaWRlZCA9IChoYXNoZWRUb1toYXNoZWQgLyAzMl0g
Pj4gKGhhc2hlZCAlIDMyKSkgJiAweDE7CisgICAgICAgIGhhc2hlZFRvW2hhc2hlZCAvIDMyXSB8
PSAoMHgxIDw8IChoYXNoZWQgJSAzMikpOworICAgICAgICBpZiAoY29sbGlkZWQpCisgICAgICAg
ICAgICArK2NvbGxpc2lvbnM7CisgICAgfQorICAgIGRlbGV0ZVtdIGhhc2hlZFRvOworICAgIGRv
dWJsZSBjb2xsaXNpb25SYXRlID0gY29sbGlzaW9ucyAqIDEwMC4gLyAweEZGRkZGRkZGdTsKKyAg
ICAvLyBUaGlzIGhhcHBlbnMgdG8gYmUgdGhlIGNvbGxpc2lvbiByYXRlIHdoZW4gdGhlIHRlc3Qg
d2FzIGNoZWNrZWQgaW4uCisgICAgRVhQRUNUX0xFKGNvbGxpc2lvblJhdGUsIDMuKTsKK30KKyNl
bmRpZgotLSAKMi4xMC4xCgo=
</data>
<flag name="commit-queue"
          id="347596"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>