<?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>87109</bug_id>
          
          <creation_ts>2012-05-22 03:11:35 -0700</creation_ts>
          <short_desc>Web Inspector: use canvas to render timeline category strips in overview pane</short_desc>
          <delta_ts>2012-05-22 07:06: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>Web Inspector (Deprecated)</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630154</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-22 03:11:35 -0700</bug_when>
    <thetext>Switching timeline overview to use canvas to render horizontal category strips in default overview mode gives us more flexibility in rendering short events and allocating different event categories to different rows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630242</commentid>
    <comment_count>1</comment_count>
      <attachid>143275</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-22 04:43:55 -0700</bug_when>
    <thetext>Created attachment 143275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630246</commentid>
    <comment_count>2</comment_count>
      <attachid>143276</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-22 04:48:31 -0700</bug_when>
    <thetext>Created attachment 143276
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630342</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-05-22 07:06:12 -0700</bug_when>
    <thetext>Committed r117969: &lt;http://trac.webkit.org/changeset/117969&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143275</attachid>
            <date>2012-05-22 04:43:55 -0700</date>
            <delta_ts>2012-05-22 06:40:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87109-20120522154350.patch</filename>
            <type>text/plain</type>
            <size>19471</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM3NjliMzYxNGU4ZmIx
ZmI3MzgzMTkyOWY5NjZhZjBjZjliN2E2NC4uOTUzMGY2YTE0MGJlOTg2YmQ0ZDIxNjIzZDUzNzMw
ODIwNWZmOTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA1LTIyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogdXNlIGNhbnZhcyB0byByZW5kZXIgdGltZWxpbmUgY2F0ZWdvcnkgc3RyaXBzIGluIG92ZXJ2
aWV3IHBhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3MTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSB1c2UgY2FudmFzLCBub3QgRE9NIHRvIHJlcHJlc2VudCB0aW1lbGluZSBjYXRlZ29yeSBzdHJp
cHMgaW4gdGhlIGRlZmF1bHQgb3ZlcnZpZXcgbW9kZQorCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3UGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlld1BhbmUucHJvdG90eXBlLl9zZXRWZXJ0aWNhbE92ZXJ2aWV3KTogcHJvcGFnYXRlIHRvIFRp
bWVsaW5lQ2F0ZWdvcnlTdHJpcHM7CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlld1BhbmUucHJvdG90eXBlLl9vbkNhdGVnb3J5VmlzaWJpbGl0eUNoYW5nZWQpOiBmb3JjZSB1
cGRhdGUgb2YgY2F0ZWdvcnkgc3RyaXBzOworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuc2V0U2hvd1Nob3J0RXZlbnRzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5U3RyaXBzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5U3RyaXBzLnByb3RvdHlwZS51cGRhdGUuYXBwZW5kUmVj
b3JkKTogcHJvY2VzcyBvbmUgcmVjb3JkOworICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
Q2F0ZWdvcnlTdHJpcHMucHJvdG90eXBlLnVwZGF0ZSk6IHJlLWRyYXcgZXZlcnl0aGluZzsKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5U3RyaXBzLnByb3RvdHlwZS5zZXRT
aG93U2hvcnRFdmVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlT
dHJpcHMucHJvdG90eXBlLl9yZW5kZXJCYXIpOiByZW5kZXIgc2luZ2xlIGJhcjsKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmlldy5wcm90b3R5cGUuX3JlbmRlckJhcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdv
cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5j
cmVhdGVGaWxsU3R5bGUpOiB1dGlsaXR5IG1ldGhvZHMgdG8gY3JlYXRlIGdyYWRpZW50cyBmb3Ig
Y2F0ZWdvcnkgYmFyczsgCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5jcmVhdGVGaWxsU3R5bGVGb3JDYXRlZ29yeSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVDYXRlZ29yeSk6CisKIDIwMTItMDUtMjEgIEFuZHJleSBLb3N5YWtvdiAgPGNh
c2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3Jpbmdd
IHByb21vdGUgZmlsbC9ib3JkZXIgY29sb3JzIHVzZWQgYnkgdGltZWxpbmUncyBmcmFtZSBvdmVy
dmlldyB0byBUaW1lbGluZUNhdGVnb3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCBkNjU3ZmU5
NTZiNTY5MWUyZGM4YzEyZmIzNTUyNmUxNzMwNjUwYjdmLi43NDhjMDRjM2I2MzE1ZmI1N2IyMDAx
YjFiNGYxMmE3MmQ2YTViZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKQEAgLTg4LDIxICs4OCwx
NiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUgPSBmdW5jdGlvbihtb2RlbCkK
ICAgICB0aGlzLl9vdmVydmlld1dpbmRvdyA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVy
dmlld1dpbmRvdyh0aGlzLl9vdmVydmlld0NvbnRhaW5lcik7CiAgICAgdGhpcy5fb3ZlcnZpZXdX
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1dpbmRv
dy5FdmVudHMuV2luZG93Q2hhbmdlZCwgdGhpcy5fb25XaW5kb3dDaGFuZ2VkLCB0aGlzKTsKIAot
ICAgIHRoaXMuX292ZXJ2aWV3Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3R3Jp
ZC5lbGVtZW50KTsKLQogICAgIHZhciBzZXBhcmF0b3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CiAgICAgc2VwYXJhdG9yRWxlbWVudC5pZCA9ICJ0aW1lbGluZS1vdmVy
dmlldy1zZXBhcmF0b3IiOwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChzZXBhcmF0b3JF
bGVtZW50KTsKKworICAgIHRoaXMuX2NhdGVnb3J5U3RyaXBzID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZUNhdGVnb3J5U3RyaXBzKHRoaXMuX21vZGVsKTsKKyAgICB0aGlzLl9vdmVydmlld0dy
aWQuaXRlbXNHcmFwaHNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2NhdGVnb3J5U3RyaXBzLmVs
ZW1lbnQpOwogIAotICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzID0ge307Ci0gICAgdmFyIGkgPSAw
OwogICAgIHZhciBjYXRlZ29yaWVzID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuY2F0ZWdvcmllcygpOwotICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGNhdGVnb3JpZXMp
IHsKLSAgICAgICAgdmFyIGNhdGVnb3J5R3JhcGggPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
Q2F0ZWdvcnlHcmFwaChjYXRlZ29yaWVzW2NhdGVnb3J5XSwgaSsrICUgMik7Ci0gICAgICAgIHRo
aXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVnb3J5XSA9IGNhdGVnb3J5R3JhcGg7Ci0gICAgICAgIHRo
aXMuX292ZXJ2aWV3R3JpZC5pdGVtc0dyYXBoc0VsZW1lbnQuYXBwZW5kQ2hpbGQoY2F0ZWdvcnlH
cmFwaC5ncmFwaEVsZW1lbnQpOworICAgIGZvciAodmFyIGNhdGVnb3J5IGluIGNhdGVnb3JpZXMp
CiAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lQ2F0ZWdvcnkuRXZlbnRzLlZpc2liaWxpdHlDaGFuZ2VkLCB0aGlzLl9vbkNh
dGVnb3J5VmlzaWJpbGl0eUNoYW5nZWQsIHRoaXMpOwotICAgIH0KIAogICAgIHRoaXMuX292ZXJ2
aWV3R3JpZC5zZXRTY3JvbGxBbmREaXZpZGVyVG9wKDAsIDApOwogICAgIHRoaXMuX292ZXJ2aWV3
Q2FsY3VsYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld0NhbGN1bGF0b3Io
KTsKQEAgLTEzNCw2ICsxMjksMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdXBkYXRlKCk7CiAgICAgfSwKIAorICAgIG9u
UmVzaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICB9
LAorCiAgICAgX3Nob3dFdmVudHM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlz
Ll9jdXJyZW50TW9kZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLk1vZGUu
RXZlbnRzSG9yaXpvbnRhbCkKQEAgLTE4MiwxNSArMTgyLDE0IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl92ZXJ0aWNh
bE92ZXJ2aWV3LmRldGFjaCgpOwogICAgICAgICAgICAgdGhpcy5fdmVydGljYWxPdmVydmlldyA9
IG51bGw7CiAgICAgICAgICAgICB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwotICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ2F0
ZWdvcnlTdHJpcHMoKTsKKyAgICAgICAgICAgIHRoaXMuX2NhdGVnb3J5U3RyaXBzLnVwZGF0ZSgp
OwogICAgICAgICB9CiAgICAgfSwKIAogICAgIF9vbkNhdGVnb3J5VmlzaWJpbGl0eUNoYW5nZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGNhdGVnb3J5ID0gZXZlbnQuZGF0
YTsKLSAgICAgICAgdGhpcy5fY2F0ZWdvcnlHcmFwaHNbY2F0ZWdvcnkubmFtZV0uZGltbWVkID0g
Y2F0ZWdvcnkuaGlkZGVuOwotICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICAgICAgaWYgKHRo
aXMuX2N1cnJlbnRNb2RlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTW9k
ZS5FdmVudHNIb3Jpem9udGFsKQorICAgICAgICAgICAgdGhpcy5fY2F0ZWdvcnlTdHJpcHMudXBk
YXRlKCk7CiAgICAgfSwKIAogICAgIF91cGRhdGU6IGZ1bmN0aW9uKCkKQEAgLTIwNSw2MSArMjA0
LDEyIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGVsc2UgaWYgKHRoaXMuX3ZlcnRpY2FsT3ZlcnZpZXcpCiAgICAgICAgICAgICB0aGlz
Ll92ZXJ0aWNhbE92ZXJ2aWV3LnVwZGF0ZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0
aGlzLl91cGRhdGVDYXRlZ29yeVN0cmlwcygpOworICAgICAgICAgICAgdGhpcy5fY2F0ZWdvcnlT
dHJpcHMudXBkYXRlKCk7CiAKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdHcmlkLnVwZGF0ZURpdmlk
ZXJzKHRoaXMuX292ZXJ2aWV3Q2FsY3VsYXRvcik7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUV2ZW50
RGl2aWRlcnMoKTsKICAgICB9LAogCi0gICAgX3VwZGF0ZUNhdGVnb3J5U3RyaXBzOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICAvLyBDbGVhciBzdW1tYXJ5IGJhcnMuCi0gICAgICAgIHZhciB0
aW1lbGluZXMgPSB7fTsKLSAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKCk7Ci0gICAgICAgIGZvciAodmFyIGNh
dGVnb3J5IGluIGNhdGVnb3JpZXMpIHsKLSAgICAgICAgICAgIHRpbWVsaW5lc1tjYXRlZ29yeV0g
PSBbXTsKLSAgICAgICAgICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVnb3J5XS5jbGVhckNo
dW5rcygpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQ3JlYXRlIHNwYXJzZSBhcnJheXMgd2l0
aCAxMDEgY2VsbHMgZWFjaCB0byBmaWxsIHdpdGggY2h1bmtzIGZvciBhIGdpdmVuIGNhdGVnb3J5
LgotICAgICAgICBmdW5jdGlvbiBtYXJrUGVyY2VudGFnZXNGb3JSZWNvcmQocmVjb3JkKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgaXNMb25nID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9k
ZWwuZHVyYXRpb25JblNlY29uZHMocmVjb3JkKSA+IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLnNob3J0UmVjb3JkVGhyZXNob2xkOwotICAgICAgICAgICAgaWYgKCEodGhp
cy5fc2hvd1Nob3J0RXZlbnRzIHx8IGlzTG9uZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgdmFyIHBlcmNlbnRhZ2VzID0gdGhpcy5fb3ZlcnZpZXdDYWxjdWxhdG9yLmNv
bXB1dGVCYXJHcmFwaFBlcmNlbnRhZ2VzKHJlY29yZCk7Ci0KLSAgICAgICAgICAgIHZhciBlbmQg
PSBNYXRoLnJvdW5kKHBlcmNlbnRhZ2VzLmVuZCk7Ci0gICAgICAgICAgICB2YXIgY2F0ZWdvcnlO
YW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlGb3JS
ZWNvcmQocmVjb3JkKS5uYW1lOwotICAgICAgICAgICAgZm9yICh2YXIgaiA9IE1hdGgucm91bmQo
cGVyY2VudGFnZXMuc3RhcnQpOyBqIDw9IGVuZDsgKytqKQotICAgICAgICAgICAgICAgIHRpbWVs
aW5lc1tjYXRlZ29yeU5hbWVdW2pdID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB2YXIgcmVj
b3JkcyA9IHRoaXMuX21vZGVsLnJlY29yZHM7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLmZvckFsbFJlY29yZHMocmVjb3JkcywgbWFya1BlcmNlbnRhZ2Vz
Rm9yUmVjb3JkLmJpbmQodGhpcykpOwotCi0gICAgICAgIC8vIENvbnZlcnQgc3BhcnNlIGFycmF5
cyB0byBjb250aW51b3VzIHNlZ21lbnRzLCByZW5kZXIgZ3JhcGhzIGZvciBlYWNoLgotICAgICAg
ICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKSB7Ci0gICAgICAgICAgICB2YXIgdGlt
ZWxpbmUgPSB0aW1lbGluZXNbY2F0ZWdvcnldOwotICAgICAgICAgICAgd2luZG93LnRpbWVsaW5l
U2F2ZWQgPSB0aW1lbGluZTsKLSAgICAgICAgICAgIHZhciBjaHVua1N0YXJ0ID0gLTE7Ci0gICAg
ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDEwMTsgKytqKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKHRpbWVsaW5lW2pdKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaHVua1N0YXJ0ID09
PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rU3RhcnQgPSBqOwotICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaHVua1N0YXJ0ICE9PSAt
MSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2F0ZWdvcnlHcmFwaHNbY2F0ZWdv
cnldLmFkZENodW5rKGNodW5rU3RhcnQsIGopOwotICAgICAgICAgICAgICAgICAgICAgICAgY2h1
bmtTdGFydCA9IC0xOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGNodW5rU3RhcnQgIT09IC0xKSB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fY2F0ZWdvcnlHcmFwaHNbY2F0ZWdvcnldLmFkZENodW5rKGNodW5r
U3RhcnQsIDEwMCk7Ci0gICAgICAgICAgICAgICAgY2h1bmtTdGFydCA9IC0xOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgfSwKLQogICAgIF91cGRhdGVFdmVudERpdmlkZXJzOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB2YXIgcmVjb3JkcyA9IHRoaXMuX2V2ZW50RGl2aWRlcnM7
CkBAIC0zNzQsMTAgKzMyNCwxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuRXZlbnRzLldpbmRvd0NoYW5nZWQpOwogICAg
IH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlCisgICAgICovCiAg
ICAgc2V0U2hvd1Nob3J0RXZlbnRzOiBmdW5jdGlvbih2YWx1ZSkKICAgICB7Ci0gICAgICAgIHRo
aXMuX3Nob3dTaG9ydEV2ZW50cyA9IHZhbHVlOwotICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAg
ICAgICAgdGhpcy5fY2F0ZWdvcnlTdHJpcHMuc2V0U2hvd1Nob3J0RXZlbnRzKHZhbHVlKTsKICAg
ICB9LAogCiAgICAgX3NjaGVkdWxlUmVmcmVzaDogZnVuY3Rpb24oKQpAQCAtNjc1LDUwICs2Mjcs
NiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld0NhbGN1bGF0b3IucHJvdG90eXBlID0g
ewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwotV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdv
cnlHcmFwaCA9IGZ1bmN0aW9uKGNhdGVnb3J5LCBpc0V2ZW4pCi17Ci0gICAgdGhpcy5fY2F0ZWdv
cnkgPSBjYXRlZ29yeTsKLQotICAgIHRoaXMuX2dyYXBoRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX2dyYXBoRWxlbWVudC5jbGFzc05hbWUgPSAidGlt
ZWxpbmUtZ3JhcGgtc2lkZSB0aW1lbGluZS1vdmVydmlldy1ncmFwaC1zaWRlIiArIChpc0V2ZW4g
PyAiIGV2ZW4iIDogIiIpOwotCi0gICAgdGhpcy5fYmFyQXJlYUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0aGlzLl9iYXJBcmVhRWxlbWVudC5jbGFzc05hbWUg
PSAidGltZWxpbmUtZ3JhcGgtYmFyLWFyZWEgdGltZWxpbmUtY2F0ZWdvcnktIiArIGNhdGVnb3J5
Lm5hbWU7Ci0gICAgdGhpcy5fZ3JhcGhFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JhckFyZWFF
bGVtZW50KTsKLX0KLQotV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlHcmFwaC5wcm90b3R5
cGUgPSB7Ci0gICAgZ2V0IGdyYXBoRWxlbWVudCgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fZ3JhcGhFbGVtZW50OwotICAgIH0sCi0KLSAgICBhZGRDaHVuazogZnVuY3Rpb24oc3RhcnQs
IGVuZCkKLSAgICB7Ci0gICAgICAgIHZhciBjaHVuayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwotICAgICAgICBjaHVuay5jbGFzc05hbWUgPSAidGltZWxpbmUtZ3JhcGgtYmFyIjsK
LSAgICAgICAgdGhpcy5fYmFyQXJlYUVsZW1lbnQuYXBwZW5kQ2hpbGQoY2h1bmspOwotICAgICAg
ICBjaHVuay5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIHN0YXJ0ICsgIiUiKTsKLSAgICAgICAg
Y2h1bmsuc3R5bGUuc2V0UHJvcGVydHkoIndpZHRoIiwgKGVuZCAtIHN0YXJ0KSArICIlIik7Ci0g
ICAgfSwKLQotICAgIGNsZWFyQ2h1bmtzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlz
Ll9iYXJBcmVhRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgIH0sCi0KLSAgICBzZXQgZGlt
bWVkKGRpbW1lZCkKLSAgICB7Ci0gICAgICAgIGlmIChkaW1tZWQpCi0gICAgICAgICAgICB0aGlz
Ll9iYXJBcmVhRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJ0aW1lbGluZS1jYXRlZ29yeS0iICsg
dGhpcy5fY2F0ZWdvcnkubmFtZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2Jh
ckFyZWFFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInRpbWVsaW5lLWNhdGVnb3J5LSIgKyB0aGlzLl9j
YXRlZ29yeS5uYW1lKTsKLSAgICB9Ci19Ci0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0gKi8KIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5XaW5kb3dTZWxlY3RvciA9IGZ1bmN0aW9u
KHBhcmVudCwgcG9zaXRpb24pCiB7CiAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHBvc2l0aW9u
OwpAQCAtODkyLDggKzgwMCwxMDIgQEAgV2ViSW5zcGVjdG9yLkhlYXBHcmFwaC5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWx9IG1vZGVsCisgKi8KIFdlYkluc3BlY3Rvci5UaW1lbGluZUNh
dGVnb3J5U3RyaXBzID0gZnVuY3Rpb24obW9kZWwpCiB7CisgICAgdGhpcy5fbW9kZWwgPSBtb2Rl
bDsKKyAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsK
KyAgICB0aGlzLl9jb250ZXh0ID0gdGhpcy5lbGVtZW50LmdldENvbnRleHQoIjJkIik7CisKKyAg
ICB0aGlzLl9maWxsU3R5bGVzID0ge307CisgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKCk7CisgICAgZm9yICh2YXIg
Y2F0ZWdvcnkgaW4gY2F0ZWdvcmllcykKKyAgICAgICAgdGhpcy5fZmlsbFN0eWxlc1tjYXRlZ29y
eV0gPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jcmVhdGVGaWxsU3R5
bGVGb3JDYXRlZ29yeSh0aGlzLl9jb250ZXh0LCAwLCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRl
Z29yeVN0cmlwcy5faW5uZXJTdHJpcEhlaWdodCwgY2F0ZWdvcmllc1tjYXRlZ29yeV0pOworCisg
ICAgdGhpcy5fZGlzYWJsZWRDYXRlZ29yeUZpbGxTdHlsZSA9IFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLmNyZWF0ZUZpbGxTdHlsZSh0aGlzLl9jb250ZXh0LCAwLCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5faW5uZXJTdHJpcEhlaWdodCwKKyAgICAg
ICAgInJnYigyMTgsIDIxOCwgMjE4KSIsICJyZ2IoMTcwLCAxNzAsIDE3MCkiLCAicmdiKDE0Mywg
MTQzLCAxNDMpIik7CisKKyAgICB0aGlzLl9kaXNhYmxlZENhdGVnb3J5Qm9yZGVyU3R5bGUgPSAi
cmdiKDE0MywgMTQzLCAxNDMpIjsKK30KKworLyoqIEBjb25zdCAqLworV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnlTdHJpcHMuX2NhbnZhc0hlaWdodCA9IDYwOworLyoqIEBjb25zdCAqLwor
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMuX251bWJlck9mU3RyaXBzID0gMzsK
Ky8qKiBAY29uc3QgKi8KK1dlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5U3RyaXBzLl9zdHJp
cEhlaWdodCA9IE1hdGgucm91bmQoV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMu
X2NhbnZhc0hlaWdodCAgLyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5fbnVt
YmVyT2ZTdHJpcHMpOworLyoqIEBjb25zdCAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdv
cnlTdHJpcHMuX3N0cmlwUGFkZGluZyA9IDQ7CisvKiogQGNvbnN0ICovCitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVDYXRlZ29yeVN0cmlwcy5faW5uZXJTdHJpcEhlaWdodCA9IFdlYkluc3BlY3Rvci5U
aW1lbGluZUNhdGVnb3J5U3RyaXBzLl9zdHJpcEhlaWdodCAtIDIgKiBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVDYXRlZ29yeVN0cmlwcy5fc3RyaXBQYWRkaW5nOworCitXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYXRlZ29yeVN0cmlwcy5wcm90b3R5cGUgPSB7CisgICAgdXBkYXRlOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICAvLyBVc2UgcmVhbCB3b3JsZCwgMToxIGNvb3JkaW5hdGVzIGluIGNhbnZh
cy4gVGhpcyB3aWxsIGFsc28gdGFrZSBjYXJlIG9mIGNsZWFyaW5nIGl0LgorICAgICAgICB0aGlz
LmVsZW1lbnQud2lkdGggPSB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aDsK
KyAgICAgICAgdGhpcy5lbGVtZW50LmhlaWdodCA9IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVn
b3J5U3RyaXBzLl9jYW52YXNIZWlnaHQ7CisKKyAgICAgICAgdmFyIHRpbWVPZmZzZXQgPSB0aGlz
Ll9tb2RlbC5taW5pbXVtUmVjb3JkVGltZSgpOworICAgICAgICB2YXIgdGltZVNwYW4gPSB0aGlz
Ll9tb2RlbC5tYXhpbXVtUmVjb3JkVGltZSgpIC0gdGltZU9mZnNldDsKKyAgICAgICAgdmFyIHNj
YWxlID0gdGhpcy5lbGVtZW50LndpZHRoIC8gdGltZVNwYW47CisKKyAgICAgICAgdmFyIGJhcnNC
eUNhdGVnb3J5ID0ge307CisKKyAgICAgICAgdGhpcy5fY29udGV4dC5maWxsU3R5bGUgPSAicmdi
YSgwLCAwLCAwLCAwLjA1KSI7CisgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMuX251bWJlck9mU3RyaXBzOyBpICs9IDIpCisgICAg
ICAgICAgICB0aGlzLl9jb250ZXh0LmZpbGxSZWN0KDAuNSwgaSAqIFdlYkluc3BlY3Rvci5UaW1l
bGluZUNhdGVnb3J5U3RyaXBzLl9zdHJpcEhlaWdodCArIDAuNSwgdGhpcy5lbGVtZW50LndpZHRo
LCBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeVN0cmlwcy5fc3RyaXBIZWlnaHQpOworCisg
ICAgICAgIGZ1bmN0aW9uIGFwcGVuZFJlY29yZChyZWNvcmQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHZhciBpc0xvbmcgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vj
b25kcyhyZWNvcmQpID4gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuc2hv
cnRSZWNvcmRUaHJlc2hvbGQ7CisgICAgICAgICAgICBpZiAoISh0aGlzLl9zaG93U2hvcnRFdmVu
dHMgfHwgaXNMb25nKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB2YXIg
cmVjb3JkU3RhcnQgPSBNYXRoLmZsb29yKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFy
dFRpbWVJblNlY29uZHMocmVjb3JkKSAtIHRpbWVPZmZzZXQpKiBzY2FsZSk7CisgICAgICAgICAg
ICB2YXIgcmVjb3JkRW5kID0gTWF0aC5jZWlsKChXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5l
bmRUaW1lSW5TZWNvbmRzKHJlY29yZCkgLSB0aW1lT2Zmc2V0KSAqIHNjYWxlKTsKKyAgICAgICAg
ICAgIHZhciBjYXRlZ29yeSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmNhdGVnb3J5Rm9yUmVjb3JkKHJlY29yZCk7CisgICAgICAgICAgICB2YXIgYmFyID0gYmFyc0J5
Q2F0ZWdvcnlbY2F0ZWdvcnkubmFtZV07CisgICAgICAgICAgICAvLyBUaGlzIGJhciBtYXkgYmUg
bWVyZ2VkIHdpdGggcHJldmlvdXMgLS0gc28ganVzdCBhZGp1c3QgdGhlIHByZXZpb3VzIGJhci4K
KyAgICAgICAgICAgIGNvbnN0IGJhcnNNZXJnZVRocmVzaG9sZCA9IDI7CisgICAgICAgICAgICBp
ZiAoYmFyICYmIGJhci5lbmQgKyBiYXJzTWVyZ2VUaHJlc2hvbGQgPj0gcmVjb3JkU3RhcnQpIHsK
KyAgICAgICAgICAgICAgICBiYXIuZW5kID0gcmVjb3JkRW5kOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiYXIpCisgICAgICAgICAgICAg
ICAgdGhpcy5fcmVuZGVyQmFyKGJhci5zdGFydCwgYmFyLmVuZCwgY2F0ZWdvcnkpOworICAgICAg
ICAgICAgYmFyc0J5Q2F0ZWdvcnlbY2F0ZWdvcnkubmFtZV0gPSB7IHN0YXJ0OiByZWNvcmRTdGFy
dCwgZW5kOiByZWNvcmRFbmQgfTsKKyAgICAgICAgfQorICAgICAgICBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5mb3JBbGxSZWNvcmRzKHRoaXMuX21vZGVsLnJlY29yZHMs
IGFwcGVuZFJlY29yZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4g
YmFyc0J5Q2F0ZWdvcnkpCisgICAgICAgICAgICB0aGlzLl9yZW5kZXJCYXIoYmFyc0J5Q2F0ZWdv
cnlbY2F0ZWdvcnldLnN0YXJ0LCBiYXJzQnlDYXRlZ29yeVtjYXRlZ29yeV0uZW5kLCBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKClbY2F0ZWdvcnldKTsK
KyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZQorICAgICAq
LworICAgIHNldFNob3dTaG9ydEV2ZW50czogZnVuY3Rpb24odmFsdWUpCisgICAgeworICAgICAg
ICB0aGlzLl9zaG93U2hvcnRFdmVudHMgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy51cGRhdGUoKTsK
KyAgICB9LAorCisgICAgX3JlbmRlckJhcjogZnVuY3Rpb24oYmVnaW4sIGVuZCwgY2F0ZWdvcnkp
CisgICAgeworICAgICAgICB2YXIgeCA9IGJlZ2luICsgMC41OworICAgICAgICB2YXIgeSA9IGNh
dGVnb3J5Lm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4ICogV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0
ZWdvcnlTdHJpcHMuX3N0cmlwSGVpZ2h0ICsgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlT
dHJpcHMuX3N0cmlwUGFkZGluZyArIDAuNTsKKyAgICAgICAgdmFyIHdpZHRoID0gTWF0aC5tYXgo
ZW5kIC0gYmVnaW4sIDEpOworCisgICAgICAgIHRoaXMuX2NvbnRleHQuc2F2ZSgpOworICAgICAg
ICB0aGlzLl9jb250ZXh0LnRyYW5zbGF0ZSh4LCB5KTsKKyAgICAgICAgdGhpcy5fY29udGV4dC5m
aWxsU3R5bGUgPSBjYXRlZ29yeS5oaWRkZW4gPyB0aGlzLl9kaXNhYmxlZENhdGVnb3J5RmlsbFN0
eWxlIDogdGhpcy5fZmlsbFN0eWxlc1tjYXRlZ29yeS5uYW1lXTsKKyAgICAgICAgdGhpcy5fY29u
dGV4dC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlT
dHJpcHMuX2lubmVyU3RyaXBIZWlnaHQpOworICAgICAgICB0aGlzLl9jb250ZXh0LnN0cm9rZVN0
eWxlID0gY2F0ZWdvcnkuaGlkZGVuID8gdGhpcy5fZGlzYWJsZWRDYXRlZ29yeUJvcmRlclN0eWxl
IDogY2F0ZWdvcnkuYm9yZGVyQ29sb3I7CisgICAgICAgIHRoaXMuX2NvbnRleHQuc3Ryb2tlUmVj
dCgwLCAwLCB3aWR0aCwgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnlTdHJpcHMuX2lubmVy
U3RyaXBIZWlnaHQpOworICAgICAgICB0aGlzLl9jb250ZXh0LnJlc3RvcmUoKTsKKyAgICB9CiB9
CiAKIC8qKgpAQCAtOTIwLDEyICs5MjIsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNh
bE92ZXJ2aWV3ID0gZnVuY3Rpb24obW9kZWwpCiAKICAgICB0aGlzLl9maWxsU3R5bGVzID0ge307
CiAgICAgdmFyIGNhdGVnb3JpZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5jYXRlZ29yaWVzKCk7Ci0gICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gY2F0ZWdvcmllcykg
ewotICAgICAgICB2YXIgZmlsbFN0eWxlID0gdGhpcy5fY29udGV4dC5jcmVhdGVMaW5lYXJHcmFk
aWVudCgwLCAwLCB0aGlzLl9tYXhJbm5lckJhcldpZHRoLCAwKTsKLSAgICAgICAgZmlsbFN0eWxl
LmFkZENvbG9yU3RvcCgwLCBjYXRlZ29yaWVzW2NhdGVnb3J5XS5maWxsQ29sb3JTdG9wMCk7Ci0g
ICAgICAgIGZpbGxTdHlsZS5hZGRDb2xvclN0b3AoMSwgY2F0ZWdvcmllc1tjYXRlZ29yeV0uZmls
bENvbG9yU3RvcDEpOwotICAgICAgICB0aGlzLl9maWxsU3R5bGVzW2NhdGVnb3J5XSA9IGZpbGxT
dHlsZTsKLSAgICB9CisgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gY2F0ZWdvcmllcykKKyAgICAg
ICAgdGhpcy5fZmlsbFN0eWxlc1tjYXRlZ29yeV0gPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5jcmVhdGVGaWxsU3R5bGVGb3JDYXRlZ29yeSh0aGlzLl9jb250ZXh0LCB0
aGlzLl9tYXhJbm5lckJhcldpZHRoLCAwLCBjYXRlZ29yaWVzW2NhdGVnb3J5XSk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlID0gewpAQCAtMTA0
Nyw3ICsxMDQ1LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmZpbGxSZWN0KDAsIHksIHRoaXMu
X21heElubmVyQmFyV2lkdGgsIE1hdGguZmxvb3IoaGVpZ2h0KSk7CiAgICAgICAgICAgICB0aGlz
Ll9jb250ZXh0LnJlc3RvcmUoKTsKIAotICAgICAgICAgICAgdGhpcy5fY29udGV4dC5zdHJva2VT
dHlsZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMo
KVtjYXRlZ29yeV07CisgICAgICAgICAgICB0aGlzLl9jb250ZXh0LnN0cm9rZVN0eWxlID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcygpW2NhdGVnb3J5
XS5ib3JkZXJDb2xvcjsKICAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuc3Ryb2tlUmVjdCh4LCB5
LCB3aWR0aCwgTWF0aC5mbG9vcihoZWlnaHQpKTsKICAgICAgICAgICAgIGJvdHRvbU9mZnNldCAt
PSBoZWlnaHQgLSAxOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKaW5k
ZXggMjMyMDJmMmRiODU0ZWIyNGYzYTM0YjM1ZDFiNWNlNTU2MDZkNjE2OS4uMmI4OWUzMDEwZWI3
NzU3OTcwYjJhOGRiZmI3ZjA5YzIxMmQ5MGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5qcwpAQCAtNDcsOSArNDcsOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5jYXRlZ29yaWVzID0gZnVuY3Rpb24oKQogICAgIGlmIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5fY2F0ZWdvcmllcykKICAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzOwogICAgIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLl9jYXRlZ29yaWVzID0gewotICAgICAgICBs
b2FkaW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmciKSwgInJnYigxMDYsIDE1MiwgMjEzKSIsICJyZ2Io
MjAxLCAyMjAsIDI0NSkiLCAicmdiKDEwOSwgMTU3LCAyMjIpIiksCi0gICAgICAgIHNjcmlwdGlu
ZzogbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAicmdiKDIyMywgMTc1LCA3NykiLCAicmdiKDI1
MSwgMjIyLCAxNjgpIiwgInJnYigyMzQsIDE4MiwgNzcpIiksCi0gICAgICAgIHJlbmRlcmluZzog
bmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJyZW5kZXJpbmciLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJlbmRlcmluZyIpLCAicmdiKDEzMCwgNTksIDE5MCkiLCAicmdiKDIxMywg
MTg1LCAyMzYpIiwgInJnYigxMzcsIDYyLCAyMDApIikKKyAgICAgICAgbG9hZGluZzogbmV3IFdl
Ykluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJsb2FkaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJMb2FkaW5nIiksIDAsICJyZ2IoODAsIDEzNSwgMjA3KSIsICJyZ2IoMTkxLCAyMTQsIDI0
MykiLCAicmdiKDExMiwgMTYyLCAyMjcpIiksCisgICAgICAgIHNjcmlwdGluZzogbmV3IFdlYklu
c3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNjcmlwdGluZyIpLCAxLCAicmdiKDIyMCwgMTYzLCA0OSkiLCAicmdiKDI1MywgMjE3LCAx
NDQpIiwgInJnYigyNTMsIDE5MSwgNjgpIiksCisgICAgICAgIHJlbmRlcmluZzogbmV3IFdlYklu
c3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJyZW5kZXJpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlJlbmRlcmluZyIpLCAyLCAicmdiKDE0OCwgODgsIDE5OSkiLCAicmdiKDIxOSwgMTk1LCAy
MzkpIiwgInJnYigxNzUsIDEyMCwgMjIxKSIpCiAgICAgfTsKICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuX2NhdGVnb3JpZXM7CiB9OwpAQCAtNzU0LDYg
Kzc1NCwzNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5nZW5lcmF0
ZVBvcHVwQ29udGVudEZvckZyYW1lID0gZnVuY3Rpb24oZgogfQogCiAvKioKKyAqIEBwYXJhbSB7
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjb250ZXh0CisgKiBAcGFyYW0ge251bWJlcn0gd2lk
dGgKKyAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQKKyAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvcjAK
KyAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvcjEKKyAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvcjIKKyAq
LworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY3JlYXRlRmlsbFN0eWxl
ID0gZnVuY3Rpb24oY29udGV4dCwgd2lkdGgsIGhlaWdodCwgY29sb3IwLCBjb2xvcjEsIGNvbG9y
MikKK3sKKyAgICB2YXIgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAs
IDAsIHdpZHRoLCBoZWlnaHQpOworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCBjb2xvcjAp
OworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjMsIGNvbG9yMSk7CisgICAgZ3JhZGllbnQu
YWRkQ29sb3JTdG9wKDAuNywgY29sb3IxKTsKKyAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMSwg
Y29sb3IyKTsKKyAgICByZXR1cm4gZ3JhZGllbnQ7Cit9CisKKy8qKgorICogQHBhcmFtIHtDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkR9IGNvbnRleHQKKyAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aAor
ICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxp
bmVDYXRlZ29yeX0gY2F0ZWdvcnkKKyAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuY3JlYXRlRmlsbFN0eWxlRm9yQ2F0ZWdvcnkgPSBmdW5jdGlvbihjb250ZXh0LCB3
aWR0aCwgaGVpZ2h0LCBjYXRlZ29yeSkKK3sKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuY3JlYXRlRmlsbFN0eWxlKGNvbnRleHQsIHdpZHRoLCBoZWln
aHQsIGNhdGVnb3J5LmZpbGxDb2xvclN0b3AwLCBjYXRlZ29yeS5maWxsQ29sb3JTdG9wMSwgY2F0
ZWdvcnkuYm9yZGVyQ29sb3IpOworfQorCisvKioKICAqIEBpbnRlcmZhY2UKICAqLwogV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRmlsdGVyID0gZnVuY3Rpb24oKQpAQCAt
NzcyLDE0ICs4MDEsMTYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
RmlsdGVyLnByb3RvdHlwZSA9IHsKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQog
ICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICogQHBh
cmFtIHtudW1iZXJ9IG92ZXJ2aWV3U3RyaXBHcm91cEluZGV4CiAgKiBAcGFyYW0ge3N0cmluZ30g
Ym9yZGVyQ29sb3IKICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxsQ29sb3JTdG9wMAogICogQHBhcmFt
IHtzdHJpbmd9IGZpbGxDb2xvclN0b3AxCiAgKi8KLVdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVn
b3J5ID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIGJvcmRlckNvbG9yLCBmaWxsQ29sb3JTdG9wMCwg
ZmlsbENvbG9yU3RvcDEpCitXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeSA9IGZ1bmN0aW9u
KG5hbWUsIHRpdGxlLCBvdmVydmlld1N0cmlwR3JvdXBJbmRleCwgYm9yZGVyQ29sb3IsIGZpbGxD
b2xvclN0b3AwLCBmaWxsQ29sb3JTdG9wMSkKIHsKICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAg
IHRoaXMudGl0bGUgPSB0aXRsZTsKKyAgICB0aGlzLm92ZXJ2aWV3U3RyaXBHcm91cEluZGV4ID0g
b3ZlcnZpZXdTdHJpcEdyb3VwSW5kZXg7CiAgICAgdGhpcy5ib3JkZXJDb2xvciA9IGJvcmRlckNv
bG9yOwogICAgIHRoaXMuZmlsbENvbG9yU3RvcDAgPSBmaWxsQ29sb3JTdG9wMDsKICAgICB0aGlz
LmZpbGxDb2xvclN0b3AxID0gZmlsbENvbG9yU3RvcDE7Cg==
</data>
<flag name="review"
          id="149796"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>143276</attachid>
            <date>2012-05-22 04:48:31 -0700</date>
            <delta_ts>2012-05-22 04:48:31 -0700</delta_ts>
            <desc>screenshot</desc>
            <filename>canvas-category-strips.png</filename>
            <type>image/png</type>
            <size>10094</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">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
RK5CYII=
</data>

          </attachment>
      

    </bug>

</bugzilla>