<?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>137675</bug_id>
          
          <creation_ts>2014-10-13 15:07:45 -0700</creation_ts>
          <short_desc>New perf dashboard should have an ability to search commits by a keyword</short_desc>
          <delta_ts>2016-02-16 13:53:26 -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>Perf Dashboard</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>kling</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041373</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-13 15:07:45 -0700</bug_when>
    <thetext>It would be useful to be able to find commits by author&apos;s name or email and also by a subversion revision or git/mercurial hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041386</commentid>
    <comment_count>1</comment_count>
      <attachid>239752</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-13 15:38:45 -0700</bug_when>
    <thetext>Created attachment 239752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041435</commentid>
    <comment_count>2</comment_count>
      <attachid>239768</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-13 18:01:24 -0700</bug_when>
    <thetext>Created attachment 239768
Minor fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041722</commentid>
    <comment_count>3</comment_count>
      <attachid>239768</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-14 16:34:12 -0700</bug_when>
    <thetext>Comment on attachment 239768
Minor fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041723</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-14 16:46:54 -0700</bug_when>
    <thetext>Committed r174711: &lt;http://trac.webkit.org/changeset/174711&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239752</attachid>
            <date>2014-10-13 15:38:45 -0700</date>
            <delta_ts>2014-10-13 18:01:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137675-20141013153925.patch</filename>
            <type>text/plain</type>
            <size>29462</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0NjU5KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDYzIEBACisyMDE0LTEwLTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE5ldyBwZXJmIGRhc2hib2FyZCBzaG91bGQgaGF2ZSBhbiBhYmlsaXR5IHRvIHNl
YXJjaCBjb21taXRzIGJ5IGEga2V5d29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM3Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgL2FwaS9jb21taXRzLyBub3cgYWNjZXB0cyBxdWVyeSBwYXJhbWV0
ZXJzIHRvIHNlYXJjaCBhIGNvbW1pdCBieSBhIGtleXdvcmQuIEl0cyBvdXRwdXQgZm9ybWF0IGNo
YW5nZWQgdG8KKyAgICAgICAgaW5jbHVkZSAiYXV0aG9yRW1haWwiIGFuZCAiYXV0aG9yTmFtZSIg
ZGlyZWN0bHkgYXMgY29sdW1ucyBpbnN0ZWFkIG9mIGluY2x1ZGluZyBhbiAiYXV0aG9yIiBvYmpl
Y3QuCisgICAgICAgIFRoaXMgQVBJIGNoYW5nZSBhbGxvd3MgZmV0Y2hfY29tbWl0c19iZXR3ZWVu
IHRvIGdlbmVyYXRlIHJlc3VsdHMgd2l0aG91dCBwcm9jZXNzaW5nIFBvc3RncmVzIHF1ZXJ5IHJl
c3VsdHMuCisKKyAgICAgICAgSW4gdGhlIGZyb250IGVuZCBzaWRlLCB3ZSd2ZSBhZGRlZCBhIHNl
YXJjaCBwYW5lIGluIHBhbmUgY29udHJvbGxlciwgYW5kIHRoZSBpbnRlcmFjdGl2ZSBjaGFydCBj
b21wb25lbnQKKyAgICAgICAgbm93IGhhcyBhIGNvbmNlcHQgb2YgaGlnaGxpZ2h0ZWQgaXRlbXMg
d2hpY2ggaXMgdXNlZCB0byBpbmRpY2F0ZSBjb21taXRzIGZvdW5kIGJ5IHRoZSBzZWFyY2ggcGFu
ZS4KKworICAgICAgICAqIHB1YmxpYy9hcGkvY29tbWl0cy5waHA6CisgICAgICAgIChtYWluKTog
RXh0cmFjdCBxdWVyeSBwYXJhbWV0ZXJzOiBrZXl3b3JkLCBmcm9tLCBhbmQgdG8gYW5kIHVzZSB0
aGF0IHRvIGZldGNoIGFwcHJvcHJpYXRlIGNvbW1pdHMuCisgICAgICAgIChmZXRjaF9jb21taXRz
X2JldHdlZW4pOiBNb3ZlZCBzb21lIGNvZGUgZnJvbSBtYWluLiBOb3cgdGFrZXMgYSBzZWFyY2gg
dGVybSBhcyB0aGUgdGhpcmQgYXJndW1lbnQuCisgICAgICAgIFdlIGxvb2sgZm9yIGEgY29tbWl0
IGlmIGl0cyBhdXRob3IgbmFtZSBvciBlbWFpbCBjb250YWlucyB0aGUga2V5d29yZCBvciBpZiBp
dHMgcmV2aXNpb24gbWF0Y2hlcyB0aGUga2V5d29yZC4KKyAgICAgICAgKGZvcm1hdF9jb21taXQp
OiBSZW5hbWVkIGZyb20gZm9ybWF0X2NvbW1pdHMuIE5vdyBvbmx5IGZvcm1hdHMgb25lIGNvbW1p
dC4KKworICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2RiLnBocDoKKyAgICAgICAgKERhdGFiYXNl
OjpxdWVyeV9hbmRfZmV0Y2hfYWxsKTogTm93IHJldHVybnMgYXJyYXkoKSB3aGVuIHRoZSBxdWVy
eSByZXN1bHRzIGlzIGVtcHR5IChpbnN0ZWFkIG9mIGZhbHNlKS4KKworICAgICAgICAqIHB1Ymxp
Yy92Mi9hcHAuY3NzOiBSZW5hbWVkIC5jbG9zZS1idXR0b24gdG8gLmljb24tYnV0dG9uIHNpbmNl
IGl0J3MgdXNlZCBieSBhIHNlYXJjaCBidXR0b24gYXMgd2VsbC4KKworICAgICAgICAqIHB1Ymxp
Yy92Mi9hcHAuanM6CisgICAgICAgIChBcHAuUGFuZS5zZWFyY2hDb21taXQpOiBBZGRlZC4gRmlu
ZHMgdGhlIGNvbW1pdHMgYnkgYSBzZWFyY2ggdGVybSBhbmQgYXNzaWducyAnaGlnaGxpZ2h0ZWRJ
dGVtcycsCisgICAgICAgIHdoaWNoIGlzIGEgaGFzaCB0YWJsZSB0aGF0IGNvbnRhaW5zIGhpZ2hs
aWdodGVkIGl0ZW1zJyBtZWFzdXJlbWVudHMnIGlkcyBhcyBrZXlzLgorICAgICAgICAoQXBwLlBh
bmVDb250cm9sbGVyLmFjdGlvbnMudG9nZ2xlU2VhcmNoKTogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0
eSBvZiB0aGUgc2VhcmNoIHBhbmUuIEFsc28gc2V0cworICAgICAgICB0aGUgZGVmYXVsdCBjb21t
aXQgcmVwb3NpdG9yeS4KKyAgICAgICAgKEFwcC5QYW5lQ29udHJvbGxlci5hY3Rpb25zLnNlYXJj
aENvbW1pdCk6IERlbGVnYXRlcyB0aGUgd29yayB0byBBcHAuUGFuZS5zZWFyY2hDb21taXQuCisg
ICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBvbmVudC5fY29uc3RydWN0R3JhcGhJZlBv
c3NpYmxlKTogRml4ZWQgYSBidWcgdGhhdCB3ZSB3ZXJlbid0IHJlbW92aW5nIG9sZCB0aGlzLl9k
b3RzLgorICAgICAgICBBZGRlZCB0aGUgY29kZSB0byBpbml0aWFsaXplIHRoaXMuX2hpZ2hsaWdo
dHMuCisgICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBvbmVudC5fdXBkYXRlRGltZW5z
aW9uc0lmTmVlZGVkKTogVXBkYXRlcyBkaW1lbnNpb25zIG9mIGhpZ2hsaWdodCBsaW5lcy4KKyAg
ICAgICAgKEFwcC5JbnRlcmFjdGl2ZUNoYXJ0Q29tcG9uZW50Ll91cGRhdGVIaWdobGlnaHRQb3Np
dGlvbnMpOiBBZGRlZC4gRGl0dG8uCisgICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBv
bmVudC5faGlnaGxpZ2h0ZWRJdGVtc0NoYW5nZWQpOiBBZGRzIHZlcnRpY2FsIGxpbmVzIGZvciBo
aWdobGlnaHRlZCBpdGVtcyBhbmQgZGVsZXRlcworICAgICAgICB0aGUgZXhpc3RpbmcgbGluZXMg
Zm9yIHRoZSBvbGQgaGlnaGxpZ2h0ZWQgaXRlbXMuCisgICAgICAgIChBcHAuQ29tbWl0c1ZpZXdl
ckNvbXBvbmVudC5jb21taXRzQ2hhbmdlZCk6IFVwZGF0ZWQgdGhlIGNvZGUgcGVyIEpTT04gQVBJ
IGNoYW5nZSBtZW50aW9uZWQgYWJvdmUuCisgICAgICAgIEFsc28gZml4ZWQgYSBidWcgdGhhdCB0
aGUgY29kZSB0cmllcyB0byB1cGRhdGUgdGhlIGNvbW1pdHMgdmlld2VyIGV2ZW4gaWYgdGhlIHZp
ZXdlciBoYWQgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZC4gCisKKyAgICAgICAgKiBwdWJsaWMvdjIv
Y2hhcnQtcGFuZS5jc3M6IEFkZGVkIHN0eWxlIGZvciB0aGUgc2VhcmNoIHBhbmUgYW5kIHRoZSBz
ZWFyY2ggYnV0dG9uLgorCisgICAgICAgICogcHVibGljL3YyL2RhdGEuanM6IFR1cm5lZCBGZXRj
aENvbW1pdHNGb3JUaW1lUmFuZ2UgaW50byBhIGNsYXNzOiBDb21taXRMb2dzLgorICAgICAgICAo
Q29tbWl0TG9ncyk6IEFkZGVkLgorICAgICAgICAoQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5n
ZSk6IFJlbmFtZWQgZnJvbSBGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuIFRha2VzIGEgc2VhcmNo
IHRlcm0gYXMgYW4gYXJndW1lbnQuCisgICAgICAgIChDb21taXRMb2dzLl9jYWNoZWRDb21taXRz
QmV0d2Vlbik6IEV4dHJhY3RlZCBmcm9tIEZldGNoQ29tbWl0c0ZvclRpbWVSYW5nZS4KKyAgICAg
ICAgKENvbW1pdExvZ3MuX2NhY2hlQ29uc2VjdXRpdmVDb21taXRzKTogRGl0dG8uCisgICAgICAg
IChGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnkpOiBE
ZWxldGVkLgorICAgICAgICAoTWVhc3VyZW1lbnQucHJvdG90eXBlLmNvbW1pdFRpbWVGb3JSZXBv
c2l0b3J5KTogRXh0cmFjdGVkIGZyb20gZm9ybWF0dGVkUmV2aXNpb25zLgorICAgICAgICAoTWVh
c3VyZW1lbnQucHJvdG90eXBlLmZvcm1hdHRlZFJldmlzaW9ucyk6IFVzZXMgZm9ybWF0dGVkUmV2
aXNpb25zLiBEZWxldGVkIHRoZSB1bnVzZWQgY29kZSBmb3IgY29tbWl0VGltZS4KKworICAgICAg
ICAqIHB1YmxpYy92Mi9pbmRleC5odG1sOiBBZGRlZCB0aGUgc2VhcmNoIHBhbmUgYW5kIHRoZSBz
ZWFyY2ggYnV0dG9uLiBBbHNvIHJlbW92ZWQgdGhlIHVudXNlZCBhdHRyaWJ1dGUgYmluZGluZwor
ICAgICAgICBmb3Igc2hvd2luZ0RldGFpbHMgc2luY2UgdGhpcyBwcm9wZXJ0eSBpcyBubyBsb25n
ZXIgdXNlZC4KKworICAgICAgICAqIHB1YmxpYy92Mi9tYW5pZmVzdC5qczoKKyAgICAgICAgKEFw
cC5NYW5pZmVzdC5yZXBvc2l0b3JpZXMpOiBBZGRlZC4KKyAgICAgICAgKEFwcC5NYW5pZmVzdC5y
ZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzKTogRGl0dG8uIFVzZWQgYnkgQXBwLlBhbmVD
b250cm9sbGVyLmFjdGlvbnMudG9nZ2xlU2VhcmNoIHRvIGZpbmQKKyAgICAgICAgdGhlIGRlZmF1
bHQgcmVwb3NpdG9yeSB0byBzZWFyY2guCisgICAgICAgIChBcHAuTWFuaWZlc3QuX2ZldGNoZWRN
YW5pZmVzdCk6IFBvcHVsYXRlcyByZXBvc2l0b3JpZXMgYW5kIHJlcG9zaXRvcmllc1dpdGhSZXBv
cnRlZENvbW1pdHMuCisKIDIwMTQtMTAtMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE3NDU1NS4KSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2NvbW1pdHMucGhwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2NvbW1pdHMucGhwCShy
ZXZpc2lvbiAxNzQ2NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9j
b21taXRzLnBocAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsMTAgQEAgZnVuY3Rpb24gbWFp
bigkcGF0aHMpIHsKICAgICAkc2luZ2xlX2NvbW1pdCA9IE5VTEw7CiAgICAgJGNvbW1pdHMgPSBh
cnJheSgpOwogICAgIGlmICghJGZpbHRlcikgewotICAgICAgICAkY29tbWl0cyA9ICRkYi0+ZmV0
Y2hfdGFibGUoJ2NvbW1pdHMnLCAnY29tbWl0X3RpbWUnKTsKKyAgICAgICAgJGtleXdvcmQgPSBh
cnJheV9nZXQoJF9HRVQsICdrZXl3b3JkJyk7CisgICAgICAgICRmcm9tID0gYXJyYXlfZ2V0KCRf
R0VULCAnZnJvbScpOworICAgICAgICAkdG8gPSBhcnJheV9nZXQoJF9HRVQsICd0bycpOworICAg
ICAgICAkY29tbWl0cyA9IGZldGNoX2NvbW1pdHNfYmV0d2VlbigkZGIsICRyZXBvc2l0b3J5X2lk
LCAkZnJvbSwgJHRvLCAka2V5d29yZCk7CiAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdvbGRl
c3QnKSB7CiAgICAgICAgICRzaW5nbGVfY29tbWl0ID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdj
b21taXRzJywgJ2NvbW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCks
ICd0aW1lJyk7CiAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsYXRlc3QnKSB7CkBAIC0yOCwy
MCArMzEsMTYgQEAgZnVuY3Rpb24gbWFpbigkcGF0aHMpIHsKICAgICB9IGVsc2UgaWYgKCRmaWx0
ZXIgPT0gJ2xhc3QtcmVwb3J0ZWQnKSB7CiAgICAgICAgICRzaW5nbGVfY29tbWl0ID0gJGRiLT5z
ZWxlY3RfbGFzdF9yb3coJ2NvbW1pdHMnLCAnY29tbWl0JywgYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmVwb3J0ZWQnID0+IHRydWUpLCAndGltZScpOwogICAgIH0gZWxz
ZSBpZiAoY3R5cGVfYWxudW0oJGZpbHRlcikpIHsKLSAgICAgICAgJHNpbmdsZV9jb21taXQgPSBj
b21taXRfZnJvbV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkcmVwb3NpdG9yeV9uYW1l
LCAkZmlsdGVyKTsKKyAgICAgICAgJHNpbmdsZV9jb21taXQgPSBjb21taXRfZnJvbV9yZXZpc2lv
bigkZGIsICRyZXBvc2l0b3J5X2lkLCAkZmlsdGVyKTsKICAgICB9IGVsc2UgewogICAgICAgICAk
bWF0Y2hlcyA9IGFycmF5KCk7CiAgICAgICAgIGlmICghcHJlZ19tYXRjaCgnLyhbQS1aYS16MC05
XSspW1w6XC1dKFtBLVphLXowLTldKykvJywgJGZpbHRlciwgJG1hdGNoZXMpKQogICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duRmlsdGVyJywgYXJyYXkoJ3JlcG9zaXRvcnlOYW1l
JyA9PiAkcmVwb3NpdG9yeV9uYW1lLCAnZmlsdGVyJyA9PiAkZmlsdGVyKSk7CiAKLSAgICAgICAg
JGZpcnN0ID0gY29tbWl0X2Zyb21fcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJG1hdGNo
ZXNbMV0pWydjb21taXRfdGltZSddOwotICAgICAgICAkc2Vjb25kID0gY29tbWl0X2Zyb21fcmV2
aXNpb24oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJG1hdGNoZXNbMl0pWydjb21taXRfdGltZSddOwot
ICAgICAgICAkaW5fb3JkZXIgPSAkZmlyc3QgPCAkc2Vjb25kOwotCi0gICAgICAgICRjb21taXRz
ID0gZmV0Y2hfY29tbWl0c19iZXR3ZWVuKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRpbl9vcmRlciA/
ICRmaXJzdCA6ICRzZWNvbmQsICRpbl9vcmRlciA/ICRzZWNvbmQgOiAkZmlyc3QpOworICAgICAg
ICAkY29tbWl0cyA9IGZldGNoX2NvbW1pdHNfYmV0d2VlbigkZGIsICRyZXBvc2l0b3J5X2lkLCAk
bWF0Y2hlc1sxXSwgJG1hdGNoZXNbMl0pOwogICAgIH0KIAotICAgIGV4aXRfd2l0aF9zdWNjZXNz
KGFycmF5KCdjb21taXRzJyA9PiBmb3JtYXRfY29tbWl0cygkc2luZ2xlX2NvbW1pdCA/IGFycmF5
KCRzaW5nbGVfY29tbWl0KSA6ICRjb21taXRzKSkpOworICAgIGV4aXRfd2l0aF9zdWNjZXNzKGFy
cmF5KCdjb21taXRzJyA9PiAkc2luZ2xlX2NvbW1pdCA/IGZvcm1hdF9jb21taXQoJHNpbmdsZV9j
b21taXQpIDogJGNvbW1pdHMpKTsKIH0KIAogZnVuY3Rpb24gY29tbWl0X2Zyb21fcmV2aXNpb24o
JGRiLCAkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7CkBAIC01NSwyOCArNTQsNTEgQEAgZnVu
Y3Rpb24gY29tbWl0X2Zyb21fcmV2aXNpb24oJGRiLCAkcmVwbwogICAgIHJldHVybiAkcm93Owog
fQogCi1mdW5jdGlvbiBmZXRjaF9jb21taXRzX2JldHdlZW4oJGRiLCAkcmVwb3NpdG9yeV9pZCwg
JGZyb20sICR0bykgewotICAgICRjb21taXRzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdT
RUxFQ1QgKiBGUk9NIGNvbW1pdHMKLSAgICAgICAgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAk
MSBBTkQgY29tbWl0X3RpbWUgPj0gJDIgQU5EIGNvbW1pdF90aW1lIDw9ICQzIEFORCBjb21taXRf
cmVwb3J0ZWQgPSB0cnVlIE9SREVSIEJZIGNvbW1pdF90aW1lJywKLSAgICAgICAgYXJyYXkoJHJl
cG9zaXRvcnlfaWQsICRmcm9tLCAkdG8pKTsKLSAgICBpZiAoISRjb21taXRzKQotICAgICAgICBl
eGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvRmV0Y2hDb21taXRzJywgYXJyYXkoJ3JlcG9zaXRvcnkn
ID0+ICRyZXBvc2l0b3J5X2lkLCAnZnJvbScgPT4gJGZyb20sICd0bycgPT4gJHRvKSk7CitmdW5j
dGlvbiBmZXRjaF9jb21taXRzX2JldHdlZW4oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJGZpcnN0LCAk
c2Vjb25kLCAka2V5d29yZCA9IE5VTEwpIHsKKyAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29t
bWl0X2lkIGFzICJpZCIsCisgICAgICAgIGNvbW1pdF9yZXZpc2lvbiBhcyAicmV2aXNpb24iLAor
ICAgICAgICBjb21taXRfcGFyZW50IGFzICJwYXJlbnQiLAorICAgICAgICBjb21taXRfdGltZSBh
cyAidGltZSIsCisgICAgICAgIGNvbW1pdF9hdXRob3JfbmFtZSBhcyAiYXV0aG9yTmFtZSIsCisg
ICAgICAgIGNvbW1pdF9hdXRob3JfZW1haWwgYXMgImF1dGhvckVtYWlsIiwKKyAgICAgICAgY29t
bWl0X21lc3NhZ2UgYXMgIm1lc3NhZ2UiCisgICAgICAgIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmVwb3J0ZWQgPSB0cnVlJzsKKyAgICAkdmFs
dWVzID0gYXJyYXkoJHJlcG9zaXRvcnlfaWQpOworCisgICAgaWYgKCRmaXJzdCAmJiAkc2Vjb25k
KSB7CisgICAgICAgICRmaXJzdCA9IGNvbW1pdF9mcm9tX3JldmlzaW9uKCRkYiwgJHJlcG9zaXRv
cnlfaWQsICRmaXJzdClbJ2NvbW1pdF90aW1lJ107CisgICAgICAgICRzZWNvbmQgPSBjb21taXRf
ZnJvbV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkc2Vjb25kKVsnY29tbWl0X3RpbWUn
XTsKKyAgICAgICAgJGluX29yZGVyID0gJGZpcnN0IDwgJHNlY29uZDsKKyAgICAgICAgYXJyYXlf
cHVzaCgkdmFsdWVzLCAkaW5fb3JkZXIgPyAkZmlyc3QgOiAkc2Vjb25kKTsKKyAgICAgICAgJHN0
YXRlbWVudHMgLj0gJyBBTkQgY29tbWl0X3RpbWUgPj0gJCcgLiBjb3VudCgkdmFsdWVzKTsKKyAg
ICAgICAgYXJyYXlfcHVzaCgkdmFsdWVzLCAkaW5fb3JkZXIgPyAkc2Vjb25kIDogJGZpcnN0KTsK
KyAgICAgICAgJHN0YXRlbWVudHMgLj0gJyBBTkQgY29tbWl0X3RpbWUgPD0gJCcgLiBjb3VudCgk
dmFsdWVzKTsKKyAgICB9CisKKyAgICBpZiAoJGtleXdvcmQpIHsKKyAgICAgICAgYXJyYXlfcHVz
aCgkdmFsdWVzLCAnJScgLiBzdHJfcmVwbGFjZShhcnJheSgnXFwnLCAnXycsICdAJyksIGFycmF5
KCdcXFxcJywgJ1xcXycsICdcXCUnKSwgJGtleXdvcmQpIC4gJyUnKTsKKyAgICAgICAgJGluZGV4
ID0gJyQnIC4gY291bnQoJHZhbHVlcyk7CisgICAgICAgICRzdGF0ZW1lbnRzIC49ICIgQU5EIChj
b21taXRfYXV0aG9yX25hbWUgTElLRSAkaW5kZXggT1IgY29tbWl0X2F1dGhvcl9lbWFpbCBMSUtF
ICRpbmRleCI7CisgICAgICAgIGFycmF5X3B1c2goJHZhbHVlcywgbHRyaW0oJGtleXdvcmQsICdy
JykpOworICAgICAgICAkc3RhdGVtZW50cyAuPSAnIE9SIGNvbW1pdF9yZXZpc2lvbiA9ICQnIC4g
Y291bnQoJHZhbHVlcykgLiAnKSc7CisgICAgfQorCisgICAgJGNvbW1pdHMgPSAkZGItPnF1ZXJ5
X2FuZF9mZXRjaF9hbGwoJHN0YXRlbWVudHMgLiAnIE9SREVSIEJZIGNvbW1pdF90aW1lJywgJHZh
bHVlcyk7CisgICAgaWYgKCFpc19hcnJheSgkY29tbWl0cykpCisgICAgICAgIGV4aXRfd2l0aF9l
cnJvcignRmFpbGVkVG9GZXRjaENvbW1pdHMnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9z
aXRvcnlfaWQsICdmaXJzdCcgPT4gJGZpcnN0LCAnc2Vjb25kJyA9PiAkc2Vjb25kKSk7CiAgICAg
cmV0dXJuICRjb21taXRzOwogfQogCi1mdW5jdGlvbiBmb3JtYXRfY29tbWl0cygkY29tbWl0cykg
ewotICAgICRmb3JtYXR0ZWRfY29tbWl0cyA9IGFycmF5KCk7Ci0gICAgZm9yZWFjaCAoJGNvbW1p
dHMgYXMgJGNvbW1pdF9yb3cpIHsKLSAgICAgICAgYXJyYXlfcHVzaCgkZm9ybWF0dGVkX2NvbW1p
dHMsIGFycmF5KAotICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10s
Ci0gICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNpb24n
XSwKLSAgICAgICAgICAgICdwYXJlbnQnID0+ICRjb21taXRfcm93Wydjb21taXRfcGFyZW50J10s
Ci0gICAgICAgICAgICAndGltZScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10sCi0gICAg
ICAgICAgICAnYXV0aG9yJyA9PiBhcnJheSgnbmFtZScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9h
dXRob3JfbmFtZSddLCAnZW1haWwnID0+ICRjb21taXRfcm93Wydjb21taXRfYXV0aG9yX2VtYWls
J10pLAotICAgICAgICAgICAgJ21lc3NhZ2UnID0+ICRjb21taXRfcm93Wydjb21taXRfbWVzc2Fn
ZSddCi0gICAgICAgICkpOwotICAgIH0KLSAgICByZXR1cm4gJGZvcm1hdHRlZF9jb21taXRzOwor
ZnVuY3Rpb24gZm9ybWF0X2NvbW1pdCgkY29tbWl0X3JvdykgeworICAgIHJldHVybiBhcnJheShh
cnJheSgKKyAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCisgICAgICAg
ICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXZpc2lvbiddLAorICAgICAgICAn
cGFyZW50JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3BhcmVudCddLAorICAgICAgICAndGltZScg
PT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10sCisgICAgICAgICdhdXRob3JOYW1lJyA9PiAk
Y29tbWl0X3Jvd1snY29tbWl0X2F1dGhvcl9uYW1lJ10sCisgICAgICAgICdhdXRob3JFbWFpbCcg
PT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9hdXRob3JfZW1haWwnXSwKKyAgICAgICAgJ21lc3NhZ2Un
ID0+ICRjb21taXRfcm93Wydjb21taXRfbWVzc2FnZSddCisgICAgKSk7CiB9CiAKIG1haW4oYXJy
YXlfa2V5X2V4aXN0cygnUEFUSF9JTkZPJywgJF9TRVJWRVIpID8gZXhwbG9kZSgnLycsIHRyaW0o
JF9TRVJWRVJbJ1BBVEhfSU5GTyddLCAnLycpKSA6IGFycmF5KCkpOwpJbmRleDogV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2RiLnBocAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCShyZXZpc2lvbiAxNzQ2
NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODUsMTAgKzE4NSwxMiBAQCBjbGFzcyBEYXRhYmFzZQogCiAgICAg
ZnVuY3Rpb24gcXVlcnlfYW5kX2ZldGNoX2FsbCgkcXVlcnksICRwYXJhbXMgPSBhcnJheSgpKSB7
CiAgICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgJHJlc3VsdCA9IHBnX3F1ZXJ5
X3BhcmFtcygkdGhpcy0+Y29ubmVjdGlvbiwgJHF1ZXJ5LCAkcGFyYW1zKTsKICAgICAgICAgaWYg
KCEkcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgICAgIGlmIChwZ19udW1fcm93cygkcmVzdWx0KSA9PSAwKQorICAgICAgICAg
ICAgcmV0dXJuIGFycmF5KCk7CiAgICAgICAgIHJldHVybiBwZ19mZXRjaF9hbGwoJHJlc3VsdCk7
CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5j
c3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9hcHAu
Y3NzCShyZXZpc2lvbiAxNzQ2NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YyL2FwcC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTExNSwxNCArMTE1LDE0IEBAIGJvZHkgewog
fQogCiAKLS5jbG9zZS1idXR0b24geworLmljb24tYnV0dG9uIHsKICAgICB3aWR0aDogMXJlbTsK
ICAgICBoZWlnaHQ6IDFyZW07CiB9Ci0uY2xvc2UtYnV0dG9uIGcgeworLmljb24tYnV0dG9uIGcg
ewogICAgIHN0cm9rZTogI2NjYzsKIH0KLS5jbG9zZS1idXR0b246aG92ZXIgZyB7CisuaWNvbi1i
dXR0b246aG92ZXIgZyB7CiAgICAgc3Ryb2tlOiAjNjY2OwogfQogCkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5qcwkocmV2aXNpb24gMTc0NjU5KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9hcHAuanMJKHdvcmtpbmcgY29weSkKQEAg
LTI4Nyw5ICsyODcsMzYgQEAgQXBwLlBhbmUgPSBFbWJlci5PYmplY3QuZXh0ZW5kKHsKICAgICBt
ZXRyaWNJZDogbnVsbCwKICAgICBtZXRyaWM6IG51bGwsCiAgICAgc2VsZWN0ZWRJdGVtOiBudWxs
LAotICAgIGluaXQ6IGZ1bmN0aW9uICgpCi0gICAgewotICAgICAgICB0aGlzLl9zdXBlcigpOwor
ICAgIHNlYXJjaENvbW1pdDogZnVuY3Rpb24gKHJlcG9zaXRvcnksIGtleXdvcmQpIHsKKyAgICAg
ICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0
b3J5LmdldCgnaWQnKTsKKyAgICAgICAgQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5nZShyZXBv
c2l0b3J5TmFtZSwgbnVsbCwgbnVsbCwga2V5d29yZCkudGhlbihmdW5jdGlvbiAoY29tbWl0cykg
eworICAgICAgICAgICAgaWYgKHNlbGYuaXNEZXN0cm95ZWQgfHwgIXNlbGYuZ2V0KCdjaGFydERh
dGEnKSB8fCAhY29tbWl0cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgdmFyIGN1cnJlbnRSdW5zID0gc2VsZi5nZXQoJ2NoYXJ0RGF0YScpLmN1cnJlbnQudGlt
ZVNlcmllc0J5Q29tbWl0VGltZSgpLnNlcmllcygpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50
UnVucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIg
aGlnaGxpZ2h0ZWRJdGVtcyA9IHt9OworICAgICAgICAgICAgdmFyIGNvbW1pdEluZGV4ID0gMDsK
KyAgICAgICAgICAgIGZvciAodmFyIHJ1bkluZGV4ID0gMDsgcnVuSW5kZXggPCBjdXJyZW50UnVu
cy5sZW5ndGggJiYgY29tbWl0SW5kZXggPCBjb21taXRzLmxlbmd0aDsgcnVuSW5kZXgrKykgewor
ICAgICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVudCA9IGN1cnJlbnRSdW5zW3J1bkluZGV4XS5t
ZWFzdXJlbWVudDsKKyAgICAgICAgICAgICAgICB2YXIgY29tbWl0VGltZSA9IG1lYXN1cmVtZW50
LmNvbW1pdFRpbWVGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbW1pdFRpbWUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGlmIChjb21taXRzW2NvbW1pdEluZGV4XS50aW1lIDw9IGNvbW1pdFRpbWUpIHsK
KyAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJdGVtc1ttZWFzdXJlbWVudC5pZCgpXSA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1pdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKGNvbW1pdEluZGV4
IDwgY29tbWl0cy5sZW5ndGggJiYgY29tbWl0c1tjb21taXRJbmRleF0udGltZSA8PSBjb21taXRU
aW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNl
bGYuc2V0KCdoaWdobGlnaHRlZEl0ZW1zJywgaGlnaGxpZ2h0ZWRJdGVtcyk7CisgICAgICAgIH0s
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZXJyb3JzCisgICAg
ICAgICAgICB0aGlzLnNldCgnaGlnaGxpZ2h0ZWRJdGVtcycsIHt9KTsKKyAgICAgICAgfSk7CiAg
ICAgfSwKICAgICBfZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgdmFyIHBsYXRmb3JtSWQg
PSB0aGlzLmdldCgncGxhdGZvcm1JZCcpOwpAQCAtNjQ2LDYgKzY3MywxOSBAQCBBcHAuUGFuZUNv
bnRyb2xsZXIgPSBFbWJlci5PYmplY3RDb250cm9sCiAgICAgICAgIHsKICAgICAgICAgICAgIHRo
aXMucGFyZW50Q29udHJvbGxlci5yZW1vdmVQYW5lKHRoaXMuZ2V0KCdtb2RlbCcpKTsKICAgICAg
ICAgfSwKKyAgICAgICAgdG9nZ2xlU2VhcmNoOiBmdW5jdGlvbiAoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIUFwcC5NYW5pZmVzdC5yZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRz
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZhciBtb2RlbCA9IHRoaXMu
Z2V0KCdtb2RlbCcpOworICAgICAgICAgICAgaWYgKCFtb2RlbC5nZXQoJ2NvbW1pdFNlYXJjaFJl
cG9zaXRvcnknKSkKKyAgICAgICAgICAgICAgICBtb2RlbC5zZXQoJ2NvbW1pdFNlYXJjaFJlcG9z
aXRvcnknLCBBcHAuTWFuaWZlc3QucmVwb3NpdG9yaWVzV2l0aFJlcG9ydGVkQ29tbWl0c1swXSk7
CisgICAgICAgICAgICB0aGlzLnRvZ2dsZVByb3BlcnR5KCdzaG93aW5nU2VhcmNoUGFuZScpOwor
ICAgICAgICB9LAorICAgICAgICBzZWFyY2hDb21taXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHZhciBtb2RlbCA9IHRoaXMuZ2V0KCdtb2RlbCcpOworICAgICAgICAgICAgbW9kZWwuc2Vh
cmNoQ29tbWl0KG1vZGVsLmdldCgnY29tbWl0U2VhcmNoUmVwb3NpdG9yeScpLCBtb2RlbC5nZXQo
J2NvbW1pdFNlYXJjaEtleXdvcmQnKSk7ICAgICAgICAgICAgICAgIAorICAgICAgICB9LAogICAg
ICAgICB6b29tZWQ6IGZ1bmN0aW9uIChzZWxlY3Rpb24pCiAgICAgICAgIHsKICAgICAgICAgICAg
IHRoaXMuc2V0KCdtYWluUGxvdERvbWFpbicsIHNlbGVjdGlvbiA/IHNlbGVjdGlvbiA6IHRoaXMu
Z2V0KCdvdmVydmlld0RvbWFpbicpKTsKQEAgLTg0Myw3ICs4ODMsMTIgQEAgQXBwLkludGVyYWN0
aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5DbwogICAgICAgICBpZiAodGhpcy5fYXJlYXMpCiAg
ICAgICAgICAgICB0aGlzLl9hcmVhcy5mb3JFYWNoKGZ1bmN0aW9uIChhcmVhKSB7IGFyZWEucmVt
b3ZlKCk7IH0pOwogICAgICAgICB0aGlzLl9hcmVhcyA9IFtdOworICAgICAgICBpZiAodGhpcy5f
ZG90cykKKyAgICAgICAgICAgIHRoaXMuX2RvdHMuZm9yRWFjaChmdW5jdGlvbiAoZG90KSB7IGRv
dHMucmVtb3ZlKCk7IH0pOwogICAgICAgICB0aGlzLl9kb3RzID0gW107CisgICAgICAgIGlmICh0
aGlzLl9oaWdobGlnaHRzKQorICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0cy5mb3JFYWNoKGZ1
bmN0aW9uIChoaWdobGlnaHQpIHsgX2hpZ2hsaWdodHMucmVtb3ZlKCk7IH0pOworICAgICAgICB0
aGlzLl9oaWdobGlnaHRzID0gW107CiAKICAgICAgICAgdGhpcy5fY3VycmVudFRpbWVTZXJpZXMg
PSBjaGFydERhdGEuY3VycmVudC50aW1lU2VyaWVzQnlDb21taXRUaW1lKCk7CiAgICAgICAgIHRo
aXMuX2N1cnJlbnRUaW1lU2VyaWVzRGF0YSA9IHRoaXMuX2N1cnJlbnRUaW1lU2VyaWVzLnNlcmll
cygpOwpAQCAtMTAxOCw2ICsxMDYzLDcgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQg
PSBFbWJlci5DbwogICAgICAgICAgICAgICAgIC5hdHRyKCJjeCIsIGZ1bmN0aW9uKG1lYXN1cmVt
ZW50KSB7IHJldHVybiB4U2NhbGUobWVhc3VyZW1lbnQudGltZSk7IH0pCiAgICAgICAgICAgICAg
ICAgLmF0dHIoImN5IiwgZnVuY3Rpb24obWVhc3VyZW1lbnQpIHsgcmV0dXJuIHlTY2FsZShtZWFz
dXJlbWVudC52YWx1ZSk7IH0pOwogICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5fdXBkYXRlSGln
aGxpZ2h0UG9zaXRpb25zKCk7CiAKICAgICAgICAgaWYgKHRoaXMuX2JydXNoKSB7CiAgICAgICAg
ICAgICBpZiAoc2VsZWN0aW9uKQpAQCAtMTA0NSw2ICsxMDkxLDE5IEBAIEFwcC5JbnRlcmFjdGl2
ZUNoYXJ0Q29tcG9uZW50ID0gRW1iZXIuQ28KICAgICAgICAgICAgIC5zdHlsZSgiei1pbmRleCIs
ICIxMDAiKQogICAgICAgICAgICAgLnRleHQodGhpcy5feUF4aXNVbml0KTsKICAgICB9LAorICAg
IF91cGRhdGVIaWdobGlnaHRQb3NpdGlvbnM6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHhT
Y2FsZSA9IHRoaXMuX3g7CisgICAgICAgIHZhciB5U2NhbGUgPSB0aGlzLl95OworICAgICAgICB2
YXIgeTIgPSB0aGlzLl9tYXJnaW4udG9wICsgdGhpcy5fY29udGVudEhlaWdodDsKKyAgICAgICAg
dGhpcy5faGlnaGxpZ2h0cy5mb3JFYWNoKGZ1bmN0aW9uIChoaWdobGlnaHQpIHsKKyAgICAgICAg
ICAgIGhpZ2hsaWdodAorICAgICAgICAgICAgICAgIC5hdHRyKCJ5MSIsIDApCisgICAgICAgICAg
ICAgICAgLmF0dHIoInkyIiwgeTIpCisgICAgICAgICAgICAgICAgLmF0dHIoInkiLCBmdW5jdGlv
bihtZWFzdXJlbWVudCkgeyByZXR1cm4geVNjYWxlKG1lYXN1cmVtZW50LnZhbHVlKTsgfSkKKyAg
ICAgICAgICAgICAgICAuYXR0cigieDEiLCBmdW5jdGlvbihtZWFzdXJlbWVudCkgeyByZXR1cm4g
eFNjYWxlKG1lYXN1cmVtZW50LnRpbWUpOyB9KQorICAgICAgICAgICAgICAgIC5hdHRyKCJ4MiIs
IGZ1bmN0aW9uKG1lYXN1cmVtZW50KSB7IHJldHVybiB4U2NhbGUobWVhc3VyZW1lbnQudGltZSk7
IH0pOworICAgICAgICB9KTsKKyAgICB9LAogICAgIF9jb21wdXRlWEF4aXNEb21haW46IGZ1bmN0
aW9uICh0aW1lU2VyaWVzKQogICAgIHsKICAgICAgICAgdmFyIGV4dGVudCA9IGQzLmV4dGVudCh0
aW1lU2VyaWVzLCBmdW5jdGlvbihwb2ludCkgeyByZXR1cm4gcG9pbnQudGltZTsgfSk7CkBAIC0x
MzE3LDYgKzEzNzYsMjYgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5D
bwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfS5vYnNlcnZlcygnc2VsZWN0ZWRJdGVt
Jykub24oJ2luaXQnKSwKKyAgICBfaGlnaGxpZ2h0ZWRJdGVtc0NoYW5nZWQ6IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9tYXJnaW4pCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdmFyIGhpZ2hsaWdodGVkSXRlbXMgPSB0aGlzLmdldCgnaGlnaGxpZ2h0ZWRJdGVtcycp
OworCisgICAgICAgIHZhciBkYXRhID0gdGhpcy5fY3VycmVudFRpbWVTZXJpZXNEYXRhLmZpbHRl
cihmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaGlnaGxpZ2h0ZWRJdGVtc1tpdGVtLm1lYXN1cmVt
ZW50LmlkKCldOyB9KTsKKworICAgICAgICBpZiAodGhpcy5faGlnaGxpZ2h0cykKKyAgICAgICAg
ICAgIHRoaXMuX2hpZ2hsaWdodHMuZm9yRWFjaChmdW5jdGlvbiAoaGlnaGxpZ2h0KSB7IGhpZ2hs
aWdodC5yZW1vdmUoKTsgfSk7CisKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0cy5wdXNoKHRoaXMu
X2NsaXBwZWRDb250YWluZXIKKyAgICAgICAgICAgIC5zZWxlY3RBbGwoIi5oaWdobGlnaHQiKQor
ICAgICAgICAgICAgICAgIC5kYXRhKGRhdGEpCisgICAgICAgICAgICAuZW50ZXIoKS5hcHBlbmQo
ImxpbmUiKQorICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJoaWdobGlnaHQiKSk7CisK
KyAgICAgICAgdGhpcy5fdXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CisKKyAgICB9Lm9ic2Vy
dmVzKCdoaWdobGlnaHRlZEl0ZW1zJyksCiAgICAgX3VwZGF0ZUN1cnJlbnRJdGVtSW5kaWNhdG9y
czogZnVuY3Rpb24gKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY3VycmVudEl0ZW1MaW5l
KQpAQCAtMTQxMiwxOCArMTQ5MSwyMSBAQCBBcHAuQ29tbWl0c1ZpZXdlckNvbXBvbmVudCA9IEVt
YmVyLkNvbXBvCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNlbGYgPSB0aGlz
OwotICAgICAgICBGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UocmVwb3NpdG9yeSwgZnJvbSwgdG8p
LnRoZW4oZnVuY3Rpb24gKGNvbW1pdHMpIHsKKyAgICAgICAgQ29tbWl0TG9ncy5mZXRjaEZvclRp
bWVSYW5nZShyZXBvc2l0b3J5LmdldCgnaWQnKSwgZnJvbSwgdG8pLnRoZW4oZnVuY3Rpb24gKGNv
bW1pdHMpIHsKKyAgICAgICAgICAgIGlmIChzZWxmLmlzRGVzdHJveWVkKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIHNlbGYuc2V0KCdjb21taXRzJywgY29tbWl0cy5tYXAo
ZnVuY3Rpb24gKGNvbW1pdCkgewogICAgICAgICAgICAgICAgIHJldHVybiBFbWJlci5PYmplY3Qu
Y3JlYXRlKHsKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogcmVwb3NpdG9yeSwKICAg
ICAgICAgICAgICAgICAgICAgcmV2aXNpb246IGNvbW1pdC5yZXZpc2lvbiwKICAgICAgICAgICAg
ICAgICAgICAgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uKGNvbW1pdC5yZXZpc2lvbiks
Ci0gICAgICAgICAgICAgICAgICAgIGF1dGhvcjogY29tbWl0LmF1dGhvci5uYW1lIHx8IGNvbW1p
dC5hdXRob3IuZW1haWwsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcjogY29tbWl0LmF1dGhv
ck5hbWUgfHwgY29tbWl0LmF1dGhvckVtYWlsLAogICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
OiBjb21taXQubWVzc2FnZSA/IGNvbW1pdC5tZXNzYWdlLnN1YnN0cigwLCA3NSkgOiBudWxsLAog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSkpOwogICAgICAgICB9LCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBzZWxmLnNldCgnY29tbWl0cycsIFtdKTsKKyAgICAgICAgICAg
IGlmICghc2VsZi5pc0Rlc3Ryb3llZCkKKyAgICAgICAgICAgICAgICBzZWxmLnNldCgnY29tbWl0
cycsIFtdKTsKICAgICAgICAgfSkKICAgICB9Lm9ic2VydmVzKCdyZXBvc2l0b3J5Jykub2JzZXJ2
ZXMoJ3JldmlzaW9uSW5mbycpLm9uKCdpbml0JyksCiB9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjIvY2hhcnQtcGFuZS5jc3MKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9jaGFydC1wYW5lLmNzcwkocmV2aXNpb24gMTc0
NjU5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9jaGFydC1wYW5lLmNz
cwkod29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDcgQEAKICAgICBwYWRkaW5nOiAwOwogICAgIG1h
cmdpbi1ib3R0b206IDFyZW07CiAgICAgb3V0bGluZTogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CiB9CiAuY2hhcnQtcGFuZSBoZWFkZXIgewogICAgIGJhY2tncm91bmQ6ICNmZmY7CkBA
IC00OSw2ICs1MCw1MCBAQAogICAgIHRvcDogMC41NXJlbTsKIH0KIAorLmNoYXJ0LXBhbmUgYS5z
ZWFyY2gtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIHJpZ2h0OiAwLjU1cmVtOworICAgIHRvcDogMC41NXJlbTsKK30KKwor
LnNlYXJjaC1wYW5lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgcmlnaHQ6IDByZW07
CisgICAgdG9wOiAxLjdyZW07CisgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjsKKyAgICBwYWRk
aW5nOiAwOworICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsKKyAgICBkaXNwbGF5OiB0YWJsZTsK
KyAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKK30KKworLnNlYXJjaC1wYW5lLmhpZGRlbiB7CisgICAg
ZGlzcGxheTogbm9uZTsKK30KKworLnNlYXJjaC1wYW5lIGlucHV0IHsKKyAgICBkaXNwbGF5OiB0
YWJsZS1jZWxsOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgb3V0bGluZTogbm9u
ZTsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNXJl
bTsKKyAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC41cmVtOworICAgIHBhZGRpbmc6
IDAuNXJlbTsKKyAgICBmb250LXNpemU6IDFyZW07CisgICAgbWFyZ2luOiAwOworfQorCisuc2Vh
cmNoLXBhbmUgLnJlcG9zaXRvcmllcyB7CisgICAgZGlzcGxheTogdGFibGUtY2VsbDsKKyAgICB2
ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgIHBhZGRpbmc6IDAgMC41cmVtOworfQorCisuc2Vh
cmNoLXBhbmUgaW5wdXQ6Zm9jdXMgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksIDI0
MiwgMjI4KTsKK30KKwogLmNoYXJ0LXBhbmUgLmJvZHkgewogICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKICAgICB3aWR0aDogMTAwJTsKQEAgLTIyMiw2ICsyNjcsMTMgQEAKICAgICBmaWxsOiAjZjkz
OwogfQogCisuY2hhcnQgLmhpZ2hsaWdodCB7CisgICAgc3Ryb2tlOiAjMzlmOworICAgIHN0cm9r
ZS1kYXNoYXJyYXk6IDQsIDQ7CisgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CisgICAgZmlsbDogbm9u
ZTsKK30KKwogLmNoYXJ0IC5leHRlbnQgewogICAgIHN0cm9rZTogIzljNjsKICAgICBzdHJva2Ut
d2lkdGg6IDFweDsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvZGF0
YS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2Rh
dGEuanMJKHJldmlzaW9uIDE3NDY1OSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjIvZGF0YS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMSwzMCBAQAogLy8gV2UgZG9u
J3QgdXNlIERTLk1vZGVsIGZvciB0aGVzZSBvYmplY3QgdHlwZXMgYmVjYXVzZSB3ZSBjYW4ndCBh
ZmZvcmQgdG8gcHJvY2VzcyBtaWxsaW9ucyBvZiB0aGVtLgogCi1mdW5jdGlvbiBGZXRjaENvbW1p
dHNGb3JUaW1lUmFuZ2UocmVwb3NpdG9yeSwgZnJvbSwgdG8pCi17Ci0gICAgdmFyIHVybCA9ICcu
Li9hcGkvY29tbWl0cy8nICsgcmVwb3NpdG9yeS5nZXQoJ2lkJykgKyAnLycgKyBmcm9tICsgJy0n
ICsgdG87Ci0KLSAgICB2YXIgY2FjaGVkQ29tbWl0cyA9IEZldGNoQ29tbWl0c0ZvclRpbWVSYW5n
ZS5fY2FjaGVkQ29tbWl0c0J5UmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKLSAgICBpZiAoIWNhY2hl
ZENvbW1pdHMpIHsKLSAgICAgICAgY2FjaGVkQ29tbWl0cyA9IHtjb21taXRzQnlSZXZpc2lvbjog
e30sIGNvbW1pdHNCeVRpbWU6IFtdfTsKLSAgICAgICAgRmV0Y2hDb21taXRzRm9yVGltZVJhbmdl
Ll9jYWNoZWRDb21taXRzQnlSZXBvc2l0b3J5W3JlcG9zaXRvcnldID0gY2FjaGVkQ29tbWl0czsK
K3ZhciBDb21taXRMb2dzID0geworICAgIF9jYWNoZWRDb21taXRzQnlSZXBvc2l0b3J5OiB7fQor
fTsKKworQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5nZSA9IGZ1bmN0aW9uIChyZXBvc2l0b3J5
LCBmcm9tLCB0bywga2V5d29yZCkKK3sKKyAgICB2YXIgcGFyYW1zID0gW107CisgICAgaWYgKGZy
b20gJiYgdG8pIHsKKyAgICAgICAgcGFyYW1zLnB1c2goWydmcm9tJywgZnJvbV0pOworICAgICAg
ICBwYXJhbXMucHVzaChbJ3RvJywgdG9dKTsKICAgICB9CisgICAgaWYgKGtleXdvcmQpCisgICAg
ICAgIHBhcmFtcy5wdXNoKFsna2V5d29yZCcsIGtleXdvcmRdKTsKIAotICAgIGlmIChjYWNoZWRD
b21taXRzKSB7Ci0gICAgICAgIHZhciBzdGFydENvbW1pdCA9IGNhY2hlZENvbW1pdHMuY29tbWl0
c0J5UmV2aXNpb25bZnJvbV07Ci0gICAgICAgIHZhciBlbmRDb21taXQgPSBjYWNoZWRDb21taXRz
LmNvbW1pdHNCeVJldmlzaW9uW3RvXTsKLSAgICAgICAgaWYgKHN0YXJ0Q29tbWl0ICYmIGVuZENv
bW1pdCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBFbWJlci5SU1ZQLlByb21pc2UoZnVuY3Rp
b24gKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlZENvbW1pdHMuY29t
bWl0c0J5VGltZS5zbGljZShzdGFydENvbW1pdC5pbmRleCwgZW5kQ29tbWl0LmluZGV4ICsgMSkp
IH0pOwotICAgICAgICB9CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHVzZSB0
aGUgY2FjaGUgaWYgYWxsIGNvbW1pdHMgaW4gdGhlIHJhbmdlIGhhdmUgYmVlbiBjYWNoZWQuCisg
ICAgdmFyIHVzZUNhY2hlID0gZnJvbSAmJiB0byAmJiAha2V5d29yZDsKKworICAgIHZhciB1cmwg
PSAnLi4vYXBpL2NvbW1pdHMvJyArIHJlcG9zaXRvcnkgKyAnLz8nICsgcGFyYW1zLm1hcChmdW5j
dGlvbiAoa2V5VmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXlW
YWx1ZVswXSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgIH0p
LmpvaW4oJyYnKTsKKworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICB2YXIgY2FjaGVkQ29t
bWl0c0ZvclJhbmdlID0gQ29tbWl0TG9ncy5fY2FjaGVkQ29tbWl0c0JldHdlZW4ocmVwb3NpdG9y
eSwgZnJvbSwgdG8pOworICAgICAgICBpZiAoY2FjaGVkQ29tbWl0c0ZvclJhbmdlKQorICAgICAg
ICAgICAgcmV0dXJuIG5ldyBFbWJlci5SU1ZQLlByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsg
cmVzb2x2ZShjYWNoZWRDb21taXRzRm9yUmFuZ2UpOyB9KTsKICAgICB9CiAKICAgICBjb25zb2xl
LmxvZygnRmVjdGhpbmcgJyArIHVybCk7CkBAIC0yOCwyNSArMzYsNTIgQEAgZnVuY3Rpb24gRmV0
Y2hDb21taXRzRm9yVGltZVJhbmdlKHJlcG9zaQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgZGF0YS5jb21taXRzLmZvckVhY2goZnVuY3Rpb24g
KGNvbW1pdCkgewotICAgICAgICAgICAgICAgIGlmIChjYWNoZWRDb21taXRzLmNvbW1pdHNCeVJl
dmlzaW9uW2NvbW1pdC5yZXZpc2lvbl0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICBjb21taXQudGltZSA9IG5ldyBEYXRlKGNvbW1pdC50aW1lLnJlcGxhY2Uo
JyAnLCAnVCcpKTsKLSAgICAgICAgICAgICAgICBjYWNoZWRDb21taXRzLmNvbW1pdHNCeVJldmlz
aW9uW2NvbW1pdC5yZXZpc2lvbl0gPSBjb21taXQ7Ci0gICAgICAgICAgICAgICAgY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlUaW1lLnB1c2goY29tbWl0KTsKLSAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdmFyIGZldGNoZWRDb21taXRzID0gZGF0YS5jb21taXRzOworICAgICAgICAgICAgZmV0
Y2hlZENvbW1pdHMuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0KSB7IGNvbW1pdC50aW1lID0gbmV3
IERhdGUoY29tbWl0LnRpbWUucmVwbGFjZSgnICcsICdUJykpOyB9KTsKIAotICAgICAgICAgICAg
Y2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1lLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJu
IGEudGltZSAtIGIudGltZTsgfSk7Ci0gICAgICAgICAgICBjYWNoZWRDb21taXRzLmNvbW1pdHNC
eVRpbWUuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0LCBpbmRleCkgeyBjb21taXQuaW5kZXggPSBp
bmRleDsgfSk7CisgICAgICAgICAgICBpZiAodXNlQ2FjaGUpCisgICAgICAgICAgICAgICAgQ29t
bWl0TG9ncy5fY2FjaGVDb25zZWN1dGl2ZUNvbW1pdHMocmVwb3NpdG9yeSwgZnJvbSwgdG8sIGZl
dGNoZWRDb21taXRzKTsKIAotICAgICAgICAgICAgcmVzb2x2ZShkYXRhLmNvbW1pdHMpOworICAg
ICAgICAgICAgcmVzb2x2ZShmZXRjaGVkQ29tbWl0cyk7CiAgICAgICAgIH0pLmZhaWwoZnVuY3Rp
b24gKHhociwgc3RhdHVzLCBlcnJvcikgewogICAgICAgICAgICAgcmVqZWN0KHhoci5zdGF0dXMg
KyAoZXJyb3IgPyAnLCAnICsgZXJyb3IgOiAnJykpOwogICAgICAgICB9KQogICAgIH0pOwogfQog
Ci1GZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnkgPSB7
fTsKK0NvbW1pdExvZ3MuX2NhY2hlZENvbW1pdHNCZXR3ZWVuID0gZnVuY3Rpb24gKHJlcG9zaXRv
cnksIGZyb20sIHRvKQoreworICAgIHZhciBjYWNoZWRDb21taXRzID0gdGhpcy5fY2FjaGVkQ29t
bWl0c0J5UmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKKyAgICBpZiAoIWNhY2hlZENvbW1pdHMpCisg
ICAgICAgIHJldHVybiBudWxsOworCisgICAgdmFyIHN0YXJ0Q29tbWl0ID0gY2FjaGVkQ29tbWl0
cy5jb21taXRzQnlSZXZpc2lvbltmcm9tXTsKKyAgICB2YXIgZW5kQ29tbWl0ID0gY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlSZXZpc2lvblt0b107CisgICAgaWYgKCFzdGFydENvbW1pdCB8fCAhZW5k
Q29tbWl0KQorICAgICAgICByZXR1cm4gbnVsbDsKKworICAgIHJldHVybiBjYWNoZWRDb21taXRz
LmNvbW1pdHNCeVRpbWUuc2xpY2Uoc3RhcnRDb21taXQuY2FjaGVJbmRleCwgZW5kQ29tbWl0LmNh
Y2hlSW5kZXggKyAxKTsKK30KKworQ29tbWl0TG9ncy5fY2FjaGVDb25zZWN1dGl2ZUNvbW1pdHMg
PSBmdW5jdGlvbiAocmVwb3NpdG9yeSwgZnJvbSwgdG8sIGNvbnNlY3V0aXZlQ29tbWl0cykKK3sK
KyAgICB2YXIgY2FjaGVkQ29tbWl0cyA9IHRoaXMuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnlb
cmVwb3NpdG9yeV07CisgICAgaWYgKCFjYWNoZWRDb21taXRzKSB7CisgICAgICAgIGNhY2hlZENv
bW1pdHMgPSB7Y29tbWl0c0J5UmV2aXNpb246IHt9LCBjb21taXRzQnlUaW1lOiBbXX07CisgICAg
ICAgIHRoaXMuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnlbcmVwb3NpdG9yeV0gPSBjYWNoZWRD
b21taXRzOworICAgIH0KKworICAgIGNvbnNlY3V0aXZlQ29tbWl0cy5mb3JFYWNoKGZ1bmN0aW9u
IChjb21taXQpIHsKKyAgICAgICAgaWYgKGNhY2hlZENvbW1pdHMuY29tbWl0c0J5UmV2aXNpb25b
Y29tbWl0LnJldmlzaW9uXSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlSZXZpc2lvbltjb21taXQucmV2aXNpb25dID0gY29tbWl0OworICAgICAg
ICBjYWNoZWRDb21taXRzLmNvbW1pdHNCeVRpbWUucHVzaChjb21taXQpOworICAgIH0pOworCisg
ICAgY2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1lLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0
dXJuIGEudGltZSAtIGIudGltZTsgfSk7CisgICAgY2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1l
LmZvckVhY2goZnVuY3Rpb24gKGNvbW1pdCwgaW5kZXgpIHsgY29tbWl0LmNhY2hlSW5kZXggPSBp
bmRleDsgfSk7Cit9CisKIAogZnVuY3Rpb24gTWVhc3VyZW1lbnQocmF3RGF0YSkKIHsKQEAgLTcw
LDYgKzEwNSwxNSBAQCBmdW5jdGlvbiBNZWFzdXJlbWVudChyYXdEYXRhKQogICAgIHRoaXMuX2Zv
cm1hdHRlZFJldmlzaW9ucyA9IHVuZGVmaW5lZDsKIH0KIAorTWVhc3VyZW1lbnQucHJvdG90eXBl
LmNvbW1pdFRpbWVGb3JSZXBvc2l0b3J5ID0gZnVuY3Rpb24gKHJlcG9zaXRvcnlOYW1lKQorewor
ICAgIHZhciByZXZpc2lvbnMgPSB0aGlzLl9yYXdbJ3JldmlzaW9ucyddOworICAgIHZhciByYXdE
YXRhID0gcmV2aXNpb25zW3JlcG9zaXRvcnlOYW1lXTsKKyAgICBpZiAoIXJhd0RhdGEpCisgICAg
ICAgIHJldHVybiBudWxsOworICAgIHJldHVybiBuZXcgRGF0ZShyYXdEYXRhWzFdKTsKK30KKwog
TWVhc3VyZW1lbnQucHJvdG90eXBlLmZvcm1hdHRlZFJldmlzaW9ucyA9IGZ1bmN0aW9uIChwcmV2
aW91c01lYXN1cmVtZW50KQogewogICAgIHZhciByZXZpc2lvbnMgPSB0aGlzLl9yYXdbJ3Jldmlz
aW9ucyddOwpAQCAtNzcsMTMgKzEyMSw4IEBAIE1lYXN1cmVtZW50LnByb3RvdHlwZS5mb3JtYXR0
ZWRSZXZpc2lvbnMKICAgICB2YXIgZm9ybWF0dGVkUmV2aXNpb25zID0ge307CiAgICAgZm9yICh2
YXIgcmVwb3NpdG9yeU5hbWUgaW4gcmV2aXNpb25zKSB7CiAgICAgICAgIHZhciBjdXJyZW50UmV2
aXNpb24gPSByZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdWzBdOwotICAgICAgICB2YXIgY29tbWl0
VGltZUluUE9TSVggPSByZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdWzFdOwotCiAgICAgICAgIHZh
ciBwcmV2aW91c1JldmlzaW9uID0gcHJldmlvdXNSZXZpc2lvbnMgPyBwcmV2aW91c1JldmlzaW9u
c1tyZXBvc2l0b3J5TmFtZV1bMF0gOiBudWxsOwotCiAgICAgICAgIHZhciBmb3JtYXR0dGVkUmV2
aXNpb24gPSB0aGlzLl9mb3JtYXRSZXZpc2lvblJhbmdlKHByZXZpb3VzUmV2aXNpb24sIGN1cnJl
bnRSZXZpc2lvbik7Ci0gICAgICAgIGlmIChjb21taXRUaW1lSW5QT1NJWCkKLSAgICAgICAgICAg
IGZvcm1hdHR0ZWRSZXZpc2lvblsnY29tbWl0VGltZSddID0gbmV3IERhdGUoY29tbWl0VGltZUlu
UE9TSVgpOwogICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdID0gZm9y
bWF0dHRlZFJldmlzaW9uOwogICAgIH0KIApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92Mi9pbmRleC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjIvaW5kZXguaHRtbAkocmV2aXNpb24gMTc0NjU5KQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzUsOSArMTM1LDEwIEBACiAgICAgICAgICAgICAgICAgICAgIHt7bWV0cmljLmxhYmVsfX0KICAg
ICAgICAgICAgICAgICAgICAgLSB7eyBwbGF0Zm9ybS5uYW1lfX08L2gyPgogICAgICAgICAgICAg
ICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iQ2xvc2UiIGNsYXNzPSJjbG9zZS1idXR0b24iIHt7
YWN0aW9uICJjbG9zZSJ9fT57e3BhcnRpYWwgImNsb3NlLWJ1dHRvbiJ9fTwvYT4KKyAgICAgICAg
ICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlNlYXJjaCIgY2xhc3M9InNlYXJjaC1idXR0
b24iIHt7YWN0aW9uICJ0b2dnbGVTZWFyY2gifX0+e3twYXJ0aWFsICJzZWFyY2gtYnV0dG9uIn19
PC9hPgogICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogCi0gICAgICAgICAgICAgICAgPGRpdiB7
e2JpbmQtYXR0ciBjbGFzcz0iOmJvZHkgc2hvd2luZ0RldGFpbHMifX0+CisgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYm9keSI+CiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN2
Zy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICB7eyNpZiBjaGFydERhdGF9fQogICAg
ICAgICAgICAgICAgICAgICAgICAge3tpbnRlcmFjdGl2ZS1jaGFydApAQCAtMTQ3LDYgKzE0OCw3
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEl0ZW09Y3VycmVudEl0ZW0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGltZT1zaGFyZWRUaW1lCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtPXNlbGVjdGVkSXRlbQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkSXRlbXM9aGlnaGxpZ2h0ZWRJdGVtcwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbj10aW1lUmFuZ2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaGFyZWRTZWxlY3Rpb249c2hhcmVkU2VsZWN0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZD0icmFuZ2VDaGFuZ2VkIgpA
QCAtMTc3LDYgKzE3OSwxNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAge3svaWZ9fQogICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KKworICAgICAg
ICAgICAgICAgIDxmb3JtIHt7YmluZC1hdHRyIGNsYXNzPSI6c2VhcmNoLXBhbmUgc2hvd2luZ1Nl
YXJjaFBhbmU6OmhpZGRlbiJ9fT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJl
cG9zaXRvcmllcyI+CisgICAgICAgICAgICAgICAgICAgICAgICB7e3ZpZXcgRW1iZXIuU2VsZWN0
IGNvbnRlbnQ9QXBwLk1hbmlmZXN0LnJlcG9zaXRvcmllc1dpdGhSZXBvcnRlZENvbW1pdHMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbFBhdGg9J2NvbnRlbnQuaWQnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uPWNvbW1pdFNlYXJjaFJlcG9zaXRv
cnl9fQorICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIHt7
aW5wdXQgYWN0aW9uPSJzZWFyY2hDb21taXQiIHBsYWNlaG9sZGVyPSJOYW1lIG9yIGVtYWlsIiB2
YWx1ZT1jb21taXRTZWFyY2hLZXl3b3JkfX0KKyAgICAgICAgICAgICAgICA8L2Zvcm0+CisKICAg
ICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAge3svZWFjaH19CiAgICAgPC9zY3JpcHQ+CkBA
IC0yNTgsNyArMjcwLDcgQEAKICAgICA8L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgdHlwZT0idGV4
dC94LWhhbmRsZWJhcnMiIGRhdGEtdGVtcGxhdGUtbmFtZT0iY2xvc2UtYnV0dG9uIj4KLSAgICAg
ICAgPHN2ZyBjbGFzcz0iY2xvc2UtYnV0dG9uIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgICAg
ICAgIDxzdmcgY2xhc3M9ImNsb3NlLWJ1dHRvbiBpY29uLWJ1dHRvbiIgdmlld0JveD0iMCAwIDEw
MCAxMDAiPgogICAgICAgICAgICAgPGcgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIxMCI+
CiAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDUiIGZpbGw9InRy
YW5zcGFyZW50Ii8+CiAgICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCwzMCA3MCw3
MCIgLz4KQEAgLTI2Nyw2ICsyNzksMTUgQEAKICAgICAgICAgPC9zdmc+CiAgICAgPC9zY3JpcHQ+
CiAKKyAgICA8c2NyaXB0IHR5cGU9InRleHQveC1oYW5kbGViYXJzIiBkYXRhLXRlbXBsYXRlLW5h
bWU9InNlYXJjaC1idXR0b24iPgorICAgICAgICA8c3ZnIGNsYXNzPSJzZWFyY2gtYnV0dG9uIGlj
b24tYnV0dG9uIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+CisgICAgICAgICAgICA8ZyBzdHJva2U9
ImJsYWNrIiBzdHJva2Utd2lkdGg9IjE1Ij4KKyAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSI2
MCIgY3k9IjQwIiByPSIzMCIgZmlsbD0idHJhbnNwYXJlbnQiLz4KKyAgICAgICAgICAgICAgICA8
bGluZSB4MT0iMTAiIHkxPSI5MCIgeDI9IjQwIiB5Mj0iNjAiLz4KKyAgICAgICAgICAgIDwvZz4K
KyAgICAgICAgPC9zdmc+CisgICAgPC9zY3JpcHQ+CisKICAgICA8c2NyaXB0IHR5cGU9InRleHQv
eC1oYW5kbGViYXJzIiBkYXRhLXRlbXBsYXRlLW5hbWU9InNwaW5uZXIiPgogICAgICAgICA8c3Zn
IGNsYXNzPSJzcGlubmVyIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+CiAgICAgICAgICAgICA8bGlu
ZSB4MT0iMTAiIHkxPSI1MCIgeDI9IjMwIiB5Mj0iNTAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13
aWR0aD0iMTAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgpJbmRleDogV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92Mi9tYW5pZmVzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL21hbmlmZXN0LmpzCShyZXZpc2lvbiAxNzQ2NTkpCisr
KyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL21hbmlmZXN0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDcsNiArMTQ3LDggQEAgQXBwLk1hbmlmZXN0ID0gRW1iZXIuQ29udHJvbGxl
ci5leHRlbmQoewogICAgIF9wbGF0Zm9ybUJ5SWQ6IHt9LAogICAgIF9tZXRyaWNCeUlkOiB7fSwK
ICAgICBfYnVpbGRlckJ5SWQ6IHt9LAorICAgIHJlcG9zaXRvcmllczogbnVsbCwKKyAgICByZXBv
c2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzOiBudWxsLAogICAgIF9yZXBvc2l0b3J5QnlJZDog
e30sCiAgICAgX2ZldGNoUHJvbWlzZTogbnVsbCwKICAgICBmZXRjaDogZnVuY3Rpb24gKCkKQEAg
LTE5MCw4ICsxOTIsMTIgQEAgQXBwLk1hbmlmZXN0ID0gRW1iZXIuQ29udHJvbGxlci5leHRlbmQo
ewogICAgICAgICAgICAgc2VsZi5fYnVpbGRlckJ5SWRbYnVpbGRlci5nZXQoJ2lkJyldID0gYnVp
bGRlcjsKICAgICAgICAgfSk7CiAKLSAgICAgICAgc3RvcmUuYWxsKCdyZXBvc2l0b3J5JykuZm9y
RWFjaChmdW5jdGlvbiAocmVwb3NpdG9yeSkgeworICAgICAgICB2YXIgcmVwb3NpdG9yaWVzID0g
c3RvcmUuYWxsKCdyZXBvc2l0b3J5Jyk7CisgICAgICAgIHJlcG9zaXRvcmllcy5mb3JFYWNoKGZ1
bmN0aW9uIChyZXBvc2l0b3J5KSB7CiAgICAgICAgICAgICBzZWxmLl9yZXBvc2l0b3J5QnlJZFty
ZXBvc2l0b3J5LmdldCgnaWQnKV0gPSByZXBvc2l0b3J5OwogICAgICAgICB9KTsKKyAgICAgICAg
dGhpcy5zZXQoJ3JlcG9zaXRvcmllcycsIHJlcG9zaXRvcmllcyk7CisgICAgICAgIHRoaXMuc2V0
KCdyZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzJywKKyAgICAgICAgICAgIHJlcG9zaXRv
cmllcy5maWx0ZXIoZnVuY3Rpb24gKHJlcG9zaXRvcnkpIHsgcmV0dXJuIHJlcG9zaXRvcnkuZ2V0
KCdoYXNSZXBvcnRlZENvbW1pdHMnKTsgfSkpOwogICAgIH0KIH0pLmNyZWF0ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239768</attachid>
            <date>2014-10-13 18:01:24 -0700</date>
            <delta_ts>2014-10-14 16:34:12 -0700</delta_ts>
            <desc>Minor fix</desc>
            <filename>bug-137675-20141013180204.patch</filename>
            <type>text/plain</type>
            <size>29568</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0NjU5KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDYzIEBACisyMDE0LTEwLTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE5ldyBwZXJmIGRhc2hib2FyZCBzaG91bGQgaGF2ZSBhbiBhYmlsaXR5IHRvIHNl
YXJjaCBjb21taXRzIGJ5IGEga2V5d29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM3Njc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgL2FwaS9jb21taXRzLyBub3cgYWNjZXB0cyBxdWVyeSBwYXJhbWV0
ZXJzIHRvIHNlYXJjaCBhIGNvbW1pdCBieSBhIGtleXdvcmQuIEl0cyBvdXRwdXQgZm9ybWF0IGNo
YW5nZWQgdG8KKyAgICAgICAgaW5jbHVkZSAiYXV0aG9yRW1haWwiIGFuZCAiYXV0aG9yTmFtZSIg
ZGlyZWN0bHkgYXMgY29sdW1ucyBpbnN0ZWFkIG9mIGluY2x1ZGluZyBhbiAiYXV0aG9yIiBvYmpl
Y3QuCisgICAgICAgIFRoaXMgQVBJIGNoYW5nZSBhbGxvd3MgZmV0Y2hfY29tbWl0c19iZXR3ZWVu
IHRvIGdlbmVyYXRlIHJlc3VsdHMgd2l0aG91dCBwcm9jZXNzaW5nIFBvc3RncmVzIHF1ZXJ5IHJl
c3VsdHMuCisKKyAgICAgICAgSW4gdGhlIGZyb250IGVuZCBzaWRlLCB3ZSd2ZSBhZGRlZCBhIHNl
YXJjaCBwYW5lIGluIHBhbmUgY29udHJvbGxlciwgYW5kIHRoZSBpbnRlcmFjdGl2ZSBjaGFydCBj
b21wb25lbnQKKyAgICAgICAgbm93IGhhcyBhIGNvbmNlcHQgb2YgaGlnaGxpZ2h0ZWQgaXRlbXMg
d2hpY2ggaXMgdXNlZCB0byBpbmRpY2F0ZSBjb21taXRzIGZvdW5kIGJ5IHRoZSBzZWFyY2ggcGFu
ZS4KKworICAgICAgICAqIHB1YmxpYy9hcGkvY29tbWl0cy5waHA6CisgICAgICAgIChtYWluKTog
RXh0cmFjdCBxdWVyeSBwYXJhbWV0ZXJzOiBrZXl3b3JkLCBmcm9tLCBhbmQgdG8gYW5kIHVzZSB0
aGF0IHRvIGZldGNoIGFwcHJvcHJpYXRlIGNvbW1pdHMuCisgICAgICAgIChmZXRjaF9jb21taXRz
X2JldHdlZW4pOiBNb3ZlZCBzb21lIGNvZGUgZnJvbSBtYWluLiBOb3cgdGFrZXMgYSBzZWFyY2gg
dGVybSBhcyB0aGUgdGhpcmQgYXJndW1lbnQuCisgICAgICAgIFdlIGxvb2sgZm9yIGEgY29tbWl0
IGlmIGl0cyBhdXRob3IgbmFtZSBvciBlbWFpbCBjb250YWlucyB0aGUga2V5d29yZCBvciBpZiBp
dHMgcmV2aXNpb24gbWF0Y2hlcyB0aGUga2V5d29yZC4KKyAgICAgICAgKGZvcm1hdF9jb21taXQp
OiBSZW5hbWVkIGZyb20gZm9ybWF0X2NvbW1pdHMuIE5vdyBvbmx5IGZvcm1hdHMgb25lIGNvbW1p
dC4KKworICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2RiLnBocDoKKyAgICAgICAgKERhdGFiYXNl
OjpxdWVyeV9hbmRfZmV0Y2hfYWxsKTogTm93IHJldHVybnMgYXJyYXkoKSB3aGVuIHRoZSBxdWVy
eSByZXN1bHRzIGlzIGVtcHR5IChpbnN0ZWFkIG9mIGZhbHNlKS4KKworICAgICAgICAqIHB1Ymxp
Yy92Mi9hcHAuY3NzOiBSZW5hbWVkIC5jbG9zZS1idXR0b24gdG8gLmljb24tYnV0dG9uIHNpbmNl
IGl0J3MgdXNlZCBieSBhIHNlYXJjaCBidXR0b24gYXMgd2VsbC4KKworICAgICAgICAqIHB1Ymxp
Yy92Mi9hcHAuanM6CisgICAgICAgIChBcHAuUGFuZS5zZWFyY2hDb21taXQpOiBBZGRlZC4gRmlu
ZHMgdGhlIGNvbW1pdHMgYnkgYSBzZWFyY2ggdGVybSBhbmQgYXNzaWducyAnaGlnaGxpZ2h0ZWRJ
dGVtcycsCisgICAgICAgIHdoaWNoIGlzIGEgaGFzaCB0YWJsZSB0aGF0IGNvbnRhaW5zIGhpZ2hs
aWdodGVkIGl0ZW1zJyBtZWFzdXJlbWVudHMnIGlkcyBhcyBrZXlzLgorICAgICAgICAoQXBwLlBh
bmVDb250cm9sbGVyLmFjdGlvbnMudG9nZ2xlU2VhcmNoKTogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0
eSBvZiB0aGUgc2VhcmNoIHBhbmUuIEFsc28gc2V0cworICAgICAgICB0aGUgZGVmYXVsdCBjb21t
aXQgcmVwb3NpdG9yeS4KKyAgICAgICAgKEFwcC5QYW5lQ29udHJvbGxlci5hY3Rpb25zLnNlYXJj
aENvbW1pdCk6IERlbGVnYXRlcyB0aGUgd29yayB0byBBcHAuUGFuZS5zZWFyY2hDb21taXQuCisg
ICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBvbmVudC5fY29uc3RydWN0R3JhcGhJZlBv
c3NpYmxlKTogRml4ZWQgYSBidWcgdGhhdCB3ZSB3ZXJlbid0IHJlbW92aW5nIG9sZCB0aGlzLl9k
b3RzLgorICAgICAgICBBZGRlZCB0aGUgY29kZSB0byBpbml0aWFsaXplIHRoaXMuX2hpZ2hsaWdo
dHMuCisgICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBvbmVudC5fdXBkYXRlRGltZW5z
aW9uc0lmTmVlZGVkKTogVXBkYXRlcyBkaW1lbnNpb25zIG9mIGhpZ2hsaWdodCBsaW5lcy4KKyAg
ICAgICAgKEFwcC5JbnRlcmFjdGl2ZUNoYXJ0Q29tcG9uZW50Ll91cGRhdGVIaWdobGlnaHRQb3Np
dGlvbnMpOiBBZGRlZC4gRGl0dG8uCisgICAgICAgIChBcHAuSW50ZXJhY3RpdmVDaGFydENvbXBv
bmVudC5faGlnaGxpZ2h0ZWRJdGVtc0NoYW5nZWQpOiBBZGRzIHZlcnRpY2FsIGxpbmVzIGZvciBo
aWdobGlnaHRlZCBpdGVtcyBhbmQgZGVsZXRlcworICAgICAgICB0aGUgZXhpc3RpbmcgbGluZXMg
Zm9yIHRoZSBvbGQgaGlnaGxpZ2h0ZWQgaXRlbXMuCisgICAgICAgIChBcHAuQ29tbWl0c1ZpZXdl
ckNvbXBvbmVudC5jb21taXRzQ2hhbmdlZCk6IFVwZGF0ZWQgdGhlIGNvZGUgcGVyIEpTT04gQVBJ
IGNoYW5nZSBtZW50aW9uZWQgYWJvdmUuCisgICAgICAgIEFsc28gZml4ZWQgYSBidWcgdGhhdCB0
aGUgY29kZSB0cmllcyB0byB1cGRhdGUgdGhlIGNvbW1pdHMgdmlld2VyIGV2ZW4gaWYgdGhlIHZp
ZXdlciBoYWQgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZC4gCisKKyAgICAgICAgKiBwdWJsaWMvdjIv
Y2hhcnQtcGFuZS5jc3M6IEFkZGVkIHN0eWxlIGZvciB0aGUgc2VhcmNoIHBhbmUgYW5kIHRoZSBz
ZWFyY2ggYnV0dG9uLgorCisgICAgICAgICogcHVibGljL3YyL2RhdGEuanM6IFR1cm5lZCBGZXRj
aENvbW1pdHNGb3JUaW1lUmFuZ2UgaW50byBhIGNsYXNzOiBDb21taXRMb2dzLgorICAgICAgICAo
Q29tbWl0TG9ncyk6IEFkZGVkLgorICAgICAgICAoQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5n
ZSk6IFJlbmFtZWQgZnJvbSBGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuIFRha2VzIGEgc2VhcmNo
IHRlcm0gYXMgYW4gYXJndW1lbnQuCisgICAgICAgIChDb21taXRMb2dzLl9jYWNoZWRDb21taXRz
QmV0d2Vlbik6IEV4dHJhY3RlZCBmcm9tIEZldGNoQ29tbWl0c0ZvclRpbWVSYW5nZS4KKyAgICAg
ICAgKENvbW1pdExvZ3MuX2NhY2hlQ29uc2VjdXRpdmVDb21taXRzKTogRGl0dG8uCisgICAgICAg
IChGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnkpOiBE
ZWxldGVkLgorICAgICAgICAoTWVhc3VyZW1lbnQucHJvdG90eXBlLmNvbW1pdFRpbWVGb3JSZXBv
c2l0b3J5KTogRXh0cmFjdGVkIGZyb20gZm9ybWF0dGVkUmV2aXNpb25zLgorICAgICAgICAoTWVh
c3VyZW1lbnQucHJvdG90eXBlLmZvcm1hdHRlZFJldmlzaW9ucyk6IFVzZXMgZm9ybWF0dGVkUmV2
aXNpb25zLiBEZWxldGVkIHRoZSB1bnVzZWQgY29kZSBmb3IgY29tbWl0VGltZS4KKworICAgICAg
ICAqIHB1YmxpYy92Mi9pbmRleC5odG1sOiBBZGRlZCB0aGUgc2VhcmNoIHBhbmUgYW5kIHRoZSBz
ZWFyY2ggYnV0dG9uLiBBbHNvIHJlbW92ZWQgdGhlIHVudXNlZCBhdHRyaWJ1dGUgYmluZGluZwor
ICAgICAgICBmb3Igc2hvd2luZ0RldGFpbHMgc2luY2UgdGhpcyBwcm9wZXJ0eSBpcyBubyBsb25n
ZXIgdXNlZC4KKworICAgICAgICAqIHB1YmxpYy92Mi9tYW5pZmVzdC5qczoKKyAgICAgICAgKEFw
cC5NYW5pZmVzdC5yZXBvc2l0b3JpZXMpOiBBZGRlZC4KKyAgICAgICAgKEFwcC5NYW5pZmVzdC5y
ZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzKTogRGl0dG8uIFVzZWQgYnkgQXBwLlBhbmVD
b250cm9sbGVyLmFjdGlvbnMudG9nZ2xlU2VhcmNoIHRvIGZpbmQKKyAgICAgICAgdGhlIGRlZmF1
bHQgcmVwb3NpdG9yeSB0byBzZWFyY2guCisgICAgICAgIChBcHAuTWFuaWZlc3QuX2ZldGNoZWRN
YW5pZmVzdCk6IFBvcHVsYXRlcyByZXBvc2l0b3JpZXMgYW5kIHJlcG9zaXRvcmllc1dpdGhSZXBv
cnRlZENvbW1pdHMuCisKIDIwMTQtMTAtMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE3NDU1NS4KSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2NvbW1pdHMucGhwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL2NvbW1pdHMucGhwCShy
ZXZpc2lvbiAxNzQ2NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9j
b21taXRzLnBocAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsMTAgQEAgZnVuY3Rpb24gbWFp
bigkcGF0aHMpIHsKICAgICAkc2luZ2xlX2NvbW1pdCA9IE5VTEw7CiAgICAgJGNvbW1pdHMgPSBh
cnJheSgpOwogICAgIGlmICghJGZpbHRlcikgewotICAgICAgICAkY29tbWl0cyA9ICRkYi0+ZmV0
Y2hfdGFibGUoJ2NvbW1pdHMnLCAnY29tbWl0X3RpbWUnKTsKKyAgICAgICAgJGtleXdvcmQgPSBh
cnJheV9nZXQoJF9HRVQsICdrZXl3b3JkJyk7CisgICAgICAgICRmcm9tID0gYXJyYXlfZ2V0KCRf
R0VULCAnZnJvbScpOworICAgICAgICAkdG8gPSBhcnJheV9nZXQoJF9HRVQsICd0bycpOworICAg
ICAgICAkY29tbWl0cyA9IGZldGNoX2NvbW1pdHNfYmV0d2VlbigkZGIsICRyZXBvc2l0b3J5X2lk
LCAkZnJvbSwgJHRvLCAka2V5d29yZCk7CiAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdvbGRl
c3QnKSB7CiAgICAgICAgICRzaW5nbGVfY29tbWl0ID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdj
b21taXRzJywgJ2NvbW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCks
ICd0aW1lJyk7CiAgICAgfSBlbHNlIGlmICgkZmlsdGVyID09ICdsYXRlc3QnKSB7CkBAIC0yOCwy
MCArMzEsMTYgQEAgZnVuY3Rpb24gbWFpbigkcGF0aHMpIHsKICAgICB9IGVsc2UgaWYgKCRmaWx0
ZXIgPT0gJ2xhc3QtcmVwb3J0ZWQnKSB7CiAgICAgICAgICRzaW5nbGVfY29tbWl0ID0gJGRiLT5z
ZWxlY3RfbGFzdF9yb3coJ2NvbW1pdHMnLCAnY29tbWl0JywgYXJyYXkoJ3JlcG9zaXRvcnknID0+
ICRyZXBvc2l0b3J5X2lkLCAncmVwb3J0ZWQnID0+IHRydWUpLCAndGltZScpOwogICAgIH0gZWxz
ZSBpZiAoY3R5cGVfYWxudW0oJGZpbHRlcikpIHsKLSAgICAgICAgJHNpbmdsZV9jb21taXQgPSBj
b21taXRfZnJvbV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkcmVwb3NpdG9yeV9uYW1l
LCAkZmlsdGVyKTsKKyAgICAgICAgJHNpbmdsZV9jb21taXQgPSBjb21taXRfZnJvbV9yZXZpc2lv
bigkZGIsICRyZXBvc2l0b3J5X2lkLCAkZmlsdGVyKTsKICAgICB9IGVsc2UgewogICAgICAgICAk
bWF0Y2hlcyA9IGFycmF5KCk7CiAgICAgICAgIGlmICghcHJlZ19tYXRjaCgnLyhbQS1aYS16MC05
XSspW1w6XC1dKFtBLVphLXowLTldKykvJywgJGZpbHRlciwgJG1hdGNoZXMpKQogICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdVbmtub3duRmlsdGVyJywgYXJyYXkoJ3JlcG9zaXRvcnlOYW1l
JyA9PiAkcmVwb3NpdG9yeV9uYW1lLCAnZmlsdGVyJyA9PiAkZmlsdGVyKSk7CiAKLSAgICAgICAg
JGZpcnN0ID0gY29tbWl0X2Zyb21fcmV2aXNpb24oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJG1hdGNo
ZXNbMV0pWydjb21taXRfdGltZSddOwotICAgICAgICAkc2Vjb25kID0gY29tbWl0X2Zyb21fcmV2
aXNpb24oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJG1hdGNoZXNbMl0pWydjb21taXRfdGltZSddOwot
ICAgICAgICAkaW5fb3JkZXIgPSAkZmlyc3QgPCAkc2Vjb25kOwotCi0gICAgICAgICRjb21taXRz
ID0gZmV0Y2hfY29tbWl0c19iZXR3ZWVuKCRkYiwgJHJlcG9zaXRvcnlfaWQsICRpbl9vcmRlciA/
ICRmaXJzdCA6ICRzZWNvbmQsICRpbl9vcmRlciA/ICRzZWNvbmQgOiAkZmlyc3QpOworICAgICAg
ICAkY29tbWl0cyA9IGZldGNoX2NvbW1pdHNfYmV0d2VlbigkZGIsICRyZXBvc2l0b3J5X2lkLCAk
bWF0Y2hlc1sxXSwgJG1hdGNoZXNbMl0pOwogICAgIH0KIAotICAgIGV4aXRfd2l0aF9zdWNjZXNz
KGFycmF5KCdjb21taXRzJyA9PiBmb3JtYXRfY29tbWl0cygkc2luZ2xlX2NvbW1pdCA/IGFycmF5
KCRzaW5nbGVfY29tbWl0KSA6ICRjb21taXRzKSkpOworICAgIGV4aXRfd2l0aF9zdWNjZXNzKGFy
cmF5KCdjb21taXRzJyA9PiAkc2luZ2xlX2NvbW1pdCA/IGZvcm1hdF9jb21taXQoJHNpbmdsZV9j
b21taXQpIDogJGNvbW1pdHMpKTsKIH0KIAogZnVuY3Rpb24gY29tbWl0X2Zyb21fcmV2aXNpb24o
JGRiLCAkcmVwb3NpdG9yeV9pZCwgJHJldmlzaW9uKSB7CkBAIC01NSwyOCArNTQsNTEgQEAgZnVu
Y3Rpb24gY29tbWl0X2Zyb21fcmV2aXNpb24oJGRiLCAkcmVwbwogICAgIHJldHVybiAkcm93Owog
fQogCi1mdW5jdGlvbiBmZXRjaF9jb21taXRzX2JldHdlZW4oJGRiLCAkcmVwb3NpdG9yeV9pZCwg
JGZyb20sICR0bykgewotICAgICRjb21taXRzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdT
RUxFQ1QgKiBGUk9NIGNvbW1pdHMKLSAgICAgICAgV0hFUkUgY29tbWl0X3JlcG9zaXRvcnkgPSAk
MSBBTkQgY29tbWl0X3RpbWUgPj0gJDIgQU5EIGNvbW1pdF90aW1lIDw9ICQzIEFORCBjb21taXRf
cmVwb3J0ZWQgPSB0cnVlIE9SREVSIEJZIGNvbW1pdF90aW1lJywKLSAgICAgICAgYXJyYXkoJHJl
cG9zaXRvcnlfaWQsICRmcm9tLCAkdG8pKTsKLSAgICBpZiAoISRjb21taXRzKQotICAgICAgICBl
eGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvRmV0Y2hDb21taXRzJywgYXJyYXkoJ3JlcG9zaXRvcnkn
ID0+ICRyZXBvc2l0b3J5X2lkLCAnZnJvbScgPT4gJGZyb20sICd0bycgPT4gJHRvKSk7CitmdW5j
dGlvbiBmZXRjaF9jb21taXRzX2JldHdlZW4oJGRiLCAkcmVwb3NpdG9yeV9pZCwgJGZpcnN0LCAk
c2Vjb25kLCAka2V5d29yZCA9IE5VTEwpIHsKKyAgICAkc3RhdGVtZW50cyA9ICdTRUxFQ1QgY29t
bWl0X2lkIGFzICJpZCIsCisgICAgICAgIGNvbW1pdF9yZXZpc2lvbiBhcyAicmV2aXNpb24iLAor
ICAgICAgICBjb21taXRfcGFyZW50IGFzICJwYXJlbnQiLAorICAgICAgICBjb21taXRfdGltZSBh
cyAidGltZSIsCisgICAgICAgIGNvbW1pdF9hdXRob3JfbmFtZSBhcyAiYXV0aG9yTmFtZSIsCisg
ICAgICAgIGNvbW1pdF9hdXRob3JfZW1haWwgYXMgImF1dGhvckVtYWlsIiwKKyAgICAgICAgY29t
bWl0X21lc3NhZ2UgYXMgIm1lc3NhZ2UiCisgICAgICAgIEZST00gY29tbWl0cyBXSEVSRSBjb21t
aXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRfcmVwb3J0ZWQgPSB0cnVlJzsKKyAgICAkdmFs
dWVzID0gYXJyYXkoJHJlcG9zaXRvcnlfaWQpOworCisgICAgaWYgKCRmaXJzdCAmJiAkc2Vjb25k
KSB7CisgICAgICAgICRmaXJzdCA9IGNvbW1pdF9mcm9tX3JldmlzaW9uKCRkYiwgJHJlcG9zaXRv
cnlfaWQsICRmaXJzdClbJ2NvbW1pdF90aW1lJ107CisgICAgICAgICRzZWNvbmQgPSBjb21taXRf
ZnJvbV9yZXZpc2lvbigkZGIsICRyZXBvc2l0b3J5X2lkLCAkc2Vjb25kKVsnY29tbWl0X3RpbWUn
XTsKKyAgICAgICAgJGluX29yZGVyID0gJGZpcnN0IDwgJHNlY29uZDsKKyAgICAgICAgYXJyYXlf
cHVzaCgkdmFsdWVzLCAkaW5fb3JkZXIgPyAkZmlyc3QgOiAkc2Vjb25kKTsKKyAgICAgICAgJHN0
YXRlbWVudHMgLj0gJyBBTkQgY29tbWl0X3RpbWUgPj0gJCcgLiBjb3VudCgkdmFsdWVzKTsKKyAg
ICAgICAgYXJyYXlfcHVzaCgkdmFsdWVzLCAkaW5fb3JkZXIgPyAkc2Vjb25kIDogJGZpcnN0KTsK
KyAgICAgICAgJHN0YXRlbWVudHMgLj0gJyBBTkQgY29tbWl0X3RpbWUgPD0gJCcgLiBjb3VudCgk
dmFsdWVzKTsKKyAgICB9CisKKyAgICBpZiAoJGtleXdvcmQpIHsKKyAgICAgICAgYXJyYXlfcHVz
aCgkdmFsdWVzLCAnJScgLiBzdHJfcmVwbGFjZShhcnJheSgnXFwnLCAnXycsICdAJyksIGFycmF5
KCdcXFxcJywgJ1xcXycsICdcXCUnKSwgJGtleXdvcmQpIC4gJyUnKTsKKyAgICAgICAgJGluZGV4
ID0gJyQnIC4gY291bnQoJHZhbHVlcyk7CisgICAgICAgICRzdGF0ZW1lbnRzIC49ICIgQU5EIChj
b21taXRfYXV0aG9yX25hbWUgTElLRSAkaW5kZXggT1IgY29tbWl0X2F1dGhvcl9lbWFpbCBMSUtF
ICRpbmRleCI7CisgICAgICAgIGFycmF5X3B1c2goJHZhbHVlcywgbHRyaW0oJGtleXdvcmQsICdy
JykpOworICAgICAgICAkc3RhdGVtZW50cyAuPSAnIE9SIGNvbW1pdF9yZXZpc2lvbiA9ICQnIC4g
Y291bnQoJHZhbHVlcykgLiAnKSc7CisgICAgfQorCisgICAgJGNvbW1pdHMgPSAkZGItPnF1ZXJ5
X2FuZF9mZXRjaF9hbGwoJHN0YXRlbWVudHMgLiAnIE9SREVSIEJZIGNvbW1pdF90aW1lJywgJHZh
bHVlcyk7CisgICAgaWYgKCFpc19hcnJheSgkY29tbWl0cykpCisgICAgICAgIGV4aXRfd2l0aF9l
cnJvcignRmFpbGVkVG9GZXRjaENvbW1pdHMnLCBhcnJheSgncmVwb3NpdG9yeScgPT4gJHJlcG9z
aXRvcnlfaWQsICdmaXJzdCcgPT4gJGZpcnN0LCAnc2Vjb25kJyA9PiAkc2Vjb25kKSk7CiAgICAg
cmV0dXJuICRjb21taXRzOwogfQogCi1mdW5jdGlvbiBmb3JtYXRfY29tbWl0cygkY29tbWl0cykg
ewotICAgICRmb3JtYXR0ZWRfY29tbWl0cyA9IGFycmF5KCk7Ci0gICAgZm9yZWFjaCAoJGNvbW1p
dHMgYXMgJGNvbW1pdF9yb3cpIHsKLSAgICAgICAgYXJyYXlfcHVzaCgkZm9ybWF0dGVkX2NvbW1p
dHMsIGFycmF5KAotICAgICAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10s
Ci0gICAgICAgICAgICAncmV2aXNpb24nID0+ICRjb21taXRfcm93Wydjb21taXRfcmV2aXNpb24n
XSwKLSAgICAgICAgICAgICdwYXJlbnQnID0+ICRjb21taXRfcm93Wydjb21taXRfcGFyZW50J10s
Ci0gICAgICAgICAgICAndGltZScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10sCi0gICAg
ICAgICAgICAnYXV0aG9yJyA9PiBhcnJheSgnbmFtZScgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9h
dXRob3JfbmFtZSddLCAnZW1haWwnID0+ICRjb21taXRfcm93Wydjb21taXRfYXV0aG9yX2VtYWls
J10pLAotICAgICAgICAgICAgJ21lc3NhZ2UnID0+ICRjb21taXRfcm93Wydjb21taXRfbWVzc2Fn
ZSddCi0gICAgICAgICkpOwotICAgIH0KLSAgICByZXR1cm4gJGZvcm1hdHRlZF9jb21taXRzOwor
ZnVuY3Rpb24gZm9ybWF0X2NvbW1pdCgkY29tbWl0X3JvdykgeworICAgIHJldHVybiBhcnJheShh
cnJheSgKKyAgICAgICAgJ2lkJyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X2lkJ10sCisgICAgICAg
ICdyZXZpc2lvbicgPT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9yZXZpc2lvbiddLAorICAgICAgICAn
cGFyZW50JyA9PiAkY29tbWl0X3Jvd1snY29tbWl0X3BhcmVudCddLAorICAgICAgICAndGltZScg
PT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF90aW1lJ10sCisgICAgICAgICdhdXRob3JOYW1lJyA9PiAk
Y29tbWl0X3Jvd1snY29tbWl0X2F1dGhvcl9uYW1lJ10sCisgICAgICAgICdhdXRob3JFbWFpbCcg
PT4gJGNvbW1pdF9yb3dbJ2NvbW1pdF9hdXRob3JfZW1haWwnXSwKKyAgICAgICAgJ21lc3NhZ2Un
ID0+ICRjb21taXRfcm93Wydjb21taXRfbWVzc2FnZSddCisgICAgKSk7CiB9CiAKIG1haW4oYXJy
YXlfa2V5X2V4aXN0cygnUEFUSF9JTkZPJywgJF9TRVJWRVIpID8gZXhwbG9kZSgnLycsIHRyaW0o
JF9TRVJWRVJbJ1BBVEhfSU5GTyddLCAnLycpKSA6IGFycmF5KCkpOwpJbmRleDogV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2RiLnBocAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCShyZXZpc2lvbiAxNzQ2
NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODUsMTAgKzE4NSwxMiBAQCBjbGFzcyBEYXRhYmFzZQogCiAgICAg
ZnVuY3Rpb24gcXVlcnlfYW5kX2ZldGNoX2FsbCgkcXVlcnksICRwYXJhbXMgPSBhcnJheSgpKSB7
CiAgICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgJHJlc3VsdCA9IHBnX3F1ZXJ5
X3BhcmFtcygkdGhpcy0+Y29ubmVjdGlvbiwgJHF1ZXJ5LCAkcGFyYW1zKTsKICAgICAgICAgaWYg
KCEkcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgICAgIGlmIChwZ19udW1fcm93cygkcmVzdWx0KSA9PSAwKQorICAgICAgICAg
ICAgcmV0dXJuIGFycmF5KCk7CiAgICAgICAgIHJldHVybiBwZ19mZXRjaF9hbGwoJHJlc3VsdCk7
CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5j
c3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9hcHAu
Y3NzCShyZXZpc2lvbiAxNzQ2NTkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YyL2FwcC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTExNSwxNCArMTE1LDE0IEBAIGJvZHkgewog
fQogCiAKLS5jbG9zZS1idXR0b24geworLmljb24tYnV0dG9uIHsKICAgICB3aWR0aDogMXJlbTsK
ICAgICBoZWlnaHQ6IDFyZW07CiB9Ci0uY2xvc2UtYnV0dG9uIGcgeworLmljb24tYnV0dG9uIGcg
ewogICAgIHN0cm9rZTogI2NjYzsKIH0KLS5jbG9zZS1idXR0b246aG92ZXIgZyB7CisuaWNvbi1i
dXR0b246aG92ZXIgZyB7CiAgICAgc3Ryb2tlOiAjNjY2OwogfQogCkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2FwcC5qcwkocmV2aXNpb24gMTc0NjU5KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9hcHAuanMJKHdvcmtpbmcgY29weSkKQEAg
LTI4Nyw5ICsyODcsMzYgQEAgQXBwLlBhbmUgPSBFbWJlci5PYmplY3QuZXh0ZW5kKHsKICAgICBt
ZXRyaWNJZDogbnVsbCwKICAgICBtZXRyaWM6IG51bGwsCiAgICAgc2VsZWN0ZWRJdGVtOiBudWxs
LAotICAgIGluaXQ6IGZ1bmN0aW9uICgpCi0gICAgewotICAgICAgICB0aGlzLl9zdXBlcigpOwor
ICAgIHNlYXJjaENvbW1pdDogZnVuY3Rpb24gKHJlcG9zaXRvcnksIGtleXdvcmQpIHsKKyAgICAg
ICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0
b3J5LmdldCgnaWQnKTsKKyAgICAgICAgQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5nZShyZXBv
c2l0b3J5TmFtZSwgbnVsbCwgbnVsbCwga2V5d29yZCkudGhlbihmdW5jdGlvbiAoY29tbWl0cykg
eworICAgICAgICAgICAgaWYgKHNlbGYuaXNEZXN0cm95ZWQgfHwgIXNlbGYuZ2V0KCdjaGFydERh
dGEnKSB8fCAhY29tbWl0cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgdmFyIGN1cnJlbnRSdW5zID0gc2VsZi5nZXQoJ2NoYXJ0RGF0YScpLmN1cnJlbnQudGlt
ZVNlcmllc0J5Q29tbWl0VGltZSgpLnNlcmllcygpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50
UnVucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIg
aGlnaGxpZ2h0ZWRJdGVtcyA9IHt9OworICAgICAgICAgICAgdmFyIGNvbW1pdEluZGV4ID0gMDsK
KyAgICAgICAgICAgIGZvciAodmFyIHJ1bkluZGV4ID0gMDsgcnVuSW5kZXggPCBjdXJyZW50UnVu
cy5sZW5ndGggJiYgY29tbWl0SW5kZXggPCBjb21taXRzLmxlbmd0aDsgcnVuSW5kZXgrKykgewor
ICAgICAgICAgICAgICAgIHZhciBtZWFzdXJlbWVudCA9IGN1cnJlbnRSdW5zW3J1bkluZGV4XS5t
ZWFzdXJlbWVudDsKKyAgICAgICAgICAgICAgICB2YXIgY29tbWl0VGltZSA9IG1lYXN1cmVtZW50
LmNvbW1pdFRpbWVGb3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbW1pdFRpbWUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGlmIChjb21taXRzW2NvbW1pdEluZGV4XS50aW1lIDw9IGNvbW1pdFRpbWUpIHsK
KyAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0ZWRJdGVtc1ttZWFzdXJlbWVudC5pZCgpXSA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1pdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKGNvbW1pdEluZGV4
IDwgY29tbWl0cy5sZW5ndGggJiYgY29tbWl0c1tjb21taXRJbmRleF0udGltZSA8PSBjb21taXRU
aW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNl
bGYuc2V0KCdoaWdobGlnaHRlZEl0ZW1zJywgaGlnaGxpZ2h0ZWRJdGVtcyk7CisgICAgICAgIH0s
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSZXBvcnQgZXJyb3JzCisgICAg
ICAgICAgICB0aGlzLnNldCgnaGlnaGxpZ2h0ZWRJdGVtcycsIHt9KTsKKyAgICAgICAgfSk7CiAg
ICAgfSwKICAgICBfZmV0Y2g6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgdmFyIHBsYXRmb3JtSWQg
PSB0aGlzLmdldCgncGxhdGZvcm1JZCcpOwpAQCAtNjQ2LDYgKzY3MywxOSBAQCBBcHAuUGFuZUNv
bnRyb2xsZXIgPSBFbWJlci5PYmplY3RDb250cm9sCiAgICAgICAgIHsKICAgICAgICAgICAgIHRo
aXMucGFyZW50Q29udHJvbGxlci5yZW1vdmVQYW5lKHRoaXMuZ2V0KCdtb2RlbCcpKTsKICAgICAg
ICAgfSwKKyAgICAgICAgdG9nZ2xlU2VhcmNoOiBmdW5jdGlvbiAoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIUFwcC5NYW5pZmVzdC5yZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRz
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZhciBtb2RlbCA9IHRoaXMu
Z2V0KCdtb2RlbCcpOworICAgICAgICAgICAgaWYgKCFtb2RlbC5nZXQoJ2NvbW1pdFNlYXJjaFJl
cG9zaXRvcnknKSkKKyAgICAgICAgICAgICAgICBtb2RlbC5zZXQoJ2NvbW1pdFNlYXJjaFJlcG9z
aXRvcnknLCBBcHAuTWFuaWZlc3QucmVwb3NpdG9yaWVzV2l0aFJlcG9ydGVkQ29tbWl0c1swXSk7
CisgICAgICAgICAgICB0aGlzLnRvZ2dsZVByb3BlcnR5KCdzaG93aW5nU2VhcmNoUGFuZScpOwor
ICAgICAgICB9LAorICAgICAgICBzZWFyY2hDb21taXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgIHZhciBtb2RlbCA9IHRoaXMuZ2V0KCdtb2RlbCcpOworICAgICAgICAgICAgbW9kZWwuc2Vh
cmNoQ29tbWl0KG1vZGVsLmdldCgnY29tbWl0U2VhcmNoUmVwb3NpdG9yeScpLCBtb2RlbC5nZXQo
J2NvbW1pdFNlYXJjaEtleXdvcmQnKSk7ICAgICAgICAgICAgICAgIAorICAgICAgICB9LAogICAg
ICAgICB6b29tZWQ6IGZ1bmN0aW9uIChzZWxlY3Rpb24pCiAgICAgICAgIHsKICAgICAgICAgICAg
IHRoaXMuc2V0KCdtYWluUGxvdERvbWFpbicsIHNlbGVjdGlvbiA/IHNlbGVjdGlvbiA6IHRoaXMu
Z2V0KCdvdmVydmlld0RvbWFpbicpKTsKQEAgLTg0Myw3ICs4ODMsMTIgQEAgQXBwLkludGVyYWN0
aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5DbwogICAgICAgICBpZiAodGhpcy5fYXJlYXMpCiAg
ICAgICAgICAgICB0aGlzLl9hcmVhcy5mb3JFYWNoKGZ1bmN0aW9uIChhcmVhKSB7IGFyZWEucmVt
b3ZlKCk7IH0pOwogICAgICAgICB0aGlzLl9hcmVhcyA9IFtdOworICAgICAgICBpZiAodGhpcy5f
ZG90cykKKyAgICAgICAgICAgIHRoaXMuX2RvdHMuZm9yRWFjaChmdW5jdGlvbiAoZG90KSB7IGRv
dHMucmVtb3ZlKCk7IH0pOwogICAgICAgICB0aGlzLl9kb3RzID0gW107CisgICAgICAgIGlmICh0
aGlzLl9oaWdobGlnaHRzKQorICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0cy5mb3JFYWNoKGZ1
bmN0aW9uIChoaWdobGlnaHQpIHsgX2hpZ2hsaWdodHMucmVtb3ZlKCk7IH0pOworICAgICAgICB0
aGlzLl9oaWdobGlnaHRzID0gW107CiAKICAgICAgICAgdGhpcy5fY3VycmVudFRpbWVTZXJpZXMg
PSBjaGFydERhdGEuY3VycmVudC50aW1lU2VyaWVzQnlDb21taXRUaW1lKCk7CiAgICAgICAgIHRo
aXMuX2N1cnJlbnRUaW1lU2VyaWVzRGF0YSA9IHRoaXMuX2N1cnJlbnRUaW1lU2VyaWVzLnNlcmll
cygpOwpAQCAtMTAxOCw2ICsxMDYzLDcgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQg
PSBFbWJlci5DbwogICAgICAgICAgICAgICAgIC5hdHRyKCJjeCIsIGZ1bmN0aW9uKG1lYXN1cmVt
ZW50KSB7IHJldHVybiB4U2NhbGUobWVhc3VyZW1lbnQudGltZSk7IH0pCiAgICAgICAgICAgICAg
ICAgLmF0dHIoImN5IiwgZnVuY3Rpb24obWVhc3VyZW1lbnQpIHsgcmV0dXJuIHlTY2FsZShtZWFz
dXJlbWVudC52YWx1ZSk7IH0pOwogICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5fdXBkYXRlSGln
aGxpZ2h0UG9zaXRpb25zKCk7CiAKICAgICAgICAgaWYgKHRoaXMuX2JydXNoKSB7CiAgICAgICAg
ICAgICBpZiAoc2VsZWN0aW9uKQpAQCAtMTA0NSw2ICsxMDkxLDE5IEBAIEFwcC5JbnRlcmFjdGl2
ZUNoYXJ0Q29tcG9uZW50ID0gRW1iZXIuQ28KICAgICAgICAgICAgIC5zdHlsZSgiei1pbmRleCIs
ICIxMDAiKQogICAgICAgICAgICAgLnRleHQodGhpcy5feUF4aXNVbml0KTsKICAgICB9LAorICAg
IF91cGRhdGVIaWdobGlnaHRQb3NpdGlvbnM6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHhT
Y2FsZSA9IHRoaXMuX3g7CisgICAgICAgIHZhciB5U2NhbGUgPSB0aGlzLl95OworICAgICAgICB2
YXIgeTIgPSB0aGlzLl9tYXJnaW4udG9wICsgdGhpcy5fY29udGVudEhlaWdodDsKKyAgICAgICAg
dGhpcy5faGlnaGxpZ2h0cy5mb3JFYWNoKGZ1bmN0aW9uIChoaWdobGlnaHQpIHsKKyAgICAgICAg
ICAgIGhpZ2hsaWdodAorICAgICAgICAgICAgICAgIC5hdHRyKCJ5MSIsIDApCisgICAgICAgICAg
ICAgICAgLmF0dHIoInkyIiwgeTIpCisgICAgICAgICAgICAgICAgLmF0dHIoInkiLCBmdW5jdGlv
bihtZWFzdXJlbWVudCkgeyByZXR1cm4geVNjYWxlKG1lYXN1cmVtZW50LnZhbHVlKTsgfSkKKyAg
ICAgICAgICAgICAgICAuYXR0cigieDEiLCBmdW5jdGlvbihtZWFzdXJlbWVudCkgeyByZXR1cm4g
eFNjYWxlKG1lYXN1cmVtZW50LnRpbWUpOyB9KQorICAgICAgICAgICAgICAgIC5hdHRyKCJ4MiIs
IGZ1bmN0aW9uKG1lYXN1cmVtZW50KSB7IHJldHVybiB4U2NhbGUobWVhc3VyZW1lbnQudGltZSk7
IH0pOworICAgICAgICB9KTsKKyAgICB9LAogICAgIF9jb21wdXRlWEF4aXNEb21haW46IGZ1bmN0
aW9uICh0aW1lU2VyaWVzKQogICAgIHsKICAgICAgICAgdmFyIGV4dGVudCA9IGQzLmV4dGVudCh0
aW1lU2VyaWVzLCBmdW5jdGlvbihwb2ludCkgeyByZXR1cm4gcG9pbnQudGltZTsgfSk7CkBAIC0x
MzE3LDYgKzEzNzYsMjYgQEAgQXBwLkludGVyYWN0aXZlQ2hhcnRDb21wb25lbnQgPSBFbWJlci5D
bwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfS5vYnNlcnZlcygnc2VsZWN0ZWRJdGVt
Jykub24oJ2luaXQnKSwKKyAgICBfaGlnaGxpZ2h0ZWRJdGVtc0NoYW5nZWQ6IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9tYXJnaW4pCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdmFyIGhpZ2hsaWdodGVkSXRlbXMgPSB0aGlzLmdldCgnaGlnaGxpZ2h0ZWRJdGVtcycp
OworCisgICAgICAgIHZhciBkYXRhID0gdGhpcy5fY3VycmVudFRpbWVTZXJpZXNEYXRhLmZpbHRl
cihmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaGlnaGxpZ2h0ZWRJdGVtc1tpdGVtLm1lYXN1cmVt
ZW50LmlkKCldOyB9KTsKKworICAgICAgICBpZiAodGhpcy5faGlnaGxpZ2h0cykKKyAgICAgICAg
ICAgIHRoaXMuX2hpZ2hsaWdodHMuZm9yRWFjaChmdW5jdGlvbiAoaGlnaGxpZ2h0KSB7IGhpZ2hs
aWdodC5yZW1vdmUoKTsgfSk7CisKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0cy5wdXNoKHRoaXMu
X2NsaXBwZWRDb250YWluZXIKKyAgICAgICAgICAgIC5zZWxlY3RBbGwoIi5oaWdobGlnaHQiKQor
ICAgICAgICAgICAgICAgIC5kYXRhKGRhdGEpCisgICAgICAgICAgICAuZW50ZXIoKS5hcHBlbmQo
ImxpbmUiKQorICAgICAgICAgICAgICAgIC5hdHRyKCJjbGFzcyIsICJoaWdobGlnaHQiKSk7CisK
KyAgICAgICAgdGhpcy5fdXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CisKKyAgICB9Lm9ic2Vy
dmVzKCdoaWdobGlnaHRlZEl0ZW1zJyksCiAgICAgX3VwZGF0ZUN1cnJlbnRJdGVtSW5kaWNhdG9y
czogZnVuY3Rpb24gKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY3VycmVudEl0ZW1MaW5l
KQpAQCAtMTQxMiwxOCArMTQ5MSwyMSBAQCBBcHAuQ29tbWl0c1ZpZXdlckNvbXBvbmVudCA9IEVt
YmVyLkNvbXBvCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHNlbGYgPSB0aGlz
OwotICAgICAgICBGZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UocmVwb3NpdG9yeSwgZnJvbSwgdG8p
LnRoZW4oZnVuY3Rpb24gKGNvbW1pdHMpIHsKKyAgICAgICAgQ29tbWl0TG9ncy5mZXRjaEZvclRp
bWVSYW5nZShyZXBvc2l0b3J5LmdldCgnaWQnKSwgZnJvbSwgdG8pLnRoZW4oZnVuY3Rpb24gKGNv
bW1pdHMpIHsKKyAgICAgICAgICAgIGlmIChzZWxmLmlzRGVzdHJveWVkKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIHNlbGYuc2V0KCdjb21taXRzJywgY29tbWl0cy5tYXAo
ZnVuY3Rpb24gKGNvbW1pdCkgewogICAgICAgICAgICAgICAgIHJldHVybiBFbWJlci5PYmplY3Qu
Y3JlYXRlKHsKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeTogcmVwb3NpdG9yeSwKICAg
ICAgICAgICAgICAgICAgICAgcmV2aXNpb246IGNvbW1pdC5yZXZpc2lvbiwKICAgICAgICAgICAg
ICAgICAgICAgdXJsOiByZXBvc2l0b3J5LnVybEZvclJldmlzaW9uKGNvbW1pdC5yZXZpc2lvbiks
Ci0gICAgICAgICAgICAgICAgICAgIGF1dGhvcjogY29tbWl0LmF1dGhvci5uYW1lIHx8IGNvbW1p
dC5hdXRob3IuZW1haWwsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcjogY29tbWl0LmF1dGhv
ck5hbWUgfHwgY29tbWl0LmF1dGhvckVtYWlsLAogICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
OiBjb21taXQubWVzc2FnZSA/IGNvbW1pdC5tZXNzYWdlLnN1YnN0cigwLCA3NSkgOiBudWxsLAog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSkpOwogICAgICAgICB9LCBmdW5jdGlv
biAoKSB7Ci0gICAgICAgICAgICBzZWxmLnNldCgnY29tbWl0cycsIFtdKTsKKyAgICAgICAgICAg
IGlmICghc2VsZi5pc0Rlc3Ryb3llZCkKKyAgICAgICAgICAgICAgICBzZWxmLnNldCgnY29tbWl0
cycsIFtdKTsKICAgICAgICAgfSkKICAgICB9Lm9ic2VydmVzKCdyZXBvc2l0b3J5Jykub2JzZXJ2
ZXMoJ3JldmlzaW9uSW5mbycpLm9uKCdpbml0JyksCiB9KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjIvY2hhcnQtcGFuZS5jc3MKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9jaGFydC1wYW5lLmNzcwkocmV2aXNpb24gMTc0
NjU5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9jaGFydC1wYW5lLmNz
cwkod29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDcgQEAKICAgICBwYWRkaW5nOiAwOwogICAgIG1h
cmdpbi1ib3R0b206IDFyZW07CiAgICAgb3V0bGluZTogbm9uZTsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CiB9CiAuY2hhcnQtcGFuZSBoZWFkZXIgewogICAgIGJhY2tncm91bmQ6ICNmZmY7CkBA
IC00OSw2ICs1MCw1MCBAQAogICAgIHRvcDogMC41NXJlbTsKIH0KIAorLmNoYXJ0LXBhbmUgYS5z
ZWFyY2gtYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIHJpZ2h0OiAwLjU1cmVtOworICAgIHRvcDogMC41NXJlbTsKK30KKwor
LnNlYXJjaC1wYW5lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgcmlnaHQ6IDByZW07
CisgICAgdG9wOiAxLjdyZW07CisgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjsKKyAgICBwYWRk
aW5nOiAwOworICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTsKKyAgICBkaXNwbGF5OiB0YWJsZTsK
KyAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKK30KKworLnNlYXJjaC1wYW5lLmhpZGRlbiB7CisgICAg
ZGlzcGxheTogbm9uZTsKK30KKworLnNlYXJjaC1wYW5lIGlucHV0IHsKKyAgICBkaXNwbGF5OiB0
YWJsZS1jZWxsOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgb3V0bGluZTogbm9u
ZTsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuNXJl
bTsKKyAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC41cmVtOworICAgIHBhZGRpbmc6
IDAuNXJlbTsKKyAgICBmb250LXNpemU6IDFyZW07CisgICAgbWFyZ2luOiAwOworfQorCisuc2Vh
cmNoLXBhbmUgLnJlcG9zaXRvcmllcyB7CisgICAgZGlzcGxheTogdGFibGUtY2VsbDsKKyAgICB2
ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgIHBhZGRpbmc6IDAgMC41cmVtOworfQorCisuc2Vh
cmNoLXBhbmUgaW5wdXQ6Zm9jdXMgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksIDI0
MiwgMjI4KTsKK30KKwogLmNoYXJ0LXBhbmUgLmJvZHkgewogICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKICAgICB3aWR0aDogMTAwJTsKQEAgLTIyMiw2ICsyNjcsMTMgQEAKICAgICBmaWxsOiAjZjkz
OwogfQogCisuY2hhcnQgLmhpZ2hsaWdodCB7CisgICAgc3Ryb2tlOiAjMzlmOworICAgIHN0cm9r
ZS1kYXNoYXJyYXk6IDQsIDQ7CisgICAgc3Ryb2tlLXdpZHRoOiAxcHg7CisgICAgZmlsbDogbm9u
ZTsKK30KKwogLmNoYXJ0IC5leHRlbnQgewogICAgIHN0cm9rZTogIzljNjsKICAgICBzdHJva2Ut
d2lkdGg6IDFweDsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjIvZGF0
YS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2Rh
dGEuanMJKHJldmlzaW9uIDE3NDY1OSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjIvZGF0YS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMSwzMCBAQAogLy8gV2UgZG9u
J3QgdXNlIERTLk1vZGVsIGZvciB0aGVzZSBvYmplY3QgdHlwZXMgYmVjYXVzZSB3ZSBjYW4ndCBh
ZmZvcmQgdG8gcHJvY2VzcyBtaWxsaW9ucyBvZiB0aGVtLgogCi1mdW5jdGlvbiBGZXRjaENvbW1p
dHNGb3JUaW1lUmFuZ2UocmVwb3NpdG9yeSwgZnJvbSwgdG8pCi17Ci0gICAgdmFyIHVybCA9ICcu
Li9hcGkvY29tbWl0cy8nICsgcmVwb3NpdG9yeS5nZXQoJ2lkJykgKyAnLycgKyBmcm9tICsgJy0n
ICsgdG87Ci0KLSAgICB2YXIgY2FjaGVkQ29tbWl0cyA9IEZldGNoQ29tbWl0c0ZvclRpbWVSYW5n
ZS5fY2FjaGVkQ29tbWl0c0J5UmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKLSAgICBpZiAoIWNhY2hl
ZENvbW1pdHMpIHsKLSAgICAgICAgY2FjaGVkQ29tbWl0cyA9IHtjb21taXRzQnlSZXZpc2lvbjog
e30sIGNvbW1pdHNCeVRpbWU6IFtdfTsKLSAgICAgICAgRmV0Y2hDb21taXRzRm9yVGltZVJhbmdl
Ll9jYWNoZWRDb21taXRzQnlSZXBvc2l0b3J5W3JlcG9zaXRvcnldID0gY2FjaGVkQ29tbWl0czsK
K3ZhciBDb21taXRMb2dzID0geworICAgIF9jYWNoZWRDb21taXRzQnlSZXBvc2l0b3J5OiB7fQor
fTsKKworQ29tbWl0TG9ncy5mZXRjaEZvclRpbWVSYW5nZSA9IGZ1bmN0aW9uIChyZXBvc2l0b3J5
LCBmcm9tLCB0bywga2V5d29yZCkKK3sKKyAgICB2YXIgcGFyYW1zID0gW107CisgICAgaWYgKGZy
b20gJiYgdG8pIHsKKyAgICAgICAgcGFyYW1zLnB1c2goWydmcm9tJywgZnJvbV0pOworICAgICAg
ICBwYXJhbXMucHVzaChbJ3RvJywgdG9dKTsKICAgICB9CisgICAgaWYgKGtleXdvcmQpCisgICAg
ICAgIHBhcmFtcy5wdXNoKFsna2V5d29yZCcsIGtleXdvcmRdKTsKIAotICAgIGlmIChjYWNoZWRD
b21taXRzKSB7Ci0gICAgICAgIHZhciBzdGFydENvbW1pdCA9IGNhY2hlZENvbW1pdHMuY29tbWl0
c0J5UmV2aXNpb25bZnJvbV07Ci0gICAgICAgIHZhciBlbmRDb21taXQgPSBjYWNoZWRDb21taXRz
LmNvbW1pdHNCeVJldmlzaW9uW3RvXTsKLSAgICAgICAgaWYgKHN0YXJ0Q29tbWl0ICYmIGVuZENv
bW1pdCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBFbWJlci5SU1ZQLlByb21pc2UoZnVuY3Rp
b24gKHJlc29sdmUpIHsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlZENvbW1pdHMuY29t
bWl0c0J5VGltZS5zbGljZShzdGFydENvbW1pdC5pbmRleCwgZW5kQ29tbWl0LmluZGV4ICsgMSkp
IH0pOwotICAgICAgICB9CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHVzZSB0
aGUgY2FjaGUgaWYgYWxsIGNvbW1pdHMgaW4gdGhlIHJhbmdlIGhhdmUgYmVlbiBjYWNoZWQuCisg
ICAgdmFyIHVzZUNhY2hlID0gZnJvbSAmJiB0byAmJiAha2V5d29yZDsKKworICAgIHZhciB1cmwg
PSAnLi4vYXBpL2NvbW1pdHMvJyArIHJlcG9zaXRvcnkgKyAnLz8nICsgcGFyYW1zLm1hcChmdW5j
dGlvbiAoa2V5VmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXlW
YWx1ZVswXSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoa2V5VmFsdWVbMV0pOworICAgIH0p
LmpvaW4oJyYnKTsKKworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICB2YXIgY2FjaGVkQ29t
bWl0c0ZvclJhbmdlID0gQ29tbWl0TG9ncy5fY2FjaGVkQ29tbWl0c0JldHdlZW4ocmVwb3NpdG9y
eSwgZnJvbSwgdG8pOworICAgICAgICBpZiAoY2FjaGVkQ29tbWl0c0ZvclJhbmdlKQorICAgICAg
ICAgICAgcmV0dXJuIG5ldyBFbWJlci5SU1ZQLlByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsg
cmVzb2x2ZShjYWNoZWRDb21taXRzRm9yUmFuZ2UpOyB9KTsKICAgICB9CiAKICAgICBjb25zb2xl
LmxvZygnRmVjdGhpbmcgJyArIHVybCk7CkBAIC0yOCwyNSArMzYsNTIgQEAgZnVuY3Rpb24gRmV0
Y2hDb21taXRzRm9yVGltZVJhbmdlKHJlcG9zaQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgZGF0YS5jb21taXRzLmZvckVhY2goZnVuY3Rpb24g
KGNvbW1pdCkgewotICAgICAgICAgICAgICAgIGlmIChjYWNoZWRDb21taXRzLmNvbW1pdHNCeVJl
dmlzaW9uW2NvbW1pdC5yZXZpc2lvbl0pCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICBjb21taXQudGltZSA9IG5ldyBEYXRlKGNvbW1pdC50aW1lLnJlcGxhY2Uo
JyAnLCAnVCcpKTsKLSAgICAgICAgICAgICAgICBjYWNoZWRDb21taXRzLmNvbW1pdHNCeVJldmlz
aW9uW2NvbW1pdC5yZXZpc2lvbl0gPSBjb21taXQ7Ci0gICAgICAgICAgICAgICAgY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlUaW1lLnB1c2goY29tbWl0KTsKLSAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgdmFyIGZldGNoZWRDb21taXRzID0gZGF0YS5jb21taXRzOworICAgICAgICAgICAgZmV0
Y2hlZENvbW1pdHMuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0KSB7IGNvbW1pdC50aW1lID0gbmV3
IERhdGUoY29tbWl0LnRpbWUucmVwbGFjZSgnICcsICdUJykpOyB9KTsKIAotICAgICAgICAgICAg
Y2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1lLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJu
IGEudGltZSAtIGIudGltZTsgfSk7Ci0gICAgICAgICAgICBjYWNoZWRDb21taXRzLmNvbW1pdHNC
eVRpbWUuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0LCBpbmRleCkgeyBjb21taXQuaW5kZXggPSBp
bmRleDsgfSk7CisgICAgICAgICAgICBpZiAodXNlQ2FjaGUpCisgICAgICAgICAgICAgICAgQ29t
bWl0TG9ncy5fY2FjaGVDb25zZWN1dGl2ZUNvbW1pdHMocmVwb3NpdG9yeSwgZnJvbSwgdG8sIGZl
dGNoZWRDb21taXRzKTsKIAotICAgICAgICAgICAgcmVzb2x2ZShkYXRhLmNvbW1pdHMpOworICAg
ICAgICAgICAgcmVzb2x2ZShmZXRjaGVkQ29tbWl0cyk7CiAgICAgICAgIH0pLmZhaWwoZnVuY3Rp
b24gKHhociwgc3RhdHVzLCBlcnJvcikgewogICAgICAgICAgICAgcmVqZWN0KHhoci5zdGF0dXMg
KyAoZXJyb3IgPyAnLCAnICsgZXJyb3IgOiAnJykpOwogICAgICAgICB9KQogICAgIH0pOwogfQog
Ci1GZXRjaENvbW1pdHNGb3JUaW1lUmFuZ2UuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnkgPSB7
fTsKK0NvbW1pdExvZ3MuX2NhY2hlZENvbW1pdHNCZXR3ZWVuID0gZnVuY3Rpb24gKHJlcG9zaXRv
cnksIGZyb20sIHRvKQoreworICAgIHZhciBjYWNoZWRDb21taXRzID0gdGhpcy5fY2FjaGVkQ29t
bWl0c0J5UmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKKyAgICBpZiAoIWNhY2hlZENvbW1pdHMpCisg
ICAgICAgIHJldHVybiBudWxsOworCisgICAgdmFyIHN0YXJ0Q29tbWl0ID0gY2FjaGVkQ29tbWl0
cy5jb21taXRzQnlSZXZpc2lvbltmcm9tXTsKKyAgICB2YXIgZW5kQ29tbWl0ID0gY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlSZXZpc2lvblt0b107CisgICAgaWYgKCFzdGFydENvbW1pdCB8fCAhZW5k
Q29tbWl0KQorICAgICAgICByZXR1cm4gbnVsbDsKKworICAgIHJldHVybiBjYWNoZWRDb21taXRz
LmNvbW1pdHNCeVRpbWUuc2xpY2Uoc3RhcnRDb21taXQuY2FjaGVJbmRleCwgZW5kQ29tbWl0LmNh
Y2hlSW5kZXggKyAxKTsKK30KKworQ29tbWl0TG9ncy5fY2FjaGVDb25zZWN1dGl2ZUNvbW1pdHMg
PSBmdW5jdGlvbiAocmVwb3NpdG9yeSwgZnJvbSwgdG8sIGNvbnNlY3V0aXZlQ29tbWl0cykKK3sK
KyAgICB2YXIgY2FjaGVkQ29tbWl0cyA9IHRoaXMuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnlb
cmVwb3NpdG9yeV07CisgICAgaWYgKCFjYWNoZWRDb21taXRzKSB7CisgICAgICAgIGNhY2hlZENv
bW1pdHMgPSB7Y29tbWl0c0J5UmV2aXNpb246IHt9LCBjb21taXRzQnlUaW1lOiBbXX07CisgICAg
ICAgIHRoaXMuX2NhY2hlZENvbW1pdHNCeVJlcG9zaXRvcnlbcmVwb3NpdG9yeV0gPSBjYWNoZWRD
b21taXRzOworICAgIH0KKworICAgIGNvbnNlY3V0aXZlQ29tbWl0cy5mb3JFYWNoKGZ1bmN0aW9u
IChjb21taXQpIHsKKyAgICAgICAgaWYgKGNhY2hlZENvbW1pdHMuY29tbWl0c0J5UmV2aXNpb25b
Y29tbWl0LnJldmlzaW9uXSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FjaGVkQ29t
bWl0cy5jb21taXRzQnlSZXZpc2lvbltjb21taXQucmV2aXNpb25dID0gY29tbWl0OworICAgICAg
ICBjYWNoZWRDb21taXRzLmNvbW1pdHNCeVRpbWUucHVzaChjb21taXQpOworICAgIH0pOworCisg
ICAgY2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1lLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0
dXJuIGEudGltZSAtIGIudGltZTsgfSk7CisgICAgY2FjaGVkQ29tbWl0cy5jb21taXRzQnlUaW1l
LmZvckVhY2goZnVuY3Rpb24gKGNvbW1pdCwgaW5kZXgpIHsgY29tbWl0LmNhY2hlSW5kZXggPSBp
bmRleDsgfSk7Cit9CisKIAogZnVuY3Rpb24gTWVhc3VyZW1lbnQocmF3RGF0YSkKIHsKQEAgLTcw
LDYgKzEwNSwxNSBAQCBmdW5jdGlvbiBNZWFzdXJlbWVudChyYXdEYXRhKQogICAgIHRoaXMuX2Zv
cm1hdHRlZFJldmlzaW9ucyA9IHVuZGVmaW5lZDsKIH0KIAorTWVhc3VyZW1lbnQucHJvdG90eXBl
LmNvbW1pdFRpbWVGb3JSZXBvc2l0b3J5ID0gZnVuY3Rpb24gKHJlcG9zaXRvcnlOYW1lKQorewor
ICAgIHZhciByZXZpc2lvbnMgPSB0aGlzLl9yYXdbJ3JldmlzaW9ucyddOworICAgIHZhciByYXdE
YXRhID0gcmV2aXNpb25zW3JlcG9zaXRvcnlOYW1lXTsKKyAgICBpZiAoIXJhd0RhdGEpCisgICAg
ICAgIHJldHVybiBudWxsOworICAgIHJldHVybiBuZXcgRGF0ZShyYXdEYXRhWzFdKTsKK30KKwog
TWVhc3VyZW1lbnQucHJvdG90eXBlLmZvcm1hdHRlZFJldmlzaW9ucyA9IGZ1bmN0aW9uIChwcmV2
aW91c01lYXN1cmVtZW50KQogewogICAgIHZhciByZXZpc2lvbnMgPSB0aGlzLl9yYXdbJ3Jldmlz
aW9ucyddOwpAQCAtNzcsMTMgKzEyMSw4IEBAIE1lYXN1cmVtZW50LnByb3RvdHlwZS5mb3JtYXR0
ZWRSZXZpc2lvbnMKICAgICB2YXIgZm9ybWF0dGVkUmV2aXNpb25zID0ge307CiAgICAgZm9yICh2
YXIgcmVwb3NpdG9yeU5hbWUgaW4gcmV2aXNpb25zKSB7CiAgICAgICAgIHZhciBjdXJyZW50UmV2
aXNpb24gPSByZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdWzBdOwotICAgICAgICB2YXIgY29tbWl0
VGltZUluUE9TSVggPSByZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdWzFdOwotCiAgICAgICAgIHZh
ciBwcmV2aW91c1JldmlzaW9uID0gcHJldmlvdXNSZXZpc2lvbnMgPyBwcmV2aW91c1JldmlzaW9u
c1tyZXBvc2l0b3J5TmFtZV1bMF0gOiBudWxsOwotCiAgICAgICAgIHZhciBmb3JtYXR0dGVkUmV2
aXNpb24gPSB0aGlzLl9mb3JtYXRSZXZpc2lvblJhbmdlKHByZXZpb3VzUmV2aXNpb24sIGN1cnJl
bnRSZXZpc2lvbik7Ci0gICAgICAgIGlmIChjb21taXRUaW1lSW5QT1NJWCkKLSAgICAgICAgICAg
IGZvcm1hdHR0ZWRSZXZpc2lvblsnY29tbWl0VGltZSddID0gbmV3IERhdGUoY29tbWl0VGltZUlu
UE9TSVgpOwogICAgICAgICBmb3JtYXR0ZWRSZXZpc2lvbnNbcmVwb3NpdG9yeU5hbWVdID0gZm9y
bWF0dHRlZFJldmlzaW9uOwogICAgIH0KIApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92Mi9pbmRleC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjIvaW5kZXguaHRtbAkocmV2aXNpb24gMTc0NjU5KQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9pbmRleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzUsOSArMTM1LDEyIEBACiAgICAgICAgICAgICAgICAgICAgIHt7bWV0cmljLmxhYmVsfX0KICAg
ICAgICAgICAgICAgICAgICAgLSB7eyBwbGF0Zm9ybS5uYW1lfX08L2gyPgogICAgICAgICAgICAg
ICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iQ2xvc2UiIGNsYXNzPSJjbG9zZS1idXR0b24iIHt7
YWN0aW9uICJjbG9zZSJ9fT57e3BhcnRpYWwgImNsb3NlLWJ1dHRvbiJ9fTwvYT4KKyAgICAgICAg
ICAgICAgICAgICAge3tpZiBBcHAuTWFuaWZlc3QucmVwb3NpdG9yaWVzV2l0aFJlcG9ydGVkQ29t
bWl0c319CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iU2VhcmNo
IiBjbGFzcz0ic2VhcmNoLWJ1dHRvbiIge3thY3Rpb24gInRvZ2dsZVNlYXJjaCJ9fT57e3BhcnRp
YWwgInNlYXJjaC1idXR0b24ifX08L2E+CisgICAgICAgICAgICAgICAgICAgIHt7L2lmfX0KICAg
ICAgICAgICAgICAgICA8L2hlYWRlcj4KIAotICAgICAgICAgICAgICAgIDxkaXYge3tiaW5kLWF0
dHIgY2xhc3M9Ijpib2R5IHNob3dpbmdEZXRhaWxzIn19PgorICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImJvZHkiPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdmctY29udGFp
bmVyIj4KICAgICAgICAgICAgICAgICAgICAge3sjaWYgY2hhcnREYXRhfX0KICAgICAgICAgICAg
ICAgICAgICAgICAgIHt7aW50ZXJhY3RpdmUtY2hhcnQKQEAgLTE0Nyw2ICsxNTAsNyBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJdGVtPWN1cnJlbnRJdGVtCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRpbWU9c2hhcmVkVGltZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbT1zZWxlY3RlZEl0ZW0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoaWdobGlnaHRlZEl0ZW1zPWhpZ2hsaWdodGVkSXRlbXMKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb249dGltZVJhbmdlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hhcmVkU2VsZWN0aW9uPXNoYXJlZFNlbGVjdGlvbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQ9InJhbmdlQ2hhbmdlZCIKQEAgLTE3Nyw2
ICsxODEsMTYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHt7L2lmfX0KICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CisKKyAgICAgICAgICAgICAg
ICA8Zm9ybSB7e2JpbmQtYXR0ciBjbGFzcz0iOnNlYXJjaC1wYW5lIHNob3dpbmdTZWFyY2hQYW5l
OjpoaWRkZW4ifX0+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZXBvc2l0b3Jp
ZXMiPgorICAgICAgICAgICAgICAgICAgICAgICAge3t2aWV3IEVtYmVyLlNlbGVjdCBjb250ZW50
PUFwcC5NYW5pZmVzdC5yZXBvc2l0b3JpZXNXaXRoUmVwb3J0ZWRDb21taXRzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWxQYXRoPSdjb250ZW50LmlkJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbj1jb21taXRTZWFyY2hSZXBvc2l0b3J5fX0KKyAg
ICAgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICB7e2lucHV0IGFj
dGlvbj0ic2VhcmNoQ29tbWl0IiBwbGFjZWhvbGRlcj0iTmFtZSBvciBlbWFpbCIgdmFsdWU9Y29t
bWl0U2VhcmNoS2V5d29yZH19CisgICAgICAgICAgICAgICAgPC9mb3JtPgorCiAgICAgICAgICAg
ICA8L3NlY3Rpb24+CiAgICAgICAgIHt7L2VhY2h9fQogICAgIDwvc2NyaXB0PgpAQCAtMjU4LDcg
KzI3Miw3IEBACiAgICAgPC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHR5cGU9InRleHQveC1oYW5k
bGViYXJzIiBkYXRhLXRlbXBsYXRlLW5hbWU9ImNsb3NlLWJ1dHRvbiI+Ci0gICAgICAgIDxzdmcg
Y2xhc3M9ImNsb3NlLWJ1dHRvbiIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgorICAgICAgICA8c3Zn
IGNsYXNzPSJjbG9zZS1idXR0b24gaWNvbi1idXR0b24iIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4K
ICAgICAgICAgICAgIDxnIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMTAiPgogICAgICAg
ICAgICAgICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQ1IiBmaWxsPSJ0cmFuc3BhcmVu
dCIvPgogICAgICAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAsMzAgNzAsNzAiIC8+CkBA
IC0yNjcsNiArMjgxLDE1IEBACiAgICAgICAgIDwvc3ZnPgogICAgIDwvc2NyaXB0PgogCisgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L3gtaGFuZGxlYmFycyIgZGF0YS10ZW1wbGF0ZS1uYW1lPSJzZWFy
Y2gtYnV0dG9uIj4KKyAgICAgICAgPHN2ZyBjbGFzcz0ic2VhcmNoLWJ1dHRvbiBpY29uLWJ1dHRv
biIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgorICAgICAgICAgICAgPGcgc3Ryb2tlPSJibGFjayIg
c3Ryb2tlLXdpZHRoPSIxNSI+CisgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iNjAiIGN5PSI0
MCIgcj0iMzAiIGZpbGw9InRyYW5zcGFyZW50Ii8+CisgICAgICAgICAgICAgICAgPGxpbmUgeDE9
IjEwIiB5MT0iOTAiIHgyPSI0MCIgeTI9IjYwIi8+CisgICAgICAgICAgICA8L2c+CisgICAgICAg
IDwvc3ZnPgorICAgIDwvc2NyaXB0PgorCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L3gtaGFuZGxl
YmFycyIgZGF0YS10ZW1wbGF0ZS1uYW1lPSJzcGlubmVyIj4KICAgICAgICAgPHN2ZyBjbGFzcz0i
c3Bpbm5lciIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogICAgICAgICAgICAgPGxpbmUgeDE9IjEw
IiB5MT0iNTAiIHgyPSIzMCIgeTI9IjUwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEw
IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjIvbWFuaWZlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92Mi9tYW5pZmVzdC5qcwkocmV2aXNpb24gMTc0NjU5KQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92Mi9tYW5pZmVzdC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTQ3LDYgKzE0Nyw4IEBAIEFwcC5NYW5pZmVzdCA9IEVtYmVyLkNvbnRyb2xsZXIuZXh0ZW5k
KHsKICAgICBfcGxhdGZvcm1CeUlkOiB7fSwKICAgICBfbWV0cmljQnlJZDoge30sCiAgICAgX2J1
aWxkZXJCeUlkOiB7fSwKKyAgICByZXBvc2l0b3JpZXM6IG51bGwsCisgICAgcmVwb3NpdG9yaWVz
V2l0aFJlcG9ydGVkQ29tbWl0czogbnVsbCwKICAgICBfcmVwb3NpdG9yeUJ5SWQ6IHt9LAogICAg
IF9mZXRjaFByb21pc2U6IG51bGwsCiAgICAgZmV0Y2g6IGZ1bmN0aW9uICgpCkBAIC0xOTAsOCAr
MTkyLDEyIEBAIEFwcC5NYW5pZmVzdCA9IEVtYmVyLkNvbnRyb2xsZXIuZXh0ZW5kKHsKICAgICAg
ICAgICAgIHNlbGYuX2J1aWxkZXJCeUlkW2J1aWxkZXIuZ2V0KCdpZCcpXSA9IGJ1aWxkZXI7CiAg
ICAgICAgIH0pOwogCi0gICAgICAgIHN0b3JlLmFsbCgncmVwb3NpdG9yeScpLmZvckVhY2goZnVu
Y3Rpb24gKHJlcG9zaXRvcnkpIHsKKyAgICAgICAgdmFyIHJlcG9zaXRvcmllcyA9IHN0b3JlLmFs
bCgncmVwb3NpdG9yeScpOworICAgICAgICByZXBvc2l0b3JpZXMuZm9yRWFjaChmdW5jdGlvbiAo
cmVwb3NpdG9yeSkgewogICAgICAgICAgICAgc2VsZi5fcmVwb3NpdG9yeUJ5SWRbcmVwb3NpdG9y
eS5nZXQoJ2lkJyldID0gcmVwb3NpdG9yeTsKICAgICAgICAgfSk7CisgICAgICAgIHRoaXMuc2V0
KCdyZXBvc2l0b3JpZXMnLCByZXBvc2l0b3JpZXMpOworICAgICAgICB0aGlzLnNldCgncmVwb3Np
dG9yaWVzV2l0aFJlcG9ydGVkQ29tbWl0cycsCisgICAgICAgICAgICByZXBvc2l0b3JpZXMuZmls
dGVyKGZ1bmN0aW9uIChyZXBvc2l0b3J5KSB7IHJldHVybiByZXBvc2l0b3J5LmdldCgnaGFzUmVw
b3J0ZWRDb21taXRzJyk7IH0pKTsKICAgICB9CiB9KS5jcmVhdGUoKTsK
</data>
<flag name="review"
          id="264504"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>