<?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>154057</bug_id>
          
          <creation_ts>2016-02-09 17:29:44 -0800</creation_ts>
          <short_desc>Analysis task page on v3 UI should show charts</short_desc>
          <delta_ts>2016-02-16 13:50:06 -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>WebKit 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>cdumez</cc>
    
    <cc>jond</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1163361</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-09 17:29:44 -0800</bug_when>
    <thetext>Show the original charts like v2 UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163363</commentid>
    <comment_count>1</comment_count>
      <attachid>270965</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-09 17:54:08 -0800</bug_when>
    <thetext>Created attachment 270965
Adds chart</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163573</commentid>
    <comment_count>2</comment_count>
      <attachid>270965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-02-10 12:52:35 -0800</bug_when>
    <thetext>Comment on attachment 270965
Adds chart

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163579</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-02-10 13:07:51 -0800</bug_when>
    <thetext>Committed r196387: &lt;http://trac.webkit.org/changeset/196387&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270965</attachid>
            <date>2016-02-09 17:54:08 -0800</date>
            <delta_ts>2016-02-10 12:52:35 -0800</delta_ts>
            <desc>Adds chart</desc>
            <filename>bug-154057-20160209175346.patch</filename>
            <type>text/plain</type>
            <size>59291</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MzUwKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDk2IEBACisyMDE2LTAyLTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIEFuYWx5c2lzIHRhc2sgcGFnZSBvbiB2MyBVSSBzaG91bGQgc2hvdyBjaGFydHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDA1Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3Rl
ZCBDaGFydFBhbmVCYXNlIG91dCBvZiBDaGFydFBhbmUgYW5kIGFkZGVkIGFuIGluc3RhbmNlIG9m
IGl0cyBuZXcgc3ViY2xhc3MsIEFuYWx5c2lzVGFza0NoYXJ0UGFuZSwKKyAgICAgICAgdG8gdGhl
IGFuYWx5c2lzIHRhc2sgcGFnZS4gVGhlIG1haW4gZGlmZmVyZW5jZSBpcyB0aGF0IENoYXJ0UGFu
ZUJhc2UgZG9lc24ndCBkZXBlbmQgb24gdGhlIHByZXNlbmNlIG9mCisgICAgICAgIHRoaXMuX2No
YXJ0c1BhZ2UgdW5saWtlIENoYXJ0UGFuZS4gSXQgYWxzbyBkb2Vzbid0IGhhdmUgdGhlIGhlYWRl
ciB3aXRoIHRvb2xiYXIgKHRvIHNob3cgYnJlYWtkb3duLCBldGMuLi4pLgorCisgICAgICAgICog
cHVibGljL3YzL2NvbXBvbmVudHMvYmFzZS5qczoKKyAgICAgICAgKENvbXBvbmVudEJhc2UucHJv
dG90eXBlLl9jb25zdHJ1Y3RTaGFkb3dUcmVlKTogQ2FsbCBodG1sVGVtcGxhdGUoKSBhbmQgY3Nz
VGVtcGxhdGUoKSB3aXRoIHRoZSByaWdodCAidGhpcyIuCisKKyAgICAgICAgKiBwdWJsaWMvdjMv
Y29tcG9uZW50cy9jaGFydC1wYW5lLWJhc2UuanM6IEFkZGVkLgorICAgICAgICAoQ2hhcnRQYW5l
QmFzZSk6IEV4dHJhY3RlZCBmcm9tIENoYXJ0UGFuZS4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2Uu
cHJvdG90eXBlLmNvbmZpZ3VyZSk6IEV4dHJhY3RlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4gU2Vw
YXJhdGluZyB0aGlzIGZ1bmN0aW9uIGFsbG93cyB0aGUKKyAgICAgICAgY29tcG9uZW50IHRvIGJl
IGluc3RhbnRpYXRlZCBpbnNpZGUgYSBIVE1MIHRlbXBsYXRlLgorICAgICAgICAoQ2hhcnRQYW5l
QmFzZS5wcm90b3R5cGUuX2ZldGNoQW5hbHlzaXNUYXNrcyk6IE1vdmVkIGZyb20gQ2hhcnRQYW5l
Ll9mZXRjaEFuYWx5c2lzVGFza3MuCisgICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5w
bGF0Zm9ybUlkKTogRGl0dG8uCisgICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5tZXRy
aWNJZCk6IERpdHRvLgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5wcm90b3R5cGUuc2V0T3ZlcnZp
ZXdEb21haW4pOiBEaXR0by4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLnNldE1h
aW5Eb21haW4pOiBEaXR0by4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl9vdmVy
dmlld1NlbGVjdGlvbkRpZENoYW5nZSk6IEV4dHJhY3RlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4g
VGhpcyBpcyBvdmVycmlkZGVuIGluCisgICAgICAgIENoYXJ0UGFuZSBhbmQgdW51c2VkIGluIEFu
YWx5c2lzVGFza0NoYXJ0UGFuZS4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl9t
YWluU2VsZWN0aW9uRGlkQ2hhbmdlKTogRXh0cmFjdGVkIGZyb20gQ2hhcnRQYW5lLl9tYWluU2Vs
ZWN0aW9uRGlkQ2hhbmdlLgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5wcm90b3R5cGUuX21haW5T
ZWxlY3Rpb25EaWRab29tKTogRXh0cmFjdGVkIGZyb20gQ2hhcnRQYW5lLl9tYWluU2VsZWN0aW9u
RGlkWm9vbS4KKyAgICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl9pbmRpY2F0b3JEaWRD
aGFuZ2UpOiBFeHRyYWN0ZWQgZnJvbSBDaGFydFBhbmUuX2luZGljYXRvckRpZENoYW5nZS4KKyAg
ICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLl9kaWRGZXRjaERhdGEpOiBNb3ZlZCBmcm9t
IENoYXJ0UGFuZS5fZmV0Y2hBbmFseXNpc1Rhc2tzLgorICAgICAgICAoQ2hhcnRQYW5lQmFzZS5w
cm90b3R5cGUuX29wZW5BbmFseXNpc1Rhc2spOiBEaXR0by4KKyAgICAgICAgKENoYXJ0UGFuZUJh
c2UucHJvdG90eXBlLl9vcGVuQ29tbWl0Vmlld2VyKTogRGl0dG8uIEFsc28gZml4ZWQgYSBidWcg
dGhhdCB3ZSBkb24ndCBzaG93IHRoZSBzcGlubmVyIHdoaWxlCisgICAgICAgIHdhaXRpbmcgZm9y
IHRoZSBkYXRhIHRvIGJlIGZldGNoZWQgYnkgY2FsbGluZyB0aGlzLnJlbmRlcigpIGhlcmUuCisg
ICAgICAgIChDaGFydFBhbmVCYXNlLnByb3RvdHlwZS5fa2V5dXApOiBNb3ZlZCBmcm9tIENoYXJ0
UGFuZS5fa2V5dXAuIEFsc28gZml4ZWQgdGhlIGJ1ZyB0aGF0IHRoZSByZXZpc2lvbnMgbGlzdAor
ICAgICAgICBkb2Vzbid0IHVwZGF0ZSBieSBjYWxsaW5nIHRoaXMucmVuZGVyKCkgaGVyZS4KKyAg
ICAgICAgKENoYXJ0UGFuZUJhc2UucHJvdG90eXBlLnJlbmRlcik6IEV4dHJhY3RlZCBmcm9tIENo
YXJ0UGFuZS5yZW5kZXIuCisgICAgICAgIChDaGFydFBhbmVCYXNlLmh0bWxUZW1wbGF0ZSk6IEV4
dHJhY3RlZCBmcm9tIENoYXJ0UGFuZS5odG1sVGVtcGxhdGUuCisgICAgICAgIChDaGFydFBhbmVC
YXNlLnBhbmVIZWFkZXJUZW1wbGF0ZSk6IEFkZGVkLiBUaGlzIGlzIG92ZXJyaWRkZW4gaW4gQ2hh
cnRQYW5lIGFuZCB1bnVzZWQgaW4gQW5hbHlzaXNUYXNrQ2hhcnRQYW5lLgorICAgICAgICAoQ2hh
cnRQYW5lQmFzZS5jc3NUZW1wbGF0ZSk6IEV4dHJhY3RlZCBmcm9tIENoYXJ0UGFuZS5odG1sVGVt
cGxhdGUuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9jaGFydC1zdHlsZXMuanM6
IFJlbmFtZWQgZnJvbSBwdWJsaWMvdjMvcGFnZXMvcGFnZS13aXRoLWNoYXJ0cy5qcy4KKyAgICAg
ICAgKFBhZ2VXaXRoQ2hhcnRzKTogUmVuYW1lZCBmcm9tIFBhZ2VXaXRoQ2hhcnRzIHNpbmNlIGl0
IG5vIGxvbmdlciBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZy4KKyAgICAgICAgKENoYXJ0U3R5bGVz
LmNyZWF0ZUNoYXJ0U291cmNlTGlzdCk6CisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50
cy9jb21taXQtbG9nLXZpZXdlci5qczoKKyAgICAgICAgKENvbW1pdExvZ1ZpZXdlci5wcm90b3R5
cGUudmlldyk6IFNldCB0aGlzLl9yZXBvc2l0b3J5IHJpZ2h0IGF3YXkgaW5zdGVhZCBvZiB3YWl0
aW5nIGZvciB0aGUgZmV0Y2hlZCBkYXRhCisgICAgICAgIHNvIHRoYXQgc3Bpbm5lciB3aWxsIGJl
IHNob3duIHdoaWxlIHRoZSBkYXRhIGlzIGJlaW5nIGZldGNoZWQuCisKKyAgICAgICAgKiBwdWJs
aWMvdjMvaW5kZXguaHRtbDoKKworICAgICAgICAqIHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy10
YXNrLXBhZ2UuanM6CisgICAgICAgIChBbmFseXNpc1Rhc2tDaGFydFBhbmUpOiBBZGRlZCBleHRl
bmRzIENoYXJ0UGFuZUJhc2UuCisgICAgICAgIChBbmFseXNpc1Rhc2tQYWdlKTogQWRkZWQuIHRo
aXMuX2NoYXJ0UGFuZS4KKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UucHJvdG90eXBlLl9kaWRG
ZXRjaFRhc2spOiBJbml0aWFsaXplIHRoaXMuX2NoYXJ0UGFuZSB3aXRoIGEgZG9tYWluLgorICAg
ICAgICAoQW5hbHlzaXNUYXNrUGFnZS5wcm90b3R5cGUucmVuZGVyKTogUmVuZGVyIHRoaXMuX2No
YXJ0UGFuZS4KKyAgICAgICAgKEFuYWx5c2lzVGFza1BhZ2UuaHRtbFRlbXBsYXRlKToKKworICAg
ICAgICAqIHB1YmxpYy92My9wYWdlcy9jaGFydC1wYW5lLXN0YXR1cy12aWV3LmpzOgorICAgICAg
ICAoQ2hhcnRQYW5lU3RhdHVzVmlldyk6IFJlbW92ZWQgdGhlIHVudXNlZCByb3V0ZXIgZnJvbSB0
aGUgYXJndW1lbnQgbGlzdC4KKyAgICAgICAgKENoYXJ0UGFuZVN0YXR1c1ZpZXcucHJvdG90eXBl
LnBvaW50c1JhbmdlRm9yQW5hbHlzaXMpOiBSZW5hbWVkIGZyb20gYW5hbHl6ZURhdGEoKSBzaW5j
ZSBpdCB3YXMgYW1iaWd1b3VzLgorICAgICAgICAoQ2hhcnRQYW5lU3RhdHVzVmlldy5wcm90b3R5
cGUubW92ZVJlcG9zaXRvcnlXaXRoTm90aWZpY2F0aW9uKTogRml4ZWQgdGhlIGJ1ZyB0aGF0IHdl
IGRvbid0IHVwZGF0ZSB0aGUgbGlzdAorICAgICAgICBvZiB0aGUgcmV2aXNpb25zIGhlcmUuCisg
ICAgICAgIChDaGFydFBhbmVTdGF0dXNWaWV3LnByb3RvdHlwZS5jb21wdXRlQ2hhcnRTdGF0dXNM
YWJlbHMpOgorCisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanM6CisgICAg
ICAgIChDaGFydFBhbmUpOiBOb3cgZXh0ZW5kcyBDaGFydFBhbmVCYXNlLiAKKyAgICAgICAgKENo
YXJ0UGFuZS5wcm90b3R5cGUuX292ZXJ2aWV3U2VsZWN0aW9uRGlkQ2hhbmdlKTogRXh0cmFjdGVk
IGZyb20gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fbWFp
blNlbGVjdGlvbkRpZENoYW5nZSk6IAorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fbWFp
blNlbGVjdGlvbkRpZFpvb20pOgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5faW5kaWNh
dG9yRGlkQ2hhbmdlKToKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUucmVuZGVyKToKKyAg
ICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuX3JlbmRlckFjdGlvblRvb2xiYXIpOgorICAgICAg
ICAoQ2hhcnRQYW5lLnBhbmVIZWFkZXJUZW1wbGF0ZSk6IEV4dHJhY3RlZCBmcm9tIGh0bWxUZW1w
bGF0ZS4KKyAgICAgICAgKENoYXJ0UGFuZS5jc3NUZW1wbGF0ZSk6CisgICAgICAgIChDaGFydFBh
bmUub3ZlcnZpZXdPcHRpb25zLnNlbGVjdGlvbi5vbmNoYW5nZSk6IERlbGV0ZWQuCisgICAgICAg
IChDaGFydFBhbmUucHJvdG90eXBlLl9mZXRjaEFuYWx5c2lzVGFza3MpOiBEZWxldGVkLgorICAg
ICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5wbGF0Zm9ybUlkKTogRGVsZXRlZC4KKyAgICAgICAg
KENoYXJ0UGFuZS5wcm90b3R5cGUubWV0cmljSWQpOiBEZWxldGVkLgorICAgICAgICAoQ2hhcnRQ
YW5lLnByb3RvdHlwZS5zZXRPdmVydmlld0RvbWFpbik6IERlbGV0ZWQuCisgICAgICAgIChDaGFy
dFBhbmUucHJvdG90eXBlLnNldE1haW5Eb21haW4pOiBEZWxldGVkLgorICAgICAgICAoQ2hhcnRQ
YW5lLnByb3RvdHlwZS5fb3BlbkNvbW1pdFZpZXdlcik6IERlbGV0ZWQuCisgICAgICAgIChDaGFy
dFBhbmUucHJvdG90eXBlLl9kaWRGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoQ2hhcnRQ
YW5lLnByb3RvdHlwZS5fa2V5dXApOiBEZWxldGVkLgorCisgICAgICAgICogcHVibGljL3YzL3Bh
Z2VzL2NoYXJ0cy1wYWdlLmpzOgorICAgICAgICAoQ2hhcnRzUGFnZSk6CisgICAgICAgIChDaGFy
dHNQYWdlLmNyZWF0ZURvbWFpbkZvckFuYWx5c2lzVGFzayk6IEV4dHJhY3RlZCBieSBjcmVhdGVE
b21haW5Gb3JBbmFseXNpc1Rhc2s7IHVzZWQgdG8gc2V0IHRoZSBkb21haW4KKyAgICAgICAgb2Yg
dGhlIGNoYXJ0cyBpbiB0aGUgYW5hbHlzaXMgdGFzayBwYWdlLgorICAgICAgICAoQ2hhcnRzUGFn
ZS5jcmVhdGVTdGF0ZUZvckFuYWx5c2lzVGFzayk6CisKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFn
ZXMvZGFzaGJvYXJkLXBhZ2UuanM6CisgICAgICAgIChEYXNoYm9hcmRQYWdlKToKKyAgICAgICAg
KERhc2hib2FyZFBhZ2UucHJvdG90eXBlLl9jcmVhdGVDaGFydEZvckNlbGwpOgorCiAyMDE2LTAy
LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFuYWx5c2lz
IHRhc2sgcGFnZSBvbiB2MyBzaG93IHByb2dyZXNzaW9uIGFzIHJlZ3Jlc3Npb25zCkluZGV4OiBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCShyZXZpc2lv
biAxOTYzNTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTc0LDEyICs3NCwxMyBAQCBSdW4gdG9vbHMvYnVuZGxlLXYz
LXNjcmlwdHMgdG8gc3BlZWQgdXAgCiAgICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL3Jl
c3VsdHMtdGFibGUuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iY29tcG9uZW50
cy9hbmFseXNpcy1yZXN1bHRzLXZpZXdlci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQg
c3JjPSJjb21wb25lbnRzL3Rlc3QtZ3JvdXAtcmVzdWx0cy10YWJsZS5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL2NoYXJ0LXN0eWxlcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL2NoYXJ0LXBhbmUtYmFzZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJwYWdlcy9wYWdlLmpzIj48L3NjcmlwdD4KICAg
ICAgICAgPHNjcmlwdCBzcmM9InBhZ2VzL3BhZ2Utcm91dGVyLmpzIj48L3NjcmlwdD4KICAgICAg
ICAgPHNjcmlwdCBzcmM9InBhZ2VzL2hlYWRpbmcuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2Ny
aXB0IHNyYz0icGFnZXMvdG9vbGJhci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSJwYWdlcy9wYWdlLXdpdGgtaGVhZGluZy5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQg
c3JjPSJwYWdlcy9wYWdlLXdpdGgtY2hhcnRzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlw
dCBzcmM9InBhZ2VzL2RvbWFpbi1jb250cm9sLXRvb2xiYXIuanMiPjwvc2NyaXB0PgogICAgICAg
ICA8c2NyaXB0IHNyYz0icGFnZXMvZGFzaGJvYXJkLXRvb2xiYXIuanMiPjwvc2NyaXB0PgogICAg
ICAgICA8c2NyaXB0IHNyYz0icGFnZXMvZGFzaGJvYXJkLXBhZ2UuanMiPjwvc2NyaXB0PgpJbmRl
eDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2Jhc2UuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL2Jhc2UuanMJKHJldmlzaW9uIDE5NjM1MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvY29tcG9uZW50cy9iYXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNCAr
MzksMTQgQEAgY2xhc3MgQ29tcG9uZW50QmFzZSB7CiAKICAgICAgICAgaWYgKGh0bWxUZW1wbGF0
ZSkgewogICAgICAgICAgICAgdmFyIHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dGVtcGxhdGUnKTsKLSAgICAgICAgICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IGh0bWxUZW1wbGF0
ZSgpOworICAgICAgICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gbmV3VGFyZ2V0Lmh0bWxUZW1w
bGF0ZSgpOwogICAgICAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKHRlbXBsYXRlLmNvbnRlbnQu
Y2xvbmVOb2RlKHRydWUpKTsKICAgICAgICAgICAgIHRoaXMuX3JlY3Vyc2l2ZWx5UmVwbGFjZVVu
a25vd25FbGVtZW50c0J5Q29tcG9uZW50cyhzaGFkb3cpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKGNzc1RlbXBsYXRlKSB7CiAgICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzdHlsZScpOwotICAgICAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBjc3NU
ZW1wbGF0ZSgpOworICAgICAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBuZXdUYXJnZXQuY3Nz
VGVtcGxhdGUoKTsKICAgICAgICAgICAgIHNoYWRvdy5hcHBlbmRDaGlsZChzdHlsZSk7CiAgICAg
ICAgIH0KIApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25l
bnRzL2NoYXJ0LXBhbmUtYmFzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtcGFuZS1iYXNlLmpzCShyZXZpc2lvbiAw
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0
LXBhbmUtYmFzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYxMiBAQAorCitjbGFzcyBD
aGFydFBhbmVCYXNlIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CisKKyAgICBjb25zdHJ1Y3Rvcihu
YW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSk7CisKKyAgICAgICAgdGhpcy5fZXJyb3JN
ZXNzYWdlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcGxhdGZvcm1JZCA9IG51bGw7CisgICAgICAg
IHRoaXMuX21ldHJpY0lkID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcGxhdGZvcm0gPSBudWxsOwor
ICAgICAgICB0aGlzLl9tZXRyaWMgPSBudWxsOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2hh
cnQgPSBudWxsOworICAgICAgICB0aGlzLl9tYWluQ2hhcnQgPSBudWxsOworICAgICAgICB0aGlz
Ll9tYWluQ2hhcnRTdGF0dXMgPSBudWxsOworICAgICAgICB0aGlzLl9jb21taXRMb2dWaWV3ZXIg
PSBudWxsOworICAgIH0KKworICAgIGNvbmZpZ3VyZShwbGF0Zm9ybUlkLCBtZXRyaWNJZCkKKyAg
ICB7CisgICAgICAgIHZhciByZXN1bHQgPSBDaGFydFN0eWxlcy5jcmVhdGVDaGFydFNvdXJjZUxp
c3QocGxhdGZvcm1JZCwgbWV0cmljSWQpOworICAgICAgICB0aGlzLl9lcnJvck1lc3NhZ2UgPSBy
ZXN1bHQuZXJyb3I7CisgICAgICAgIHRoaXMuX3BsYXRmb3JtSWQgPSBwbGF0Zm9ybUlkOworICAg
ICAgICB0aGlzLl9tZXRyaWNJZCA9IG1ldHJpY0lkOworICAgICAgICB0aGlzLl9wbGF0Zm9ybSA9
IHJlc3VsdC5wbGF0Zm9ybTsKKyAgICAgICAgdGhpcy5fbWV0cmljID0gcmVzdWx0Lm1ldHJpYzsK
KworICAgICAgICB0aGlzLl9vdmVydmlld0NoYXJ0ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fbWFp
bkNoYXJ0ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVzID0gbnVsbDsKKwor
ICAgICAgICB0aGlzLl9jb21taXRMb2dWaWV3ZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVj
dG9yKCdjb21taXQtbG9nLXZpZXdlcicpLmNvbXBvbmVudCgpOworCisgICAgICAgIGlmIChyZXN1
bHQuZXJyb3IpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGZvcm1hdHRlciA9
IHJlc3VsdC5tZXRyaWMubWFrZUZvcm1hdHRlcig0KTsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlz
OworCisgICAgICAgIHZhciBvdmVydmlld09wdGlvbnMgPSBDaGFydFN0eWxlcy5vdmVydmlld0No
YXJ0T3B0aW9ucyhmb3JtYXR0ZXIpOworICAgICAgICBvdmVydmlld09wdGlvbnMuc2VsZWN0aW9u
Lm9uY2hhbmdlID0gdGhpcy5fb3ZlcnZpZXdTZWxlY3Rpb25EaWRDaGFuZ2UuYmluZCh0aGlzKTsK
KworICAgICAgICB0aGlzLl9vdmVydmlld0NoYXJ0ID0gbmV3IEludGVyYWN0aXZlVGltZVNlcmll
c0NoYXJ0KHJlc3VsdC5zb3VyY2VMaXN0LCBvdmVydmlld09wdGlvbnMpOworICAgICAgICB0aGlz
LnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUt
b3ZlcnZpZXcnKSwgdGhpcy5fb3ZlcnZpZXdDaGFydCk7CisKKyAgICAgICAgdmFyIG1haW5PcHRp
b25zID0gQ2hhcnRTdHlsZXMubWFpbkNoYXJ0T3B0aW9ucyhmb3JtYXR0ZXIpOworICAgICAgICBt
YWluT3B0aW9ucy5pbmRpY2F0b3Iub25jaGFuZ2UgPSB0aGlzLl9pbmRpY2F0b3JEaWRDaGFuZ2Uu
YmluZCh0aGlzKTsKKyAgICAgICAgbWFpbk9wdGlvbnMuc2VsZWN0aW9uLm9uY2hhbmdlID0gdGhp
cy5fbWFpblNlbGVjdGlvbkRpZENoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICBtYWluT3B0aW9u
cy5zZWxlY3Rpb24ub256b29tID0gdGhpcy5fbWFpblNlbGVjdGlvbkRpZFpvb20uYmluZCh0aGlz
KTsKKyAgICAgICAgbWFpbk9wdGlvbnMuYW5ub3RhdGlvbnMub25jbGljayA9IHRoaXMuX29wZW5B
bmFseXNpc1Rhc2suYmluZCh0aGlzKTsKKyAgICAgICAgbWFpbk9wdGlvbnMub25kYXRhID0gdGhp
cy5fZGlkRmV0Y2hEYXRhLmJpbmQodGhpcyk7CisgICAgICAgIHRoaXMuX21haW5DaGFydCA9IG5l
dyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydChyZXN1bHQuc291cmNlTGlzdCwgbWFpbk9wdGlv
bnMpOworICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCkucXVlcnlTZWxl
Y3RvcignLmNoYXJ0LXBhbmUtbWFpbicpLCB0aGlzLl9tYWluQ2hhcnQpOworCisgICAgICAgIHRo
aXMuX21haW5DaGFydFN0YXR1cyA9IG5ldyBDaGFydFBhbmVTdGF0dXNWaWV3KHJlc3VsdC5tZXRy
aWMsIHRoaXMuX21haW5DaGFydCwgdGhpcy5fb3BlbkNvbW1pdFZpZXdlci5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3Io
Jy5jaGFydC1wYW5lLWRldGFpbHMnKSwgdGhpcy5fbWFpbkNoYXJ0U3RhdHVzKTsKKworICAgICAg
ICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuY2hhcnQtcGFuZScpLmFkZEV2ZW50TGlz
dGVuZXIoJ2tleXVwJywgdGhpcy5fa2V5dXAuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5f
ZmV0Y2hBbmFseXNpc1Rhc2tzKHBsYXRmb3JtSWQsIG1ldHJpY0lkKTsKKyAgICB9CisKKyAgICBf
ZmV0Y2hBbmFseXNpc1Rhc2tzKHBsYXRmb3JtSWQsIG1ldHJpY0lkKQorICAgIHsKKyAgICAgICAg
dmFyIHNlbGYgPSB0aGlzOworICAgICAgICBBbmFseXNpc1Rhc2suZmV0Y2hCeVBsYXRmb3JtQW5k
TWV0cmljKHBsYXRmb3JtSWQsIG1ldHJpY0lkKS50aGVuKGZ1bmN0aW9uICh0YXNrcykgeworICAg
ICAgICAgICAgc2VsZi5fbWFpbkNoYXJ0LnNldEFubm90YXRpb25zKHRhc2tzLm1hcChmdW5jdGlv
biAodGFzaykgeworICAgICAgICAgICAgICAgIHZhciBmaWxsU3R5bGUgPSAnI2ZjNic7CisgICAg
ICAgICAgICAgICAgc3dpdGNoICh0YXNrLmNoYW5nZVR5cGUoKSkgeworICAgICAgICAgICAgICAg
IGNhc2UgJ2luY29uY2x1c2l2ZSc6CisgICAgICAgICAgICAgICAgICAgIGZpbGxTdHlsZSA9ICcj
ZmNjJzsKKyAgICAgICAgICAgICAgICBjYXNlICdwcm9ncmVzc2lvbic6CisgICAgICAgICAgICAg
ICAgICAgIGZpbGxTdHlsZSA9ICcjMzlmJzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgY2FzZSAncmVncmVzc2lvbic6CisgICAgICAgICAgICAgICAgICAgIGZp
bGxTdHlsZSA9ICcjYzYwJzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSAndW5jaGFuZ2VkJzoKKyAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlID0g
JyNjY2MnOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICB0YXNrOiB0YXNr
LAorICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHRhc2suc3RhcnRUaW1lKCksCisgICAg
ICAgICAgICAgICAgICAgIGVuZFRpbWU6IHRhc2suZW5kVGltZSgpLAorICAgICAgICAgICAgICAg
ICAgICBsYWJlbDogdGFzay5sYWJlbCgpLAorICAgICAgICAgICAgICAgICAgICBmaWxsU3R5bGU6
IGZpbGxTdHlsZSwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSkpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBwbGF0Zm9ybUlkKCkgeyByZXR1cm4gdGhpcy5fcGxhdGZvcm1J
ZDsgfQorICAgIG1ldHJpY0lkKCkgeyByZXR1cm4gdGhpcy5fbWV0cmljSWQ7IH0KKworICAgIHNl
dE92ZXJ2aWV3RG9tYWluKHN0YXJ0VGltZSwgZW5kVGltZSkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLl9vdmVydmlld0NoYXJ0KQorICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydC5zZXRE
b21haW4oc3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAgICB9CisKKyAgICBzZXRNYWluRG9tYWluKHN0
YXJ0VGltZSwgZW5kVGltZSkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9tYWluQ2hhcnQpCisg
ICAgICAgICAgICB0aGlzLl9tYWluQ2hhcnQuc2V0RG9tYWluKHN0YXJ0VGltZSwgZW5kVGltZSk7
CisgICAgfQorCisgICAgX292ZXJ2aWV3U2VsZWN0aW9uRGlkQ2hhbmdlKGRvbWFpbiwgZGlkRW5k
RHJhZykgeyB9CisKKyAgICBfbWFpblNlbGVjdGlvbkRpZENoYW5nZShzZWxlY3Rpb24sIGRpZEVu
ZERyYWcpCisgICAgeworICAgICAgICB0aGlzLnJlbmRlcigpOworICAgIH0KKworICAgIF9tYWlu
U2VsZWN0aW9uRGlkWm9vbShzZWxlY3Rpb24pCisgICAgeworICAgICAgICB0aGlzLl9vdmVydmll
d0NoYXJ0LnNldFNlbGVjdGlvbihzZWxlY3Rpb24sIHRoaXMpOworICAgICAgICB0aGlzLl9tYWlu
Q2hhcnQuc2V0U2VsZWN0aW9uKG51bGwpOworICAgICAgICB0aGlzLnJlbmRlcigpOworICAgIH0K
KworICAgIF9pbmRpY2F0b3JEaWRDaGFuZ2UoaW5kaWNhdG9ySUQsIGlzTG9ja2VkKQorICAgIHsK
KyAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVzLnVwZGF0ZVJldmlzaW9uTGlzdFdpdGhOb3Rp
ZmljYXRpb24oKTsKKyAgICAgICAgdGhpcy5yZW5kZXIoKTsKKyAgICB9CisKKyAgICBfZGlkRmV0
Y2hEYXRhKCkKKyAgICB7CisgICAgICAgIHRoaXMuX21haW5DaGFydFN0YXR1cy51cGRhdGVSZXZp
c2lvbkxpc3RXaXRoTm90aWZpY2F0aW9uKCk7CisgICAgICAgIHRoaXMucmVuZGVyKCk7CisgICAg
fQorCisgICAgX29wZW5BbmFseXNpc1Rhc2soKQorICAgIHsgfQorCisgICAgX29wZW5Db21taXRW
aWV3ZXIocmVwb3NpdG9yeSwgZnJvbSwgdG8pCisgICAgeworICAgICAgICB0aGlzLl9tYWluQ2hh
cnRTdGF0dXMuc2V0Q3VycmVudFJlcG9zaXRvcnkocmVwb3NpdG9yeSk7CisgICAgICAgIHRoaXMu
X2NvbW1pdExvZ1ZpZXdlci52aWV3KHJlcG9zaXRvcnksIGZyb20sIHRvKS50aGVuKHRoaXMucmVu
ZGVyLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLnJlbmRlcigpOworICAgIH0KKworICAgIF9r
ZXl1cChldmVudCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkgeworICAg
ICAgICBjYXNlIDM3OiAvLyBMZWZ0CisgICAgICAgICAgICBpZiAoIXRoaXMuX21haW5DaGFydC5t
b3ZlTG9ja2VkSW5kaWNhdG9yV2l0aE5vdGlmaWNhdGlvbihmYWxzZSkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzk6IC8vIFJpZ2h0
CisgICAgICAgICAgICBpZiAoIXRoaXMuX21haW5DaGFydC5tb3ZlTG9ja2VkSW5kaWNhdG9yV2l0
aE5vdGlmaWNhdGlvbih0cnVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzODogLy8gVXAKKyAgICAgICAgICAgIGlmICghdGhpcy5f
bWFpbkNoYXJ0U3RhdHVzLm1vdmVSZXBvc2l0b3J5V2l0aE5vdGlmaWNhdGlvbihmYWxzZSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIDQwOiAvLyBEb3duCisgICAgICAg
ICAgICBpZiAoIXRoaXMuX21haW5DaGFydFN0YXR1cy5tb3ZlUmVwb3NpdG9yeVdpdGhOb3RpZmlj
YXRpb24odHJ1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5yZW5kZXIoKTsK
KworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBldmVudC5zdG9wUHJv
cGFnYXRpb24oKTsKKyAgICB9CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgSW5zdHJ1
bWVudGF0aW9uLnN0YXJ0TWVhc3VyaW5nVGltZSgnQ2hhcnRQYW5lJywgJ3JlbmRlcicpOworCisg
ICAgICAgIHN1cGVyLnJlbmRlcigpOworCisgICAgICAgIGlmICh0aGlzLl9lcnJvck1lc3NhZ2Up
IHsKKyAgICAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoKS5xdWVyeVNl
bGVjdG9yKCcuY2hhcnQtcGFuZS1tYWluJyksIHRoaXMuX2Vycm9yTWVzc2FnZSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fbWFpbkNoYXJ0U3Rh
dHVzKQorICAgICAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVzLnJlbmRlcigpOworCisgICAg
ICAgIHZhciBib2R5ID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUt
Ym9keScpOworICAgICAgICBpZiAodGhpcy5fY29tbWl0TG9nVmlld2VyICYmIHRoaXMuX2NvbW1p
dExvZ1ZpZXdlci5jdXJyZW50UmVwb3NpdG9yeSgpKSB7CisgICAgICAgICAgICBib2R5LmNsYXNz
TGlzdC5hZGQoJ2hhcy1zZWNvbmQtc2lkZWJhcicpOworICAgICAgICAgICAgdGhpcy5fY29tbWl0
TG9nVmlld2VyLnJlbmRlcigpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJvZHkuY2xh
c3NMaXN0LnJlbW92ZSgnaGFzLXNlY29uZC1zaWRlYmFyJyk7CisKKyAgICAgICAgSW5zdHJ1bWVu
dGF0aW9uLmVuZE1lYXN1cmluZ1RpbWUoJ0NoYXJ0UGFuZScsICdyZW5kZXInKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgCisgICAg
ICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY2hhcnQtcGFuZSIgdGFiaW5kZXg9IjAiPgorICAgICAg
ICAgICAgICAgICR7dGhpcy5wYW5lSGVhZGVyVGVtcGxhdGUoKX0KKyAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJjaGFydC1wYW5lLWJvZHkiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJjaGFydC1wYW5lLW1haW4iPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJjaGFydC1wYW5lLXNpZGViYXIiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0iY2hhcnQtcGFuZS1vdmVydmlldyI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJjaGFydC1wYW5lLWRldGFpbHMiPjwvZGl2PgorICAgICAgICAgICAgICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtcGFuZS1z
ZWNvbmQtc2lkZWJhciI+CisgICAgICAgICAgICAgICAgICAgICAgICA8Y29tbWl0LWxvZy12aWV3
ZXI+PC9jb21taXQtbG9nLXZpZXdlcj4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAg
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgIGA7Cisg
ICAgfQorCisgICAgc3RhdGljIHBhbmVIZWFkZXJUZW1wbGF0ZSgpIHsgcmV0dXJuICcnOyB9CisK
KyAgICBzdGF0aWMgY3NzVGVtcGxhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFRvb2xiYXIu
Y3NzVGVtcGxhdGUoKSArIGAKKyAgICAgICAgICAgIC5jaGFydC1wYW5lIHsKKyAgICAgICAgICAg
ICAgICBtYXJnaW46IDFyZW07CisgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsK
KyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcmVtOworICAgICAgICAgICAgICAgIGhlaWdodDog
MThyZW07CisgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLmNoYXJ0LXBhbmU6Zm9jdXMgLmNoYXJ0LXBhbmUtaGVhZGVyIHsKKyAgICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwNCwgMTUzLCA1MSwgMC4xKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLmNoYXJ0LXBhbmUtYm9keSB7CisgICAgICAgICAgICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAg
ICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNo
YXJ0LXBhbmUtbWFpbiB7CisgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjByZW07Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsK
KyAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgICAgICAgICAgICAg
IHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmhhcy1z
ZWNvbmQtc2lkZWJhciAuY2hhcnQtcGFuZS1tYWluIHsKKyAgICAgICAgICAgICAgICBwYWRkaW5n
LXJpZ2h0OiA0MHJlbTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNoYXJ0LXBhbmUt
bWFpbiA+ICogeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgICAg
IGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNoYXJ0LXBhbmUt
c2lkZWJhciwKKyAgICAgICAgICAgIC5jaGFydC1wYW5lLXNlY29uZC1zaWRlYmFyIHsKKyAgICAg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICAgICAgcmlnaHQ6IDA7
CisgICAgICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgICAgIHdpZHRoOiAwOworICAg
ICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI2NjYzsKKyAgICAgICAgICAgICAg
ICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIDpub3QoLmhhcy1z
ZWNvbmQtc2lkZWJhcikgPiAuY2hhcnQtcGFuZS1zZWNvbmQtc2lkZWJhciB7CisgICAgICAgICAg
ICAgICAgYm9yZGVyLWxlZnQ6IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5jaGFy
dC1wYW5lLXNpZGViYXIgeworICAgICAgICAgICAgICAgIHdpZHRoOiAyMHJlbTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLmhhcy1zZWNvbmQtc2lkZWJhciAuY2hhcnQtcGFuZS1zaWRl
YmFyIHsKKyAgICAgICAgICAgICAgICByaWdodDogMjByZW07CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5oYXMtc2Vjb25kLXNpZGViYXIgLmNoYXJ0LXBhbmUtc2Vjb25kLXNpZGViYXIg
eworICAgICAgICAgICAgICAgIHdpZHRoOiAyMHJlbTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLmNoYXJ0LXBhbmUtb3ZlcnZpZXcgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAl
OworICAgICAgICAgICAgICAgIGhlaWdodDogNXJlbTsKKyAgICAgICAgICAgICAgICBib3JkZXIt
Ym90dG9tOiBzb2xpZCAxcHggI2NjYzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNo
YXJ0LXBhbmUtb3ZlcnZpZXcgPiAqIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsK
KyAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5jaGFydC1wYW5lLWRldGFpbHMgewor
ICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgICAgICBkaXNw
bGF5OiBibG9jazsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDUuNXJlbSAt
IDJweCk7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOworICAgICAgICAgICAg
ICAgIHBhZGRpbmctdG9wOiAwLjVyZW07CisgICAgICAgICAgICB9CisgICAgICAgIGA7CisgICAg
fQorCit9CisKK2NsYXNzIENoYXJ0UGFuZUJhc2UgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKKwor
ICAgIGNvbnN0cnVjdG9yKG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lKTsKKworICAg
ICAgICB0aGlzLl9lcnJvck1lc3NhZ2UgPSBudWxsOworICAgICAgICB0aGlzLl9wbGF0Zm9ybUlk
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fbWV0cmljSWQgPSBudWxsOworICAgICAgICB0aGlzLl9w
bGF0Zm9ybSA9IG51bGw7CisgICAgICAgIHRoaXMuX21ldHJpYyA9IG51bGw7CisKKyAgICAgICAg
dGhpcy5fb3ZlcnZpZXdDaGFydCA9IG51bGw7CisgICAgICAgIHRoaXMuX21haW5DaGFydCA9IG51
bGw7CisgICAgICAgIHRoaXMuX21haW5DaGFydFN0YXR1cyA9IG51bGw7CisgICAgICAgIHRoaXMu
X2NvbW1pdExvZ1ZpZXdlciA9IG51bGw7CisgICAgfQorCisgICAgY29uZmlndXJlKHBsYXRmb3Jt
SWQsIG1ldHJpY0lkKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IENoYXJ0U3R5bGVzLmNy
ZWF0ZUNoYXJ0U291cmNlTGlzdChwbGF0Zm9ybUlkLCBtZXRyaWNJZCk7CisgICAgICAgIHRoaXMu
X2Vycm9yTWVzc2FnZSA9IHJlc3VsdC5lcnJvcjsKKyAgICAgICAgdGhpcy5fcGxhdGZvcm1JZCA9
IHBsYXRmb3JtSWQ7CisgICAgICAgIHRoaXMuX21ldHJpY0lkID0gbWV0cmljSWQ7CisgICAgICAg
IHRoaXMuX3BsYXRmb3JtID0gcmVzdWx0LnBsYXRmb3JtOworICAgICAgICB0aGlzLl9tZXRyaWMg
PSByZXN1bHQubWV0cmljOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2hhcnQgPSBudWxsOwor
ICAgICAgICB0aGlzLl9tYWluQ2hhcnQgPSBudWxsOworICAgICAgICB0aGlzLl9tYWluQ2hhcnRT
dGF0dXMgPSBudWxsOworCisgICAgICAgIHRoaXMuX2NvbW1pdExvZ1ZpZXdlciA9IHRoaXMuY29u
dGVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2NvbW1pdC1sb2ctdmlld2VyJykuY29tcG9uZW50KCk7CisK
KyAgICAgICAgaWYgKHJlc3VsdC5lcnJvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB2YXIgZm9ybWF0dGVyID0gcmVzdWx0Lm1ldHJpYy5tYWtlRm9ybWF0dGVyKDQpOworICAgICAg
ICB2YXIgc2VsZiA9IHRoaXM7CisKKyAgICAgICAgdmFyIG92ZXJ2aWV3T3B0aW9ucyA9IENoYXJ0
U3R5bGVzLm92ZXJ2aWV3Q2hhcnRPcHRpb25zKGZvcm1hdHRlcik7CisgICAgICAgIG92ZXJ2aWV3
T3B0aW9ucy5zZWxlY3Rpb24ub25jaGFuZ2UgPSB0aGlzLl9vdmVydmlld1NlbGVjdGlvbkRpZENo
YW5nZS5iaW5kKHRoaXMpOworCisgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2hhcnQgPSBuZXcgSW50
ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQocmVzdWx0LnNvdXJjZUxpc3QsIG92ZXJ2aWV3T3B0aW9u
cyk7CisgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVj
dG9yKCcuY2hhcnQtcGFuZS1vdmVydmlldycpLCB0aGlzLl9vdmVydmlld0NoYXJ0KTsKKworICAg
ICAgICB2YXIgbWFpbk9wdGlvbnMgPSBDaGFydFN0eWxlcy5tYWluQ2hhcnRPcHRpb25zKGZvcm1h
dHRlcik7CisgICAgICAgIG1haW5PcHRpb25zLmluZGljYXRvci5vbmNoYW5nZSA9IHRoaXMuX2lu
ZGljYXRvckRpZENoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICBtYWluT3B0aW9ucy5zZWxlY3Rp
b24ub25jaGFuZ2UgPSB0aGlzLl9tYWluU2VsZWN0aW9uRGlkQ2hhbmdlLmJpbmQodGhpcyk7Cisg
ICAgICAgIG1haW5PcHRpb25zLnNlbGVjdGlvbi5vbnpvb20gPSB0aGlzLl9tYWluU2VsZWN0aW9u
RGlkWm9vbS5iaW5kKHRoaXMpOworICAgICAgICBtYWluT3B0aW9ucy5hbm5vdGF0aW9ucy5vbmNs
aWNrID0gdGhpcy5fb3BlbkFuYWx5c2lzVGFzay5iaW5kKHRoaXMpOworICAgICAgICBtYWluT3B0
aW9ucy5vbmRhdGEgPSB0aGlzLl9kaWRGZXRjaERhdGEuYmluZCh0aGlzKTsKKyAgICAgICAgdGhp
cy5fbWFpbkNoYXJ0ID0gbmV3IEludGVyYWN0aXZlVGltZVNlcmllc0NoYXJ0KHJlc3VsdC5zb3Vy
Y2VMaXN0LCBtYWluT3B0aW9ucyk7CisgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNv
bnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcuY2hhcnQtcGFuZS1tYWluJyksIHRoaXMuX21haW5DaGFy
dCk7CisKKyAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVzID0gbmV3IENoYXJ0UGFuZVN0YXR1
c1ZpZXcocmVzdWx0Lm1ldHJpYywgdGhpcy5fbWFpbkNoYXJ0LCB0aGlzLl9vcGVuQ29tbWl0Vmll
d2VyLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50
KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtZGV0YWlscycpLCB0aGlzLl9tYWluQ2hhcnRT
dGF0dXMpOworCisgICAgICAgIHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1w
YW5lJykuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9rZXl1cC5iaW5kKHRoaXMpKTsK
KworICAgICAgICB0aGlzLl9mZXRjaEFuYWx5c2lzVGFza3MocGxhdGZvcm1JZCwgbWV0cmljSWQp
OworICAgIH0KKworICAgIF9mZXRjaEFuYWx5c2lzVGFza3MocGxhdGZvcm1JZCwgbWV0cmljSWQp
CisgICAgeworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIEFuYWx5c2lzVGFzay5m
ZXRjaEJ5UGxhdGZvcm1BbmRNZXRyaWMocGxhdGZvcm1JZCwgbWV0cmljSWQpLnRoZW4oZnVuY3Rp
b24gKHRhc2tzKSB7CisgICAgICAgICAgICBzZWxmLl9tYWluQ2hhcnQuc2V0QW5ub3RhdGlvbnMo
dGFza3MubWFwKGZ1bmN0aW9uICh0YXNrKSB7CisgICAgICAgICAgICAgICAgdmFyIGZpbGxTdHls
ZSA9ICcjZmM2JzsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHRhc2suY2hhbmdlVHlwZSgpKSB7
CisgICAgICAgICAgICAgICAgY2FzZSAnaW5jb25jbHVzaXZlJzoKKyAgICAgICAgICAgICAgICAg
ICAgZmlsbFN0eWxlID0gJyNmY2MnOworICAgICAgICAgICAgICAgIGNhc2UgJ3Byb2dyZXNzaW9u
JzoKKyAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlID0gJyMzOWYnOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdyZWdyZXNzaW9uJzoKKyAgICAg
ICAgICAgICAgICAgICAgZmlsbFN0eWxlID0gJyNjNjAnOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd1bmNoYW5nZWQnOgorICAgICAgICAgICAgICAg
ICAgICBmaWxsU3R5bGUgPSAnI2NjYyc7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAg
ICAgICAgIHRhc2s6IHRhc2ssCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdGFzay5z
dGFydFRpbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdGFzay5lbmRUaW1lKCks
CisgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0YXNrLmxhYmVsKCksCisgICAgICAgICAgICAg
ICAgICAgIGZpbGxTdHlsZTogZmlsbFN0eWxlLAorICAgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICB9KSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHBsYXRmb3JtSWQoKSB7IHJldHVy
biB0aGlzLl9wbGF0Zm9ybUlkOyB9CisgICAgbWV0cmljSWQoKSB7IHJldHVybiB0aGlzLl9tZXRy
aWNJZDsgfQorCisgICAgc2V0T3ZlcnZpZXdEb21haW4oc3RhcnRUaW1lLCBlbmRUaW1lKQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX292ZXJ2aWV3Q2hhcnQpCisgICAgICAgICAgICB0aGlzLl9v
dmVydmlld0NoYXJ0LnNldERvbWFpbihzdGFydFRpbWUsIGVuZFRpbWUpOworICAgIH0KKworICAg
IHNldE1haW5Eb21haW4oc3RhcnRUaW1lLCBlbmRUaW1lKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX21haW5DaGFydCkKKyAgICAgICAgICAgIHRoaXMuX21haW5DaGFydC5zZXREb21haW4oc3Rh
cnRUaW1lLCBlbmRUaW1lKTsKKyAgICB9CisKKyAgICBfb3ZlcnZpZXdTZWxlY3Rpb25EaWRDaGFu
Z2UoZG9tYWluLCBkaWRFbmREcmFnKSB7IH0KKworICAgIF9tYWluU2VsZWN0aW9uRGlkQ2hhbmdl
KHNlbGVjdGlvbiwgZGlkRW5kRHJhZykKKyAgICB7CisgICAgICAgIHRoaXMucmVuZGVyKCk7Cisg
ICAgfQorCisgICAgX21haW5TZWxlY3Rpb25EaWRab29tKHNlbGVjdGlvbikKKyAgICB7CisgICAg
ICAgIHRoaXMuX292ZXJ2aWV3Q2hhcnQuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgdGhpcyk7Cisg
ICAgICAgIHRoaXMuX21haW5DaGFydC5zZXRTZWxlY3Rpb24obnVsbCk7CisgICAgICAgIHRoaXMu
cmVuZGVyKCk7CisgICAgfQorCisgICAgX2luZGljYXRvckRpZENoYW5nZShpbmRpY2F0b3JJRCwg
aXNMb2NrZWQpCisgICAgeworICAgICAgICB0aGlzLl9tYWluQ2hhcnRTdGF0dXMudXBkYXRlUmV2
aXNpb25MaXN0V2l0aE5vdGlmaWNhdGlvbigpOworICAgICAgICB0aGlzLnJlbmRlcigpOworICAg
IH0KKworICAgIF9kaWRGZXRjaERhdGEoKQorICAgIHsKKyAgICAgICAgdGhpcy5fbWFpbkNoYXJ0
U3RhdHVzLnVwZGF0ZVJldmlzaW9uTGlzdFdpdGhOb3RpZmljYXRpb24oKTsKKyAgICAgICAgdGhp
cy5yZW5kZXIoKTsKKyAgICB9CisKKyAgICBfb3BlbkFuYWx5c2lzVGFzaygpCisgICAgeyB9CisK
KyAgICBfb3BlbkNvbW1pdFZpZXdlcihyZXBvc2l0b3J5LCBmcm9tLCB0bykKKyAgICB7CisgICAg
ICAgIHRoaXMuX21haW5DaGFydFN0YXR1cy5zZXRDdXJyZW50UmVwb3NpdG9yeShyZXBvc2l0b3J5
KTsKKyAgICAgICAgdGhpcy5fY29tbWl0TG9nVmlld2VyLnZpZXcocmVwb3NpdG9yeSwgZnJvbSwg
dG8pLnRoZW4odGhpcy5yZW5kZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMucmVuZGVyKCk7
CisgICAgfQorCisgICAgX2tleXVwKGV2ZW50KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldmVu
dC5rZXlDb2RlKSB7CisgICAgICAgIGNhc2UgMzc6IC8vIExlZnQKKyAgICAgICAgICAgIGlmICgh
dGhpcy5fbWFpbkNoYXJ0Lm1vdmVMb2NrZWRJbmRpY2F0b3JXaXRoTm90aWZpY2F0aW9uKGZhbHNl
KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzOTogLy8gUmlnaHQKKyAgICAgICAgICAgIGlmICghdGhpcy5fbWFpbkNoYXJ0Lm1vdmVM
b2NrZWRJbmRpY2F0b3JXaXRoTm90aWZpY2F0aW9uKHRydWUpKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4OiAvLyBVcAorICAgICAg
ICAgICAgaWYgKCF0aGlzLl9tYWluQ2hhcnRTdGF0dXMubW92ZVJlcG9zaXRvcnlXaXRoTm90aWZp
Y2F0aW9uKGZhbHNlKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgNDA6
IC8vIERvd24KKyAgICAgICAgICAgIGlmICghdGhpcy5fbWFpbkNoYXJ0U3RhdHVzLm1vdmVSZXBv
c2l0b3J5V2l0aE5vdGlmaWNhdGlvbih0cnVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLnJlbmRlcigpOworCisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgIH0KKworICAgIHJlbmRlcigpCisgICAg
eworICAgICAgICBJbnN0cnVtZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdDaGFydFBhbmUn
LCAncmVuZGVyJyk7CisKKyAgICAgICAgc3VwZXIucmVuZGVyKCk7CisKKyAgICAgICAgaWYgKHRo
aXMuX2Vycm9yTWVzc2FnZSkgeworICAgICAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMu
Y29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLW1haW4nKSwgdGhpcy5fZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0
aGlzLl9tYWluQ2hhcnRTdGF0dXMpIHsKKyAgICAgICAgICAgIHRoaXMuX21haW5DaGFydFN0YXR1
cy5yZW5kZXIoKTsKKyAgICAgICAgICAgIHRoaXMuX3JlbmRlckFjdGlvblRvb2xiYXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBib2R5ID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3Rv
cignLmNoYXJ0LXBhbmUtYm9keScpOworICAgICAgICBpZiAodGhpcy5fY29tbWl0TG9nVmlld2Vy
ICYmIHRoaXMuX2NvbW1pdExvZ1ZpZXdlci5jdXJyZW50UmVwb3NpdG9yeSgpKSB7CisgICAgICAg
ICAgICBib2R5LmNsYXNzTGlzdC5hZGQoJ2hhcy1zZWNvbmQtc2lkZWJhcicpOworICAgICAgICAg
ICAgdGhpcy5fY29tbWl0TG9nVmlld2VyLnJlbmRlcigpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnaGFzLXNlY29uZC1zaWRlYmFyJyk7CisKKyAg
ICAgICAgSW5zdHJ1bWVudGF0aW9uLmVuZE1lYXN1cmluZ1RpbWUoJ0NoYXJ0UGFuZScsICdyZW5k
ZXInKTsKKyAgICB9CisgICAgCisgICAgX3JlbmRlckFjdGlvblRvb2xiYXIoKSB7IH0KKworICAg
IHN0YXRpYyBodG1sVGVtcGxhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGAKKyAgICAgICAg
ICAgIDxzZWN0aW9uIGNsYXNzPSJjaGFydC1wYW5lIiB0YWJpbmRleD0iMCI+CisgICAgICAgICAg
ICAgICAgJHt0aGlzLnBhbmVIZWFkZXJUZW1wbGF0ZSgpfQorICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImNoYXJ0LXBhbmUtYm9keSI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImNoYXJ0LXBhbmUtbWFpbiI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImNoYXJ0LXBhbmUtc2lkZWJhciI+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJjaGFydC1wYW5lLW92ZXJ2aWV3Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImNoYXJ0LXBhbmUtZGV0YWlscyI+PC9kaXY+CisgICAgICAgICAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydC1wYW5lLXNlY29u
ZC1zaWRlYmFyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb21taXQtbG9nLXZpZXdlcj48
L2NvbW1pdC1sb2ctdmlld2VyPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgYDsKKyAgICB9
CisKKyAgICBzdGF0aWMgcGFuZUhlYWRlclRlbXBsYXRlKCkgeyByZXR1cm4gJyc7IH0KKworICAg
IHN0YXRpYyBjc3NUZW1wbGF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gVG9vbGJhci5jc3NU
ZW1wbGF0ZSgpICsgYAorICAgICAgICAgICAgLmNoYXJ0LXBhbmUgeworICAgICAgICAgICAgICAg
IG1hcmdpbjogMXJlbTsKKyAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOworICAg
ICAgICAgICAgICAgIHBhZGRpbmc6IDByZW07CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHJl
bTsKKyAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAuY2hhcnQtcGFuZTpmb2N1cyAuY2hhcnQtcGFuZS1oZWFkZXIgeworICAgICAgICAg
ICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjA0LCAxNTMsIDUxLCAwLjEpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAuY2hhcnQtcGFuZS1ib2R5IHsKKyAgICAgICAgICAgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAg
ICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuY2hhcnQt
cGFuZS1tYWluIHsKKyAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHJlbTsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwOworICAg
ICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgICAgICAgICAgICAgdGV4
dC1hbGlnbjogY2VudGVyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuaGFzLXNlY29u
ZC1zaWRlYmFyIC5jaGFydC1wYW5lLW1haW4geworICAgICAgICAgICAgICAgIHBhZGRpbmctcmln
aHQ6IDQwcmVtOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuY2hhcnQtcGFuZS1tYWlu
ID4gKiB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICAgICAgaGVp
Z2h0OiAxMDAlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuY2hhcnQtcGFuZS1zaWRl
YmFyLAorICAgICAgICAgICAgLmNoYXJ0LXBhbmUtc2Vjb25kLXNpZGViYXIgeworICAgICAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgICAgICByaWdodDogMDsKKyAg
ICAgICAgICAgICAgICB0b3A6IDA7CisgICAgICAgICAgICAgICAgd2lkdGg6IDA7CisgICAgICAg
ICAgICAgICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjY2NjOworICAgICAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgOm5vdCguaGFzLXNlY29u
ZC1zaWRlYmFyKSA+IC5jaGFydC1wYW5lLXNlY29uZC1zaWRlYmFyIHsKKyAgICAgICAgICAgICAg
ICBib3JkZXItbGVmdDogMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNoYXJ0LXBh
bmUtc2lkZWJhciB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwcmVtOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAuaGFzLXNlY29uZC1zaWRlYmFyIC5jaGFydC1wYW5lLXNpZGViYXIg
eworICAgICAgICAgICAgICAgIHJpZ2h0OiAyMHJlbTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLmhhcy1zZWNvbmQtc2lkZWJhciAuY2hhcnQtcGFuZS1zZWNvbmQtc2lkZWJhciB7Cisg
ICAgICAgICAgICAgICAgd2lkdGg6IDIwcmVtOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAuY2hhcnQtcGFuZS1vdmVydmlldyB7CisgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiA1cmVtOworICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0
b206IHNvbGlkIDFweCAjY2NjOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuY2hhcnQt
cGFuZS1vdmVydmlldyA+ICogeworICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAg
ICAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNoYXJ0LXBhbmUtZGV0YWlscyB7CisgICAg
ICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgICAgIGRpc3BsYXk6
IGJsb2NrOworICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNS41cmVtIC0gMnB4
KTsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7CisgICAgICAgICAgICAgICAg
cGFkZGluZy10b3A6IDAuNXJlbTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYDsKKyAgICB9CisK
K30KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9j
aGFydC1zdHlsZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXN0eWxlcy5qcwkocmV2aXNpb24gMTk2MzUwKQkoZnJv
bSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL3BhZ2Utd2l0aC1jaGFy
dHMuanM6MTk2MzUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2NoYXJ0LXN0eWxlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMiBAQAor
CitjbGFzcyBQYWdlV2l0aENoYXJ0cyBleHRlbmRzIFBhZ2VXaXRoSGVhZGluZyB7CisgICAgY29u
c3RydWN0b3IobmFtZSwgdG9vbGJhcikKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIHRvb2xi
YXIpOworICAgICAgICB0aGlzLl9jaGFydHMgPSBbXTsKKyAgICB9CisKKyAgICBzdGF0aWMgY3Jl
YXRlQ2hhcnRTb3VyY2VMaXN0KHBsYXRmb3JtSWQsIG1ldHJpY0lkKQorICAgIHsKKyAgICAgICAg
dmFyIHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CisgICAgICAgIHZh
ciBtZXRyaWMgPSBNZXRyaWMuZmluZEJ5SWQobWV0cmljSWQpOworICAgICAgICBpZiAoIXBsYXRm
b3JtIHx8ICFtZXRyaWMpCisgICAgICAgICAgICByZXR1cm4ge2Vycm9yOiBgSW52YWxpZCBwbGF0
Zm9ybSBvciBtZXRyaWM6ICR7cGxhdGZvcm1JZH0gYW5kICR7bWV0cmljSWR9YH07CisKKyAgICAg
ICAgdmFyIGxhc3RNb2RpZmllZCA9IHBsYXRmb3JtLmxhc3RNb2RpZmllZChtZXRyaWMpOworICAg
ICAgICBpZiAoIWxhc3RNb2RpZmllZCkKKyAgICAgICAgICAgIHJldHVybiB7cGxhdGZvcm06IHBs
YXRmb3JtLCBtZXRyaWM6IG1ldHJpYywgZXJyb3I6IGBObyByZXN1bHRzIG9uICR7cGxhdGZvcm0u
bmFtZSgpfWB9OworCisgICAgICAgIHZhciBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0
LmZpbmRTZXQocGxhdGZvcm0uaWQoKSwgbWV0cmljLmlkKCksIGxhc3RNb2RpZmllZCk7CisgICAg
ICAgIHZhciBzb3VyY2VMaXN0ID0gWworICAgICAgICAgICAgdGhpcy5iYXNlbGluZVN0eWxlKG1l
YXN1cmVtZW50U2V0LCAnYmFzZWxpbmUnKSwKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0U3R5bGUo
bWVhc3VyZW1lbnRTZXQsICd0YXJnZXQnKSwKKyAgICAgICAgICAgIHRoaXMuY3VycmVudFN0eWxl
KG1lYXN1cmVtZW50U2V0LCAnY3VycmVudCcpLAorICAgICAgICBdOworCisgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0sCisgICAgICAgICAgICBtZXRyaWM6
IG1ldHJpYywKKyAgICAgICAgICAgIHNvdXJjZUxpc3Q6IHNvdXJjZUxpc3QsCisgICAgICAgIH07
CisgICAgfQorCisgICAgc3RhdGljIGJhc2VsaW5lU3R5bGUobWVhc3VyZW1lbnRTZXQpCisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgbWVhc3VyZW1lbnRTZXQ6IG1lYXN1cmVt
ZW50U2V0LAorICAgICAgICAgICAgZXh0ZW5kVG9GdXR1cmU6IHRydWUsCisgICAgICAgICAgICBz
YW1wbGVEYXRhOiB0cnVlLAorICAgICAgICAgICAgdHlwZTogJ2Jhc2VsaW5lJywKKyAgICAgICAg
ICAgIHBvaW50U3R5bGU6ICcjZjMzJywKKyAgICAgICAgICAgIHBvaW50UmFkaXVzOiAyLAorICAg
ICAgICAgICAgbGluZVN0eWxlOiAnI2Y5OScsCisgICAgICAgICAgICBsaW5lV2lkdGg6IDEuNSwK
KyAgICAgICAgICAgIGludGVydmFsU3R5bGU6ICcjZmRkJywKKyAgICAgICAgICAgIGludGVydmFs
V2lkdGg6IDIsCisgICAgICAgIH07CisgICAgfQorCisgICAgc3RhdGljIHRhcmdldFN0eWxlKG1l
YXN1cmVtZW50U2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIG1lYXN1
cmVtZW50U2V0OiBtZWFzdXJlbWVudFNldCwKKyAgICAgICAgICAgIGV4dGVuZFRvRnV0dXJlOiB0
cnVlLAorICAgICAgICAgICAgc2FtcGxlRGF0YTogdHJ1ZSwKKyAgICAgICAgICAgIHR5cGU6ICd0
YXJnZXQnLAorICAgICAgICAgICAgcG9pbnRTdHlsZTogJyMzM2YnLAorICAgICAgICAgICAgcG9p
bnRSYWRpdXM6IDIsCisgICAgICAgICAgICBsaW5lU3R5bGU6ICcjOTlmJywKKyAgICAgICAgICAg
IGxpbmVXaWR0aDogMS41LAorICAgICAgICAgICAgaW50ZXJ2YWxTdHlsZTogJyNkZGYnLAorICAg
ICAgICAgICAgaW50ZXJ2YWxXaWR0aDogMiwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBzdGF0
aWMgY3VycmVudFN0eWxlKG1lYXN1cmVtZW50U2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgIG1lYXN1cmVtZW50U2V0OiBtZWFzdXJlbWVudFNldCwKKyAgICAgICAgICAg
IHNhbXBsZURhdGE6IHRydWUsCisgICAgICAgICAgICB0eXBlOiAnY3VycmVudCcsCisgICAgICAg
ICAgICBwb2ludFN0eWxlOiAnIzMzMycsCisgICAgICAgICAgICBwb2ludFJhZGl1czogMiwKKyAg
ICAgICAgICAgIGxpbmVTdHlsZTogJyM5OTknLAorICAgICAgICAgICAgbGluZVdpZHRoOiAxLjUs
CisgICAgICAgICAgICBpbnRlcnZhbFN0eWxlOiAnI2RkZCcsCisgICAgICAgICAgICBpbnRlcnZh
bFdpZHRoOiAyLAorICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsCisgICAgICAgIH07Cisg
ICAgfQorCisgICAgc3RhdGljIGRhc2hib2FyZE9wdGlvbnModmFsdWVGb3JtYXR0ZXIpCisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdXBkYXRlT25SZXF1ZXN0QW5pbWF0aW9u
RnJhbWU6IHRydWUsCisgICAgICAgICAgICBheGlzOiB7CisgICAgICAgICAgICAgICAgeUF4aXNX
aWR0aDogNCwgLy8gcmVtCisgICAgICAgICAgICAgICAgeEF4aXNIZWlnaHQ6IDIsIC8vIHJlbQor
ICAgICAgICAgICAgICAgIGdyaWRTdHlsZTogJyNkZGQnLAorICAgICAgICAgICAgICAgIGZvbnRT
aXplOiAwLjgsIC8vIHJlbQorICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB2YWx1ZUZv
cm1hdHRlciwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH07CisgICAgfQorCisgICAgc3RhdGlj
IG92ZXJ2aWV3Q2hhcnRPcHRpb25zKHZhbHVlRm9ybWF0dGVyKQorICAgIHsKKyAgICAgICAgdmFy
IG9wdGlvbnMgPSB0aGlzLmRhc2hib2FyZE9wdGlvbnModmFsdWVGb3JtYXR0ZXIpOworICAgICAg
ICBvcHRpb25zLmF4aXMueUF4aXNXaWR0aCA9IDA7IC8vIHJlbQorICAgICAgICBvcHRpb25zLnNl
bGVjdGlvbiA9IHsKKyAgICAgICAgICAgIGxpbmVTdHlsZTogJyNmOTMnLAorICAgICAgICAgICAg
bGluZVdpZHRoOiAyLAorICAgICAgICAgICAgZmlsbFN0eWxlOiAncmdiYSgxNTMsIDIwNCwgMTAy
LCAuMTI1KScsCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9wdGlvbnM7CisgICAgfQorCisg
ICAgc3RhdGljIG1haW5DaGFydE9wdGlvbnModmFsdWVGb3JtYXR0ZXIpCisgICAgeworICAgICAg
ICB2YXIgb3B0aW9ucyA9IHRoaXMuZGFzaGJvYXJkT3B0aW9ucyh2YWx1ZUZvcm1hdHRlcik7Cisg
ICAgICAgIG9wdGlvbnMuYXhpcy54QXhpc0VuZFBhZGRpbmcgPSA1OworICAgICAgICBvcHRpb25z
LmF4aXMueUF4aXNXaWR0aCA9IDU7CisgICAgICAgIG9wdGlvbnMuc2VsZWN0aW9uID0geworICAg
ICAgICAgICAgbGluZVN0eWxlOiAnI2Y5MycsCisgICAgICAgICAgICBsaW5lV2lkdGg6IDIsCisg
ICAgICAgICAgICBmaWxsU3R5bGU6ICdyZ2JhKDE1MywgMjA0LCAxMDIsIC4xMjUpJywKKyAgICAg
ICAgfQorICAgICAgICBvcHRpb25zLmluZGljYXRvciA9IHsKKyAgICAgICAgICAgIGxpbmVTdHls
ZTogJyNmOTMnLAorICAgICAgICAgICAgbGluZVdpZHRoOiAyLAorICAgICAgICAgICAgcG9pbnRS
YWRpdXM6IDMsCisgICAgICAgIH07CisgICAgICAgIG9wdGlvbnMuYW5ub3RhdGlvbnMgPSB7Cisg
ICAgICAgICAgICB0ZXh0U3R5bGU6ICcjMDAwJywKKyAgICAgICAgICAgIHRleHRCYWNrZ3JvdW5k
OiAnI2ZmZicsCisgICAgICAgICAgICBtaW5XaWR0aDogMywKKyAgICAgICAgICAgIGJhckhlaWdo
dDogNywKKyAgICAgICAgICAgIGJhclNwYWNpbmc6IDIsCisgICAgICAgIH07CisgICAgICAgIHJl
dHVybiBvcHRpb25zOworICAgIH0KK30KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvY29tcG9uZW50cy9jaGFydC1zdHlsZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0LXN0eWxlcy5qcwko
d29ya2luZyBjb3B5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2NoYXJ0LXN0eWxlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSw1IEBACiAK
LWNsYXNzIFBhZ2VXaXRoQ2hhcnRzIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKLSAgICBjb25z
dHJ1Y3RvcihuYW1lLCB0b29sYmFyKQotICAgIHsKLSAgICAgICAgc3VwZXIobmFtZSwgdG9vbGJh
cik7Ci0gICAgICAgIHRoaXMuX2NoYXJ0cyA9IFtdOwotICAgIH0KLQorY2xhc3MgQ2hhcnRTdHls
ZXMgewogICAgIHN0YXRpYyBjcmVhdGVDaGFydFNvdXJjZUxpc3QocGxhdGZvcm1JZCwgbWV0cmlj
SWQpCiAgICAgewogICAgICAgICB2YXIgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0
Zm9ybUlkKTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy9jb21taXQtbG9nLXZpZXdlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY29tbWl0LWxvZy12aWV3ZXIuanMJKHJldmlz
aW9uIDE5NjM1MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy9jb21taXQtbG9nLXZpZXdlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QCBjbGFzcyBDb21taXRMb2dWaWV3ZXIgZXh0ZW5kcyBDb21wb25lbnRCCiAKICAgICAgICAgdmFy
IHByb21pc2UgPSBDb21taXRMb2cuZmV0Y2hCZXR3ZWVuUmV2aXNpb25zKHJlcG9zaXRvcnksIGZy
b20gfHwgdG8sIHRvKTsKIAorICAgICAgICB0aGlzLl9yZXBvc2l0b3J5ID0gcmVwb3NpdG9yeTsK
ICAgICAgICAgdGhpcy5fZmV0Y2hpbmdQcm9taXNlID0gcHJvbWlzZTsKIAogICAgICAgICB2YXIg
c2VsZiA9IHRoaXM7CkBAIC0zOSw3ICs0MCw2IEBAIGNsYXNzIENvbW1pdExvZ1ZpZXdlciBleHRl
bmRzIENvbXBvbmVudEIKICAgICAgICAgICAgIGNsZWFyVGltZW91dChzcGlubmVyVGltZXIpOwog
ICAgICAgICAgICAgaWYgKHNlbGYuX2ZldGNoaW5nUHJvbWlzZSAhPSBwcm9taXNlKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHNlbGYuX3JlcG9zaXRvcnkgPSByZXBvc2l0
b3J5OwogICAgICAgICAgICAgc2VsZi5fZmV0Y2hpbmdQcm9taXNlID0gbnVsbDsKICAgICAgICAg
ICAgIHNlbGYuX2NvbW1pdHMgPSBjb21taXRzOwogICAgICAgICB9KTsKSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5h
bHlzaXMtdGFzay1wYWdlLmpzCShyZXZpc2lvbiAxOTYzNTApCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICsxLDEwIEBACiAKK2NsYXNzIEFuYWx5c2lzVGFza0NoYXJ0UGFuZSBleHRl
bmRzIENoYXJ0UGFuZUJhc2UgeworICAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcignYW5hbHlzaXMt
dGFzay1jaGFydC1wYW5lJyk7IH0KK30KKworQ29tcG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdh
bmFseXNpcy10YXNrLWNoYXJ0LXBhbmUnLCBBbmFseXNpc1Rhc2tDaGFydFBhbmUpOworCiBjbGFz
cyBBbmFseXNpc1Rhc2tQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICBjb25zdHJ1
Y3RvcigpCiAgICAgewpAQCAtMTQsNiArMjAsNyBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4
dGVuZHMgUGFnZVdpdGhICiAgICAgICAgIHRoaXMuX2VuZFBvaW50ID0gbnVsbDsKICAgICAgICAg
dGhpcy5fZXJyb3JNZXNzYWdlID0gbnVsbDsKICAgICAgICAgdGhpcy5fY3VycmVudFRlc3RHcm91
cCA9IG51bGw7CisgICAgICAgIHRoaXMuX2NoYXJ0UGFuZSA9IHRoaXMuY29udGVudCgpLnF1ZXJ5
U2VsZWN0b3IoJ2FuYWx5c2lzLXRhc2stY2hhcnQtcGFuZScpLmNvbXBvbmVudCgpOwogICAgICAg
ICB0aGlzLl9hbmFseXNpc1Jlc3VsdHNWaWV3ZXIgPSB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVj
dG9yKCdhbmFseXNpcy1yZXN1bHRzLXZpZXdlcicpLmNvbXBvbmVudCgpOwogICAgICAgICB0aGlz
Ll9hbmFseXNpc1Jlc3VsdHNWaWV3ZXIuc2V0VGVzdEdyb3VwQ2FsbGJhY2sodGhpcy5fc2hvd1Rl
c3RHcm91cC5iaW5kKHRoaXMpKTsKICAgICAgICAgdGhpcy5fdGVzdEdyb3VwUmVzdWx0c1RhYmxl
ID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcigndGVzdC1ncm91cC1yZXN1bHRzLXRhYmxl
JykuY29tcG9uZW50KCk7CkBAIC02Miw2ICs2OSwxMiBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdl
IGV4dGVuZHMgUGFnZVdpdGhICiAgICAgICAgIHRoaXMuX2FuYWx5c2lzUmVzdWx0c1ZpZXdlci5z
ZXRTbWFsbGVySXNCZXR0ZXIobWV0cmljLmlzU21hbGxlckJldHRlcigpKTsKICAgICAgICAgdGhp
cy5fdGVzdEdyb3VwUmVzdWx0c1RhYmxlLnNldFZhbHVlRm9ybWF0dGVyKGZvcm1hdHRlcik7CiAK
KyAgICAgICAgdGhpcy5fY2hhcnRQYW5lLmNvbmZpZ3VyZShwbGF0Zm9ybS5pZCgpLCBtZXRyaWMu
aWQoKSk7CisKKyAgICAgICAgdmFyIGRvbWFpbiA9IENoYXJ0c1BhZ2UuY3JlYXRlRG9tYWluRm9y
QW5hbHlzaXNUYXNrKHRhc2spOworICAgICAgICB0aGlzLl9jaGFydFBhbmUuc2V0T3ZlcnZpZXdE
b21haW4oZG9tYWluWzBdLCBkb21haW5bMV0pOworICAgICAgICB0aGlzLl9jaGFydFBhbmUuc2V0
TWFpbkRvbWFpbihkb21haW5bMF0sIGRvbWFpblsxXSk7CisKICAgICAgICAgdGhpcy5yZW5kZXIo
KTsKICAgICB9CiAKQEAgLTEyOCw2ICsxNDEsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2tQYWdlIGV4
dGVuZHMgUGFnZVdpdGhICiAgICAgICAgIHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5l
cnJvci1tZXNzYWdlJykuaW5uZXJIVE1MICs9CiAgICAgICAgICAgICBgPHA+VGhpcyBwYWdlIGlz
IHJlYWQgb25seSBmb3Igbm93LiBUbyBzY2hlZHVsZSBhIG5ldyBBL0IgdGVzdGluZyBqb2IsIHVz
ZSA8YSBocmVmPSIke3YyVVJMfSI+djIgcGFnZTwvYT4uPC9wPmA7CiAKKyAgICAgICAgIHRoaXMu
X2NoYXJ0UGFuZS5yZW5kZXIoKTsKKwogICAgICAgICBpZiAodGhpcy5fdGFzaykgewogICAgICAg
ICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5h
bmFseXNpcy10YXNrLW5hbWUnKSwgdGhpcy5fdGFzay5uYW1lKCkpOwogICAgICAgICAgICAgdmFy
IHBsYXRmb3JtID0gdGhpcy5fdGFzay5wbGF0Zm9ybSgpOwpAQCAtMTg3LDcgKzIwMiw3IEBAIGNs
YXNzIEFuYWx5c2lzVGFza1BhZ2UgZXh0ZW5kcyBQYWdlV2l0aEgKICAgICAgICAgICAgICAgICA8
aDIgY2xhc3M9ImFuYWx5c2lzLXRhc2stbmFtZSI+PC9oMj4KICAgICAgICAgICAgICAgICA8aDMg
Y2xhc3M9InBsYXRmb3JtLW1ldHJpYy1uYW1lcyI+PGEgaHJlZj0iIj48L2E+PC9oMz4KICAgICAg
ICAgICAgICAgICA8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+PC9wPgotICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9Im92ZXJ2aWV3LWNoYXJ0Ij48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJvdmVydmlldy1jaGFydCI+PGFuYWx5c2lzLXRhc2stY2hhcnQtcGFuZT48L2FuYWx5
c2lzLXRhc2stY2hhcnQtcGFuZT48L2Rpdj4KICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFz
cz0iYW5hbHlzaXMtcmVzdWx0cy12aWV3Ij4KICAgICAgICAgICAgICAgICAgICAgPGFuYWx5c2lz
LXJlc3VsdHMtdmlld2VyPjwvYW5hbHlzaXMtcmVzdWx0cy12aWV3ZXI+CiAgICAgICAgICAgICAg
ICAgPC9zZWN0aW9uPgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy9jaGFydC1wYW5lLXN0YXR1cy12aWV3LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS1zdGF0dXMtdmlldy5qcwko
cmV2aXNpb24gMTk2MzUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9w
YWdlcy9jaGFydC1wYW5lLXN0YXR1cy12aWV3LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICsx
LDE3IEBACiAKIGNsYXNzIENoYXJ0UGFuZVN0YXR1c1ZpZXcgZXh0ZW5kcyBDaGFydFN0YXR1c1Zp
ZXcgewogICAgIAotICAgIGNvbnN0cnVjdG9yKG1ldHJpYywgY2hhcnQsIHJvdXRlciwgcmV2aXNp
b25DYWxsYmFjaykKKyAgICBjb25zdHJ1Y3RvcihtZXRyaWMsIGNoYXJ0LCByZXZpc2lvbkNhbGxi
YWNrKQogICAgIHsKICAgICAgICAgc3VwZXIobWV0cmljLCBjaGFydCk7CiAKLSAgICAgICAgdGhp
cy5fcm91dGVyID0gcm91dGVyOwotCiAgICAgICAgIHRoaXMuX2J1aWxkTGFiZWwgPSBudWxsOwog
ICAgICAgICB0aGlzLl9idWlsZFVybCA9IG51bGw7CiAKICAgICAgICAgdGhpcy5fcmV2aXNpb25M
aXN0ID0gW107CiAgICAgICAgIHRoaXMuX2N1cnJlbnRSZXBvc2l0b3J5ID0gbnVsbDsKICAgICAg
ICAgdGhpcy5fcmV2aXNpb25DYWxsYmFjayA9IHJldmlzaW9uQ2FsbGJhY2s7Ci0gICAgICAgIHRo
aXMuX2FuYWx5emVEYXRhID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcG9pbnRzUmFuZ2VGb3JBbmFs
eXNpcyA9IG51bGw7CiAKICAgICAgICAgdGhpcy5fcmVuZGVyZWRSZXZpc2lvbkxpc3QgPSBudWxs
OwogICAgICAgICB0aGlzLl9yZW5kZXJlZFJlcG9zaXRvcnkgPSBudWxsOwpAQCAtMjEsNyArMTks
NyBAQCBjbGFzcyBDaGFydFBhbmVTdGF0dXNWaWV3IGV4dGVuZHMgQ2hhcnRTCiAgICAgICAgIHRo
aXMuX3VzZWRSZXZpc2lvblJhbmdlID0gbnVsbDsKICAgICB9CiAKLSAgICBhbmFseXplRGF0YSgp
IHsgcmV0dXJuIHRoaXMuX2FuYWx5emVEYXRhOyB9CisgICAgcG9pbnRzUmFuZ2VGb3JBbmFseXNp
cygpIHsgcmV0dXJuIHRoaXMuX3BvaW50c1JhbmdlRm9yQW5hbHlzaXM7IH0KIAogICAgIHJlbmRl
cigpCiAgICAgewpAQCAtMTAxLDYgKzk5LDcgQEAgY2xhc3MgQ2hhcnRQYW5lU3RhdHVzVmlldyBl
eHRlbmRzIENoYXJ0UwogCiAgICAgICAgIHZhciBpbmZvID0gdGhpcy5fcmV2aXNpb25MaXN0W25l
d0luZGV4XTsKICAgICAgICAgdGhpcy5zZXRDdXJyZW50UmVwb3NpdG9yeShpbmZvLnJlcG9zaXRv
cnkpOworICAgICAgICB0aGlzLnVwZGF0ZVJldmlzaW9uTGlzdFdpdGhOb3RpZmljYXRpb24oKTsK
ICAgICB9CiAKICAgICB1cGRhdGVSZXZpc2lvbkxpc3RXaXRoTm90aWZpY2F0aW9uKCkKQEAgLTEy
Niw3ICsxMjUsNyBAQCBjbGFzcyBDaGFydFBhbmVTdGF0dXNWaWV3IGV4dGVuZHMgQ2hhcnRTCiAK
ICAgICAgICAgdGhpcy5fYnVpbGRJbmZvID0gbnVsbDsKICAgICAgICAgdGhpcy5fcmV2aXNpb25M
aXN0ID0gW107Ci0gICAgICAgIHRoaXMuX2FuYWx5emVEYXRhID0gbnVsbDsKKyAgICAgICAgdGhp
cy5fcG9pbnRzUmFuZ2VGb3JBbmFseXNpcyA9IG51bGw7CiAKICAgICAgICAgaWYgKCFjdXJyZW50
UG9pbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMzksNyArMTM4LDcgQEAgY2xhc3MgQ2hh
cnRQYW5lU3RhdHVzVmlldyBleHRlbmRzIENoYXJ0UwogICAgICAgICAgICAgdGhpcy5fYnVpbGRJ
bmZvID0gY3VycmVudE1lYXN1cmVtZW50OwogCiAgICAgICAgIGlmIChjdXJyZW50UG9pbnQgJiYg
cHJldmlvdXNQb2ludCAmJiB0aGlzLl9jaGFydC5jdXJyZW50U2VsZWN0aW9uKCkpIHsKLSAgICAg
ICAgICAgIHRoaXMuX2FuYWx5emVEYXRhID0geworICAgICAgICAgICAgdGhpcy5fcG9pbnRzUmFu
Z2VGb3JBbmFseXNpcyA9IHsKICAgICAgICAgICAgICAgICBzdGFydFBvaW50SWQ6IHByZXZpb3Vz
UG9pbnQuaWQsCiAgICAgICAgICAgICAgICAgZW5kUG9pbnRJZDogY3VycmVudFBvaW50LmlkLAog
ICAgICAgICAgICAgfTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvY2hhcnQtcGFuZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMJKHJldmlzaW9uIDE5NjM1MCkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMSw5NSArMSwxOCBAQAogCi1jbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBD
b21wb25lbnRCYXNlIHsKK2NsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2Ugewog
ICAgIGNvbnN0cnVjdG9yKGNoYXJ0c1BhZ2UsIHBsYXRmb3JtSWQsIG1ldHJpY0lkKQogICAgIHsK
ICAgICAgICAgc3VwZXIoJ2NoYXJ0LXBhbmUnKTsKIAotICAgICAgICB0aGlzLl9jaGFydHNQYWdl
ID0gY2hhcnRzUGFnZTsKLSAgICAgICAgdGhpcy5fcGxhdGZvcm1JZCA9IHBsYXRmb3JtSWQ7Ci0g
ICAgICAgIHRoaXMuX21ldHJpY0lkID0gbWV0cmljSWQ7Ci0KLSAgICAgICAgdmFyIHJlc3VsdCA9
IENoYXJ0c1BhZ2UuY3JlYXRlQ2hhcnRTb3VyY2VMaXN0KHBsYXRmb3JtSWQsIG1ldHJpY0lkKTsK
LSAgICAgICAgdGhpcy5fZXJyb3JNZXNzYWdlID0gcmVzdWx0LmVycm9yOwotICAgICAgICB0aGlz
Ll9wbGF0Zm9ybSA9IHJlc3VsdC5wbGF0Zm9ybTsKLSAgICAgICAgdGhpcy5fbWV0cmljID0gcmVz
dWx0Lm1ldHJpYzsKLQotICAgICAgICB0aGlzLl9vdmVydmlld0NoYXJ0ID0gbnVsbDsKLSAgICAg
ICAgdGhpcy5fbWFpbkNoYXJ0ID0gbnVsbDsKLSAgICAgICAgdGhpcy5fbWFpbkNoYXJ0U3RhdHVz
ID0gbnVsbDsKLSAgICAgICAgdGhpcy5fbWFpblNlbGVjdGlvbiA9IG51bGw7CiAgICAgICAgIHRo
aXMuX21haW5DaGFydEluZGljYXRvcldhc0xvY2tlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLl9z
dGF0dXMgPSBudWxsOwotICAgICAgICB0aGlzLl9yZXZpc2lvbnMgPSBudWxsOwotCisgICAgICAg
IHRoaXMuX2NoYXJ0c1BhZ2UgPSBjaGFydHNQYWdlOwogICAgICAgICB0aGlzLl9wYW5lT3BlbmVk
QnlDbGljayA9IG51bGw7CiAKLSAgICAgICAgdGhpcy5fY29tbWl0TG9nVmlld2VyID0gdGhpcy5j
b250ZW50KCkucXVlcnlTZWxlY3RvcignY29tbWl0LWxvZy12aWV3ZXInKS5jb21wb25lbnQoKTsK
ICAgICAgICAgdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignY2xvc2UtYnV0dG9uJykuY29t
cG9uZW50KCkuc2V0Q2FsbGJhY2soY2hhcnRzUGFnZS5jbG9zZVBhbmUuYmluZChjaGFydHNQYWdl
LCB0aGlzKSk7CiAKLSAgICAgICAgaWYgKHJlc3VsdC5lcnJvcikKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICB2YXIgZm9ybWF0dGVyID0gcmVzdWx0Lm1ldHJpYy5tYWtlRm9ybWF0dGVy
KDQpOwotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0KLSAgICAgICAgdmFyIG92ZXJ2aWV3T3B0
aW9ucyA9IENoYXJ0c1BhZ2Uub3ZlcnZpZXdDaGFydE9wdGlvbnMoZm9ybWF0dGVyKTsKLSAgICAg
ICAgb3ZlcnZpZXdPcHRpb25zLnNlbGVjdGlvbi5vbmNoYW5nZSA9IGZ1bmN0aW9uIChkb21haW4s
IGRpZEVuZERyYWcpIHsKLSAgICAgICAgICAgIHNlbGYuX2NoYXJ0c1BhZ2Uuc2V0TWFpbkRvbWFp
bkZyb21PdmVydmlld1NlbGVjdGlvbihkb21haW4sIHNlbGYsIGRpZEVuZERyYWcpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydCA9IG5ldyBJbnRlcmFjdGl2ZVRpbWVT
ZXJpZXNDaGFydChyZXN1bHQuc291cmNlTGlzdCwgb3ZlcnZpZXdPcHRpb25zKTsKLSAgICAgICAg
dGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1w
YW5lLW92ZXJ2aWV3JyksIHRoaXMuX292ZXJ2aWV3Q2hhcnQpOwotCi0gICAgICAgIHZhciBtYWlu
T3B0aW9ucyA9IENoYXJ0c1BhZ2UubWFpbkNoYXJ0T3B0aW9ucyhmb3JtYXR0ZXIpOwotICAgICAg
ICBtYWluT3B0aW9ucy5pbmRpY2F0b3Iub25jaGFuZ2UgPSB0aGlzLl9pbmRpY2F0b3JEaWRDaGFu
Z2UuYmluZCh0aGlzKTsKLSAgICAgICAgbWFpbk9wdGlvbnMuc2VsZWN0aW9uLm9uY2hhbmdlID0g
dGhpcy5fbWFpblNlbGVjdGlvbkRpZENoYW5nZS5iaW5kKHRoaXMpOwotICAgICAgICBtYWluT3B0
aW9ucy5zZWxlY3Rpb24ub256b29tID0gdGhpcy5fbWFpblNlbGVjdGlvbkRpZFpvb20uYmluZCh0
aGlzKTsKLSAgICAgICAgbWFpbk9wdGlvbnMuYW5ub3RhdGlvbnMub25jbGljayA9IHRoaXMuX29w
ZW5BbmFseXNpc1Rhc2suYmluZCh0aGlzKTsKLSAgICAgICAgbWFpbk9wdGlvbnMub25kYXRhID0g
dGhpcy5fZGlkRmV0Y2hEYXRhLmJpbmQodGhpcyk7Ci0gICAgICAgIHRoaXMuX21haW5DaGFydCA9
IG5ldyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydChyZXN1bHQuc291cmNlTGlzdCwgbWFpbk9w
dGlvbnMpOwotICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCkucXVlcnlT
ZWxlY3RvcignLmNoYXJ0LXBhbmUtbWFpbicpLCB0aGlzLl9tYWluQ2hhcnQpOwotCi0gICAgICAg
IHRoaXMuX21haW5DaGFydFN0YXR1cyA9IG5ldyBDaGFydFBhbmVTdGF0dXNWaWV3KHJlc3VsdC5t
ZXRyaWMsIHRoaXMuX21haW5DaGFydCwgY2hhcnRzUGFnZS5yb3V0ZXIoKSwgdGhpcy5fb3BlbkNv
bW1pdFZpZXdlci5iaW5kKHRoaXMpKTsKLSAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMu
Y29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLWRldGFpbHMnKSwgdGhpcy5fbWFp
bkNoYXJ0U3RhdHVzKTsKLQotICAgICAgICB0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcu
Y2hhcnQtcGFuZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fa2V5dXAuYmluZCh0
aGlzKSk7Ci0gICAgICAgIHRoaXMuX2ZldGNoQW5hbHlzaXNUYXNrcygpOworICAgICAgICB0aGlz
LmNvbmZpZ3VyZShwbGF0Zm9ybUlkLCBtZXRyaWNJZCk7CiAgICAgfQogCi0gICAgX2ZldGNoQW5h
bHlzaXNUYXNrcygpCi0gICAgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIEFu
YWx5c2lzVGFzay5mZXRjaEJ5UGxhdGZvcm1BbmRNZXRyaWModGhpcy5fcGxhdGZvcm1JZCwgdGhp
cy5fbWV0cmljSWQpLnRoZW4oZnVuY3Rpb24gKHRhc2tzKSB7Ci0gICAgICAgICAgICBzZWxmLl9t
YWluQ2hhcnQuc2V0QW5ub3RhdGlvbnModGFza3MubWFwKGZ1bmN0aW9uICh0YXNrKSB7Ci0gICAg
ICAgICAgICAgICAgdmFyIGZpbGxTdHlsZSA9ICcjZmM2JzsKLSAgICAgICAgICAgICAgICBzd2l0
Y2ggKHRhc2suY2hhbmdlVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAnaW5jb25jbHVz
aXZlJzoKLSAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlID0gJyNmY2MnOwotICAgICAgICAg
ICAgICAgIGNhc2UgJ3Byb2dyZXNzaW9uJzoKLSAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxl
ID0gJyMzOWYnOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBj
YXNlICdyZWdyZXNzaW9uJzoKLSAgICAgICAgICAgICAgICAgICAgZmlsbFN0eWxlID0gJyNjNjAn
OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlICd1bmNo
YW5nZWQnOgotICAgICAgICAgICAgICAgICAgICBmaWxsU3R5bGUgPSAnI2NjYyc7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICAgIHRhc2s6IHRhc2ssCi0gICAgICAgICAgICAg
ICAgICAgIHN0YXJ0VGltZTogdGFzay5zdGFydFRpbWUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ZW5kVGltZTogdGFzay5lbmRUaW1lKCksCi0gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0YXNr
LmxhYmVsKCksCi0gICAgICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogZmlsbFN0eWxlLAotICAg
ICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9KSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIHBsYXRmb3JtSWQoKSB7IHJldHVybiB0aGlzLl9wbGF0Zm9ybUlkOyB9Ci0gICAgbWV0cmlj
SWQoKSB7IHJldHVybiB0aGlzLl9tZXRyaWNJZDsgfQotCiAgICAgc2VyaWFsaXplU3RhdGUoKQog
ICAgIHsKICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuX21haW5DaGFydCA/IHRoaXMuX21h
aW5DaGFydC5jdXJyZW50U2VsZWN0aW9uKCkgOiBudWxsOwpAQCAtMTE2LDM2ICszOSwyOCBAQCBj
bGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgICAgIHRoaXMu
X21haW5DaGFydC5zZXRJbmRpY2F0b3IobnVsbCwgZmFsc2UpOwogICAgIH0KIAotICAgIHNldE92
ZXJ2aWV3RG9tYWluKHN0YXJ0VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlz
Ll9vdmVydmlld0NoYXJ0KQotICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydC5zZXREb21h
aW4oc3RhcnRUaW1lLCBlbmRUaW1lKTsKLSAgICB9Ci0KICAgICBzZXRPdmVydmlld1NlbGVjdGlv
bihzZWxlY3Rpb24pCiAgICAgewogICAgICAgICBpZiAodGhpcy5fb3ZlcnZpZXdDaGFydCkKICAg
ICAgICAgICAgIHRoaXMuX292ZXJ2aWV3Q2hhcnQuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7CiAg
ICAgfQogCi0gICAgc2V0TWFpbkRvbWFpbihzdGFydFRpbWUsIGVuZFRpbWUpCisgICAgX292ZXJ2
aWV3U2VsZWN0aW9uRGlkQ2hhbmdlKGRvbWFpbiwgZGlkRW5kRHJhZykKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9tYWluQ2hhcnQpCi0gICAgICAgICAgICB0aGlzLl9tYWluQ2hhcnQuc2V0RG9t
YWluKHN0YXJ0VGltZSwgZW5kVGltZSk7CisgICAgICAgIHN1cGVyLl9vdmVydmlld1NlbGVjdGlv
bkRpZENoYW5nZShkb21haW4sIGRpZEVuZERyYWcpOworICAgICAgICB0aGlzLl9jaGFydHNQYWdl
LnNldE1haW5Eb21haW5Gcm9tT3ZlcnZpZXdTZWxlY3Rpb24oZG9tYWluLCB0aGlzLCBkaWRFbmRE
cmFnKTsKICAgICB9CiAKICAgICBfbWFpblNlbGVjdGlvbkRpZENoYW5nZShzZWxlY3Rpb24sIGRp
ZEVuZERyYWcpCiAgICAgeworICAgICAgICBzdXBlci5fbWFpblNlbGVjdGlvbkRpZENoYW5nZShz
ZWxlY3Rpb24sIGRpZEVuZERyYWcpOwogICAgICAgICB0aGlzLl9jaGFydHNQYWdlLm1haW5DaGFy
dFNlbGVjdGlvbkRpZENoYW5nZSh0aGlzLCBkaWRFbmREcmFnKTsKLSAgICAgICAgdGhpcy5yZW5k
ZXIoKTsKICAgICB9CiAKICAgICBfbWFpblNlbGVjdGlvbkRpZFpvb20oc2VsZWN0aW9uKQogICAg
IHsKLSAgICAgICAgdGhpcy5fb3ZlcnZpZXdDaGFydC5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCB0
aGlzKTsKLSAgICAgICAgdGhpcy5fbWFpbkNoYXJ0LnNldFNlbGVjdGlvbihudWxsKTsKKyAgICAg
ICAgc3VwZXIuX21haW5TZWxlY3Rpb25EaWRab29tKHNlbGVjdGlvbik7CiAgICAgICAgIHRoaXMu
X2NoYXJ0c1BhZ2Uuc2V0TWFpbkRvbWFpbkZyb21ab29tKHNlbGVjdGlvbiwgdGhpcyk7Ci0gICAg
ICAgIHRoaXMucmVuZGVyKCk7CiAgICAgfQogCiAgICAgX29wZW5BbmFseXNpc1Rhc2soYW5ub3Rh
dGlvbikKQEAgLTE1NSw1OCArNzAsMTMgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ29tcG9u
ZW50QmFzZSB7CiAKICAgICBfaW5kaWNhdG9yRGlkQ2hhbmdlKGluZGljYXRvcklELCBpc0xvY2tl
ZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2NoYXJ0c1BhZ2UubWFpbkNoYXJ0SW5kaWNhdG9yRGlk
Q2hhbmdlKHRoaXMsIGlzTG9ja2VkIHx8IHRoaXMuX21haW5DaGFydEluZGljYXRvcldhc0xvY2tl
ZCk7CiAgICAgICAgIHRoaXMuX21haW5DaGFydEluZGljYXRvcldhc0xvY2tlZCA9IGlzTG9ja2Vk
OwotICAgICAgICB0aGlzLl9tYWluQ2hhcnRTdGF0dXMudXBkYXRlUmV2aXNpb25MaXN0V2l0aE5v
dGlmaWNhdGlvbigpOwotICAgICAgICB0aGlzLnJlbmRlcigpOwotICAgIH0KLQotICAgIF9vcGVu
Q29tbWl0Vmlld2VyKHJlcG9zaXRvcnksIGZyb20sIHRvKQotICAgIHsKLSAgICAgICAgdmFyIHNl
bGYgPSB0aGlzOwotICAgICAgICB0aGlzLl9jb21taXRMb2dWaWV3ZXIudmlldyhyZXBvc2l0b3J5
LCBmcm9tLCB0bykudGhlbihmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBzZWxmLl9tYWluQ2hh
cnRTdGF0dXMuc2V0Q3VycmVudFJlcG9zaXRvcnkoc2VsZi5fY29tbWl0TG9nVmlld2VyLmN1cnJl
bnRSZXBvc2l0b3J5KCkpOwotICAgICAgICAgICAgc2VsZi5yZW5kZXIoKTsKLSAgICAgICAgfSk7
Ci0gICAgfQotICAgIAotICAgIF9kaWRGZXRjaERhdGEoKQotICAgIHsKLSAgICAgICAgdGhpcy5f
bWFpbkNoYXJ0U3RhdHVzLnVwZGF0ZVJldmlzaW9uTGlzdFdpdGhOb3RpZmljYXRpb24oKTsKLSAg
ICAgICAgdGhpcy5yZW5kZXIoKTsKLSAgICB9Ci0KLSAgICBfa2V5dXAoZXZlbnQpCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHsKLSAgICAgICAgY2FzZSAzNzogLy8gTGVm
dAotICAgICAgICAgICAgaWYgKCF0aGlzLl9tYWluQ2hhcnQubW92ZUxvY2tlZEluZGljYXRvcldp
dGhOb3RpZmljYXRpb24oZmFsc2UpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDM5OiAvLyBSaWdodAotICAgICAgICAgICAgaWYgKCF0
aGlzLl9tYWluQ2hhcnQubW92ZUxvY2tlZEluZGljYXRvcldpdGhOb3RpZmljYXRpb24odHJ1ZSkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgMzg6IC8vIFVwCi0gICAgICAgICAgICBpZiAoIXRoaXMuX21haW5DaGFydFN0YXR1cy5tb3Zl
UmVwb3NpdG9yeVdpdGhOb3RpZmljYXRpb24oZmFsc2UpKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgY2FzZSA0MDogLy8gRG93bgotICAgICAgICAgICAgaWYgKCF0aGlzLl9tYWlu
Q2hhcnRTdGF0dXMubW92ZVJlcG9zaXRvcnlXaXRoTm90aWZpY2F0aW9uKHRydWUpKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGV2
ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB0aGlzLl9jaGFydHNQYWdlLm1haW5DaGFy
dEluZGljYXRvckRpZENoYW5nZSh0aGlzLCBpc0xvY2tlZCB8fCB0aGlzLl9tYWluQ2hhcnRJbmRp
Y2F0b3JXYXNMb2NrZWQpOworICAgICAgICBzdXBlci5faW5kaWNhdG9yRGlkQ2hhbmdlKGluZGlj
YXRvcklELCBpc0xvY2tlZCk7CiAgICAgfQogCiAgICAgcmVuZGVyKCkKICAgICB7Ci0gICAgICAg
IEluc3RydW1lbnRhdGlvbi5zdGFydE1lYXN1cmluZ1RpbWUoJ0NoYXJ0UGFuZScsICdyZW5kZXIn
KTsKLQotICAgICAgICBzdXBlci5yZW5kZXIoKTsKLQogICAgICAgICBpZiAodGhpcy5fcGxhdGZv
cm0gJiYgdGhpcy5fbWV0cmljKSB7CiAgICAgICAgICAgICB2YXIgbWV0cmljID0gdGhpcy5fbWV0
cmljOwogICAgICAgICAgICAgdmFyIHBsYXRmb3JtID0gdGhpcy5fcGxhdGZvcm07CkBAIC0yMTUs
MjcgKzg1LDEzIEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAg
ICAgICAgICAgICAgIG1ldHJpYy5mdWxsTmFtZSgpICsgJyBvbiAnICsgcGxhdGZvcm0ubmFtZSgp
KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh0aGlzLl9lcnJvck1lc3NhZ2UpIHsKLSAgICAg
ICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0aGlzLmNvbnRlbnQoKS5xdWVyeVNlbGVjdG9yKCcu
Y2hhcnQtcGFuZS1tYWluJyksIHRoaXMuX2Vycm9yTWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuX21haW5DaGFydFN0YXR1cykKKyAgICAg
ICAgICAgIHRoaXMuX3JlbmRlckFjdGlvblRvb2xiYXIoKTsKIAotICAgICAgICBpZiAodGhpcy5f
bWFpbkNoYXJ0U3RhdHVzKSB7Ci0gICAgICAgICAgICB0aGlzLl9tYWluQ2hhcnRTdGF0dXMucmVu
ZGVyKCk7Ci0gICAgICAgICAgICB0aGlzLl9yZW5kZXJBY3Rpb25Ub29sYmFyKHRoaXMuX21haW5D
aGFydFN0YXR1cy5hbmFseXplRGF0YSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBib2R5
ID0gdGhpcy5jb250ZW50KCkucXVlcnlTZWxlY3RvcignLmNoYXJ0LXBhbmUtYm9keScpOwotICAg
ICAgICBpZiAodGhpcy5fY29tbWl0TG9nVmlld2VyLmN1cnJlbnRSZXBvc2l0b3J5KCkpIHsKLSAg
ICAgICAgICAgIGJvZHkuY2xhc3NMaXN0LmFkZCgnaGFzLXNlY29uZC1zaWRlYmFyJyk7Ci0gICAg
ICAgICAgICB0aGlzLl9jb21taXRMb2dWaWV3ZXIucmVuZGVyKCk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdoYXMtc2Vjb25kLXNpZGViYXInKTsK
LQotICAgICAgICBJbnN0cnVtZW50YXRpb24uZW5kTWVhc3VyaW5nVGltZSgnQ2hhcnRQYW5lJywg
J3JlbmRlcicpOworICAgICAgICBzdXBlci5yZW5kZXIoKTsKICAgICB9CiAKLSAgICBfcmVuZGVy
QWN0aW9uVG9vbGJhcihhbmFseXplRGF0YSkKKyAgICBfcmVuZGVyQWN0aW9uVG9vbGJhcigpCiAg
ICAgewogICAgICAgICB2YXIgYWN0aW9ucyA9IFtdOwogICAgICAgICB2YXIgcGxhdGZvcm0gPSB0
aGlzLl9wbGF0Zm9ybTsKQEAgLTI2Nyw3ICsxMjMsOCBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5k
cyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBhbmFseXplUGFuZSA9
IHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLWFuYWx5emUtcGFuZScp
OwotICAgICAgICBpZiAoYW5hbHl6ZURhdGEpIHsKKyAgICAgICAgdmFyIHBvaW50c1JhbmdlRm9y
QW5hbHlzaXMgPSB0aGlzLl9tYWluQ2hhcnRTdGF0dXMucG9pbnRzUmFuZ2VGb3JBbmFseXNpcygp
OworICAgICAgICBpZiAocG9pbnRzUmFuZ2VGb3JBbmFseXNpcykgewogICAgICAgICAgICAgYWN0
aW9ucy5wdXNoKGVsZW1lbnQoJ2xpJywge2NsYXNzOiB0aGlzLl9wYW5lT3BlbmVkQnlDbGljayA9
PSBhbmFseXplUGFuZSA/ICdzZWxlY3RlZCcgOiAnJ30sCiAgICAgICAgICAgICAgICAgdGhpcy5f
bWFrZUFuY2hvclRvT3BlblBhbmUoYW5hbHl6ZVBhbmUsICdBbmFseXplJywgZmFsc2UpKSk7CiAK
QEAgLTI3Nyw3ICsxMzQsNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNl
IHsKICAgICAgICAgICAgICAgICB2YXIgbmV3V2luZG93ID0gd2luZG93Lm9wZW4ocm91dGVyLnVy
bCgnYW5hbHlzaXMvdGFzay9jcmVhdGUnKSwgJ19ibGFuaycpOwogCiAgICAgICAgICAgICAgICAg
dmFyIG5hbWUgPSBhbmFseXplUGFuZS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlOwotICAg
ICAgICAgICAgICAgIEFuYWx5c2lzVGFzay5jcmVhdGUobmFtZSwgYW5hbHl6ZURhdGEuc3RhcnRQ
b2ludElkLCBhbmFseXplRGF0YS5lbmRQb2ludElkKS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7Cisg
ICAgICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBwb2ludHNSYW5nZUZvckFu
YWx5c2lzLnN0YXJ0UG9pbnRJZCwgcG9pbnRzUmFuZ2VGb3JBbmFseXNpcy5lbmRQb2ludElkKS50
aGVuKGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gcm91dGVyLnVybCgnYW5hbHlzaXMvdGFzay8nICsgZGF0YVsndGFza0lkJ10p
OwogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmVmZXRjaCB0aGUgbGlzdCBvZiBhbmFs
eXNpcyB0YXNrcy4KICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHsKQEAgLTM1
OSw1MyArMjE2LDM2IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENvbXBvbmVudEJhc2Ugewog
ICAgICAgICByZXR1cm4gYW5jaG9yOwogICAgIH0KIAotICAgIHN0YXRpYyBodG1sVGVtcGxhdGUo
KQorICAgIHN0YXRpYyBwYW5lSGVhZGVyVGVtcGxhdGUoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGAKLSAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjaGFydC1wYW5lIiB0YWJpbmRleD0iMCI+
Ci0gICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz0iY2hhcnQtcGFuZS1oZWFkZXIiPgotICAg
ICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9ImNoYXJ0LXBhbmUtdGl0bGUiPi08L2gyPgotICAg
ICAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPSJjaGFydC1wYW5lLWFjdGlvbnMiPgotICAgICAg
ICAgICAgICAgICAgICAgICAgPHVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBj
bGFzcz0iY2xvc2UiPjxjbG9zZS1idXR0b24+PC9jbG9zZS1idXR0b24+PC9saT4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDwvdWw+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9
ImNoYXJ0LXBhbmUtYWN0aW9uLWJ1dHRvbnMgYnV0dG9uZWQtdG9vbGJhciI+PC91bD4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iY2hhcnQtcGFuZS1hbHRlcm5hdGl2ZS1wbGF0
Zm9ybXMiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvdWw+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICA8Zm9ybSBjbGFzcz0iY2hhcnQtcGFuZS1hbmFseXplLXBhbmUiIHN0eWxlPSJkaXNwbGF5Om5v
bmUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiByZXF1
aXJlZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPkNyZWF0ZTwvYnV0dG9u
PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgotICAgICAgICAgICAgICAgICAgICA8
L25hdj4KLSAgICAgICAgICAgICAgICA8L2hlYWRlcj4KLSAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJjaGFydC1wYW5lLWJvZHkiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJj
aGFydC1wYW5lLW1haW4iPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJj
aGFydC1wYW5lLXNpZGViYXIiPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Y2hhcnQtcGFuZS1vdmVydmlldyI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJjaGFydC1wYW5lLWRldGFpbHMiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgICA8
L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtcGFuZS1zZWNvbmQt
c2lkZWJhciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8Y29tbWl0LWxvZy12aWV3ZXI+PC9j
b21taXQtbG9nLXZpZXdlcj4KLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAg
ICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L3NlY3Rpb24+Ci1gOworICAgICAgICAgICAgPGhl
YWRlciBjbGFzcz0iY2hhcnQtcGFuZS1oZWFkZXIiPgorICAgICAgICAgICAgICAgIDxoMiBjbGFz
cz0iY2hhcnQtcGFuZS10aXRsZSI+LTwvaDI+CisgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0i
Y2hhcnQtcGFuZS1hY3Rpb25zIj4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbG9zZSI+PGNsb3NlLWJ1dHRvbj48L2Nsb3NlLWJ1
dHRvbj48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAg
ICA8dWwgY2xhc3M9ImNoYXJ0LXBhbmUtYWN0aW9uLWJ1dHRvbnMgYnV0dG9uZWQtdG9vbGJhciI+
PC91bD4KKyAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjaGFydC1wYW5lLWFsdGVybmF0
aXZlLXBsYXRmb3JtcyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC91bD4KKyAgICAgICAgICAgICAg
ICAgICAgPGZvcm0gY2xhc3M9ImNoYXJ0LXBhbmUtYW5hbHl6ZS1wYW5lIiBzdHlsZT0iZGlzcGxh
eTpub25lIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiByZXF1
aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+Q3JlYXRlPC9idXR0b24+Cisg
ICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KKyAgICAgICAgICAgICAgICA8L25hdj4KKyAgICAg
ICAgICAgIDwvaGVhZGVyPgorICAgICAgICBgOwogICAgIH0KIAogICAgIHN0YXRpYyBjc3NUZW1w
bGF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gVG9vbGJhci5jc3NUZW1wbGF0ZSgpICsgYAor
ICAgICAgICByZXR1cm4gQ2hhcnRQYW5lQmFzZS5jc3NUZW1wbGF0ZSgpICsgYAogICAgICAgICAg
ICAgLmNoYXJ0LXBhbmUgewotICAgICAgICAgICAgICAgIG1hcmdpbjogMXJlbTsKLSAgICAgICAg
ICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOwotICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBy
ZW07Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHJlbTsKICAgICAgICAgICAgICAgICBib3Jk
ZXI6IHNvbGlkIDFweCAjY2NjOwogICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJl
bTsKLSAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAuY2hhcnQtcGFuZTpmb2N1cyAuY2hhcnQtcGFuZS1oZWFkZXIgewotICAgICAgICAg
ICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjA0LCAxNTMsIDUxLCAwLjEpOworICAgICAgICAgICAg
LmNoYXJ0LXBhbmUtYm9keSB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAy
cmVtKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLmNoYXJ0LXBhbmUtaGVhZGVyIHsK
QEAgLTQ5NCw3NSArMzM0LDYgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7CiAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgICAgICAgICBib3Jk
ZXI6IHNvbGlkIDFweCAjY2NjOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAuY2hhcnQt
cGFuZS1ib2R5IHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgICAg
ICAgICAgICAgd2lkdGg6IDEwMCU7Ci0gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUg
LSAycmVtKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNoYXJ0LXBhbmUtbWFpbiB7
Ci0gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjByZW07Ci0gICAgICAgICAgICAgICAg
aGVpZ2h0OiAxMDAlOwotICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgICAgICAg
ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNl
bnRlcjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmhhcy1zZWNvbmQtc2lkZWJhciAu
Y2hhcnQtcGFuZS1tYWluIHsKLSAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHJlbTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNoYXJ0LXBhbmUtbWFpbiA+ICogewotICAg
ICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwotICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNoYXJ0LXBhbmUtc2lkZWJhciwKLSAgICAg
ICAgICAgIC5jaGFydC1wYW5lLXNlY29uZC1zaWRlYmFyIHsKLSAgICAgICAgICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICAgICAgcmlnaHQ6IDA7Ci0gICAgICAgICAgICAg
ICAgdG9wOiAwOwotICAgICAgICAgICAgICAgIHdpZHRoOiAwOwotICAgICAgICAgICAgICAgIGJv
cmRlci1sZWZ0OiBzb2xpZCAxcHggI2NjYzsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIDpub3QoLmhhcy1zZWNvbmQtc2lkZWJhcikg
PiAuY2hhcnQtcGFuZS1zZWNvbmQtc2lkZWJhciB7Ci0gICAgICAgICAgICAgICAgYm9yZGVyLWxl
ZnQ6IDA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5jaGFydC1wYW5lLXNpZGViYXIg
ewotICAgICAgICAgICAgICAgIHdpZHRoOiAyMHJlbTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgLmhhcy1zZWNvbmQtc2lkZWJhciAuY2hhcnQtcGFuZS1zaWRlYmFyIHsKLSAgICAgICAg
ICAgICAgICByaWdodDogMjByZW07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC5oYXMt
c2Vjb25kLXNpZGViYXIgLmNoYXJ0LXBhbmUtc2Vjb25kLXNpZGViYXIgewotICAgICAgICAgICAg
ICAgIHdpZHRoOiAyMHJlbTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNoYXJ0LXBh
bmUtb3ZlcnZpZXcgewotICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwotICAgICAgICAgICAg
ICAgIGhlaWdodDogNXJlbTsKLSAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAx
cHggI2NjYzsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLmNoYXJ0LXBhbmUtb3ZlcnZp
ZXcgPiAqIHsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgICAg
ICB3aWR0aDogMTAwJTsKLSAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIC5jaGFydC1wYW5lLWRldGFpbHMgewotICAgICAgICAgICAgICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKLSAg
ICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDUuNXJlbSAtIDJweCk7Ci0gICAgICAg
ICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwotICAgICAgICAgICAgICAgIHBhZGRpbmctdG9w
OiAwLjVyZW07Ci0gICAgICAgICAgICB9CiBgOwogICAgIH0KIH0KSW5kZXg6IFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnRzLXBhZ2UuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFydHMtcGFnZS5q
cwkocmV2aXNpb24gMTk2MzUwKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9jaGFydHMtcGFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIAot
Y2xhc3MgQ2hhcnRzUGFnZSBleHRlbmRzIFBhZ2VXaXRoQ2hhcnRzIHsKK2NsYXNzIENoYXJ0c1Bh
Z2UgZXh0ZW5kcyBQYWdlV2l0aEhlYWRpbmcgewogICAgIGNvbnN0cnVjdG9yKHRvb2xiYXIpCiAg
ICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0b29sYmFyIGluc3RhbmNlb2YgQ2hhcnRzVG9v
bGJhcik7CkBAIC0xOSwxMyArMTksMTkgQEAgY2xhc3MgQ2hhcnRzUGFnZSBleHRlbmRzIFBhZ2VX
aXRoQ2hhcnRzIAogICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgfQogCi0gICAgc3RhdGljIGNy
ZWF0ZVN0YXRlRm9yQW5hbHlzaXNUYXNrKHRhc2spCisgICAgc3RhdGljIGNyZWF0ZURvbWFpbkZv
ckFuYWx5c2lzVGFzayh0YXNrKQogICAgIHsKICAgICAgICAgdmFyIGRpZmYgPSAodGFzay5lbmRU
aW1lKCkgLSB0YXNrLnN0YXJ0VGltZSgpKSAqIDAuMTsKKyAgICAgICAgcmV0dXJuIFt0YXNrLnN0
YXJ0VGltZSgpIC0gZGlmZiwgdGFzay5lbmRUaW1lKCkgKyBkaWZmXTsKKyAgICB9CisKKyAgICBz
dGF0aWMgY3JlYXRlU3RhdGVGb3JBbmFseXNpc1Rhc2sodGFzaykKKyAgICB7CisgICAgICAgIHZh
ciBkb21haW4gPSB0aGlzLmNyZWF0ZURvbWFpbkZvckFuYWx5c2lzVGFzayh0YXNrKTsKICAgICAg
ICAgdmFyIHN0YXRlID0gewogICAgICAgICAgICAgcGFuZUxpc3Q6IFtbdGFzay5wbGF0Zm9ybSgp
LmlkKCksIHRhc2subWV0cmljKCkuaWQoKV1dLAogICAgICAgICAgICAgc2luY2U6IE1hdGgucm91
bmQodGFzay5zdGFydFRpbWUoKSAtIChEYXRlLm5vdygpIC0gdGFzay5zdGFydFRpbWUoKSkgKiAw
LjEpLAotICAgICAgICAgICAgem9vbTogW3Rhc2suc3RhcnRUaW1lKCkgLSBkaWZmLCB0YXNrLmVu
ZFRpbWUoKSArIGRpZmZdLAorICAgICAgICAgICAgem9vbTogZG9tYWluLAogICAgICAgICB9Owog
ICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgfQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9wYWdlcy9kYXNoYm9hcmQtcGFnZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2Rhc2hib2FyZC1wYWdlLmpzCShy
ZXZpc2lvbiAxOTYzNTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL2Rhc2hib2FyZC1wYWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDExIEBACiAK
LWNsYXNzIERhc2hib2FyZFBhZ2UgZXh0ZW5kcyBQYWdlV2l0aENoYXJ0cyB7CitjbGFzcyBEYXNo
Ym9hcmRQYWdlIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKICAgICBjb25zdHJ1Y3RvcihuYW1l
LCB0YWJsZSwgdG9vbGJhcikKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRvb2xiYXIg
aW5zdGFuY2VvZiBEYXNoYm9hcmRUb29sYmFyKTsKICAgICAgICAgc3VwZXIobmFtZSwgdG9vbGJh
cik7CiAgICAgICAgIHRoaXMuX3RhYmxlID0gdGFibGU7CisgICAgICAgIHRoaXMuX2NoYXJ0cyA9
IFtdOwogICAgICAgICB0aGlzLl9uZWVkc1RhYmxlQ29uc3RydWN0aW9uID0gdHJ1ZTsKICAgICAg
ICAgdGhpcy5fbmVlZHNTdGF0dXNVcGRhdGUgPSB0cnVlOwogICAgICAgICB0aGlzLl9zdGF0dXNW
aWV3cyA9IFtdOwpAQCAtMTI0LDExICsxMjUsMTEgQEAgY2xhc3MgRGFzaGJvYXJkUGFnZSBleHRl
bmRzIFBhZ2VXaXRoQ2hhcgogICAgICAgICBpZiAoIXBsYXRmb3JtSWQgfHwgIW1ldHJpY0lkKQog
ICAgICAgICAgICAgcmV0dXJuICcnOwogCi0gICAgICAgIHZhciByZXN1bHQgPSBEYXNoYm9hcmRQ
YWdlLmNyZWF0ZUNoYXJ0U291cmNlTGlzdChwbGF0Zm9ybUlkLCBtZXRyaWNJZCk7CisgICAgICAg
IHZhciByZXN1bHQgPSBDaGFydFN0eWxlcy5jcmVhdGVDaGFydFNvdXJjZUxpc3QocGxhdGZvcm1J
ZCwgbWV0cmljSWQpOwogICAgICAgICBpZiAocmVzdWx0LmVycm9yKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5lcnJvcjsKIAotICAgICAgICB2YXIgb3B0aW9ucyA9IERhc2hib2FyZFBhZ2Uu
ZGFzaGJvYXJkT3B0aW9ucyhyZXN1bHQubWV0cmljLm1ha2VGb3JtYXR0ZXIoMykpOworICAgICAg
ICB2YXIgb3B0aW9ucyA9IENoYXJ0U3R5bGVzLmRhc2hib2FyZE9wdGlvbnMocmVzdWx0Lm1ldHJp
Yy5tYWtlRm9ybWF0dGVyKDMpKTsKICAgICAgICAgb3B0aW9ucy5vbmRhdGEgPSB0aGlzLl9mZXRj
aGVkRGF0YS5iaW5kKHRoaXMpOwogICAgICAgICB2YXIgY2hhcnQgPSBuZXcgVGltZVNlcmllc0No
YXJ0KHJlc3VsdC5zb3VyY2VMaXN0LCBvcHRpb25zKTsKICAgICAgICAgdGhpcy5fY2hhcnRzLnB1
c2goY2hhcnQpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9wYWdlLXdpdGgtY2hhcnRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvcGFnZXMvcGFnZS13aXRoLWNoYXJ0cy5qcwkocmV2aXNpb24gMTk2MzUw
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9wYWdlLXdpdGgt
Y2hhcnRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzMiArMCwwIEBACi0KLWNsYXNzIFBhZ2VX
aXRoQ2hhcnRzIGV4dGVuZHMgUGFnZVdpdGhIZWFkaW5nIHsKLSAgICBjb25zdHJ1Y3RvcihuYW1l
LCB0b29sYmFyKQotICAgIHsKLSAgICAgICAgc3VwZXIobmFtZSwgdG9vbGJhcik7Ci0gICAgICAg
IHRoaXMuX2NoYXJ0cyA9IFtdOwotICAgIH0KLQotICAgIHN0YXRpYyBjcmVhdGVDaGFydFNvdXJj
ZUxpc3QocGxhdGZvcm1JZCwgbWV0cmljSWQpCi0gICAgewotICAgICAgICB2YXIgcGxhdGZvcm0g
PSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKLSAgICAgICAgdmFyIG1ldHJpYyA9IE1l
dHJpYy5maW5kQnlJZChtZXRyaWNJZCk7Ci0gICAgICAgIGlmICghcGxhdGZvcm0gfHwgIW1ldHJp
YykKLSAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6IGBJbnZhbGlkIHBsYXRmb3JtIG9yIG1ldHJp
YzogJHtwbGF0Zm9ybUlkfSBhbmQgJHttZXRyaWNJZH1gfTsKLQotICAgICAgICB2YXIgbGFzdE1v
ZGlmaWVkID0gcGxhdGZvcm0ubGFzdE1vZGlmaWVkKG1ldHJpYyk7Ci0gICAgICAgIGlmICghbGFz
dE1vZGlmaWVkKQotICAgICAgICAgICAgcmV0dXJuIHtwbGF0Zm9ybTogcGxhdGZvcm0sIG1ldHJp
YzogbWV0cmljLCBlcnJvcjogYE5vIHJlc3VsdHMgb24gJHtwbGF0Zm9ybS5uYW1lKCl9YH07Ci0K
LSAgICAgICAgdmFyIG1lYXN1cmVtZW50U2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChwbGF0
Zm9ybS5pZCgpLCBtZXRyaWMuaWQoKSwgbGFzdE1vZGlmaWVkKTsKLSAgICAgICAgdmFyIHNvdXJj
ZUxpc3QgPSBbCi0gICAgICAgICAgICB0aGlzLmJhc2VsaW5lU3R5bGUobWVhc3VyZW1lbnRTZXQs
ICdiYXNlbGluZScpLAotICAgICAgICAgICAgdGhpcy50YXJnZXRTdHlsZShtZWFzdXJlbWVudFNl
dCwgJ3RhcmdldCcpLAotICAgICAgICAgICAgdGhpcy5jdXJyZW50U3R5bGUobWVhc3VyZW1lbnRT
ZXQsICdjdXJyZW50JyksCi0gICAgICAgIF07Ci0KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAg
ICAgIHBsYXRmb3JtOiBwbGF0Zm9ybSwKLSAgICAgICAgICAgIG1ldHJpYzogbWV0cmljLAotICAg
ICAgICAgICAgc291cmNlTGlzdDogc291cmNlTGlzdCwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAg
ICBzdGF0aWMgYmFzZWxpbmVTdHlsZShtZWFzdXJlbWVudFNldCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB7Ci0gICAgICAgICAgICBtZWFzdXJlbWVudFNldDogbWVhc3VyZW1lbnRTZXQsCi0gICAg
ICAgICAgICBleHRlbmRUb0Z1dHVyZTogdHJ1ZSwKLSAgICAgICAgICAgIHNhbXBsZURhdGE6IHRy
dWUsCi0gICAgICAgICAgICB0eXBlOiAnYmFzZWxpbmUnLAotICAgICAgICAgICAgcG9pbnRTdHls
ZTogJyNmMzMnLAotICAgICAgICAgICAgcG9pbnRSYWRpdXM6IDIsCi0gICAgICAgICAgICBsaW5l
U3R5bGU6ICcjZjk5JywKLSAgICAgICAgICAgIGxpbmVXaWR0aDogMS41LAotICAgICAgICAgICAg
aW50ZXJ2YWxTdHlsZTogJyNmZGQnLAotICAgICAgICAgICAgaW50ZXJ2YWxXaWR0aDogMiwKLSAg
ICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdGFyZ2V0U3R5bGUobWVhc3VyZW1lbnRTZXQp
Ci0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgbWVhc3VyZW1lbnRTZXQ6IG1l
YXN1cmVtZW50U2V0LAotICAgICAgICAgICAgZXh0ZW5kVG9GdXR1cmU6IHRydWUsCi0gICAgICAg
ICAgICBzYW1wbGVEYXRhOiB0cnVlLAotICAgICAgICAgICAgdHlwZTogJ3RhcmdldCcsCi0gICAg
ICAgICAgICBwb2ludFN0eWxlOiAnIzMzZicsCi0gICAgICAgICAgICBwb2ludFJhZGl1czogMiwK
LSAgICAgICAgICAgIGxpbmVTdHlsZTogJyM5OWYnLAotICAgICAgICAgICAgbGluZVdpZHRoOiAx
LjUsCi0gICAgICAgICAgICBpbnRlcnZhbFN0eWxlOiAnI2RkZicsCi0gICAgICAgICAgICBpbnRl
cnZhbFdpZHRoOiAyLAotICAgICAgICB9OwotICAgIH0KLQotICAgIHN0YXRpYyBjdXJyZW50U3R5
bGUobWVhc3VyZW1lbnRTZXQpCi0gICAgewotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAg
bWVhc3VyZW1lbnRTZXQ6IG1lYXN1cmVtZW50U2V0LAotICAgICAgICAgICAgc2FtcGxlRGF0YTog
dHJ1ZSwKLSAgICAgICAgICAgIHR5cGU6ICdjdXJyZW50JywKLSAgICAgICAgICAgIHBvaW50U3R5
bGU6ICcjMzMzJywKLSAgICAgICAgICAgIHBvaW50UmFkaXVzOiAyLAotICAgICAgICAgICAgbGlu
ZVN0eWxlOiAnIzk5OScsCi0gICAgICAgICAgICBsaW5lV2lkdGg6IDEuNSwKLSAgICAgICAgICAg
IGludGVydmFsU3R5bGU6ICcjZGRkJywKLSAgICAgICAgICAgIGludGVydmFsV2lkdGg6IDIsCi0g
ICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBz
dGF0aWMgZGFzaGJvYXJkT3B0aW9ucyh2YWx1ZUZvcm1hdHRlcikKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB7Ci0gICAgICAgICAgICB1cGRhdGVPblJlcXVlc3RBbmltYXRpb25GcmFtZTogdHJ1ZSwK
LSAgICAgICAgICAgIGF4aXM6IHsKLSAgICAgICAgICAgICAgICB5QXhpc1dpZHRoOiA0LCAvLyBy
ZW0KLSAgICAgICAgICAgICAgICB4QXhpc0hlaWdodDogMiwgLy8gcmVtCi0gICAgICAgICAgICAg
ICAgZ3JpZFN0eWxlOiAnI2RkZCcsCi0gICAgICAgICAgICAgICAgZm9udFNpemU6IDAuOCwgLy8g
cmVtCi0gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHZhbHVlRm9ybWF0dGVyLAotICAg
ICAgICAgICAgfSwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgb3ZlcnZpZXdDaGFy
dE9wdGlvbnModmFsdWVGb3JtYXR0ZXIpCi0gICAgewotICAgICAgICB2YXIgb3B0aW9ucyA9IHRo
aXMuZGFzaGJvYXJkT3B0aW9ucyh2YWx1ZUZvcm1hdHRlcik7Ci0gICAgICAgIG9wdGlvbnMuYXhp
cy55QXhpc1dpZHRoID0gMDsgLy8gcmVtCi0gICAgICAgIG9wdGlvbnMuc2VsZWN0aW9uID0gewot
ICAgICAgICAgICAgbGluZVN0eWxlOiAnI2Y5MycsCi0gICAgICAgICAgICBsaW5lV2lkdGg6IDIs
Ci0gICAgICAgICAgICBmaWxsU3R5bGU6ICdyZ2JhKDE1MywgMjA0LCAxMDIsIC4xMjUpJywKLSAg
ICAgICAgfQotICAgICAgICByZXR1cm4gb3B0aW9uczsKLSAgICB9Ci0KLSAgICBzdGF0aWMgbWFp
bkNoYXJ0T3B0aW9ucyh2YWx1ZUZvcm1hdHRlcikKLSAgICB7Ci0gICAgICAgIHZhciBvcHRpb25z
ID0gdGhpcy5kYXNoYm9hcmRPcHRpb25zKHZhbHVlRm9ybWF0dGVyKTsKLSAgICAgICAgb3B0aW9u
cy5heGlzLnhBeGlzRW5kUGFkZGluZyA9IDU7Ci0gICAgICAgIG9wdGlvbnMuYXhpcy55QXhpc1dp
ZHRoID0gNTsKLSAgICAgICAgb3B0aW9ucy5zZWxlY3Rpb24gPSB7Ci0gICAgICAgICAgICBsaW5l
U3R5bGU6ICcjZjkzJywKLSAgICAgICAgICAgIGxpbmVXaWR0aDogMiwKLSAgICAgICAgICAgIGZp
bGxTdHlsZTogJ3JnYmEoMTUzLCAyMDQsIDEwMiwgLjEyNSknLAotICAgICAgICB9Ci0gICAgICAg
IG9wdGlvbnMuaW5kaWNhdG9yID0gewotICAgICAgICAgICAgbGluZVN0eWxlOiAnI2Y5MycsCi0g
ICAgICAgICAgICBsaW5lV2lkdGg6IDIsCi0gICAgICAgICAgICBwb2ludFJhZGl1czogMywKLSAg
ICAgICAgfTsKLSAgICAgICAgb3B0aW9ucy5hbm5vdGF0aW9ucyA9IHsKLSAgICAgICAgICAgIHRl
eHRTdHlsZTogJyMwMDAnLAotICAgICAgICAgICAgdGV4dEJhY2tncm91bmQ6ICcjZmZmJywKLSAg
ICAgICAgICAgIG1pbldpZHRoOiAzLAotICAgICAgICAgICAgYmFySGVpZ2h0OiA3LAotICAgICAg
ICAgICAgYmFyU3BhY2luZzogMiwKLSAgICAgICAgfTsKLSAgICAgICAgcmV0dXJuIG9wdGlvbnM7
Ci0gICAgfQotfQo=
</data>
<flag name="review"
          id="295819"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>