<?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>45161</bug_id>
          
          <creation_ts>2010-09-02 19:41:22 -0700</creation_ts>
          <short_desc>Add unit tests for interval tree</short_desc>
          <delta_ts>2010-09-05 23:15:58 -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>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45060</dependson>
    
    <dependson>45160</dependson>
          <blocked>44729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273754</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-02 19:41:22 -0700</bug_when>
    <thetext>The interval tree being integrated in https://bugs.webkit.org/show_bug.cgi?id=45160 needs unit tests integrated as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273764</commentid>
    <comment_count>1</comment_count>
      <attachid>66465</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-02 20:07:07 -0700</bug_when>
    <thetext>Created attachment 66465
Patch

This patch won&apos;t build until bug 45060 and bug 45160 land, but it should give reviewers an idea of how the tree has been tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273835</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-03 02:07:12 -0700</bug_when>
    <thetext>Attachment 66465 did not build on chromium:
Build output: http://queues.webkit.org/results/3924063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274258</commentid>
    <comment_count>3</comment_count>
      <attachid>66465</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-03 16:48:17 -0700</bug_when>
    <thetext>Comment on attachment 66465
Patch

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

&gt; WebKit/chromium/tests/PODIntervalTreeTest.cpp:109
&gt; +namespace {
nit: add new line after &quot;namespace {&quot; to match the new line above the closing bracket

&gt; WebKit/chromium/tests/PODIntervalTreeTest.cpp:150
&gt; +namespace {
nit: add new line below this line

&gt; WebKit/chromium/tests/PODIntervalTreeTest.cpp:199
&gt; +        int len = nextRandom(maximumValue);
nit: len -&gt; length

&gt; WebKit/chromium/tests/PODIntervalTreeTest.cpp:210
&gt; +        int idx = nextRandom(addedElements.size());
nit: idx -&gt; index

R=me w/ those nits fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274478</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-05 21:54:20 -0700</bug_when>
    <thetext>Committed r66809: &lt;http://trac.webkit.org/changeset/66809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274496</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-05 23:15:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66809 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66465</attachid>
            <date>2010-09-02 20:07:07 -0700</date>
            <delta_ts>2010-09-03 16:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>interval-tree-tests.patch</filename>
            <type>text/plain</type>
            <size>12887</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjY3MDYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMDIgIEtlbm5l
dGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBpbnRlcnZhbCB0cmVlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE2MQorCisg
ICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiB0ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvU3RyaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckRhdGExOjp2YWx1ZVRvU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVuZHBvaW50VHlwZTE6OnZhbHVlVG9TdHJpbmcpOgor
CiAyMDEwLTA5LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNp
b24gNjY3MDYpCisrKyBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpA
QCAtNzM4LDYgKzczOCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvSURCS2V5
UGF0aFRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9LZXlib2FyZFRl
c3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9LVVJMVGVzdC5jcHAnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RzL1BPREludGVydmFsVHJlZVRlc3QuY3BwJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9SdW5BbGxUZXN0cy5jcHAnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgJ3Rlc3RzL1RpbGluZ0RhdGFUZXN0LmNwcCcsCiAgICAgICAgICAg
ICAgICAgICAgIF0sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9ESW50ZXJ2YWxUcmVl
VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPREludGVydmFs
VHJlZVRlc3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPRElu
dGVydmFsVHJlZVRlc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAq
IENvcHlyaWdodCAyMDEwLCBHb29nbGUgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUZXN0
cyBmb3IgdGhlIGludGVydmFsIHRyZWUgY2xhc3MuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIlBPREludGVydmFsVHJlZS5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlRyZWVUZXN0SGVscGVycy5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBUcmVlVGVzdEhlbHBlcnM7CisK
K2lubGluZSBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBmbG9hdCYgdmFsdWUpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKK30KKworaW5saW5lIFN0cmluZyB2YWx1ZVRv
U3RyaW5nKHZvaWQqIGNvbnN0JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
IjB4JXAiLCB2YWx1ZSk7Cit9CisKK1RFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdEluc2Vy
dGlvbikKK3sKKyAgICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQ+IHRyZWU7CisgICAgdHJlZS5hZGQo
UE9ESW50ZXJ2YWw8ZmxvYXQ+KDIsIDQpKTsKKyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52
YXJpYW50cygpKTsKK30KKworVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0SW5zZXJ0aW9u
QW5kUXVlcnkpCit7CisgICAgUE9ESW50ZXJ2YWxUcmVlPGZsb2F0PiB0cmVlOworICAgIHRyZWUu
YWRkKFBPREludGVydmFsPGZsb2F0PigyLCA0KSk7CisgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVj
a0ludmFyaWFudHMoKSk7CisgICAgVmVjdG9yPFBPREludGVydmFsPGZsb2F0PiA+IHJlc3VsdCA9
IHRyZWUuYWxsT3ZlcmxhcHMoUE9ESW50ZXJ2YWw8ZmxvYXQ+KDEsIDMpKTsKKyAgICBFWFBFQ1Rf
RVEoMVUsIHJlc3VsdC5zaXplKCkpOworICAgIEVYUEVDVF9FUSgyLCByZXN1bHRbMF0ubG93KCkp
OworICAgIEVYUEVDVF9FUSg0LCByZXN1bHRbMF0uaGlnaCgpKTsKK30KKworVEVTVChQT0RJbnRl
cnZhbFRyZWVUZXN0LCBUZXN0UXVlcnlBZ2FpbnN0WmVyb1NpemVJbnRlcnZhbCkKK3sKKyAgICBQ
T0RJbnRlcnZhbFRyZWU8ZmxvYXQ+IHRyZWU7CisgICAgdHJlZS5hZGQoUE9ESW50ZXJ2YWw8Zmxv
YXQ+KDEsIDIuNSkpOworICAgIHRyZWUuYWRkKFBPREludGVydmFsPGZsb2F0PigzLjUsIDUpKTsK
KyAgICB0cmVlLmFkZChQT0RJbnRlcnZhbDxmbG9hdD4oMiwgNCkpOworICAgIEFTU0VSVF9UUlVF
KHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIFZlY3RvcjxQT0RJbnRlcnZhbDxmbG9hdD4g
PiByZXN1bHQgPSB0cmVlLmFsbE92ZXJsYXBzKFBPREludGVydmFsPGZsb2F0PigzLCAzKSk7Cisg
ICAgRVhQRUNUX0VRKDFVLCByZXN1bHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMiwgcmVzdWx0
WzBdLmxvdygpKTsKKyAgICBFWFBFQ1RfRVEoNCwgcmVzdWx0WzBdLmhpZ2goKSk7Cit9CisKK1RF
U1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdER1cGxpY2F0ZUVsZW1lbnRJbnNlcnRpb24pCit7
CisgICAgUE9ESW50ZXJ2YWxUcmVlPGZsb2F0LCBpbnQqPiB0cmVlOworICAgIGludCB0bXAxID0g
MTsKKyAgICBpbnQgdG1wMiA9IDI7CisgICAgdHlwZWRlZiBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQs
IGludCo+OjpJbnRlcnZhbFR5cGUgSW50ZXJ2YWxUeXBlOworICAgIEludGVydmFsVHlwZSBpbnRl
cnZhbDEoMSwgMywgJnRtcDEpOworICAgIEludGVydmFsVHlwZSBpbnRlcnZhbDIoMSwgMywgJnRt
cDIpOworICAgIHRyZWUuYWRkKGludGVydmFsMSk7CisgICAgdHJlZS5hZGQoaW50ZXJ2YWwyKTsK
KyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKKyAgICBFWFBFQ1RfVFJV
RSh0cmVlLmNvbnRhaW5zKGludGVydmFsMSkpOworICAgIEVYUEVDVF9UUlVFKHRyZWUuY29udGFp
bnMoaW50ZXJ2YWwyKSk7CisgICAgRVhQRUNUX1RSVUUodHJlZS5yZW1vdmUoaW50ZXJ2YWwxKSk7
CisgICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucyhpbnRlcnZhbDIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UodHJlZS5jb250YWlucyhpbnRlcnZhbDEpKTsKKyAgICBFWFBFQ1RfVFJVRSh0cmVlLnJl
bW92ZShpbnRlcnZhbDIpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdHJlZS5zaXplKCkpOworfQorCitu
YW1lc3BhY2Ugeworc3RydWN0IFVzZXJEYXRhMSB7CitwdWJsaWM6CisgICAgVXNlckRhdGExKCkK
KyAgICAgICAgOiBhKDApLCBiKDEpIHsgfQorCisgICAgZmxvYXQgYTsKKyAgICBpbnQgYjsKK307
CisKK2lubGluZSBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBVc2VyRGF0YTEmIHZhbHVlKQor
eworICAgIHJldHVybiBTdHJpbmcoIltVc2VyRGF0YTEgYT0iKSArIFN0cmluZzo6bnVtYmVyKHZh
bHVlLmEpICsgIiBiPSIgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5iKSArICJdIjsKK30KKworfSAv
LyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK1RFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdElu
c2VydGlvbk9mQ29tcGxleFVzZXJEYXRhKQoreworICAgIFBPREludGVydmFsVHJlZTxmbG9hdCwg
VXNlckRhdGExPiB0cmVlOworICAgIFVzZXJEYXRhMSBkYXRhMTsKKyAgICBkYXRhMS5hID0gNTsK
KyAgICBkYXRhMS5iID0gNjsKKyAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDIsIDQs
IGRhdGExKSk7CisgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Cit9CisK
K1RFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgVGVzdFF1ZXJ5aW5nT2ZDb21wbGV4VXNlckRhdGEp
Cit7CisgICAgUE9ESW50ZXJ2YWxUcmVlPGZsb2F0LCBVc2VyRGF0YTE+IHRyZWU7CisgICAgVXNl
ckRhdGExIGRhdGExOworICAgIGRhdGExLmEgPSA1OworICAgIGRhdGExLmIgPSA2OworICAgIHRy
ZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMiwgNCwgZGF0YTEpKTsKKyAgICBBU1NFUlRfVFJV
RSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKKyAgICBWZWN0b3I8UE9ESW50ZXJ2YWw8ZmxvYXQs
IFVzZXJEYXRhMT4gPiBvdmVybGFwcyA9IHRyZWUuYWxsT3ZlcmxhcHModHJlZS5jcmVhdGVJbnRl
cnZhbCgzLCA1LCBkYXRhMSkpOworICAgIEVYUEVDVF9FUSgxVSwgb3ZlcmxhcHMuc2l6ZSgpKTsK
KyAgICBFWFBFQ1RfRVEoNSwgb3ZlcmxhcHNbMF0uZGF0YSgpLmEpOworICAgIEVYUEVDVF9FUSg2
LCBvdmVybGFwc1swXS5kYXRhKCkuYik7Cit9CisKK25hbWVzcGFjZSB7CitjbGFzcyBFbmRwb2lu
dFR5cGUxIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBFbmRwb2ludFR5cGUxKGludCB2YWx1ZSkK
KyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKSB7IH0KKworICAgIGludCB2YWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWU7IH0KKworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEVuZHBvaW50VHlw
ZTEmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlIDwgb3RoZXIubV92YWx1ZTsgfQorICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBFbmRwb2ludFR5cGUxJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fdmFs
dWU7CisgICAgLy8gVGhlc2Ugb3BlcmF0b3JzIHNob3VsZCBub3QgYmUgY2FsbGVkIGJ5IHRoZSBp
bnRlcnZhbCB0cmVlLgorICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IEVuZHBvaW50VHlwZTEmIG90
aGVyKTsKKyAgICBib29sIG9wZXJhdG9yPD0oY29uc3QgRW5kcG9pbnRUeXBlMSYgb3RoZXIpOwor
ICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBFbmRwb2ludFR5cGUxJiBvdGhlcik7CisgICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IEVuZHBvaW50VHlwZTEmIG90aGVyKTsKK307CisKK2lubGluZSBT
dHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBFbmRwb2ludFR5cGUxJiB2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCJbRW5kcG9pbnRUeXBlMSB2YWx1ZT0iKSArIFN0cmluZzo6bnVtYmVyKHZh
bHVlLnZhbHVlKCkpICsgIl0iOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworVEVT
VChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0VHJlZURvZXNOb3RSZXF1aXJlTW9zdE9wZXJhdG9y
cykKK3sKKyAgICBQT0RJbnRlcnZhbFRyZWU8RW5kcG9pbnRUeXBlMT4gdHJlZTsKKyAgICB0cmVl
LmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKEVuZHBvaW50VHlwZTEoMSksIEVuZHBvaW50VHlwZTEo
MikpKTsKKyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKK30KKworLy8g
VW5jb21tZW50IHRvIGRlYnVnIGEgZmFpbHVyZSBvZiB0aGUgaW5zZXJ0aW9uIGFuZCBkZWxldGlv
biB0ZXN0LgorLy8gI2RlZmluZSBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKKwor
bmFtZXNwYWNlIHsKKwordm9pZCBJbnNlcnRpb25BbmREZWxldGlvblRlc3QoaW50MzJfdCBzZWVk
LCBpbnQgdHJlZVNpemUpCit7CisgICAgaW5pdFJhbmRvbShzZWVkKTsKKyAgICBpbnQgbWF4aW11
bVZhbHVlID0gdHJlZVNpemU7CisgICAgLy8gQnVpbGQgdGhlIHRyZWUKKyAgICBQT0RJbnRlcnZh
bFRyZWU8aW50PiB0cmVlOworICAgIFZlY3RvcjxQT0RJbnRlcnZhbDxpbnQ+ID4gYWRkZWRFbGVt
ZW50czsKKyAgICBWZWN0b3I8UE9ESW50ZXJ2YWw8aW50PiA+IHJlbW92ZWRFbGVtZW50czsKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHRyZWVTaXplOyBpKyspIHsKKyAgICAgICAgaW50IGxlZnQg
PSBuZXh0UmFuZG9tKG1heGltdW1WYWx1ZSk7CisgICAgICAgIGludCBsZW4gPSBuZXh0UmFuZG9t
KG1heGltdW1WYWx1ZSk7CisgICAgICAgIFBPREludGVydmFsPGludD4gaW50ZXJ2YWwobGVmdCwg
bGVmdCArIGxlbik7CisgICAgICAgIHRyZWUuYWRkKGludGVydmFsKTsKKyNpZmRlZiBERUJVR19J
TlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKKyAgICAgICAgTE9HX0VSUk9SKCIqKiogQWRkaW5n
IGVsZW1lbnQgJXMiLCB2YWx1ZVRvU3RyaW5nKGludGVydmFsKS5hc2NpaSgpLmRhdGEoKSk7Cisj
ZW5kaWYKKyAgICAgICAgYWRkZWRFbGVtZW50cy5hcHBlbmQoaW50ZXJ2YWwpOworICAgIH0KKyAg
ICAvLyBDaHVybiB0aGUgdHJlZSdzIGNvbnRlbnRzLgorICAgIC8vIEZpcnN0IHJlbW92ZSBoYWxm
IG9mIHRoZSBlbGVtZW50cyBpbiByYW5kb20gb3JkZXIuCisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCB0cmVlU2l6ZSAvIDI7IGkrKykgeworICAgICAgICBpbnQgaWR4ID0gbmV4dFJhbmRvbShhZGRl
ZEVsZW1lbnRzLnNpemUoKSk7CisjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9U
RVNUCisgICAgICAgIExPR19FUlJPUigiKioqIFJlbW92aW5nIGVsZW1lbnQgJXMiLCB2YWx1ZVRv
U3RyaW5nKGFkZGVkRWxlbWVudHNbaWR4XSkuYXNjaWkoKS5kYXRhKCkpOworI2VuZGlmCisgICAg
ICAgIEFTU0VSVF9UUlVFKHRyZWUuY29udGFpbnMoYWRkZWRFbGVtZW50c1tpZHhdKSkgPDwgIlRl
c3QgZmFpbGVkIGZvciBzZWVkICIgPDwgc2VlZDsKKyAgICAgICAgdHJlZS5yZW1vdmUoYWRkZWRF
bGVtZW50c1tpZHhdKTsKKyAgICAgICAgcmVtb3ZlZEVsZW1lbnRzLmFwcGVuZChhZGRlZEVsZW1l
bnRzW2lkeF0pOworICAgICAgICBhZGRlZEVsZW1lbnRzLnJlbW92ZShpZHgpOworICAgICAgICBB
U1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKSA8PCAiVGVzdCBmYWlsZWQgZm9yIHNl
ZWQgIiA8PCBzZWVkOworICAgIH0KKyAgICAvLyBOb3cgcmFuZG9tbHkgYWRkIG9yIHJlbW92ZSBl
bGVtZW50cy4KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIgKiB0cmVlU2l6ZTsgaSsrKSB7Cisg
ICAgICAgIGJvb2wgYWRkID0gZmFsc2U7CisgICAgICAgIGlmICghYWRkZWRFbGVtZW50cy5zaXpl
KCkpCisgICAgICAgICAgICBhZGQgPSB0cnVlOworICAgICAgICBlbHNlIGlmICghcmVtb3ZlZEVs
ZW1lbnRzLnNpemUoKSkKKyAgICAgICAgICAgIGFkZCA9IGZhbHNlOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBhZGQgPSAobmV4dFJhbmRvbSgyKSA9PSAxKTsKKyAgICAgICAgaWYgKGFkZCkg
eworICAgICAgICAgICAgaW50IGlkeCA9IG5leHRSYW5kb20ocmVtb3ZlZEVsZW1lbnRzLnNpemUo
KSk7CisjaWZkZWYgREVCVUdfSU5TRVJUSU9OX0FORF9ERUxFVElPTl9URVNUCisgICAgICAgICAg
ICBMT0dfRVJST1IoIioqKiBBZGRpbmcgZWxlbWVudCAlcyIsIHZhbHVlVG9TdHJpbmcocmVtb3Zl
ZEVsZW1lbnRzW2lkeF0pLmFzY2lpKCkuZGF0YSgpKTsKKyNlbmRpZgorICAgICAgICAgICAgdHJl
ZS5hZGQocmVtb3ZlZEVsZW1lbnRzW2lkeF0pOworICAgICAgICAgICAgYWRkZWRFbGVtZW50cy5h
cHBlbmQocmVtb3ZlZEVsZW1lbnRzW2lkeF0pOworICAgICAgICAgICAgcmVtb3ZlZEVsZW1lbnRz
LnJlbW92ZShpZHgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGlkeCA9IG5l
eHRSYW5kb20oYWRkZWRFbGVtZW50cy5zaXplKCkpOworI2lmZGVmIERFQlVHX0lOU0VSVElPTl9B
TkRfREVMRVRJT05fVEVTVAorICAgICAgICAgICAgTE9HX0VSUk9SKCIqKiogUmVtb3ZpbmcgZWxl
bWVudCAlcyIsIHZhbHVlVG9TdHJpbmcoYWRkZWRFbGVtZW50c1tpZHhdKS5hc2NpaSgpLmRhdGEo
KSk7CisjZW5kaWYKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHRyZWUuY29udGFpbnMoYWRkZWRF
bGVtZW50c1tpZHhdKSkgPDwgIlRlc3QgZmFpbGVkIGZvciBzZWVkICIgPDwgc2VlZDsKKyAgICAg
ICAgICAgIEFTU0VSVF9UUlVFKHRyZWUucmVtb3ZlKGFkZGVkRWxlbWVudHNbaWR4XSkpIDw8ICJU
ZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CisgICAgICAgICAgICByZW1vdmVkRWxlbWVu
dHMuYXBwZW5kKGFkZGVkRWxlbWVudHNbaWR4XSk7CisgICAgICAgICAgICBhZGRlZEVsZW1lbnRz
LnJlbW92ZShpZHgpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJ
bnZhcmlhbnRzKCkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7CisgICAgfQor
fQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0
LCBSYW5kb21EZWxldGlvbkFuZEluc2VydGlvblJlZ3Jlc3Npb25UZXN0MSkKK3sKKyAgICBJbnNl
cnRpb25BbmREZWxldGlvblRlc3QoMTM5NzIsIDEwMCk7Cit9CisKK1RFU1QoUE9ESW50ZXJ2YWxU
cmVlVGVzdCwgUmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb25SZWdyZXNzaW9uVGVzdDIpCit7Cisg
ICAgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KDEyODMzODIxMTMsIDEwKTsKK30KKworVEVTVChQ
T0RJbnRlcnZhbFRyZWVUZXN0LCBSYW5kb21EZWxldGlvbkFuZEluc2VydGlvblJlZ3Jlc3Npb25U
ZXN0MykKK3sKKyAgICAvLyBUaGlzIGlzIHRoZSBzZXF1ZW5jZSBvZiBpbnNlcnRpb25zIGFuZCBk
ZWxldGlvbnMgdGhhdCB0cmlnZ2VyZWQKKyAgICAvLyB0aGUgZmFpbHVyZSBpbiBSYW5kb21EZWxl
dGlvbkFuZEluc2VydGlvblJlZ3Jlc3Npb25UZXN0Mi4KKyAgICBQT0RJbnRlcnZhbFRyZWU8aW50
PiB0cmVlOworICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMCwgNSkpOworICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIHRyZWUuYWRkKHRyZWUuY3Jl
YXRlSW50ZXJ2YWwoNCwgNSkpOworICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRz
KCkpOworICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoOCwgOSkpOworICAgIEFTU0VS
VF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRl
SW50ZXJ2YWwoMSwgNCkpOworICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkp
OworICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMywgNSkpOworICAgIEFTU0VSVF9U
UlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50
ZXJ2YWwoNCwgMTIpKTsKKyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsK
KyAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDAsIDIpKTsKKyAgICBBU1NFUlRfVFJV
RSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKKyAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVy
dmFsKDAsIDIpKTsKKyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKKyAg
ICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDksIDEzKSk7CisgICAgQVNTRVJUX1RSVUUo
dHJlZS5jaGVja0ludmFyaWFudHMoKSk7CisgICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZh
bCgwLCAxKSk7CisgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7CisgICAg
dHJlZS5yZW1vdmUodHJlZS5jcmVhdGVJbnRlcnZhbCgwLCAyKSk7CisgICAgQVNTRVJUX1RSVUUo
dHJlZS5jaGVja0ludmFyaWFudHMoKSk7CisgICAgdHJlZS5yZW1vdmUodHJlZS5jcmVhdGVJbnRl
cnZhbCg5LCAxMykpOworICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwor
ICAgIHRyZWUucmVtb3ZlKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMCwgMikpOworICAgIEFTU0VSVF9U
UlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIHRyZWUucmVtb3ZlKHRyZWUuY3JlYXRl
SW50ZXJ2YWwoMCwgMSkpOworICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkp
OworICAgIHRyZWUucmVtb3ZlKHRyZWUuY3JlYXRlSW50ZXJ2YWwoNCwgNSkpOworICAgIEFTU0VS
VF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAgIHRyZWUucmVtb3ZlKHRyZWUuY3Jl
YXRlSW50ZXJ2YWwoNCwgMTIpKTsKKyAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50
cygpKTsKK30KKworVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBSYW5kb21EZWxldGlvbkFuZElu
c2VydGlvblJlZ3Jlc3Npb25UZXN0NCkKK3sKKyAgICAvLyBFdmVuIGZ1cnRoZXIgcmVkdWNlZCB0
ZXN0IGNhc2UgZm9yIFJhbmRvbURlbGV0aW9uQW5kSW5zZXJ0aW9uUmVncmVzc2lvblRlc3QzLgor
ICAgIFBPREludGVydmFsVHJlZTxpbnQ+IHRyZWU7CisgICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJ
bnRlcnZhbCgwLCA1KSk7CisgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7
CisgICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZhbCg4LCA5KSk7CisgICAgQVNTRVJUX1RS
VUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7CisgICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRl
cnZhbCgxLCA0KSk7CisgICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Cisg
ICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZhbCgzLCA1KSk7CisgICAgQVNTRVJUX1RSVUUo
dHJlZS5jaGVja0ludmFyaWFudHMoKSk7CisgICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZh
bCg0LCAxMikpOworICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOworICAg
IHRyZWUucmVtb3ZlKHRyZWUuY3JlYXRlSW50ZXJ2YWwoNCwgMTIpKTsKKyAgICBBU1NFUlRfVFJV
RSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKK30KKworVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0
LCBUZXN0UmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb24pCit7CisgICAgSW5zZXJ0aW9uQW5kRGVs
ZXRpb25UZXN0KGdlbmVyYXRlU2VlZCgpLCAxMDAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>
<flag name="review"
          id="55496"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="55497"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>