<?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>127130</bug_id>
          
          <creation_ts>2014-01-16 12:19:50 -0800</creation_ts>
          <short_desc>build.webkit.org/dashboard should not request 50 revisions from trac each time</short_desc>
          <delta_ts>2014-08-19 00:38:04 -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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968850</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-16 12:19:50 -0800</bug_when>
    <thetext>The dashboard should be smarter about how much data it requests from Trac. Currently, it requests 50 most recent revisions, which is OK for the first request, but makes little sense to do every 45 seconds.

We should ask for fewer revisions, and fall back to a larger range on the rare occasions when there are lots of them landed at once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968853</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-16 12:27:14 -0800</bug_when>
    <thetext>Also, there is some code in Trac to maintain client sessions. I&apos;m not sure what exactly it does, maybe it could be used to optimize performance of periodic requests?

We&apos;d need to allow CORS credentials for the timeline on the server, and enable XHR.withCredentials on the client to have cookies sent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968855</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-16 12:30:05 -0800</bug_when>
    <thetext>On the second thought, so session tracking through cookies could get tricky when reloading the dashboard page, or having two dashboard windows open for any reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029920</commentid>
    <comment_count>3</comment_count>
      <attachid>236791</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-18 17:44:31 -0700</bug_when>
    <thetext>Created attachment 236791
proposed patch

Found a different way to make the trac request faster. We don&apos;t necessarily get more close to &quot;give me what changed since the last time&quot;, but Trac processes date based requests much faster.

Talking about sessions, those don&apos;t seem to help, they are for logged in users and only used for credentials and settings like time zone. Having a session would actually be harmful here, as we&apos;d get times converted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029977</commentid>
    <comment_count>4</comment_count>
      <attachid>236791</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-19 00:38:00 -0700</bug_when>
    <thetext>Comment on attachment 236791
proposed patch

Clearing flags on attachment: 236791

Committed r172747: &lt;http://trac.webkit.org/changeset/172747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029978</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-19 00:38:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236791</attachid>
            <date>2014-08-18 17:44:31 -0700</date>
            <delta_ts>2014-08-19 00:38:00 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>FasterTrac.txt</filename>
            <type>text/plain</type>
            <size>9436</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3MjczNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE0LTA4LTE4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIGJ1aWxkLndlYmtpdC5vcmcvZGFzaGJvYXJkIHNob3VsZCBub3QgcmVxdWVz
dCA1MCByZXZpc2lvbnMgZnJvbSB0cmFjIGVhY2ggdGltZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MTMwCisKKyAgICAgICAgYnVpbGQud2Via2l0
Lm9yZy9kYXNoYm9hcmQgc29tZXRpbWVzIGZldGNoZXMgYSBUcmFjIHJldmlzaW9uIGluIGFuIGlu
dGVybWVkaWF0ZSBzdGF0ZSwgYW5kIG5ldmVyIHVwZGF0ZXMgbGF0ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzEzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm5zIG91dCB0aGF0IHJlcXVlc3Rp
bmcgNTAgYnVpbGRzIGlzIG11Y2ggc2xvd2VyIHRoYW4gcmVxdWVzdGluZyBieSBkYXRlIC0gZXZl
bgorICAgICAgICBpZiB0aGUgcmVxdWVzdCBlbmRzIHVwIHJldHVybmluZyBtb3JlIHRoYW4gNTAg
cmVzdWx0cy4gVGhlcmUgaXMgbm8gd2F5IHRvIG9ubHkKKyAgICAgICAgcmVxdWVzdCB1cGRhdGVz
LCBidXQgdGhpcyBjaGFuZ2UgYnJpbmdzIHJlcXVlc3QgdGltZSBmcm9tIDYtOCBzZWNvbmRzIGRv
d24gdG8KKyAgICAgICAgbGVzcyB0aGFuIGEgc2Vjb25kLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Z2VuZXJhbGl6ZXMgZGF0ZSBoYW5kbGluZyBmb3IgbGF0ZXIgdXNlIGluIG1ldHJpY3MgY29kZS4g
QXMgcGFydCBvZiB0aGUKKyAgICAgICAgcmV3cml0ZSwgSSBtYWRlIG5ld2x5IGZldGNoZWQgZGF0
YSB1cGRhdGUgYXV0aG9yIGUtbWFpbCBpbiBwcmV2aW91c2x5IGZldGNoZWQKKyAgICAgICAgcmV2
aXNpb25zLCBhcyBpdCBjaGFuZ2VzIGFmdGVyIGNvbW1pdCBxdWV1ZSBmaXJzdCBsYW5kcy4KKwor
ICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzOgorICAgICAgICBV
cGRhdGVkIGZvciBldmVudCByZW5hbWUuIEkgY2hhbmdlZCB0aGUgdHJhYyBldmVudCB0byBub3Qg
Y29udGFpbiB0aGUgbGlzdCBvZiBuZXcKKyAgICAgICAgY29tbWl0cywgYXMgd2Ugbm93IHNvbWV0
aW1lcyB1cGRhdGUgb2xkIGNvbW1pdHMsIGFuZCB0aGF0IGNvdWxkbid0IGJlIGV4cHJlc3NlZAor
ICAgICAgICBpbiBldmVudCBkYXRhLiBXZSBuZXZlciB1c2VkIHRoZSBsaXN0IGFueXdoZXJlIGlu
IHRoZSBmaXJzdCBwbGFjZS4KKworICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1RyYWMuanM6Cisg
ICAgICAgIChUcmFjLnByb3RvdHlwZS5feG1sVGltZWxpbmVVUkwpOiBNYWRlIHRoaXMgZnVuY3Rp
b24gdGFrZSBhcmJpdHJhcnkgZGF0ZXMuIFdoZW4gY2FsbGVkCisgICAgICAgIHdpdGhvdXQgYXJn
dW1lbnRzLCByZXR1cm4gY29tbWl0cyBmb3IgdG9kYXkgYW5kIHllc3RlcmRheS4KKyAgICAgICAg
KFRyYWMucHJvdG90eXBlLl9sb2FkZWQpOgorICAgICAgICAoVHJhYy5wcm90b3R5cGUudXBkYXRl
KTogTW92ZWQgdGhlIGZ1bmN0aW9uIGZvciBwcm9jZXNzaW5nIGxvYWRlZCByZXN1bHRzIG91dCBv
ZgorICAgICAgICBoZXJlIGZvciBjbGFyaXR5LCBhbmQgYWxzbyBiZWNhdXNlIEknbSBnb2luZyB0
byBoYXZlIGEgc2VwYXJhdGUgbG9hZGluZyBjb2RlIHBhdGgKKyAgICAgICAgZm9yIG1ldHJpY3Mu
CisKIDIwMTQtMDgtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGRlZCBhbiB1cGRhdGUtd2Via2l0IG9wdGlvbiB0byBvdmVycmlkZSB0aGUgLi4vSW50ZXJu
YWwgY2hlY2suCkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5q
cwkocmV2aXNpb24gMTcyNjU5KQorKysgVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1
ZVZpZXcuanMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAgQnVpbGRib3RRdWV1ZVZp
ZXcgPSBmdW5jdGlvbihkZWJ1Z1F1ZXVlcwogICAgICAgICBxdWV1ZS5hZGRFdmVudExpc3RlbmVy
KEJ1aWxkYm90UXVldWUuRXZlbnQuVW5hdXRob3JpemVkQWNjZXNzLCB0aGlzLl91bmF1dGhvcml6
ZWRBY2Nlc3MsIHRoaXMpOwogICAgIH0uYmluZCh0aGlzKSk7CiAKLSAgICB3ZWJraXRUcmFjLmFk
ZEV2ZW50TGlzdGVuZXIoVHJhYy5FdmVudC5OZXdDb21taXRzUmVjb3JkZWQsIHRoaXMuX25ld0Nv
bW1pdHNSZWNvcmRlZCwgdGhpcyk7CisgICAgd2Via2l0VHJhYy5hZGRFdmVudExpc3RlbmVyKFRy
YWMuRXZlbnQuQ29tbWl0c1VwZGF0ZWQsIHRoaXMuX25ld0NvbW1pdHNSZWNvcmRlZCwgdGhpcyk7
CiAgICAgaWYgKHR5cGVvZiBpbnRlcm5hbFRyYWMgIT0gInVuZGVmaW5lZCIpCi0gICAgICAgIGlu
dGVybmFsVHJhYy5hZGRFdmVudExpc3RlbmVyKFRyYWMuRXZlbnQuTmV3Q29tbWl0c1JlY29yZGVk
LCB0aGlzLl9uZXdDb21taXRzUmVjb3JkZWQsIHRoaXMpOworICAgICAgICBpbnRlcm5hbFRyYWMu
YWRkRXZlbnRMaXN0ZW5lcihUcmFjLkV2ZW50LkNvbW1pdHNVcGRhdGVkLCB0aGlzLl9uZXdDb21t
aXRzUmVjb3JkZWQsIHRoaXMpOwogfTsKIAogQmFzZU9iamVjdC5hZGRDb25zdHJ1Y3RvckZ1bmN0
aW9ucyhCdWlsZGJvdFF1ZXVlVmlldyk7CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9UcmFj
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1RyYWMuanMJKHJldmlzaW9u
IDE3MjY1OSkKKysrIFRvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1RyYWMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDcgKzQ0LDcgQEAgVHJhYy5OZWVkc0F1dGhlbnRpY2F0aW9uID0gIm5lZWRzQXV0aGVu
dAogVHJhYy5VcGRhdGVJbnRlcnZhbCA9IDQ1MDAwOyAvLyA0NSBzZWNvbmRzCiAKIFRyYWMuRXZl
bnQgPSB7Ci0gICAgTmV3Q29tbWl0c1JlY29yZGVkOiAibmV3LWNvbW1pdHMtcmVjb3JkZWQiCisg
ICAgQ29tbWl0c1VwZGF0ZWQ6ICJjb21taXRzLXVwZGF0ZWQiCiB9OwogCiBUcmFjLnByb3RvdHlw
ZSA9IHsKQEAgLTYzLDkgKzYzLDI0IEBAIFRyYWMucHJvdG90eXBlID0gewogICAgICAgICByZXR1
cm4gdGhpcy5iYXNlVVJMICsgImNoYW5nZXNldC8iICsgZW5jb2RlVVJJQ29tcG9uZW50KHJldmlz
aW9uKTsKICAgICB9LAogCi0gICAgX3htbFRpbWVsaW5lVVJMOiBmdW5jdGlvbigpCisgICAgX3ht
bFRpbWVsaW5lVVJMOiBmdW5jdGlvbihmcm9tRGF0ZSwgdG9EYXRlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuYmFzZVVSTCArICJ0aW1lbGluZT9jaGFuZ2VzZXQ9b24mbWF4PTUwJmZvcm1h
dD1yc3MiOworICAgICAgICBpZiAodHlwZW9mIGZyb21EYXRlID09PSAidW5kZWZpbmVkIikgewor
ICAgICAgICAgICAgZnJvbURhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgdG9EYXRlID0g
bmV3IERhdGUoZnJvbURhdGUpOworICAgICAgICAgICAgLy8gQnkgZGVmYXVsdCwgZ2V0IGF0IGxl
YXN0IG9uZSBmdWxsIGRheSBvZiBjaGFuZ2VzZXRzLCBhcyB0aGUgY3VycmVudCBkYXkgbWF5IGhh
dmUgb25seSBiZWd1bi4KKyAgICAgICAgICAgIGZyb21EYXRlLnNldERhdGUoZnJvbURhdGUuZ2V0
RGF0ZSgpIC0gMSk7CisgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRvRGF0ZSA9PT0gInVuZGVm
aW5lZCIpCisgICAgICAgICAgICB0b0RhdGUgPSBmcm9tRGF0ZTsKKworICAgICAgICBjb25zb2xl
LmFzc2VydChmcm9tRGF0ZSA8PSB0b0RhdGUpOworCisgICAgICAgIHZhciBmcm9tRGF5ID0gbmV3
IERhdGUoZnJvbURhdGUuZ2V0RnVsbFllYXIoKSwgZnJvbURhdGUuZ2V0TW9udGgoKSwgZnJvbURh
dGUuZ2V0RGF0ZSgpKTsKKyAgICAgICAgdmFyIHRvRGF5ID0gbmV3IERhdGUodG9EYXRlLmdldEZ1
bGxZZWFyKCksIHRvRGF0ZS5nZXRNb250aCgpLCB0b0RhdGUuZ2V0RGF0ZSgpKTsKKworICAgICAg
ICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInRpbWVsaW5lP2NoYW5nZXNldD1vbiZmb3JtYXQ9cnNz
Jm1heD0tMSIgKworICAgICAgICAgICAgIiZmcm9tPSIgKyAgKHRvRGF5LmdldE1vbnRoKCkgKyAx
KSArICIlMkYiICsgdG9EYXkuZ2V0RGF0ZSgpICsgIiUyRiIgKyAodG9EYXkuZ2V0RnVsbFllYXIo
KSAlIDEwMCkgKworICAgICAgICAgICAgIiZkYXlzYmFjaz0iICsgKCh0b0RheSAtIGZyb21EYXkp
IC8gMTAwMCAvIDYwIC8gNjAgLyAyNCk7CiAgICAgfSwKIAogICAgIF9jb252ZXJ0Q29tbWl0SW5m
b0VsZW1lbnRUb09iamVjdDogZnVuY3Rpb24oZG9jLCBjb21taXRFbGVtZW50KQpAQCAtMTA5LDMw
ICsxMjQsNjMgQEAgVHJhYy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH07CiAgICAgfSwKIAotICAg
IHVwZGF0ZTogZnVuY3Rpb24oKQorICAgIF9sb2FkZWQ6IGZ1bmN0aW9uKGRhdGFEb2N1bWVudCkK
ICAgICB7Ci0gICAgICAgIGxvYWRYTUwodGhpcy5feG1sVGltZWxpbmVVUkwoKSwgZnVuY3Rpb24o
ZGF0YURvY3VtZW50KSB7Ci0gICAgICAgICAgICB2YXIgbGF0ZXN0S25vd25SZXZpc2lvbiA9IDA7
Ci0gICAgICAgICAgICBpZiAodGhpcy5yZWNvcmRlZENvbW1pdHMubGVuZ3RoKQotICAgICAgICAg
ICAgICAgIGxhdGVzdEtub3duUmV2aXNpb24gPSB0aGlzLnJlY29yZGVkQ29tbWl0c1t0aGlzLnJl
Y29yZGVkQ29tbWl0cy5sZW5ndGggLSAxXS5yZXZpc2lvbk51bWJlcjsKLQotICAgICAgICAgICAg
dmFyIG5ld0NvbW1pdHMgPSBbXTsKLQotICAgICAgICAgICAgdmFyIGNvbW1pdEluZm9FbGVtZW50
cyA9IGRhdGFEb2N1bWVudC5ldmFsdWF0ZSgiL3Jzcy9jaGFubmVsL2l0ZW0iLCBkYXRhRG9jdW1l
bnQsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFKTsKLSAgICAg
ICAgICAgIHZhciBjb21taXRJbmZvRWxlbWVudCA9IHVuZGVmaW5lZDsKLSAgICAgICAgICAgIHdo
aWxlIChjb21taXRJbmZvRWxlbWVudCA9IGNvbW1pdEluZm9FbGVtZW50cy5pdGVyYXRlTmV4dCgp
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbW1pdCA9IHRoaXMuX2NvbnZlcnRDb21taXRJbmZv
RWxlbWVudFRvT2JqZWN0KGRhdGFEb2N1bWVudCwgY29tbWl0SW5mb0VsZW1lbnQpOwotICAgICAg
ICAgICAgICAgIGlmIChjb21taXQucmV2aXNpb25OdW1iZXIgPT0gbGF0ZXN0S25vd25SZXZpc2lv
bikKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZhciBlYXJsaWVzdEtub3du
UmV2aXNpb24gPSAwOworICAgICAgICB2YXIgbGF0ZXN0S25vd25SZXZpc2lvbiA9IDA7CisgICAg
ICAgIGlmICh0aGlzLnJlY29yZGVkQ29tbWl0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVhcmxp
ZXN0S25vd25SZXZpc2lvbiA9IHRoaXMucmVjb3JkZWRDb21taXRzWzBdLnJldmlzaW9uTnVtYmVy
OworICAgICAgICAgICAgbGF0ZXN0S25vd25SZXZpc2lvbiA9IHRoaXMucmVjb3JkZWRDb21taXRz
W3RoaXMucmVjb3JkZWRDb21taXRzLmxlbmd0aCAtIDFdLnJldmlzaW9uTnVtYmVyOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGtub3duQ29tbWl0c1dlcmVVcGRhdGVkID0gZmFsc2U7CisgICAg
ICAgIHZhciBuZXdDb21taXRzID0gW107CisgICAgICAgIHZhciBuZXdDb21taXRzQmVmb3JlRWFy
bGllc3RLbm93blJldmlzaW9uID0gW107CisKKyAgICAgICAgdmFyIGNvbW1pdEluZm9FbGVtZW50
cyA9IGRhdGFEb2N1bWVudC5ldmFsdWF0ZSgiL3Jzcy9jaGFubmVsL2l0ZW0iLCBkYXRhRG9jdW1l
bnQsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFKTsKKyAgICAg
ICAgdmFyIGNvbW1pdEluZm9FbGVtZW50ID0gdW5kZWZpbmVkOworICAgICAgICB2YXIgaW5kZXhJ
blJlY29yZGVkQ29tbWl0cyA9IHVuZGVmaW5lZDsKKyAgICAgICAgd2hpbGUgKGNvbW1pdEluZm9F
bGVtZW50ID0gY29tbWl0SW5mb0VsZW1lbnRzLml0ZXJhdGVOZXh0KCkpIHsKKyAgICAgICAgICAg
IHZhciBjb21taXQgPSB0aGlzLl9jb252ZXJ0Q29tbWl0SW5mb0VsZW1lbnRUb09iamVjdChkYXRh
RG9jdW1lbnQsIGNvbW1pdEluZm9FbGVtZW50KTsKKyAgICAgICAgICAgIGlmIChjb21taXQucmV2
aXNpb25OdW1iZXIgPiBsYXRlc3RLbm93blJldmlzaW9uKSB7CisgICAgICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQodHlwZW9mIGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPT09ICJ1bmRlZmluZWQi
KTsKICAgICAgICAgICAgICAgICBuZXdDb21taXRzLnB1c2goY29tbWl0KTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoY29tbWl0LnJldmlzaW9uTnVtYmVyIDwgZWFybGllc3RLbm93blJldmlzaW9u
KSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGluZGV4SW5SZWNvcmRl
ZENvbW1pdHMgPT09ICJ1bmRlZmluZWQiIHx8IGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPT09IC0x
KTsKKyAgICAgICAgICAgICAgICBuZXdDb21taXRzQmVmb3JlRWFybGllc3RLbm93blJldmlzaW9u
LnB1c2goY29tbWl0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYg
KHR5cGVvZiBpbmRleEluUmVjb3JkZWRDb21taXRzID09PSAidW5kZWZpbmVkIikgeworICAgICAg
ICAgICAgICAgICAgICAvLyBXZSBjb3VsZCBoYXZlIHN0YXJ0ZWQgYW55d2hlcmUgaW4gdGhlIHJl
Y29yZGVkIGNvbW1pdHMgYXJyYXksIGxldCdzIGZpbmQgd2hlcmUuCisgICAgICAgICAgICAgICAg
ICAgIC8vIFdpdGggcGVyaW9kaWMgdXBkYXRlcywgdGhpcyB3aWxsIGJlIHRoZSBsYXRlc3QgcmVj
b3JkZWQgY29tbWl0LCBzbyBzdGFydGluZyBmcm9tIHRoZSBlbmQuCisgICAgICAgICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSB0aGlzLnJlY29yZGVkQ29tbWl0cy5sZW5ndGggLSAxOyBpID49IDA7
IC0taSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVjb3JkZWRDb21taXRz
W2ldLnJldmlzaW9uTnVtYmVyID09PSBjb21taXQucmV2aXNpb25OdW1iZXIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmRleEluUmVjb3JkZWRDb21taXRzID0gaTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPj0gMCk7CisgICAgICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5yZWNvcmRlZENvbW1pdHNbaW5kZXhJblJlY29yZGVk
Q29tbWl0c10ucmV2aXNpb25OdW1iZXIgPT09IGNvbW1pdC5yZXZpc2lvbk51bWJlcik7CisKKyAg
ICAgICAgICAgICAgICAvLyBBdXRob3IgY291bGQgaGF2ZSBjaGFuZ2VkLCBhcyBjb21taXQgcXVl
dWUgcmVwbGFjZXMgaXQgYWZ0ZXIgdGhlIGZhY3QuCisgICAgICAgICAgICAgICAgaWYgKHRoaXMu
cmVjb3JkZWRDb21taXRzW2luZGV4SW5SZWNvcmRlZENvbW1pdHNdLmF1dGhvciAhPT0gY29tbWl0
LmF1dGhvcikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29yZGVkQ29tbWl0c1tpbmRl
eEluUmVjb3JkZWRDb21taXRzXS5hdXRob3IgPSBjb21taXQuYXV0aG9yOworICAgICAgICAgICAg
ICAgICAgICBrbm93bkNvbW1pdFdhc1VwZGF0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAtLWluZGV4SW5SZWNvcmRlZENvbW1pdHM7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghbmV3Q29tbWl0cy5sZW5ndGgpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgICAgIHRoaXMucmVjb3Jk
ZWRDb21taXRzID0gdGhpcy5yZWNvcmRlZENvbW1pdHMuY29uY2F0KG5ld0NvbW1pdHMucmV2ZXJz
ZSgpKTsKKyAgICAgICAgaWYgKG5ld0NvbW1pdHMubGVuZ3RoIHx8IG5ld0NvbW1pdHNCZWZvcmVF
YXJsaWVzdEtub3duUmV2aXNpb24ubGVuZ3RoKQorICAgICAgICAgICAgdGhpcy5yZWNvcmRlZENv
bW1pdHMgPSBuZXdDb21taXRzQmVmb3JlRWFybGllc3RLbm93blJldmlzaW9uLnJldmVyc2UoKS5j
b25jYXQodGhpcy5yZWNvcmRlZENvbW1pdHMsIG5ld0NvbW1pdHMucmV2ZXJzZSgpKTsKIAotICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoVHJhYy5FdmVudC5OZXdDb21t
aXRzUmVjb3JkZWQsIHtuZXdDb21taXRzOiBuZXdDb21taXRzfSk7Ci0gICAgICAgIH0uYmluZCh0
aGlzKSwgdGhpcy5fbmVlZHNBdXRoZW50aWNhdGlvbiA/IHsgd2l0aENyZWRlbnRpYWxzOiB0cnVl
IH0gOiB7fSk7CisgICAgICAgIGlmIChuZXdDb21taXRzLmxlbmd0aCB8fCBuZXdDb21taXRzQmVm
b3JlRWFybGllc3RLbm93blJldmlzaW9uLmxlbmd0aCB8fCBrbm93bkNvbW1pdHNXZXJlVXBkYXRl
ZCkKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFRyYWMuRXZlbnQu
Q29tbWl0c1VwZGF0ZWQsIG51bGwpOworICAgIH0sCisKKyAgICB1cGRhdGU6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGxvYWRYTUwodGhpcy5feG1sVGltZWxpbmVVUkwoKSwgdGhpcy5fbG9h
ZGVkLmJpbmQodGhpcyksIHRoaXMuX25lZWRzQXV0aGVudGljYXRpb24gPyB7IHdpdGhDcmVkZW50
aWFsczogdHJ1ZSB9IDoge30pOwogICAgIH0KIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>