<?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>66252</bug_id>
          
          <creation_ts>2011-08-15 14:03:49 -0700</creation_ts>
          <short_desc>garden-o-matic frontend needs model.commitDataForRevisionRange function.</short_desc>
          <delta_ts>2011-08-15 15:14:15 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66144</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451263</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-15 14:03:49 -0700</bug_when>
    <thetext>garden-o-matic frontend needs model.getCommitDataList function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451265</commentid>
    <comment_count>1</comment_count>
      <attachid>103949</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-15 14:05:22 -0700</bug_when>
    <thetext>Created attachment 103949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451278</commentid>
    <comment_count>2</comment_count>
      <attachid>103949</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-15 14:15:50 -0700</bug_when>
    <thetext>Comment on attachment 103949
Patch

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

I think the main question in this patch is what behavior we want when oldestRevision or newestRevision isn&apos;t in model.state.recentCommits.  This patch returns [], but another reasonable behavior is to return whatever commitData we have that falls inside that range.  For example, when you compute an implied impliedFirstFailingRevision by adding one to newestPassingRevision, you&apos;re computing a revision number that might not exist in model.state.recentCommits (e.g, because it was a revision that went into a branch other than trunk).  I&apos;d imagine you&apos;d want this function to return whatever commitData objects we have for the regression range rather than returning the empty list.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:118
&gt; +model.getCommitDataList = function(oldestRevision, newestRevision)

I would have called this commitDataListForRevisionRange to be explicit about the types, but this is fine too.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:121
&gt; +    var commitData = g_commitIndex[oldestRevision];

What if commitData is undefined?  This will return [] rather than whatever commitDatas we have in the range.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:122
&gt; +    var index = model.state.recentCommits.indexOf(commitData);

Is there a reason to use g_commitIndex?  indexOf requires a linear scan over recentCommits anyway.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:126
&gt; +    while(commitData.revision != newestRevision) {

commitData.revision &lt;= newestRevision

The caller might supply a newestRevision that doesn&apos;t happen to be in our dataset (e.g., because they added 1 to a rev that was, and the computed rev actually went into a branch).  With the test written this way, we&apos;ll walk off the beginning of model.state.recentCommits and return [].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451300</commentid>
    <comment_count>3</comment_count>
      <attachid>103949</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-15 14:36:51 -0700</bug_when>
    <thetext>Comment on attachment 103949
Patch

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

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:118
&gt;&gt; +model.getCommitDataList = function(oldestRevision, newestRevision)
&gt; 
&gt; I would have called this commitDataListForRevisionRange to be explicit about the types, but this is fine too.

I&apos;ll rename.

&gt;&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:122
&gt;&gt; +    var index = model.state.recentCommits.indexOf(commitData);
&gt; 
&gt; Is there a reason to use g_commitIndex?  indexOf requires a linear scan over recentCommits anyway.

You&apos;re right -- I&apos;ll rework the algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451314</commentid>
    <comment_count>4</comment_count>
      <attachid>103961</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-15 15:08:23 -0700</bug_when>
    <thetext>Created attachment 103961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451317</commentid>
    <comment_count>5</comment_count>
      <attachid>103961</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-15 15:13:19 -0700</bug_when>
    <thetext>Comment on attachment 103961
Patch

Looks great.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451318</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-15 15:14:15 -0700</bug_when>
    <thetext>Committed r93063: &lt;http://trac.webkit.org/changeset/93063&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103949</attachid>
            <date>2011-08-15 14:05:22 -0700</date>
            <delta_ts>2011-08-15 15:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66252-20110815140521.patch</filename>
            <type>text/plain</type>
            <size>4198</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNTcKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9t
b2RlbC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9tb2RlbC5qcwppbmRleCBiNzcyMjM2YzJlMzJkZjNj
NDY2ZDAwZmZlZWJjODljN2ZkOGY2OTQyLi5iMDhmNWNiNWI5OGIzNThiNTQxZTZhYTQ1NzNmYjUy
OGEyY2EwNTkwIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvbW9kZWwuanMKKysrIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
VGVzdEZhaWx1cmVzL21vZGVsLmpzCkBAIC05NywxNSArOTcsNDIgQEAgbW9kZWwudGFrZUV4cGVj
dGF0aW9uVXBkYXRlUXVldWUgPSBmdW5jdGlvbigpCiAgICAgcmV0dXJuIHF1ZXVlOwogfTsKIAor
dmFyIGdfY29tbWl0SW5kZXggPSB7fTsKKwogbW9kZWwudXBkYXRlUmVjZW50Q29tbWl0cyA9IGZ1
bmN0aW9uKGNhbGxiYWNrKQogewogICAgIHRyYWMucmVjZW50Q29tbWl0RGF0YSgndHJ1bmsnLCBr
Q29tbWl0TG9nTGVuZ3RoLCBmdW5jdGlvbihjb21taXREYXRhTGlzdCkgewogICAgICAgICBtb2Rl
bC5zdGF0ZS5yZWNlbnRDb21taXRzID0gY29tbWl0RGF0YUxpc3Q7CisgICAgICAgIHVwZGF0ZUNv
bW1pdEluZGV4KCk7CiAgICAgICAgIGZpbmRBbmRNYXJrUmV2ZXJ0ZWRSZXZpc2lvbnMobW9kZWwu
c3RhdGUucmVjZW50Q29tbWl0cyk7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7CiB9Owog
CitmdW5jdGlvbiB1cGRhdGVDb21taXRJbmRleCgpIHsKKyAgICBtb2RlbC5zdGF0ZS5yZWNlbnRD
b21taXRzLmZvckVhY2goZnVuY3Rpb24oY29tbWl0RGF0YSkgeworICAgICAgICBnX2NvbW1pdElu
ZGV4W2NvbW1pdERhdGEucmV2aXNpb25dID0gY29tbWl0RGF0YTsKKyAgICB9KTsKK30KKworbW9k
ZWwuZ2V0Q29tbWl0RGF0YUxpc3QgPSBmdW5jdGlvbihvbGRlc3RSZXZpc2lvbiwgbmV3ZXN0UmV2
aXNpb24pCit7CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIHZhciBjb21taXREYXRhID0gZ19j
b21taXRJbmRleFtvbGRlc3RSZXZpc2lvbl07CisgICAgdmFyIGluZGV4ID0gbW9kZWwuc3RhdGUu
cmVjZW50Q29tbWl0cy5pbmRleE9mKGNvbW1pdERhdGEpOworICAgIGlmIChpbmRleCA9PSAtMSkK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHdoaWxlKGNvbW1pdERhdGEucmV2aXNpb24g
IT0gbmV3ZXN0UmV2aXNpb24pIHsKKyAgICAgICAgaWYgKCFpbmRleCkKKyAgICAgICAgICAgIHJl
dHVybiBbXTsKKyAgICAgICAgcmVzdWx0LnB1c2goY29tbWl0RGF0YSk7CisgICAgICAgIGNvbW1p
dERhdGEgPSBtb2RlbC5zdGF0ZS5yZWNlbnRDb21taXRzWy0taW5kZXhdOworICAgIH0KKyAgICBy
ZXN1bHQucHVzaChjb21taXREYXRhKTsKKyAgICByZXR1cm4gcmVzdWx0OworfTsKKwogbW9kZWwu
dXBkYXRlUmVzdWx0c0J5QnVpbGRlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogewogICAgIHJlc3Vs
dHMuZmV0Y2hSZXN1bHRzQnlCdWlsZGVyKGNvbmZpZy5rQnVpbGRlcnMsIGZ1bmN0aW9uKHJlc3Vs
dHNCeUJ1aWxkZXIpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9tb2RlbF91bml0dGVz
dHMuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvbW9kZWxfdW5pdHRlc3RzLmpzCmluZGV4IDg4MWI5YmE3
MGI3ZWJiOGJkODE1MTJlYTI2YjlhZGQ4M2UzMWMxZmMuLmVjOWI0OGIzM2NkYmJlYTNkNDA1OTg0
YWYxODAwMTI4M2ZiNzY3OTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9tb2RlbF91bml0
dGVzdHMuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL21vZGVsX3VuaXR0ZXN0cy5qcwpAQCAtMTc3
LDQgKzE3NywzMyBAQCB0ZXN0KCJ1cGRhdGVSZWNlbnRDb21taXRzIiwgMiwgZnVuY3Rpb24oKSB7
CiAgICAgfSk7CiB9KTsKIAordGVzdCgiZ2V0Q29tbWl0RGF0YUxpc3QiLCA2LCBmdW5jdGlvbigp
IHsKKyAgICB2YXIgc2ltdWxhdG9yID0gbmV3IE5ldHdvcmtTaW11bGF0b3IoKTsKKworICAgIHNp
bXVsYXRvci5nZXQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgc2lt
dWxhdG9yLnNjaGVkdWxlQ2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcGFy
c2VyID0gbmV3IERPTVBhcnNlcigpOworICAgICAgICAgICAgdmFyIHJlc3BvbnNlRE9NID0gcGFy
c2VyLnBhcnNlRnJvbVN0cmluZyhrRXhhbXBsZUNvbW1pdERhdGFYTUwsICJhcHBsaWNhdGlvbi94
bWwiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3BvbnNlRE9NKTsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKworICAgIHNpbXVsYXRvci5ydW5UZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBtb2Rl
bC51cGRhdGVSZWNlbnRDb21taXRzKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZnVuY3Rpb24g
ZXh0cmFjdEJ1Z0lEcyhjb21taXREYXRhKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHJldHVybiBjb21taXREYXRhLmJ1Z0lEOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBk
ZWVwRXF1YWwobW9kZWwuZ2V0Q29tbWl0RGF0YUxpc3QoOTIyNTksIDkyMjU5KS5tYXAoZXh0cmFj
dEJ1Z0lEcyksIFs2NTU5M10pOworICAgICAgICAgICAgZGVlcEVxdWFsKG1vZGVsLmdldENvbW1p
dERhdGFMaXN0KDkyMjU2LCA5MjI1OSkubWFwKGV4dHJhY3RCdWdJRHMpLCBbNjU2NTcsIDY1NTkz
XSk7CisgICAgICAgICAgICBkZWVwRXF1YWwobW9kZWwuZ2V0Q29tbWl0RGF0YUxpc3QoOTIyNTks
IDkyMjU2KS5tYXAoZXh0cmFjdEJ1Z0lEcyksIFtdKTsKKyAgICAgICAgICAgIGRlZXBFcXVhbCht
b2RlbC5nZXRDb21taXREYXRhTGlzdCgwLCA5MjI1NikubWFwKGV4dHJhY3RCdWdJRHMpLCBbXSk7
CisgICAgICAgICAgICBkZWVwRXF1YWwobW9kZWwuZ2V0Q29tbWl0RGF0YUxpc3QoOTIyNTYsIDAp
Lm1hcChleHRyYWN0QnVnSURzKSwgW10pOworICAgICAgICAgICAgZGVsZXRlIG1vZGVsLnN0YXRl
LnJlY2VudENvbW1pdHM7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKIH0pKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWVlZjg1YmYy
N2Y4ZGMzNGY3YjU1Njc5YzEzNWZiZTc5Y2NjNmI4Mi4uZjQzNWQ0MmYwNjg3ZjRjZWQyZjc5NDBi
MTk4NWY1ZjgyZTFmYWFiZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA4LTE1ICBEaW1pdHJpIEdsYXprb3Yg
IDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgZ2FyZGVuLW8tbWF0aWMgZnJvbnRl
bmQgbmVlZHMgbW9kZWwuZ2V0Q29tbWl0RGF0YUxpc3QgZnVuY3Rpb24uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI1MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL21vZGVsLmpzOiBB
ZGRlZCBnZXRDb21taXREYXRhTGlzdCBtZXRob2QuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL21vZGVs
X3VuaXR0ZXN0cy5qczogQWRkZWQgdGVzdHMuCisKIDIwMTEtMDgtMTUgIEFkYW0gUm9iZW4gIDxh
cm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIFRlc3RXZWJLaXRBUEkvZ3Rlc3QgaG93
IHRvIHByaW50IEphdmFTY3JpcHQgZmFpbHVyZXMgbmljZWx5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103961</attachid>
            <date>2011-08-15 15:08:23 -0700</date>
            <delta_ts>2011-08-15 15:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66252-20110815150822.patch</filename>
            <type>text/plain</type>
            <size>4237</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNjEKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9t
b2RlbC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmln
L3B1YmxpY19odG1sL1Rlc3RGYWlsdXJlcy9tb2RlbC5qcwppbmRleCBiNzcyMjM2YzJlMzJkZjNj
NDY2ZDAwZmZlZWJjODljN2ZkOGY2OTQyLi5iY2UwZDRhMTM4YmNlZjVhOWY4MjIxYjJmNjJmYTQw
Y2Q3Mzc4YzcwIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvbW9kZWwuanMKKysrIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
VGVzdEZhaWx1cmVzL21vZGVsLmpzCkBAIC05NywxNSArOTcsMzggQEAgbW9kZWwudGFrZUV4cGVj
dGF0aW9uVXBkYXRlUXVldWUgPSBmdW5jdGlvbigpCiAgICAgcmV0dXJuIHF1ZXVlOwogfTsKIAor
dmFyIGdfY29tbWl0SW5kZXggPSB7fTsKKwogbW9kZWwudXBkYXRlUmVjZW50Q29tbWl0cyA9IGZ1
bmN0aW9uKGNhbGxiYWNrKQogewogICAgIHRyYWMucmVjZW50Q29tbWl0RGF0YSgndHJ1bmsnLCBr
Q29tbWl0TG9nTGVuZ3RoLCBmdW5jdGlvbihjb21taXREYXRhTGlzdCkgewogICAgICAgICBtb2Rl
bC5zdGF0ZS5yZWNlbnRDb21taXRzID0gY29tbWl0RGF0YUxpc3Q7CisgICAgICAgIHVwZGF0ZUNv
bW1pdEluZGV4KCk7CiAgICAgICAgIGZpbmRBbmRNYXJrUmV2ZXJ0ZWRSZXZpc2lvbnMobW9kZWwu
c3RhdGUucmVjZW50Q29tbWl0cyk7CiAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfSk7CiB9Owog
CitmdW5jdGlvbiB1cGRhdGVDb21taXRJbmRleCgpIHsKKyAgICBtb2RlbC5zdGF0ZS5yZWNlbnRD
b21taXRzLmZvckVhY2goZnVuY3Rpb24oY29tbWl0RGF0YSkgeworICAgICAgICBnX2NvbW1pdElu
ZGV4W2NvbW1pdERhdGEucmV2aXNpb25dID0gY29tbWl0RGF0YTsKKyAgICB9KTsKK30KKworLyoK
KyAgICBBc3N1bWVzIFNWTi1zdHlsZSwgY29uc2VjdXRpdmUgcmV2aXNpb24gc2NoZW1lLgorKi8K
K21vZGVsLmNvbW1pdERhdGFMaXN0Rm9yUmV2aXNpb25SYW5nZSA9IGZ1bmN0aW9uKGZyb21SZXZp
c2lvbiwgdG9SZXZpc2lvbikKK3sKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIg
cmV2aXNpb24gPSBmcm9tUmV2aXNpb247IHJldmlzaW9uIDw9IHRvUmV2aXNpb247ICsrcmV2aXNp
b24pIHsKKyAgICAgICAgdmFyIGNvbW1pdERhdGEgPSBnX2NvbW1pdEluZGV4W3JldmlzaW9uXTsK
KyAgICAgICAgaWYgKGNvbW1pdERhdGEpCisgICAgICAgICAgICByZXN1bHQucHVzaChjb21taXRE
YXRhKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK307CisKIG1vZGVsLnVwZGF0ZVJlc3Vs
dHNCeUJ1aWxkZXIgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKICAgICByZXN1bHRzLmZldGNoUmVz
dWx0c0J5QnVpbGRlcihjb25maWcua0J1aWxkZXJzLCBmdW5jdGlvbihyZXN1bHRzQnlCdWlsZGVy
KSB7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvbW9kZWxfdW5pdHRlc3RzLmpzIGIvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
VGVzdEZhaWx1cmVzL21vZGVsX3VuaXR0ZXN0cy5qcwppbmRleCA4ODFiOWJhNzBiN2ViYjhiZDgx
NTEyZWEyNmI5YWRkODNlMzFjMWZjLi4zMjgyM2U4ZGNhNmFlZDM5OGEwNmUyYTRiZGM4OWJiZjFh
ZDg4ZDE0IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9UZXN0RmFpbHVyZXMvbW9kZWxfdW5pdHRlc3RzLmpzCisr
KyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL1Rlc3RGYWlsdXJlcy9tb2RlbF91bml0dGVzdHMuanMKQEAgLTE3Nyw0ICsxNzcsMzMg
QEAgdGVzdCgidXBkYXRlUmVjZW50Q29tbWl0cyIsIDIsIGZ1bmN0aW9uKCkgewogICAgIH0pOwog
fSk7CiAKK3Rlc3QoImNvbW1pdERhdGFMaXN0Rm9yUmV2aXNpb25SYW5nZSIsIDYsIGZ1bmN0aW9u
KCkgeworICAgIHZhciBzaW11bGF0b3IgPSBuZXcgTmV0d29ya1NpbXVsYXRvcigpOworCisgICAg
c2ltdWxhdG9yLmdldCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBz
aW11bGF0b3Iuc2NoZWR1bGVDYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBw
YXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7CisgICAgICAgICAgICB2YXIgcmVzcG9uc2VET00gPSBw
YXJzZXIucGFyc2VGcm9tU3RyaW5nKGtFeGFtcGxlQ29tbWl0RGF0YVhNTCwgImFwcGxpY2F0aW9u
L3htbCIpOworICAgICAgICAgICAgY2FsbGJhY2socmVzcG9uc2VET00pOworICAgICAgICB9KTsK
KyAgICB9OworCisgICAgc2ltdWxhdG9yLnJ1blRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIG1v
ZGVsLnVwZGF0ZVJlY2VudENvbW1pdHMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBmdW5jdGlv
biBleHRyYWN0QnVnSURzKGNvbW1pdERhdGEpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNvbW1pdERhdGEuYnVnSUQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGRlZXBFcXVhbChtb2RlbC5jb21taXREYXRhTGlzdEZvclJldmlzaW9uUmFuZ2UoOTIyNTksIDky
MjU5KS5tYXAoZXh0cmFjdEJ1Z0lEcyksIFs2NTU5M10pOworICAgICAgICAgICAgZGVlcEVxdWFs
KG1vZGVsLmNvbW1pdERhdGFMaXN0Rm9yUmV2aXNpb25SYW5nZSg5MjI1NiwgOTIyNTkpLm1hcChl
eHRyYWN0QnVnSURzKSwgWzY1NjU3LCA2NTU5M10pOworICAgICAgICAgICAgZGVlcEVxdWFsKG1v
ZGVsLmNvbW1pdERhdGFMaXN0Rm9yUmV2aXNpb25SYW5nZSg5MjI1OSwgOTIyNTYpLm1hcChleHRy
YWN0QnVnSURzKSwgW10pOworICAgICAgICAgICAgZGVlcEVxdWFsKG1vZGVsLmNvbW1pdERhdGFM
aXN0Rm9yUmV2aXNpb25SYW5nZSgwLCA5MjI1NikubWFwKGV4dHJhY3RCdWdJRHMpLCBbNjU2NTdd
KTsKKyAgICAgICAgICAgIGRlZXBFcXVhbChtb2RlbC5jb21taXREYXRhTGlzdEZvclJldmlzaW9u
UmFuZ2UoOTIyNTYsIDApLm1hcChleHRyYWN0QnVnSURzKSwgW10pOworICAgICAgICAgICAgZGVs
ZXRlIG1vZGVsLnN0YXRlLnJlY2VudENvbW1pdHM7CisgICAgICAgIH0pOworICAgIH0pOworfSk7
CisKIH0pKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZTc3NWI4ZjY3MWQ3N2IzYzQ5NWQyNDAxNjczNWM0YmExZDY2OGRmNy4uOTUxMWFhZjYz
MmMzNjZiMzQ4NjgxNGM2YmZiMGMxOTc4NWI5YzJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDExLTA4LTE1ICBE
aW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgZ2FyZGVu
LW8tbWF0aWMgZnJvbnRlbmQgbmVlZHMgbW9kZWwuY29tbWl0RGF0YUZvclJldmlzaW9uUmFuZ2Ug
ZnVuY3Rpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02NjI1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
VGVzdEZhaWx1cmVzL21vZGVsLmpzOiBBZGRlZCBjb21taXREYXRhRm9yUmV2aXNpb25SYW5nZSBt
ZXRob2QuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvVGVzdEZhaWx1cmVzL21vZGVsX3VuaXR0ZXN0cy5qczogQWRkZWQgdGVz
dHMuCisKKzIwMTEtMDgtMTUgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9y
Zz4KKwogICAgICAgICBnYXJkZW4tby1tYXRpYyBmcm9udGVuZCBuZWVkcyBhIGdlbmVyaWMgd2F5
IHRvIHRyYWNrIHVwZGF0ZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NjI0NQogCg==
</data>
<flag name="review"
          id="99678"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>