<?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>79789</bug_id>
          
          <creation_ts>2012-02-28 07:18:12 -0800</creation_ts>
          <short_desc>Web Inspector: move filtering of the timeline records into the presentation model.</short_desc>
          <delta_ts>2012-02-28 08:19:23 -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 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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566639</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-28 07:18:12 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566642</commentid>
    <comment_count>1</comment_count>
      <attachid>129246</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-28 07:21:28 -0800</bug_when>
    <thetext>Created attachment 129246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566698</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-28 08:19:23 -0800</bug_when>
    <thetext>Committed r109107: &lt;http://trac.webkit.org/changeset/109107&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129246</attachid>
            <date>2012-02-28 07:21:28 -0800</date>
            <delta_ts>2012-02-28 08:18:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79789-20120228192125.patch</filename>
            <type>text/plain</type>
            <size>35241</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIyMGQwOTAzMDc0NjQy
YWM5MWEwMWYxYTE5YWNlNmE2ZWUzOTQwNS4uZjFkNTNhYjFlMWVjY2E4Y2E2ZTA3MjNiNWRhNTc5
NWVmNTc2NzIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTAyLTI4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBtb3ZlIGZpbHRlcmluZyBvZiB0aGUgdGltZWxpbmUgcmVjb3JkcyBpbnRvIHRoZSBwcmVzZW50
YXRpb24gbW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTc4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5zZXRTdGFydEF0WmVybyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLnNjcm9sbFdpbmRvdyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLmFj
Y2VwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90
eXBlLl9zZXRXaW5kb3dJbmRpY2VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVN0
YXJ0QXRaZXJvT3ZlcnZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRB
dFplcm9PdmVydmlldy5wcm90b3R5cGUuX29uV2luZG93Q2hhbmdlZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJv
dG90eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUmVjb3Jkc0NvdW50ZXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9nbHVlUGFyZW50QnV0dG9uQ2xp
Y2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Rv
Z2dsZVN0YXJ0QXRaZXJvQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3Jlc2V0UGFuZWwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9yZWZyZXNoKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5yZXZlYWxSZWNvcmRB
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3JlZnJl
c2hSZWNvcmRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUV4cGFuZGFibGVFbGVt
ZW50LnByb3RvdHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNh
dGVnb3J5RmlsdGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5Rmls
dGVyLnByb3RvdHlwZS5hY2NlcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lSXNM
b25nRmlsdGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUlzTG9uZ0ZpbHRlci5w
cm90b3R5cGUuYWNjZXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUuYWRkRmlsdGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubWluaW11bVJlY29yZFRp
bWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlLm1heGltdW1SZWNvcmRUaW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVCb3VuZGFy
aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5fZmluZFBhcmVudFJlY29yZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuc2V0R2x1ZVJlY29yZHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmZpcmVXaW5k
b3dDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5nZXQgX3JlY29yZFN0eWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuZmlsdGVyZWRSZWNvcmRzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
ZmlsdGVyUmVjb3Jkcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5SZWNvcmQucHJvdG90eXBlLmdldCB2aXNpYmxlQ2hpbGRyZW5Db3VudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmQucHJvdG90
eXBlLmdldCBpbnZpc2libGVDaGlsZHJlbkNvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkZpbHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5GaWx0ZXIucHJvdG90eXBlLmFjY2VwdCk6CisKIDIw
MTItMDItMjggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3Rvcjogc2hvdyByZXNvdXJjZSBkaXZpZGVycyBvbiBtZW1vcnkgY291bnRl
ciBncmFwaHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVNb2RlbC5qcwppbmRleCAyZDA3ODM4ODdlZmRjMmE1N2EzNTc5Yzk0YmUzZmQ1MDg1ZDIy
NGU0Li5mYTY2ZDYzMjQ5ODhjZWVkMzcyZWFiMWY4NWIyODBlZDE1YzQyZTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCkBA
IC00MSw2ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsID0gZnVuY3Rpb24oKQog
fQogCiBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlID0geworICAgIFJvb3Q6
ICJSb290IiwKICAgICBFdmVudERpc3BhdGNoOiAiRXZlbnREaXNwYXRjaCIsCiAgICAgTGF5b3V0
OiAiTGF5b3V0IiwKICAgICBSZWNhbGN1bGF0ZVN0eWxlczogIlJlY2FsY3VsYXRlU3R5bGVzIiwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVP
dmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDI1ZGZmY2EwMjhlMjhkYzlmZDRmM2MyNjE5YWFhYmNh
MGIzZjczNTkuLmExYmQyMTNhNGQ5MDg4MGI0MTNiODhlN2JiZjI5YTkzZGNmMTNmMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmll
d1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5qcwpAQCAtMzEsNiArMzEsNyBAQAogLyoqCiAgKiBAY29uc3RydWN0b3IK
ICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICogQGltcGxlbWVudHMge1dlYklu
c3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkZpbHRlcn0KICAqLwogV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiB7
CkBAIC0zOCw2ICszOSw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1
bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAi
ZmlsbCI7CiAKICAgICB0aGlzLl9zdGFydEF0WmVybyA9IGZhbHNlOworICAgIHRoaXMuX3RvcExl
dmVsUmVjb3JkSW5kZXggPSAwOworICAgIHRoaXMuX3dpbmRvd0luZGV4TGVmdCA9IDA7CisgICAg
dGhpcy5fd2luZG93SW5kZXhSaWdodCA9IG51bGw7CiAKICAgICB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbCA9IHByZXNlbnRhdGlvbk1vZGVsOwogCkBAIC0xMzksNyArMTQzLDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICh0
aGlzLl9oZWFwR3JhcGgudmlzaWJsZSkKICAgICAgICAgICAgICAgICB0aGlzLl9zaG93VGltZWxp
bmVzKCk7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGltZWxpbmUt
c3RhcnQtYXQtemVybyIpOwotICAgICAgICAgICAgdGhpcy5fc3RhcnRBdFplcm9PdmVydmlldyA9
IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3KHRoaXMuX3ByZXNl
bnRhdGlvbk1vZGVsKTsKKyAgICAgICAgICAgIHRoaXMuX3N0YXJ0QXRaZXJvT3ZlcnZpZXcgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldyh0aGlzKTsKICAgICAg
ICAgICAgIHRoaXMuX3N0YXJ0QXRaZXJvT3ZlcnZpZXcuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAg
ICAgICAgICAgdGhpcy5fc3RhcnRBdFplcm9PdmVydmlldy51cGRhdGUodGhpcy5fcmVjb3Jkcyk7
CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNjMsNiArMTY3LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIHVwZGF0ZTogZnVuY3Rpb24ocmVj
b3Jkcywgc2hvd1Nob3J0RXZlbnRzKQogICAgIHsKKyAgICAgICAgdGhpcy5fdG9wTGV2ZWxSZWNv
cmRJbmRleCA9IDA7CiAgICAgICAgIHRoaXMuX3JlY29yZHMgPSByZWNvcmRzOwogICAgICAgICB0
aGlzLl9zaG93U2hvcnRFdmVudHMgPSBzaG93U2hvcnRFdmVudHM7CiAgICAgICAgIC8vIENsZWFy
IHN1bW1hcnkgYmFycy4KQEAgLTI2MSw2ICsyNjYsMzIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICBzY3JvbGxXaW5kb3c6IGZ1bmN0aW9uKGV2
ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3cuc2Nyb2xsV2luZG93KGV2
ZW50KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmR9IHJlY29yZAorICAgICAqLworICAgIGFjY2Vw
dDogZnVuY3Rpb24ocmVjb3JkKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXJ0QXRaZXJv
T3ZlcnZpZXcpIHsKKyAgICAgICAgICAgIGlmIChyZWNvcmQucGFyZW50ID09PSB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkpCisgICAgICAgICAgICAgICAgKyt0aGlzLl90b3BM
ZXZlbFJlY29yZEluZGV4OworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvcExldmVsUmVjb3Jk
SW5kZXggPiB0aGlzLl93aW5kb3dJbmRleExlZnQgJiYKKyAgICAgICAgICAgICAgICAodHlwZW9m
IHRoaXMuX3dpbmRvd0luZGV4UmlnaHQgIT09ICJudW1iZXIiIHx8IHRoaXMuX3RvcExldmVsUmVj
b3JkSW5kZXggPD0gdGhpcy5fd2luZG93SW5kZXhSaWdodCk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB2YXIgYWJzb2x1dGVNaW4gPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5taW5p
bXVtUmVjb3JkVGltZSgpOworICAgICAgICAgICAgdmFyIGFic29sdXRlTWF4ID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwubWF4aW11bVJlY29yZFRpbWUoKTsKKyAgICAgICAgICAgIHZhciB3aW5k
b3dMZWZ0ID0gYWJzb2x1dGVNaW4gKyAoYWJzb2x1dGVNYXggLSBhYnNvbHV0ZU1pbikgKiB0aGlz
Ll9vdmVydmlld1dpbmRvdy53aW5kb3dMZWZ0OworICAgICAgICAgICAgdmFyIHdpbmRvd1JpZ2h0
ID0gYWJzb2x1dGVNaW4gKyAoYWJzb2x1dGVNYXggLSBhYnNvbHV0ZU1pbikgKiB0aGlzLl9vdmVy
dmlld1dpbmRvdy53aW5kb3dSaWdodDsKKyAgICAgICAgICAgIHJldHVybiByZWNvcmQuZW5kVGlt
ZSA+PSB3aW5kb3dMZWZ0ICYmIHJlY29yZC5zdGFydFRpbWUgPD0gd2luZG93UmlnaHQ7CisgICAg
ICAgIH0KKyAgICB9LAorCisgICAgX3NldFdpbmRvd0luZGljZXM6IGZ1bmN0aW9uKGluZGV4TGVm
dCwgaW5kZXhSaWdodCkKKyAgICB7CisgICAgICAgIHRoaXMuX3dpbmRvd0luZGV4TGVmdCA9IGlu
ZGV4TGVmdDsKKyAgICAgICAgdGhpcy5fd2luZG93SW5kZXhSaWdodCA9IGluZGV4UmlnaHQ7Cisg
ICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmZpcmVXaW5kb3dDaGFuZ2VkKCk7CiAgICAg
fQogfQogCkBAIC03MjEsMTIgKzc1MiwxMiBAQCBXZWJJbnNwZWN0b3IuSGVhcEdyYXBoLnByb3Rv
dHlwZSA9IHsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWx9IG1vZGVsCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZX0gcGFuZQogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5W
aWV3fQogICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVTdGFydEF0WmVyb092ZXJ2aWV3ID0gZnVu
Y3Rpb24obW9kZWwpIHsKK1dlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvT3ZlcnZpZXcg
PSBmdW5jdGlvbihwYW5lKSB7CiAgICAgV2ViSW5zcGVjdG9yLlZpZXcuY2FsbCh0aGlzKTsKLSAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCA9IG1vZGVsOworICAgIHRoaXMuX3BhbmUgPSBwYW5l
OwogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAidGltZWxpbmUtb3ZlcnZpZXctc3RhcnQt
YXQtemVybyBmaWxsIjsKICAgICB0aGlzLl9vdmVydmlld0VsZW1lbnQgPSB0aGlzLmVsZW1lbnQu
Y3JlYXRlQ2hpbGQoImRpdiIsICJ0aW1lbGluZS1vdmVydmlldy1zdGFydC1hdC16ZXJvLWJhcnMg
ZmlsbCIpOwogICAgIHRoaXMuX292ZXJ2aWV3V2luZG93ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1l
bGluZU92ZXJ2aWV3V2luZG93KHRoaXMuZWxlbWVudCk7CkBAIC04MTAsNyArODQxLDcgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9PdmVydmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBsZWZ0SW5kZXggPSBNYXRoLmZsb29yKChsZWZ0T2Zmc2V0IC0gb2Zmc2V0MCkgLyBi
YXJXaWR0aCAqIHRoaXMuX3JlY29yZHNQZXJCYXIpOwogICAgICAgICB2YXIgcmlnaHRJbmRleCA9
IHJpZ2h0T2Zmc2V0ICsgYmFyV2lkdGggPj0gdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoID8gbnVs
bCA6IE1hdGguY2VpbCgocmlnaHRPZmZzZXQgLSBvZmZzZXQwIC0gMikgLyBiYXJXaWR0aCAqIHRo
aXMuX3JlY29yZHNQZXJCYXIpOwogCi0gICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNl
dFdpbmRvd0luZGljZXMobGVmdEluZGV4LCByaWdodEluZGV4KTsKKyAgICAgICAgdGhpcy5fcGFu
ZS5fc2V0V2luZG93SW5kaWNlcyhsZWZ0SW5kZXgsIHJpZ2h0SW5kZXgpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVs
LmpzCmluZGV4IDNjNTE2YzU4OTk4ZWQ2ZmUyZDQwYWVkOWM2NjU0YWI5MDk2MGZkYzYuLmJiNDNi
YTFmZjFmZmVmYzgwMjRiYzk3ZThhMjQ1N2IxMjdlMDA2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTEyMyw4ICsx
MjMsMTEgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0
aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogCi0gICAgdGhpcy5fdmlzaWJsZVJlY29yZHNDb3Vu
dCA9IDA7CiAgICAgdGhpcy5fYWxsUmVjb3Jkc0NvdW50ID0gMDsKKworICAgIHRoaXMuX3ByZXNl
bnRhdGlvbk1vZGVsLmFkZEZpbHRlcih0aGlzLl9vdmVydmlld1BhbmUpOworICAgIHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsLmFkZEZpbHRlcihuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdv
cnlGaWx0ZXIoKSk7IAorICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEZpbHRlcihuZXcg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lSXNMb25nRmlsdGVyKHRoaXMpKTsgCiB9CiAKIC8vIERlZmlu
ZSByb3cgaGVpZ2h0LCBzaG91bGQgYmUgaW4gc3luYyB3aXRoIHN0eWxlcyBmb3IgdGltZWxpbmUg
Z3JhcGhzLgpAQCAtMjIxLDYgKzIyNCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uID0gbmV3IFdlYklu
c3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHbHVlIGFzeW5j
aHJvbm91cyBldmVudHMgdG8gY2F1c2VzIiksICJnbHVlLWFzeW5jLXN0YXR1cy1iYXItaXRlbSIp
OwogICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2dsZWQgPSB0cnVlOworICAgICAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZXRHbHVlUmVjb3Jkcyh0cnVlKTsKICAgICAgICAg
dGhpcy5fZ2x1ZVBhcmVudEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2ds
dWVQYXJlbnRCdXR0b25DbGlja2VkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLnN0YXR1c0JhckZp
bHRlcnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKQEAgLTMyMiw5ICszMjYsOSBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCk7CiAgICAgfSwKIAotICAgIF91
cGRhdGVSZWNvcmRzQ291bnRlcjogZnVuY3Rpb24oKQorICAgIF91cGRhdGVSZWNvcmRzQ291bnRl
cjogZnVuY3Rpb24ocmVjb3Jkc0luV2luZG93Q291bnQpCiAgICAgewotICAgICAgICB0aGlzLnJl
Y29yZHNDb3VudGVyLnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBvZiAl
ZCBjYXB0dXJlZCByZWNvcmRzIGFyZSB2aXNpYmxlIiwgdGhpcy5fdmlzaWJsZVJlY29yZHNDb3Vu
dCwgdGhpcy5fYWxsUmVjb3Jkc0NvdW50KTsKKyAgICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci50
ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJWQgb2YgJWQgY2FwdHVyZWQgcmVj
b3JkcyBhcmUgdmlzaWJsZSIsIHJlY29yZHNJbldpbmRvd0NvdW50LCB0aGlzLl9hbGxSZWNvcmRz
Q291bnQpOwogICAgIH0sCiAKICAgICBfdXBkYXRlRXZlbnREaXZpZGVyczogZnVuY3Rpb24oKQpA
QCAtNDE2LDYgKzQyMCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICBfZ2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIHRoaXMuX2dsdWVQYXJlbnRCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl9nbHVlUGFyZW50QnV0
dG9uLnRvZ2dsZWQ7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNldEdsdWVSZWNv
cmRzKHRoaXMuX2dsdWVQYXJlbnRCdXR0b24udG9nZ2xlZCAmJiAhdGhpcy50b2dnbGVTdGFydEF0
WmVyb0J1dHRvbi50b2dnbGVkKTsKICAgICAgICAgdGhpcy5fcmVwb3B1bGF0ZVJlY29yZHMoKTsK
ICAgICB9LAogCkBAIC00MjUsNiArNDMwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uLmRpc2FibGVkID0g
dG9nZ2xlZDsKICAgICAgICAgdGhpcy50b2dnbGVTdGFydEF0WmVyb0J1dHRvbi50b2dnbGVkID0g
dG9nZ2xlZDsKICAgICAgICAgdGhpcy5fY2FsY3VsYXRvciA9IHRvZ2dsZWQgPyBuZXcgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lU3RhcnRBdFplcm9DYWxjdWxhdG9yKCkgOiBuZXcgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQ2FsY3VsYXRvcigpOworICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5z
ZXRHbHVlUmVjb3Jkcyh0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2dsZWQgJiYgIXRoaXMudG9n
Z2xlU3RhcnRBdFplcm9CdXR0b24udG9nZ2xlZCk7CiAgICAgICAgIHRoaXMuX3JlcG9wdWxhdGVS
ZWNvcmRzKCk7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5zZXRTdGFydEF0WmVybyh0b2dn
bGVkKTsKICAgICB9LApAQCAtNDU0LDc2ICs0NjAsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVu
Y3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCiAgICAgewotICAgICAgICB2YXIgY29ubmVjdGVk
VG9PbGRSZWNvcmQgPSBmYWxzZTsKLSAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVj
dG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKLQotICAgICAgICBpZiAocmVjb3JkLnR5cGUg
PT09IHJlY29yZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRU
eXBlcy5NYXJrTG9hZCkKLSAgICAgICAgICAgIHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJh
ciBlbnRyeSBmb3IgbG9hZCBldmVudHMuCi0gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9zdGFydEF0
WmVybyAmJgotICAgICAgICAgICAgICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2ds
ZWQgJiYKLSAgICAgICAgICAgICAgICAgICAgKHBhcmVudFJlY29yZCA9PT0gdGhpcy5fcm9vdFJl
Y29yZCgpIHx8Ci0gICAgICAgICAgICAgICAgICAgIHJlY29yZC50eXBlID09PSByZWNvcmRUeXBl
cy5SZXNvdXJjZVJlY2VpdmVSZXNwb25zZSB8fAotICAgICAgICAgICAgICAgICAgICByZWNvcmQu
dHlwZSA9PT0gcmVjb3JkVHlwZXMuUmVzb3VyY2VGaW5pc2ggfHwKLSAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZWREYXRhKSkgewot
ICAgICAgICAgICAgdmFyIG5ld1BhcmVudFJlY29yZCA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LmZpbmRQYXJlbnRSZWNvcmQocmVjb3JkKTsKLSAgICAgICAgICAgIGlmIChuZXdQYXJlbnRSZWNv
cmQpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnRSZWNvcmQgPSBuZXdQYXJlbnRSZWNvcmQ7Ci0g
ICAgICAgICAgICAgICAgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSB0cnVlOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGNoaWxkcmVuID0gcmVjb3JkLmNoaWxkcmVuOwot
ICAgICAgICB2YXIgc2NyaXB0RGV0YWlsczsKLSAgICAgICAgaWYgKHJlY29yZC5kYXRhICYmIHJl
Y29yZC5kYXRhWyJzY3JpcHROYW1lIl0pIHsKLSAgICAgICAgICAgIHNjcmlwdERldGFpbHMgPSB7
Ci0gICAgICAgICAgICAgICAgc2NyaXB0TmFtZTogcmVjb3JkLmRhdGFbInNjcmlwdE5hbWUiXSwK
LSAgICAgICAgICAgICAgICBzY3JpcHRMaW5lOiByZWNvcmQuZGF0YVsic2NyaXB0TGluZSJdCi0g
ICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgaWYgKChyZWNvcmQudHlwZSA9PT0g
cmVjb3JkVHlwZXMuVGltZXJGaXJlIHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5GaXJl
QW5pbWF0aW9uRnJhbWUpICYmIGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCkgewotICAgICAg
ICAgICAgdmFyIGNoaWxkUmVjb3JkID0gY2hpbGRyZW5bMF07Ci0gICAgICAgICAgICBpZiAoY2hp
bGRSZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuRnVuY3Rpb25DYWxsKSB7Ci0gICAgICAgICAg
ICAgICAgc2NyaXB0RGV0YWlscyA9IHsKLSAgICAgICAgICAgICAgICAgICAgc2NyaXB0TmFtZTog
Y2hpbGRSZWNvcmQuZGF0YVsic2NyaXB0TmFtZSJdLAotICAgICAgICAgICAgICAgICAgICBzY3Jp
cHRMaW5lOiBjaGlsZFJlY29yZC5kYXRhWyJzY3JpcHRMaW5lIl0KLSAgICAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRSZWNvcmQuY2hpbGRyZW4uY29uY2F0
KGNoaWxkcmVuLnNsaWNlKDEpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAg
IHZhciBmb3JtYXR0ZWRSZWNvcmQgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5jcmVhdGVGb3Jt
YXR0ZWRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQsIHNjcmlwdERldGFpbHMpOwotCi0gICAg
ICAgIGlmIChyZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuTWFya0RPTUNvbnRlbnQgfHwgcmVj
b3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLk1hcmtMb2FkKSB7Ci0gICAgICAgICAgICB0aGlzLl90
aW1lU3RhbXBSZWNvcmRzLnB1c2goZm9ybWF0dGVkUmVjb3JkKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCisgICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmQgPSB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5hZGRSZWNvcmQocmVjb3JkLCBwYXJlbnRSZWNvcmQpOwogICAgICAgICAr
K3RoaXMuX2FsbFJlY29yZHNDb3VudDsKLSAgICAgICAgZm9ybWF0dGVkUmVjb3JkLmNvbGxhcHNl
ZCA9IChwYXJlbnRSZWNvcmQgPT09IHRoaXMuX3Jvb3RSZWNvcmQoKSk7Ci0KLSAgICAgICAgdmFy
IGNoaWxkcmVuQ291bnQgPSBjaGlsZHJlbiA/IGNoaWxkcmVuLmxlbmd0aCA6IDA7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5Db3VudDsgKytpKQotICAgICAgICAgICAgdGhp
cy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQp
OwotCi0gICAgICAgIGZvcm1hdHRlZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHModGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcyk7Ci0KLSAgICAgICAgaWYgKGNvbm5lY3Rl
ZFRvT2xkUmVjb3JkKSB7Ci0gICAgICAgICAgICByZWNvcmQgPSBmb3JtYXR0ZWRSZWNvcmQ7Ci0g
ICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHJlY29yZC5wYXJl
bnQ7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcmVudC5sYXN0Q2hpbGRFbmRUaW1lIDwgcmVjb3Jk
Lmxhc3RDaGlsZEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgICAgIHBhcmVudC5sYXN0Q2hpbGRF
bmRUaW1lID0gcmVjb3JkLmxhc3RDaGlsZEVuZFRpbWU7Ci0gICAgICAgICAgICAgICAgZm9yICh2
YXIgY2F0ZWdvcnkgaW4gZm9ybWF0dGVkUmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0cykKLSAgICAgICAg
ICAgICAgICAgICAgcGFyZW50LmFnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV0gKz0gZm9ybWF0dGVk
UmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV07Ci0gICAgICAgICAgICAgICAgcmVjb3Jk
ID0gcGFyZW50OwotICAgICAgICAgICAgfSB3aGlsZSAocmVjb3JkLnBhcmVudCk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAocGFyZW50UmVjb3JkICE9PSB0aGlzLl9yb290UmVj
b3JkKCkpCi0gICAgICAgICAgICAgICAgcGFyZW50UmVjb3JkLnNlbGZUaW1lIC09IGZvcm1hdHRl
ZFJlY29yZC5lbmRUaW1lIC0gZm9ybWF0dGVkUmVjb3JkLnN0YXJ0VGltZTsKLSAgICAgICAgfQot
ICAgICAgICAvLyBLZWVwIGJhciBlbnRyeSBmb3IgbWFyayB0aW1lbGluZSBzaW5jZSBuZXN0aW5n
IG1pZ2h0IGJlIGludGVyZXN0aW5nIHRvIHRoZSB1c2VyLgotICAgICAgICBpZiAocmVjb3JkLnR5
cGUgPT09IHJlY29yZFR5cGVzLlRpbWVTdGFtcCkKKyAgICAgICAgdmFyIHJlY29yZFR5cGVzID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZTsKKyAgICAgICAgaWYgKHJlY29y
ZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudCB8fCByZWNvcmQudHlwZSA9PT0g
cmVjb3JkVHlwZXMuTWFya0xvYWQgfHwgcmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlRpbWVT
dGFtcCkKICAgICAgICAgICAgIHRoaXMuX3RpbWVTdGFtcFJlY29yZHMucHVzaChmb3JtYXR0ZWRS
ZWNvcmQpOwogICAgIH0sCiAKQEAgLTU2NSw3ICs1MDUsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5yZXNldCgp
OwogICAgICAgICB0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigwKTsKICAgICAgICAgdGhpcy5f
Y2xvc2VSZWNvcmREZXRhaWxzKCk7Ci0gICAgICAgIHRoaXMuX3Zpc2libGVSZWNvcmRzQ291bnQg
PSAwOwogICAgICAgICB0aGlzLl9hbGxSZWNvcmRzQ291bnQgPSAwOwogICAgIH0sCiAKQEAgLTYy
NCw4ICs1NjMsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgaWYgKCF0aGlzLl9ib3VuZGFyaWVzQXJlVmFsaWQpCiAgICAgICAgICAgICB0aGlz
Ll91cGRhdGVCb3VuZGFyaWVzKCk7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2hSZWNvcmRzKCF0aGlz
Ll9ib3VuZGFyaWVzQXJlVmFsaWQpOwotICAgICAgICB0aGlzLl91cGRhdGVSZWNvcmRzQ291bnRl
cigpOworICAgICAgICB2YXIgcmVjb3Jkc0luV2luZG93Q291bnQgPSB0aGlzLl9yZWZyZXNoUmVj
b3JkcyghdGhpcy5fYm91bmRhcmllc0FyZVZhbGlkKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUmVj
b3Jkc0NvdW50ZXIocmVjb3Jkc0luV2luZG93Q291bnQpOwogICAgICAgICBpZighdGhpcy5fYm91
bmRhcmllc0FyZVZhbGlkKQogICAgICAgICAgICAgdGhpcy5fdXBkYXRlRXZlbnREaXZpZGVycygp
OwogICAgICAgICBpZiAodGhpcy5fbWVtb3J5U3RhdGlzdGljcyAmJiB0aGlzLl9tZW1vcnlTdGF0
aXN0aWNzLnZpc2libGUoKSkKQEAgLTY0NSw2MCArNTg0LDE4IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5jYWxjdWxh
dGVXaW5kb3coKTsKICAgICB9LAogCi0gICAgX2ZpbHRlclJlY29yZHM6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHZhciByZWNvcmRzSW5XaW5kb3cgPSBbXTsKLSAgICAgICAgdmFyIGZpbHRl
ciA9IHRoaXMuX3N0YXJ0QXRaZXJvID8gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRa
ZXJvUmVjb3JkRmlsdGVyKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLCB0aGlzLl9yb290UmVjb3Jk
KCksIHRoaXMuX3Nob3dTaG9ydEV2ZW50cykKLSAgICAgICAgICAgIDogbmV3IFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZEZpbHRlcih0aGlzLl9jYWxjdWxhdG9yLCB0aGlzLl9zaG93U2hvcnRF
dmVudHMpOwotICAgICAgICB0aGlzLl92aXNpYmxlUmVjb3Jkc0NvdW50ID0gMDsKLQotICAgICAg
ICB2YXIgc3RhY2sgPSBbe2NoaWxkcmVuOiB0aGlzLl9yb290UmVjb3JkKCkuY2hpbGRyZW4sIGlu
ZGV4OiAwLCBwYXJlbnRJc0NvbGxhcHNlZDogZmFsc2V9XTsKLSAgICAgICAgd2hpbGUgKHN0YWNr
Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0g
MV07Ci0gICAgICAgICAgICB2YXIgcmVjb3JkcyA9IGVudHJ5LmNoaWxkcmVuOwotICAgICAgICAg
ICAgaWYgKHJlY29yZHMgJiYgZW50cnkuaW5kZXggPCByZWNvcmRzLmxlbmd0aCkgewotICAgICAg
ICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tlbnRyeS5pbmRleF07Ci0gICAgICAgICAg
ICAgICAgICsrZW50cnkuaW5kZXg7Ci0KLSAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5hY2Nl
cHQocmVjb3JkKSkgewotICAgICAgICAgICAgICAgICAgICAgKyt0aGlzLl92aXNpYmxlUmVjb3Jk
c0NvdW50OwotICAgICAgICAgICAgICAgICAgICAgKytyZWNvcmQucGFyZW50Ll9pbnZpc2libGVD
aGlsZHJlbkNvdW50OwotICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbnRyeS5wYXJlbnRJc0Nv
bGxhcHNlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRzSW5XaW5kb3cucHVzaChy
ZWNvcmQpOwotICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgcmVjb3JkLl9p
bnZpc2libGVDaGlsZHJlbkNvdW50ID0gMDsKLQotICAgICAgICAgICAgICAgICBzdGFjay5wdXNo
KHtjaGlsZHJlbjogcmVjb3JkLmNoaWxkcmVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmRleDogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SXNDb2xsYXBz
ZWQ6IChlbnRyeS5wYXJlbnRJc0NvbGxhcHNlZCB8fCByZWNvcmQuY29sbGFwc2VkKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVjb3JkOiByZWNvcmQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd0xlbmd0aEJlZm9yZUNoaWxkcmVuVHJhdmVyc2FsOiBy
ZWNvcmRzSW5XaW5kb3cubGVuZ3RofSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHN0YWNrLnBvcCgpOwotICAgICAgICAgICAgICAgIGlmIChlbnRyeS5wYXJlbnRSZWNv
cmQpCi0gICAgICAgICAgICAgICAgICAgIGVudHJ5LnBhcmVudFJlY29yZC5fdmlzaWJsZUNoaWxk
cmVuQ291bnQgPSByZWNvcmRzSW5XaW5kb3cubGVuZ3RoIC0gZW50cnkud2luZG93TGVuZ3RoQmVm
b3JlQ2hpbGRyZW5UcmF2ZXJzYWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICByZXR1cm4gcmVjb3Jkc0luV2luZG93OwotICAgIH0sCi0KICAgICByZXZlYWxSZWNvcmRBdDog
ZnVuY3Rpb24odGltZSkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9zdGFydEF0WmVybykKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIGZpbHRlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVSZWNvcmRGaWx0ZXIodGhpcy5fY2FsY3VsYXRvciwgdGhpcy5fc2hvd1Nob3J0RXZl
bnRzKTsKKyAgICAgICAgdmFyIHJlY29yZHNJbldpbmRvdyA9IHRoaXMuX3ByZXNlbnRhdGlvbk1v
ZGVsLmZpbHRlcmVkUmVjb3JkcygpOwogICAgICAgICB2YXIgcmVjb3JkVG9SZXZlYWw7Ci0gICAg
ICAgIGZ1bmN0aW9uIHJlY29yZEZpbmRlcihyZWNvcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGlmIChmaWx0ZXIuYWNjZXB0KHJlY29yZCkgJiYgcmVjb3JkLmNvbnRhaW5zVGltZSh0aW1lKSkg
ewotICAgICAgICAgICAgICAgIHJlY29yZFRvUmV2ZWFsID0gcmVjb3JkOwotICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHNJbldp
bmRvdy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHJlY29yZHNJbldpbmRvd1tpXS5j
b250YWluc1RpbWUodGltZSkpIHsKKyAgICAgICAgICAgICAgICByZWNvcmRUb1JldmVhbCA9IHJl
Y29yZHNJbldpbmRvd1tpXTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5mb3JBbGxSZWNvcmRzKHRoaXMuX3Jvb3RSZWNvcmQoKS5jaGlsZHJl
biwgcmVjb3JkRmluZGVyKTsKIAogICAgICAgICAvLyBUaGUgcmVjb3JkIGVuZHMgYmVmb3JlIHRo
ZSB3aW5kb3cgbGVmdCBib3VuZCBzbyBzY3JvbGwgdG8gdGhlIHRvcC4KICAgICAgICAgaWYgKCFy
ZWNvcmRUb1JldmVhbCkgewpAQCAtNzA5LDE0ICs2MDYsMTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAvLyBFeHBhbmQgYWxsIGFuY2VzdG9ycy4K
ICAgICAgICAgZm9yICh2YXIgcGFyZW50ID0gcmVjb3JkVG9SZXZlYWwucGFyZW50OyBwYXJlbnQg
IT09IHRoaXMuX3Jvb3RSZWNvcmQoKTsgcGFyZW50ID0gcGFyZW50LnBhcmVudCkKICAgICAgICAg
ICAgIHBhcmVudC5jb2xsYXBzZWQgPSBmYWxzZTsKLSAgICAgICAgdmFyIHJlY29yZHNJbldpbmRv
dyA9IHRoaXMuX2ZpbHRlclJlY29yZHMoKTsKICAgICAgICAgdmFyIGluZGV4ID0gcmVjb3Jkc0lu
V2luZG93LmluZGV4T2YocmVjb3JkVG9SZXZlYWwpOwogICAgICAgICB0aGlzLl9jb250YWluZXJF
bGVtZW50LnNjcm9sbFRvcCA9IGluZGV4ICogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucm93
SGVpZ2h0OwogICAgIH0sCiAKICAgICBfcmVmcmVzaFJlY29yZHM6IGZ1bmN0aW9uKHVwZGF0ZUJv
dW5kYXJpZXMpCiAgICAgewotICAgICAgICB2YXIgcmVjb3Jkc0luV2luZG93ID0gdGhpcy5fZmls
dGVyUmVjb3JkcygpOworICAgICAgICB2YXIgcmVjb3Jkc0luV2luZG93ID0gdGhpcy5fcHJlc2Vu
dGF0aW9uTW9kZWwuZmlsdGVyZWRSZWNvcmRzKCk7CiAKICAgICAgICAgLy8gQ2FsY3VsYXRlIHRo
ZSB2aXNpYmxlIGFyZWEuCiAgICAgICAgIHRoaXMuX3Njcm9sbFRvcCA9IHRoaXMuX2NvbnRhaW5l
ckVsZW1lbnQuc2Nyb2xsVG9wOwpAQCAtNzUwLDcgKzY0Niw3IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciBpc0V2ZW4gPSAhKGkgJSAy
KTsKIAogICAgICAgICAgICAgaWYgKGkgPCBzdGFydEluZGV4KSB7Ci0gICAgICAgICAgICAgICAg
dmFyIGxhc3RDaGlsZEluZGV4ID0gaSArIHJlY29yZC5fdmlzaWJsZUNoaWxkcmVuQ291bnQ7Cisg
ICAgICAgICAgICAgICAgdmFyIGxhc3RDaGlsZEluZGV4ID0gaSArIHJlY29yZC52aXNpYmxlQ2hp
bGRyZW5Db3VudDsKICAgICAgICAgICAgICAgICBpZiAobGFzdENoaWxkSW5kZXggPj0gc3RhcnRJ
bmRleCAmJiBsYXN0Q2hpbGRJbmRleCA8IGVuZEluZGV4KSB7CiAgICAgICAgICAgICAgICAgICAg
IHZhciBleHBhbmRFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUV4cGFuZGFibGVF
bGVtZW50KHRoaXMuX2V4cGFuZEVsZW1lbnRzKTsKICAgICAgICAgICAgICAgICAgICAgZXhwYW5k
RWxlbWVudC5fdXBkYXRlKHJlY29yZCwgaSwgdGhpcy5fY2FsY3VsYXRvci5jb21wdXRlQmFyR3Jh
cGhXaW5kb3dQb3NpdGlvbihyZWNvcmQsIHdpZHRoIC0gdGhpcy5fZXhwYW5kT2Zmc2V0KSk7CkBA
IC03OTIsNiArNjg4LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAodXBkYXRlQm91bmRhcmllcykKICAgICAgICAgICAgIHRoaXMuX3RpbWVs
aW5lR3JpZC51cGRhdGVEaXZpZGVycyh0cnVlLCB0aGlzLl9jYWxjdWxhdG9yLCB0aGlzLnRpbWVs
aW5lUGFkZGluZ0xlZnQpOwogICAgICAgICB0aGlzLl9hZGp1c3RTY3JvbGxQb3NpdGlvbigocmVj
b3Jkc0luV2luZG93Lmxlbmd0aCArIDEpICogcm93SGVpZ2h0KTsKKworICAgICAgICByZXR1cm4g
cmVjb3Jkc0luV2luZG93Lmxlbmd0aDsKICAgICB9LAogCiAgICAgZ2V0IHRpbWVsaW5lUGFkZGlu
Z0xlZnQoKQpAQCAtMTE1OSwxMiArMTA1NywxMiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVFeHBh
bmRhYmxlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgX3VwZGF0ZTogZnVuY3Rpb24ocmVjb3Jk
LCBpbmRleCwgYmFyUG9zaXRpb24pCiAgICAgewogICAgICAgICBjb25zdCByb3dIZWlnaHQgPSBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5yb3dIZWlnaHQ7Ci0gICAgICAgIGlmIChyZWNvcmQu
X3Zpc2libGVDaGlsZHJlbkNvdW50IHx8IHJlY29yZC5faW52aXNpYmxlQ2hpbGRyZW5Db3VudCkg
eworICAgICAgICBpZiAocmVjb3JkLnZpc2libGVDaGlsZHJlbkNvdW50IHx8IHJlY29yZC5pbnZp
c2libGVDaGlsZHJlbkNvdW50KSB7CiAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnRv
cCA9IGluZGV4ICogcm93SGVpZ2h0ICsgInB4IjsKICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQu
c3R5bGUubGVmdCA9IGJhclBvc2l0aW9uLmxlZnQgKyAicHgiOwogICAgICAgICAgICAgdGhpcy5f
ZWxlbWVudC5zdHlsZS53aWR0aCA9IE1hdGgubWF4KDEyLCBiYXJQb3NpdGlvbi53aWR0aCArIDI1
KSArICJweCI7CiAgICAgICAgICAgICBpZiAoIXJlY29yZC5jb2xsYXBzZWQpIHsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCA9IChyZWNvcmQuX3Zpc2libGVDaGls
ZHJlbkNvdW50ICsgMSkgKiByb3dIZWlnaHQgKyAicHgiOworICAgICAgICAgICAgICAgIHRoaXMu
X2VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKHJlY29yZC52aXNpYmxlQ2hpbGRyZW5Db3VudCArIDEp
ICogcm93SGVpZ2h0ICsgInB4IjsKICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFkZFN0
eWxlQ2xhc3MoInRpbWVsaW5lLWV4cGFuZGFibGUtZXhwYW5kZWQiKTsKICAgICAgICAgICAgICAg
ICB0aGlzLl9lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInRpbWVsaW5lLWV4cGFuZGFibGUtY29s
bGFwc2VkIik7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTE4NSw1OCArMTA4MywzOCBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVFeHBhbmRhYmxlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UaW1lbGluZUNhbGN1
bGF0b3J9IGNhbGN1bGF0b3IKLSAqIEBwYXJhbSB7Ym9vbGVhbn0gc2hvd1Nob3J0RXZlbnRzCisg
KiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRmls
dGVyfQogICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRGaWx0ZXIgPSBmdW5jdGlvbihj
YWxjdWxhdG9yLCBzaG93U2hvcnRFdmVudHMpCitXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29y
eUZpbHRlciA9IGZ1bmN0aW9uKCkKIHsKLSAgICB0aGlzLl9jYWxjdWxhdG9yID0gY2FsY3VsYXRv
cjsKLSAgICB0aGlzLl9zaG93U2hvcnRFdmVudHMgPSBzaG93U2hvcnRFdmVudHM7CiB9CiAKLVdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZEZpbHRlci5wcm90b3R5cGUgPSB7CitXZWJJbnNwZWN0
b3IuVGltZWxpbmVDYXRlZ29yeUZpbHRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNvcmR9IHJl
Y29yZAogICAgICAqLwogICAgIGFjY2VwdDogZnVuY3Rpb24ocmVjb3JkKQogICAgIHsKLSAgICAg
ICAgaWYgKHJlY29yZC5jYXRlZ29yeS5oaWRkZW4pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIGlmICghdGhpcy5fc2hvd1Nob3J0RXZlbnRzICYmICFyZWNvcmQuaXNMb25nKCkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHZhciBwZXJjZW50YWdlcyA9IHRo
aXMuX2NhbGN1bGF0b3IuY29tcHV0ZUJhckdyYXBoUGVyY2VudGFnZXMocmVjb3JkKTsKLSAgICAg
ICAgcmV0dXJuIHBlcmNlbnRhZ2VzLnN0YXJ0IDw9IDEwMCAmJiBwZXJjZW50YWdlcy5lbmRXaXRo
Q2hpbGRyZW4gPj0gMDsKKyAgICAgICAgcmV0dXJuICFyZWNvcmQuY2F0ZWdvcnkuaGlkZGVuOwog
ICAgIH0KIH0KIAogLyoqCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsfSBw
YW5lbAogICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsfSBtb2RlbAotICogQHBhcmFtIHtPYmplY3R9IHJvb3RSZWNvcmQKLSAq
IEBwYXJhbSB7Ym9vbGVhbn0gc2hvd1Nob3J0RXZlbnRzCisgKiBAaW1wbGVtZW50cyB7V2ViSW5z
cGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRmlsdGVyfQogICovCi1XZWJJbnNwZWN0
b3IuVGltZWxpbmVTdGFydEF0WmVyb1JlY29yZEZpbHRlciA9IGZ1bmN0aW9uKG1vZGVsLCByb290
UmVjb3JkLCBzaG93U2hvcnRFdmVudHMpCitXZWJJbnNwZWN0b3IuVGltZWxpbmVJc0xvbmdGaWx0
ZXIgPSBmdW5jdGlvbihwYW5lbCkKIHsKLSAgICB0aGlzLl93aW5kb3dJbmRleExlZnQgPSBtb2Rl
bC53aW5kb3dJbmRleExlZnQ7Ci0gICAgdGhpcy5fd2luZG93SW5kZXhSaWdodCA9IG1vZGVsLndp
bmRvd0luZGV4UmlnaHQ7Ci0gICAgdGhpcy5fcm9vdFJlY29yZCA9IHJvb3RSZWNvcmQ7Ci0gICAg
dGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleCA9IDA7Ci0gICAgdGhpcy5fc2hvd1Nob3J0RXZlbnRz
ID0gc2hvd1Nob3J0RXZlbnRzOworICAgIHRoaXMuX3BhbmVsID0gcGFuZWw7CiB9CiAKLVdlYklu
c3BlY3Rvci5UaW1lbGluZVN0YXJ0QXRaZXJvUmVjb3JkRmlsdGVyLnByb3RvdHlwZSA9IHsKK1dl
Ykluc3BlY3Rvci5UaW1lbGluZUlzTG9uZ0ZpbHRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5SZWNv
cmR9IHJlY29yZAogICAgICAqLwogICAgIGFjY2VwdDogZnVuY3Rpb24ocmVjb3JkKQogICAgIHsK
LSAgICAgICAgaWYgKHJlY29yZC5jYXRlZ29yeS5oaWRkZW4pCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGlmIChyZWNvcmQucGFyZW50ID09PSB0aGlzLl9yb290UmVjb3JkKQot
ICAgICAgICAgICAgKyt0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4OwotICAgICAgICBpZiAoIXRo
aXMuX3Nob3dTaG9ydEV2ZW50cyAmJiAhcmVjb3JkLmlzTG9uZygpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gdGhpcy5fdG9wTGV2ZWxSZWNvcmRJbmRleCA+IHRo
aXMuX3dpbmRvd0luZGV4TGVmdCAmJgotICAgICAgICAgICAgKHR5cGVvZiB0aGlzLl93aW5kb3dJ
bmRleFJpZ2h0ICE9PSAibnVtYmVyIiB8fCB0aGlzLl90b3BMZXZlbFJlY29yZEluZGV4IDw9IHRo
aXMuX3dpbmRvd0luZGV4UmlnaHQpOworICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWwuX3Nob3dT
aG9ydEV2ZW50cyB8fCByZWNvcmQuaXNMb25nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRh
dGlvbk1vZGVsLmpzCmluZGV4IGNhOTdkNDIxNDAwMzUxZjE2ODdlNjA4ODBkZmY5MjBhZWI0Nzcx
ZDIuLjdjODQ3Y2U5ODM5NmViNmM0YWZhYTgzODgzOTQ0MjY4M2M1MDdiN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTM5LDYgKzM5LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fYWRkQ2F0ZWdvcnko
bmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5KCJzY3JpcHRpbmciLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNjcmlwdGluZyIpLCAicmdiKDE1NywyMzEsMTE5KSIpKTsKICAgICB0aGlz
Ll9hZGRDYXRlZ29yeShuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmlu
ZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVuZGVyaW5nIiksICJyZ2IoMTY0LDYwLDI1NSki
KSk7CiAgICAgdGhpcy5fbGlua2lmaWVyID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuY3JlYXRlTGlua2lmaWVyKCk7CisgICAgdGhpcy5fZ2x1ZVJlY29yZHMgPSBmYWxz
ZTsKKyAgICB0aGlzLl9maWx0ZXJzID0gW107CiAgICAgdGhpcy5yZXNldCgpOwogfQogCkBAIC01
MCwxNyArNTIsMTIgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRXZl
bnRzID0gewogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuc2hvcnRSZWNv
cmRUaHJlc2hvbGQgPSAwLjAxNTsKIAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlID0gewotICAgIGNyZWF0ZUZvcm1hdHRlZFJlY29yZDogZnVuY3Rpb24o
cmVjb3JkLCBwYXJlbnRSZWNvcmQsIHNjcmlwdERldGFpbHMpCi0gICAgewotICAgICAgICByZXR1
cm4gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZCh0aGlz
LCByZWNvcmQsIHBhcmVudFJlY29yZCwgc2NyaXB0RGV0YWlscyk7Ci0gICAgfSwKLQotICAgIF9j
cmVhdGVSb290UmVjb3JkOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5GaWx0ZXJ9IGZpbHRlcgorICAgICAq
LworICAgIGFkZEZpbHRlcjogZnVuY3Rpb24oZmlsdGVyKQogICAgIHsKLSAgICAgICAgdmFyIHJv
b3RSZWNvcmQgPSB7fTsKLSAgICAgICAgcm9vdFJlY29yZC5jaGlsZHJlbiA9IFtdOwotICAgICAg
ICByb290UmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0cyA9IHt9OwotICAgICAgICByZXR1cm4gcm9vdFJl
Y29yZDsKKyAgICAgICAgdGhpcy5fZmlsdGVycy5wdXNoKGZpbHRlcik7CiAgICAgfSwKIAogICAg
IHJvb3RSZWNvcmQ6IGZ1bmN0aW9uKCkKQEAgLTcxLDE3ICs2OCwxMDQgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIHJlc2V0OiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9saW5raWZpZXIucmVzZXQoKTsKLSAgICAgICAg
dGhpcy5fcm9vdFJlY29yZCA9IHRoaXMuX2NyZWF0ZVJvb3RSZWNvcmQoKTsKKyAgICAgICAgdGhp
cy5fcm9vdFJlY29yZCA9IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5SZWNvcmQodGhpcywgeyB0eXBlOiBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRU
eXBlLlJvb3QgfSwgbnVsbCwgbnVsbCk7CiAgICAgICAgIHRoaXMuX3NlbmRSZXF1ZXN0UmVjb3Jk
cyA9IHt9OwogICAgICAgICB0aGlzLl9zY2hlZHVsZWRSZXNvdXJjZVJlcXVlc3RzID0ge307CiAg
ICAgICAgIHRoaXMuX3RpbWVyUmVjb3JkcyA9IHt9OwogICAgICAgICB0aGlzLl9yZXF1ZXN0QW5p
bWF0aW9uRnJhbWVSZWNvcmRzID0ge307Ci0KKyAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRp
bWUgPSAtMTsKKyAgICAgICAgdGhpcy5fbWF4aW11bVJlY29yZFRpbWUgPSAtMTsKICAgICAgICAg
dGhpcy5fcmVzZXRXaW5kb3coKTsKICAgICB9LAogCi0gICAgZmluZFBhcmVudFJlY29yZDogZnVu
Y3Rpb24ocmVjb3JkKQorICAgIG1pbmltdW1SZWNvcmRUaW1lOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fbWluaW11bVJlY29yZFRpbWU7CisgICAgfSwKKworICAgIG1h
eGltdW1SZWNvcmRUaW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
bWF4aW11bVJlY29yZFRpbWU7CisgICAgfSwKKworICAgIGFkZFJlY29yZDogZnVuY3Rpb24ocmVj
b3JkLCBwYXJlbnRSZWNvcmQpCisgICAgeworICAgICAgICB2YXIgY29ubmVjdGVkVG9PbGRSZWNv
cmQgPSBmYWxzZTsKKyAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTW9kZWwuUmVjb3JkVHlwZTsKKworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29y
ZFR5cGVzLk1hcmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJr
TG9hZCkKKyAgICAgICAgICAgIHBhcmVudFJlY29yZCA9IG51bGw7IC8vIE5vIGJhciBlbnRyeSBm
b3IgbG9hZCBldmVudHMuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFyIG5ld1BhcmVu
dFJlY29yZCA9IHRoaXMuX2ZpbmRQYXJlbnRSZWNvcmQocmVjb3JkKTsKKyAgICAgICAgICAgIGlm
IChuZXdQYXJlbnRSZWNvcmQpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnRSZWNvcmQgPSBuZXdQ
YXJlbnRSZWNvcmQ7CisgICAgICAgICAgICAgICAgY29ubmVjdGVkVG9PbGRSZWNvcmQgPSB0cnVl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdmFyIGNoaWxkcmVuID0gcmVj
b3JkLmNoaWxkcmVuOworICAgICAgICB2YXIgc2NyaXB0RGV0YWlsczsKKyAgICAgICAgaWYgKHJl
Y29yZC5kYXRhICYmIHJlY29yZC5kYXRhWyJzY3JpcHROYW1lIl0pIHsKKyAgICAgICAgICAgIHNj
cmlwdERldGFpbHMgPSB7CisgICAgICAgICAgICAgICAgc2NyaXB0TmFtZTogcmVjb3JkLmRhdGFb
InNjcmlwdE5hbWUiXSwKKyAgICAgICAgICAgICAgICBzY3JpcHRMaW5lOiByZWNvcmQuZGF0YVsi
c2NyaXB0TGluZSJdCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKChy
ZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuVGltZXJGaXJlIHx8IHJlY29yZC50eXBlID09PSBy
ZWNvcmRUeXBlcy5GaXJlQW5pbWF0aW9uRnJhbWUpICYmIGNoaWxkcmVuICYmIGNoaWxkcmVuLmxl
bmd0aCkgeworICAgICAgICAgICAgdmFyIGNoaWxkUmVjb3JkID0gY2hpbGRyZW5bMF07CisgICAg
ICAgICAgICBpZiAoY2hpbGRSZWNvcmQudHlwZSA9PT0gcmVjb3JkVHlwZXMuRnVuY3Rpb25DYWxs
KSB7CisgICAgICAgICAgICAgICAgc2NyaXB0RGV0YWlscyA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgc2NyaXB0TmFtZTogY2hpbGRSZWNvcmQuZGF0YVsic2NyaXB0TmFtZSJdLAorICAgICAgICAg
ICAgICAgICAgICBzY3JpcHRMaW5lOiBjaGlsZFJlY29yZC5kYXRhWyJzY3JpcHRMaW5lIl0KKyAg
ICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gY2hpbGRSZWNvcmQu
Y2hpbGRyZW4uY29uY2F0KGNoaWxkcmVuLnNsaWNlKDEpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBmb3JtYXR0ZWRSZWNvcmQgPSBuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkKHRoaXMsIHJlY29yZCwgcGFyZW50UmVjb3Jk
LCBzY3JpcHREZXRhaWxzKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlQm91bmRhcmllcyhmb3JtYXR0
ZWRSZWNvcmQpOyAgICAKKworICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVz
Lk1hcmtET01Db250ZW50IHx8IHJlY29yZC50eXBlID09PSByZWNvcmRUeXBlcy5NYXJrTG9hZCkK
KyAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZWNvcmQ7CisKKyAgICAgICAgZm9ybWF0dGVk
UmVjb3JkLmNvbGxhcHNlZCA9IChwYXJlbnRSZWNvcmQgPT09IHRoaXMuX3Jvb3RSZWNvcmQpOwor
CisgICAgICAgIHZhciBjaGlsZHJlbkNvdW50ID0gY2hpbGRyZW4gPyBjaGlsZHJlbi5sZW5ndGgg
OiAwOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuQ291bnQ7ICsraSkKKyAg
ICAgICAgICAgIHRoaXMuYWRkUmVjb3JkKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRSZWNvcmQpOwor
CisgICAgICAgIGZvcm1hdHRlZFJlY29yZC5jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHModGhpcy5f
Y2F0ZWdvcmllcyk7CisKKyAgICAgICAgaWYgKGNvbm5lY3RlZFRvT2xkUmVjb3JkKSB7CisgICAg
ICAgICAgICByZWNvcmQgPSBmb3JtYXR0ZWRSZWNvcmQ7CisgICAgICAgICAgICBkbyB7CisgICAg
ICAgICAgICAgICAgdmFyIHBhcmVudCA9IHJlY29yZC5wYXJlbnQ7CisgICAgICAgICAgICAgICAg
aWYgKHBhcmVudC5sYXN0Q2hpbGRFbmRUaW1lIDwgcmVjb3JkLmxhc3RDaGlsZEVuZFRpbWUpCisg
ICAgICAgICAgICAgICAgICAgIHBhcmVudC5sYXN0Q2hpbGRFbmRUaW1lID0gcmVjb3JkLmxhc3RD
aGlsZEVuZFRpbWU7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gZm9ybWF0
dGVkUmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0cykKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50LmFn
Z3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV0gKz0gZm9ybWF0dGVkUmVjb3JkLmFnZ3JlZ2F0ZWRTdGF0
c1tjYXRlZ29yeV07CisgICAgICAgICAgICAgICAgcmVjb3JkID0gcGFyZW50OworICAgICAgICAg
ICAgfSB3aGlsZSAocmVjb3JkLnBhcmVudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBpZiAocGFyZW50UmVjb3JkICE9PSB0aGlzLl9yb290UmVjb3JkKQorICAgICAgICAgICAgICAg
IHBhcmVudFJlY29yZC5zZWxmVGltZSAtPSBmb3JtYXR0ZWRSZWNvcmQuZW5kVGltZSAtIGZvcm1h
dHRlZFJlY29yZC5zdGFydFRpbWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvcm1hdHRl
ZFJlY29yZDsKKyAgICB9LAorCisgICAgX3VwZGF0ZUJvdW5kYXJpZXM6IGZ1bmN0aW9uKGZvcm1h
dHRlZFJlY29yZCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9
PT0gLTEgfHwgZm9ybWF0dGVkUmVjb3JkLnN0YXJ0VGltZSA8IHRoaXMuX21pbmltdW1SZWNvcmRU
aW1lKQorICAgICAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRpbWUgPSBmb3JtYXR0ZWRSZWNv
cmQuc3RhcnRUaW1lOworICAgICAgICBpZiAodGhpcy5fbWF4aW11bVJlY29yZFRpbWUgPT09IC0x
IHx8IGZvcm1hdHRlZFJlY29yZC5lbmRUaW1lID4gdGhpcy5fbWF4aW11bVJlY29yZFRpbWUpCisg
ICAgICAgICAgICB0aGlzLl9tYXhpbXVtUmVjb3JkVGltZSA9IGZvcm1hdHRlZFJlY29yZC5lbmRU
aW1lOworICAgIH0sCisKKyAgICBfZmluZFBhcmVudFJlY29yZDogZnVuY3Rpb24ocmVjb3JkKQor
ICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9nbHVlUmVjb3JkcykKKyAgICAgICAgICAgIHJldHVy
biBudWxsOwogICAgICAgICB2YXIgcmVjb3JkVHlwZXMgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5SZWNvcmRUeXBlOwogICAgICAgICB2YXIgcGFyZW50UmVjb3JkOwogICAgICAgICBpZiAo
cmVjb3JkLnR5cGUgPT09IHJlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIHx8CkBA
IC0xMDUsNiArMTg5LDExIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy53aW5kb3dJbmRleFJpZ2h0ID0gbnVsbDsKICAg
ICB9LAogCisgICAgc2V0R2x1ZVJlY29yZHM6IGZ1bmN0aW9uKGdsdWUpCisgICAgeworICAgICAg
ICB0aGlzLl9nbHVlUmVjb3JkcyA9IGdsdWU7CisgICAgfSwKKwogICAgIGdldCBjYXRlZ29yaWVz
KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzOwpAQCAtMTI5LDE0ICsy
MTgsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5XaW5kb3dDaGFuZ2VkKTsKICAgICB9LAog
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlZnQKLSAgICAgKiBAcGFyYW0gez9u
dW1iZXJ9IHJpZ2h0Ci0gICAgICovCi0gICAgc2V0V2luZG93SW5kaWNlczogZnVuY3Rpb24obGVm
dCwgcmlnaHQpCisgICAgZmlyZVdpbmRvd0NoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMud2luZG93SW5kZXhMZWZ0ID0gbGVmdDsKLSAgICAgICAgdGhpcy53aW5kb3dJbmRl
eFJpZ2h0ID0gcmlnaHQ7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5XaW5kb3dDaGFuZ2Vk
KTsKICAgICB9LAogCkBAIC0xNTcsNiArMjQwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGNhdGVnb3JpZXMg
PSB0aGlzLl9jYXRlZ29yaWVzOwogCiAgICAgICAgICAgICB2YXIgcmVjb3JkU3R5bGVzID0ge307
CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUm9vdF0gPSB7IHRpdGxlOiAi
I3Jvb3QiLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGluZyJdIH07CiAgICAgICAgICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuRXZlbnREaXNwYXRjaF0gPSB7IHRpdGxlOiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OwogICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkxheW91dF0gPSB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxheW91dCIpLCBjYXRlZ29yeTogY2F0ZWdvcmll
c1sicmVuZGVyaW5nIl0gfTsKICAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5S
ZWNhbGN1bGF0ZVN0eWxlc10gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY2Fs
Y3VsYXRlIFN0eWxlIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJyZW5kZXJpbmciXSB9OwpAQCAt
MTg0LDYgKzI2OCw1NCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTdHlsZXNBcnJheSA9IHJlY29y
ZFN0eWxlczsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkU3R5bGVzQXJy
YXk7CisgICAgfSwKKworICAgIGZpbHRlcmVkUmVjb3JkczogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gZmlsdGVyKHJlY29yZCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9maWx0ZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCF0aGlzLl9maWx0ZXJzW2ldLmFjY2VwdChyZWNvcmQpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyUmVjb3JkcyhmaWx0
ZXIuYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIF9maWx0ZXJSZWNvcmRzOiBmdW5jdGlvbihm
aWx0ZXIpCisgICAgeworICAgICAgICB2YXIgcmVjb3Jkc0luV2luZG93ID0gW107CisKKyAgICAg
ICAgdmFyIHN0YWNrID0gW3tjaGlsZHJlbjogdGhpcy5fcm9vdFJlY29yZC5jaGlsZHJlbiwgaW5k
ZXg6IDAsIHBhcmVudElzQ29sbGFwc2VkOiBmYWxzZX1dOworICAgICAgICB3aGlsZSAoc3RhY2su
bGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgZW50cnkgPSBzdGFja1tzdGFjay5sZW5ndGggLSAx
XTsKKyAgICAgICAgICAgIHZhciByZWNvcmRzID0gZW50cnkuY2hpbGRyZW47CisgICAgICAgICAg
ICBpZiAocmVjb3JkcyAmJiBlbnRyeS5pbmRleCA8IHJlY29yZHMubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2VudHJ5LmluZGV4XTsKKyAgICAgICAgICAg
ICAgICAgKytlbnRyeS5pbmRleDsKKworICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKHJlY29y
ZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICsrcmVjb3JkLnBhcmVudC5faW52aXNpYmxlQ2hp
bGRyZW5Db3VudDsKKyAgICAgICAgICAgICAgICAgICAgIGlmICghZW50cnkucGFyZW50SXNDb2xs
YXBzZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3Jkc0luV2luZG93LnB1c2gocmVj
b3JkKTsKKyAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIHJlY29yZC5faW52
aXNpYmxlQ2hpbGRyZW5Db3VudCA9IDA7CisKKyAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh7
Y2hpbGRyZW46IHJlY29yZC5jaGlsZHJlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW5kZXg6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElzQ29sbGFwc2Vk
OiAoZW50cnkucGFyZW50SXNDb2xsYXBzZWQgfHwgcmVjb3JkLmNvbGxhcHNlZCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFJlY29yZDogcmVjb3JkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3aW5kb3dMZW5ndGhCZWZvcmVDaGlsZHJlblRyYXZlcnNhbDogcmVj
b3Jkc0luV2luZG93Lmxlbmd0aH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkucGFyZW50UmVjb3Jk
KQorICAgICAgICAgICAgICAgICAgICBlbnRyeS5wYXJlbnRSZWNvcmQuX3Zpc2libGVDaGlsZHJl
bkNvdW50ID0gcmVjb3Jkc0luV2luZG93Lmxlbmd0aCAtIGVudHJ5LndpbmRvd0xlbmd0aEJlZm9y
ZUNoaWxkcmVuVHJhdmVyc2FsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIHJlY29yZHNJbldpbmRvdzsKICAgICB9CiB9CiAKQEAgLTMwMCw2ICs0MzIsMTYgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuOwogICAgIH0sCiAKKyAgICBnZXQgdmlz
aWJsZUNoaWxkcmVuQ291bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVD
aGlsZHJlbkNvdW50IHx8IDA7CisgICAgfSwKKworICAgIGdldCBpbnZpc2libGVDaGlsZHJlbkNv
dW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnZpc2libGVDaGlsZHJlbkNvdW50
IHx8IDA7CisgICAgfSwKKwogICAgIGNvbnRhaW5zVGltZTogZnVuY3Rpb24odGltZSkKICAgICB7
CiAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0VGltZSA8PSB0aW1lICYmIHRpbWUgPD0gdGhpcy5l
bmRUaW1lOwpAQCAtNTc0LDMgKzcxNiwxNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5Qb3B1cENvbnRlbnRIZWxwZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9hcHBlbmRFbGVtZW50Um93KHRpdGxlLCBmcmFtZXNUYWJsZSwgInRpbWVsaW5lLXN0YWNrdHJh
Y2UtdGl0bGUiKTsKICAgICB9CiB9CisKKy8qKgorICogQGludGVyZmFjZQorICovCitXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5GaWx0ZXIgPSBmdW5jdGlvbigpCit7Cit9
CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkZpbHRlci5wcm90b3R5
cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5SZWNvcmR9IHJlY29yZAorICAgICAqLworICAgIGFjY2VwdDogZnVuY3Rp
b24ocmVjb3JkKSB7IHJldHVybiBmYWxzZTsgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdjYTBkY2MyMmI0M2EzZGUz
N2Q3ZDY5OGZlODdlNjQ1MzA5NjgxZmEuLjcxZDA5MjBhYzI2NDc0YjJiMzMzMWIyZWYyMjg5ZTRm
OWNiODdiYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMi0yOCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBm
aWx0ZXJpbmcgb2YgdGhlIHRpbWVsaW5lIHJlY29yZHMgaW50byB0aGUgcHJlc2VudGF0aW9uIG1v
ZGVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3
ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQ6CisK
IDIwMTItMDItMjggIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAK
ICAgICAgICAgUmViYXNlbGluZSBHdGsgcmVzdWx0cyBhZnRlciByMTA5MDk3LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3RhYmlsaXR5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1l
bnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggMTQ3Zjc2YzM1OWNmZTU5N2RlNTA0OGE3
YmQzNzI2ZWUwN2I1NjRmZC4uYmU5OGMzNTUzNDY4NTgwNWRkNzViMGFiOWFhOTBjNDk5ODU1YjNj
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVu
dW0tc3RhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBA
QCBDaGVjayB0byBzZWUgdGhhdCBUaW1lbGluZUFnZW50IHJlY29yZCB0eXBlcyBhcmUgc3RhYmxl
LgogQXBwbGljYXRpb25zIG91dHNpZGUgb2YgV2ViS2l0IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5
IG9mIHRoZSBtYXBwaW5nIG9mIHRoZXNlIHR5cGVzIHRvIHRoZXNlIHNwZWNpZmljIHZhbHVlcy4K
IAogeworICAgIFJvb3QgOiAiUm9vdCIKICAgICBFdmVudERpc3BhdGNoIDogIkV2ZW50RGlzcGF0
Y2giCiAgICAgTGF5b3V0IDogIkxheW91dCIKICAgICBSZWNhbGN1bGF0ZVN0eWxlcyA6ICJSZWNh
bGN1bGF0ZVN0eWxlcyIK
</data>
<flag name="review"
          id="131876"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>