<?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>54558</bug_id>
          
          <creation_ts>2011-02-16 08:08:34 -0800</creation_ts>
          <short_desc>Web Inspector: split all the functions of Inspector backend API by domain.</short_desc>
          <delta_ts>2011-02-16 09:18:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352076</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 08:08:34 -0800</bug_when>
    <thetext>We have a number of functions from different domains in single InspectorBackend instance.
I&apos;d be better to split the functions by domain.
As example &apos;evaluate&apos; will be moved from InspectorBackend to InspectorBackend.Runtime container.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352081</commentid>
    <comment_count>1</comment_count>
      <attachid>82641</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 08:12:58 -0800</bug_when>
    <thetext>Created attachment 82641
[patch] initial version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352117</commentid>
    <comment_count>2</comment_count>
      <attachid>82650</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 09:02:35 -0800</bug_when>
    <thetext>Created attachment 82650
[patch] second version

In this version all the functions are accessible via a conainer for their domain.
original: InspectorBackend.evaluate(&quot;lalala&quot;);
new version: RuntimeAgent.evaluate(&quot;lalala&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352123</commentid>
    <comment_count>3</comment_count>
      <attachid>82650</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-16 09:07:31 -0800</bug_when>
    <thetext>Comment on attachment 82650
[patch] second version

View in context: https://bugs.webkit.org/attachment.cgi?id=82650&amp;action=review

&gt; LayoutTests/ChangeLog:9
&gt; +        I&apos;d be better to split the functions by their domains.

I&apos;d -&gt; It&apos;d

&gt; Source/WebCore/inspector/CodeGeneratorInspector.pm:628
&gt; +            window[agentName] = [];

window[agentName] should be Object not Array. r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352126</commentid>
    <comment_count>4</comment_count>
      <attachid>82651</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 09:13:43 -0800</bug_when>
    <thetext>Created attachment 82651
[patch] third version

comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352128</commentid>
    <comment_count>5</comment_count>
      <attachid>82651</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 09:18:16 -0800</bug_when>
    <thetext>Comment on attachment 82651
[patch] third version

Clearing flags on attachment: 82651

Committed r78717: &lt;http://trac.webkit.org/changeset/78717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352129</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-02-16 09:18:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82641</attachid>
            <date>2011-02-16 08:12:58 -0800</date>
            <delta_ts>2011-02-16 09:02:35 -0800</delta_ts>
            <desc>[patch] initial version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>84094</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZhNGE3Li40NzJiNDlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDIt
MTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0
IGFsbCB0aGUgZnVuY3Rpb25zIG9mIEluc3BlY3RvciBiYWNrZW5kIEFQSSBieSBkb21haW4uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OAorCisg
ICAgICAgIFdlIGhhdmUgYSBudW1iZXIgb2YgZnVuY3Rpb25zIGZyb20gZGlmZmVyZW50IGRvbWFp
bnMgaW4gc2luZ2xlIEluc3BlY3RvckJhY2tlbmQgaW5zdGFuY2UuCisgICAgICAgIEknZCBiZSBi
ZXR0ZXIgdG8gc3BsaXQgdGhlIGZ1bmN0aW9ucyBieSBkb21haW4uCisgICAgICAgIEFzIGV4YW1w
bGUgJ2V2YWx1YXRlJyB3aWxsIGJlIG1vdmVkIGZyb20gSW5zcGVjdG9yQmFja2VuZCB0byBJbnNw
ZWN0b3JCYWNrZW5kLlJ1bnRpbWUgY29udGFpbmVyLgorCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5z
aW9uc1Rlc3QuSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk6CisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXpl
X0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QpOgorICAgICAgICAoaW5p
dGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UpOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucmVsb2FkUGFnZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50
YXgtZXJyb3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1
c2Utb24tZXhjZXB0aW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLXBhbmVsLXNlYXJjaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9yZXBvcnQtQVBJLWVy
cm9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3Jz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRlc3QuanM6CisgICAgICAgIChp
bml0aWFsaXplX1RpbWVsaW5lLkluc3BlY3RvclRlc3QucGVyZm9ybUFjdGlvbnNBbmRQcmludC5z
dGVwMik6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRyaXZpYWwuaHRt
bDoKKwogMjAxMS0wMi0xNiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwK
aW5kZXggNzRkMjI2YS4uMzU1ZmUzZSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApAQCAtMzMsNyArMzMs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgibWFrZVJlcXVlc3RzKCkiLCBzdGVwMik7CiAgICAgICAgIH0KLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCBjYWxs
YmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ29uc29sZS5zZXRNb25pdG9yaW5nWEhS
RW5hYmxlZCh0cnVlLCBjYWxsYmFjayk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQpA
QCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibWFrZVJlcXVlc3RzKCkiLCBzdGVwMyk7CiAg
ICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZChmYWxzZSwgY2FsbGJhY2spOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNvbnNvbGUuc2V0
TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFsc2UsIGNhbGxiYWNrKTsKICAgICB9CiAKICAgICBmdW5j
dGlvbiBzdGVwMygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLXRlc3QuanMKaW5kZXggMzljNGE1NS4uNjIyZjhjMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcwpAQCAtMzQs
NyArMzQsNyBAQCBJbnNwZWN0b3JUZXN0LmRpc3BhdGNoT25NZXNzYWdlID0gZnVuY3Rpb24obWVz
c2FnZUlkLCBjYWxsYmFjaywgcmVjdXJyaW5nKQogCiBJbnNwZWN0b3JUZXN0LnJ1bkV4dGVuc2lv
blRlc3RzID0gZnVuY3Rpb24oKQogewotICAgIEluc3BlY3RvckJhY2tlbmQuZXZhbHVhdGUoImxv
Y2F0aW9uLmhyZWYiLCAiY29uc29sZSIsIGZhbHNlLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBJ
bnNwZWN0b3JCYWNrZW5kLlJ1bnRpbWUuZXZhbHVhdGUoImxvY2F0aW9uLmhyZWYiLCAiY29uc29s
ZSIsIGZhbHNlLCBmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgdmFyIHBhZ2VVUkwgPSByZXN1
bHQuZGVzY3JpcHRpb247CiAgICAgICAgIHZhciBleHRlbnNpb25VUkwgPSAoL15odHRwcz86Ly50
ZXN0KHBhZ2VVUkwpID8KICAgICAgICAgICAgIHBhZ2VVUkwucmVwbGFjZSgvXihodHRwcz86XC9c
L1teL10qXC8pLiokLywiJDEiKSA6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCmluZGV4IDM2MTYyMWEuLmM4YjVjYjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCkBA
IC01LDcgKzUsNyBAQCB2YXIgcmVzdWx0c1N5bmNocm9uaXplZCA9IGZhbHNlOwogCiBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JCYWNrZW5k
LmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3RD
YWxsSWQsICIiKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5kaWRFdmFsdWF0ZUZv
clRlc3RJbkZyb250ZW5kKEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0Q2FsbElkLCAiIik7CiB9
CiAKIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUgPSBmdW5jdGlvbihjb2RlLCBjYWxs
YmFjaykKQEAgLTQwLDcgKzQwLDcgQEAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSA9IGZ1
bmN0aW9uKGNvZGUsIGNhbGxiYWNrKQogICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgICAg
ICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkp
OwogICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlKGNvZGUsICJjb25zb2xlIiwg
ZmFsc2UsIG15Y2FsbGJhY2spOworICAgIEluc3BlY3RvckJhY2tlbmQuUnVudGltZS5ldmFsdWF0
ZShjb2RlLCAiY29uc29sZSIsIGZhbHNlLCBteWNhbGxiYWNrKTsKIH0KIAogSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0ID0gZnVuY3Rpb24oY29kZSwgY2FsbGJhY2spCkBA
IC0xMDksNyArMTA5LDcgQEAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlID0gZnVuY3Rpb24oY2Fs
bGJhY2spCiAKICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQogICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuX3Jlc2V0KCk7Ci0gICAgSW5zcGVjdG9yQmFja2Vu
ZC5yZWxvYWRQYWdlKGZhbHNlKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5yZWxv
YWRQYWdlKGZhbHNlKTsKIH0KIAogSW5zcGVjdG9yVGVzdC5wYWdlUmVsb2FkZWQgPSBmdW5jdGlv
bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRp
ci1nbG9iYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGly
LWdsb2JhbC5odG1sCmluZGV4IGE2MTVhNjEuLjU0MWI3MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCkBAIC0xMiw3
ICsxMiw3IEBAIGZ1bmN0aW9uIGRvaXQoKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBJbnNw
ZWN0b3JCYWNrZW5kLmV2YWx1YXRlKCJ3aW5kb3ciLCAiY29uc29sZSIsIGZhbHNlLCBldmFsQ2Fs
bGJhY2spOworICAgIEluc3BlY3RvckJhY2tlbmQuUnVudGltZS5ldmFsdWF0ZSgid2luZG93Iiwg
ImNvbnNvbGUiLCBmYWxzZSwgZXZhbENhbGxiYWNrKTsKIAogICAgIGZ1bmN0aW9uIGV2YWxDYWxs
YmFjayhyZXN1bHQpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4
LWVycm9yLmh0bWwKaW5kZXggZWIxYTA1OC4uNDE1ZmE1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJy
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYXV0
b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RhcnREZWJ1Z2dlclRlc3RDYWxsYmFjaygpCiAgICAg
ewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLlBhdXNlT25VbmNh
dWdodEV4Y2VwdGlvbnMpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLnNldFBh
dXNlT25FeGNlcHRpb25zU3RhdGUoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlLlBhdXNlT25VbmNhdWdodEV4Y2VwdGlvbnMpOwogICAgICAgICBJbnNwZWN0
b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImRlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgt
ZXJyb3IuaHRtbCIsIHJlbG9hZEluc3BlY3RlZFBhZ2UpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNlLW9u
LWV4Y2VwdGlvbi5odG1sCmluZGV4IDIzNDkwYzMuLmEzNTc0NjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Utb24t
ZXhjZXB0aW9uLmh0bWwKQEAgLTIwLDcgKzIwLDcgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAK
ICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNl
dFBhdXNlT25FeGNlcHRpb25zU3RhdGUoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9u
RXhjZXB0aW9uc1N0YXRlLlBhdXNlT25VbmNhdWdodEV4Y2VwdGlvbnMpOworICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLlBhdXNlT25VbmNhdWdodEV4
Y2VwdGlvbnMpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImRlYnVn
Z2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi5odG1sIiwgc3RlcDIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJj
aC5odG1sCmluZGV4IGVmOGVmN2UuLjEwNTE1ZGEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKQEAgLTI1
LDI2ICsyNSwyNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGlmIChub2RlLm5vZGVU
eXBlID09PSBOb2RlLlRFWFRfTk9ERSkKICAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnB1
c2gobm9kZS5ub2RlVmFsdWUpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIElu
c3BlY3RvckJhY2tlbmQuZ2V0T3V0ZXJIVE1MKG5vZGUuaWQsIGFkZFNlYXJjaFJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5ET00uZ2V0T3V0ZXJIVE1MKG5vZGUuaWQs
IGFkZFNlYXJjaFJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBQbGFpbiB0ZXh0
LgotICAgIEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCgiRm9vIiArICJCYXIiLCB0cnVl
KTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5wZXJmb3JtU2VhcmNoKCJGb28iICsgIkJhciIs
IHRydWUpOwogICAgIC8vIFBhcnRpYWwgdGV4dC4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnBlcmZv
cm1TZWFyY2goIm9vIiArICJCYSIsIHRydWUpOworICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLnBl
cmZvcm1TZWFyY2goIm9vIiArICJCYSIsIHRydWUpOwogICAgIC8vIFN0YXJ0IHRhZy4KLSAgICBJ
bnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2goIjxpbnB1IiArICJ0IiwgdHJ1ZSk7CisgICAg
SW5zcGVjdG9yQmFja2VuZC5ET00ucGVyZm9ybVNlYXJjaCgiPGlucHUiICsgInQiLCB0cnVlKTsK
ICAgICAvLyBQYXJ0aWFsIHRhZy4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2go
Im5wdSIgKyAidCIsIHRydWUpOworICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLnBlcmZvcm1TZWFy
Y2goIm5wdSIgKyAidCIsIHRydWUpOwogICAgIC8vIEV4YWN0IGF0dHJpYnV0ZSBuYW1lLgotICAg
IEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCgidmFsdSIgKyAiZSIsIHRydWUpOworICAg
IEluc3BlY3RvckJhY2tlbmQuRE9NLnBlcmZvcm1TZWFyY2goInZhbHUiICsgImUiLCB0cnVlKTsK
ICAgICAvLyBFeGFjdCBhdHRyaWJ1dGUgdmFsPD51ZS4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnBl
cmZvcm1TZWFyY2goIkluIiArICJwdXRWYSIgKyAibCIsIHRydWUpOworICAgIEluc3BlY3RvckJh
Y2tlbmQuRE9NLnBlcmZvcm1TZWFyY2goIkluIiArICJwdXRWYSIgKyAibCIsIHRydWUpOwogICAg
IC8vIFBhcnRpYWwgYXR0cmlidXRlIHZhbDw+dWUuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5wZXJm
b3JtU2VhcmNoKCJuIiArICJwdXRWYSIgKyAibCIsIHRydWUpOworICAgIEluc3BlY3RvckJhY2tl
bmQuRE9NLnBlcmZvcm1TZWFyY2goIm4iICsgInB1dFZhIiArICJsIiwgdHJ1ZSk7CiAgICAgLy8g
VGVybWluYXRvci4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2goInRlciIgKyAi
bWkiICsgIm5hdG9yIiwgdHJ1ZSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5ET00ucGVyZm9ybVNl
YXJjaCgidGVyIiArICJtaSIgKyAibmF0b3IiLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy1leHBl
Y3RlZC50eHQKaW5kZXggMTI0YzI5ZS4uN2NkMDc4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBA
QAogVGVzdHMgdGhhdCBJbnNwZWN0b3JCYWNrZW5kU3R1YiBpcyBjYXRjaGluZyBpbmNvcnJlY3Qg
YXJndW1lbnRzLgogCi1Qcm90b2NvbCBFcnJvcjogSW52YWxpZCB0eXBlIG9mIGFyZ3VtZW50ICdl
bmFibGVkJyBmb3IgJ0luc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNh
bGwuIEl0IHNob3VsZCBiZSAnYm9vbGVhbicgYnV0IGl0IGlzICdudW1iZXInLgotUHJvdG9jb2wg
RXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgJ0luc3BlY3RvckJhY2tlbmQu
c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwuIEl0IHNob3VsZCBoYXZlIHRoZSBuZXh0IGFy
Z3VtZW50cyAneyJlbmFibGVkIjoiYm9vbGVhbiJ9Jy4KLVByb3RvY29sIEVycm9yOiBPcHRpb25h
bCBjYWxsYmFjayBhcmd1bWVudCBmb3IgJ0luc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hI
UkVuYWJsZWQnIGNhbGwgc2hvdWxkIGJlIGEgZnVuY3Rpb24gYnV0IGl0cyB0eXBlIGlzICdzdHJp
bmcnLgorUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgdHlwZSBvZiBhcmd1bWVudCAnZW5hYmxlZCcg
Zm9yICdJbnNwZWN0b3JCYWNrZW5kLkNvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQnIGNh
bGwuIEl0IHNob3VsZCBiZSAnYm9vbGVhbicgYnV0IGl0IGlzICdudW1iZXInLgorUHJvdG9jb2wg
RXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgJ0luc3BlY3RvckJhY2tlbmQu
Q29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCcgY2FsbC4gSXQgc2hvdWxkIGhhdmUgdGhl
IG5leHQgYXJndW1lbnRzICd7ImVuYWJsZWQiOiJib29sZWFuIn0nLgorUHJvdG9jb2wgRXJyb3I6
IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciAnSW5zcGVjdG9yQmFja2VuZC5Db25zb2xl
LnNldE1vbml0b3JpbmdYSFJFbmFibGVkJyBjYWxsIHNob3VsZCBiZSBhIGZ1bmN0aW9uIGJ1dCBp
dHMgdHlwZSBpcyAnc3RyaW5nJy4KIFByb3RvY29sIEVycm9yOiB0aGUgbWVzc2FnZSBpcyBmb3Ig
bm9uLWV4aXN0aW5nIGRvbWFpbiAnd3JvbmdEb21haW4nCiBQcm90b2NvbCBFcnJvcjogQXR0ZW1w
dGVkIHRvIGRpc3BhdGNoIGFuIHVuaW1wbGVtZW50ZWQgbWV0aG9kICdJbnNwZWN0b3Iuc29tZXRo
aW5nLXN0cmFuZ2UnCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQt
QVBJLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3Jz
Lmh0bWwKaW5kZXggYzlhNWI4Zi4uZjNlODQwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3JlcG9ydC1BUEktZXJyb3JzLmh0bWwKQEAgLTExLDExICsxMSwxMSBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoU3RyaW5nLnNwcmludGYuYXBwbHko
dGhpcywgYXJndW1lbnRzKSk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25p
dG9yaW5nWEhSRW5hYmxlZCgxKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdY
SFJFbmFibGVkKCk7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZCh0cnVlLCAibm90IGEgZnVuY3Rpb24iKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0
b3JpbmdYSFJFbmFibGVkKHRydWUsIHVuZGVmaW5lZCk7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgdW5kZWZpbmVkKTsKKyAgICBJbnNwZWN0b3JC
YWNrZW5kLkNvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoMSk7CisgICAgSW5zcGVjdG9y
QmFja2VuZC5Db25zb2xlLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKCk7CisgICAgSW5zcGVjdG9y
QmFja2VuZC5Db25zb2xlLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUsICJub3QgYSBmdW5j
dGlvbiIpOworICAgIEluc3BlY3RvckJhY2tlbmQuQ29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5h
YmxlZCh0cnVlLCB1bmRlZmluZWQpOworICAgIEluc3BlY3RvckJhY2tlbmQuQ29uc29sZS5zZXRN
b25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSwgdW5kZWZpbmVkKTsKICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmRpc3BhdGNoKCd7InR5cGUiOiAiZXZlbnQiLCAiZG9tYWluIjogIndyb25nRG9tYWluIiwg
ImV2ZW50IjogInNvbWV0aGluZy1zdHJhbmdlIiwgImRhdGEiOiB7fX0nKTsKICAgICBJbnNwZWN0
b3JCYWNrZW5kLmRpc3BhdGNoKCd7InR5cGUiOiAiZXZlbnQiLCAiZG9tYWluIjogIkluc3BlY3Rv
ciIsICJldmVudCI6ICJzb21ldGhpbmctc3RyYW5nZSIsICJkYXRhIjoge319Jyk7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sCmluZGV4
IGQ1MTk4NWYuLjUyMzZjMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBv
cnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9y
dC1wcm90b2NvbC1lcnJvcnMuaHRtbApAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zZW5kTWVzc2FnZVRvQmFja2VuZCht
ZXNzYWdlc1tpXSk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlRGVidWdn
ZXIoZmlyZSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3IuZGlzYWJsZURlYnVnZ2Vy
KGZpcmUpOwogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLW5ldy1BUEkuaHRtbAppbmRleCA1MDg2ZWNiLi5jZGY0ZDAyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sCkBAIC00Nyw3
ICs0Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIG5vZGVDYWxsYmFj
ayhub2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxl
c0Zvck5vZGUobm9kZS5pZCwgY2FsbGJhY2spOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5DU1MuZ2V0U3R5bGVzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7CiAgICAgICAgIH0KICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJtYWluQm9keSIsIG5vZGVDYWxs
YmFjayk7CiAgICAgfQpAQCAtNjcsNyArNjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAg
ICBmdW5jdGlvbiBub2RlQ2FsbGJhY2sobm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLmdldFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgY2Fs
bGJhY2spOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgidGhl
dGFibGUiLCBub2RlQ2FsbGJhY2spOwogICAgIH0KQEAgLTg3LDcgKzg3LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gTGFzdCBzdHlsZXNo
ZWV0IHBhdGNoZWQgPT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFN0eWxl
U2hlZXRUZXh0KHN0eWxlU2hlZXQuc3R5bGVTaGVldElkLCBuZXdTdHlsZVNoZWV0VGV4dCwKKyAg
ICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLnNldFN0eWxlU2hlZXRUZXh0KHN0eWxlU2hl
ZXQuc3R5bGVTaGVldElkLCBuZXdTdHlsZVNoZWV0VGV4dCwKICAgICAgICAgICAgICAgICBsb2Fk
QW5kRHVtcFN0eWxlU2hlZXQuYmluZChudWxsLCBzdHlsZVNoZWV0LnN0eWxlU2hlZXRJZCwgdGVz
dF9jaGFuZ2VTZWxlY3RvcikpOwogICAgICAgICB9CiAKQEAgLTk4LDcgKzk4LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsr
aSkKICAgICAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQoaWRzW2ldLCAoaSA8IGlk
cy5sZW5ndGggLSAxKSA/IG51bGwgOiBwYXRjaFN0eWxlU2hlZXQpOwogICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0QWxsU3R5bGVzKHN0eWxlU2hlZXRJZHNMb2FkZWQpOwor
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5nZXRBbGxTdHlsZXMoc3R5bGVTaGVldElkc0xv
YWRlZCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVzdF9jaGFuZ2VTZWxlY3RvcihzdHlsZVNo
ZWV0KQpAQCAtMTEwLDcgKzExMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgbG9h
ZEFuZER1bXBTdHlsZVNoZWV0KHJ1bGUucnVsZUlkLnN0eWxlU2hlZXRJZCwgdGVzdF9zZXRTdHls
ZVRleHQpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRSdWxlU2Vs
ZWN0b3Ioc3R5bGVTaGVldC5ydWxlc1swXS5ydWxlSWQsICJodG1sICosIGJvZHlbZm9vPVwiYmFy
XCJdIiwgZGlkU2V0U2VsZWN0b3IpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5zZXRS
dWxlU2VsZWN0b3Ioc3R5bGVTaGVldC5ydWxlc1swXS5ydWxlSWQsICJodG1sICosIGJvZHlbZm9v
PVwiYmFyXCJdIiwgZGlkU2V0U2VsZWN0b3IpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHRlc3Rf
c2V0U3R5bGVUZXh0KHN0eWxlU2hlZXQpCkBAIC0xMjIsMTIgKzEyMiwxMiBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVldChzdHlsZS5zdHlsZUlkLnN0
eWxlU2hlZXRJZCwgdGVzdF9hZGRSdWxlKTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJ
ZCwgMCwgIiIsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4
dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICIiLCB0cnVlKTsKKyAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5DU1Muc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNb
MF0uc3R5bGUuc3R5bGVJZCwgMCwgIiIsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LkNTUy5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZS5zdHlsZUlkLCAw
LCAiIiwgdHJ1ZSk7CiAKICAgICAgICAgLy8gVGhpcyBvcGVyYXRpb24gc2hvdWxkIG5vdCB1cGRh
dGUgdGhlIHN0eWxlIGFzIHRoZSBuZXcgcHJvcGVydHkgdGV4dCBpcyBub3QgcGFyc2FibGUuCi0g
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNb
MF0uc3R5bGUuc3R5bGVJZCwgMCwgInp6ejsiLCBmYWxzZSk7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJZCwg
MCwgImNvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZDogYmxhY2s7IiwgZmFsc2UsIGRpZFNldFN0eWxl
VGV4dCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLnNldFByb3BlcnR5VGV4dChzdHls
ZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICJ6eno7IiwgZmFsc2UpOworICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1sw
XS5zdHlsZS5zdHlsZUlkLCAwLCAiY29sb3I6IHdoaXRlOyBiYWNrZ3JvdW5kOiBibGFjazsiLCBm
YWxzZSwgZGlkU2V0U3R5bGVUZXh0KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0ZXN0X2FkZFJ1
bGUoKQpAQCAtMTQyLDE1ICsxNDIsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVu
Y3Rpb24gZGlkU2V0U3R5bGVUZXh0KHN0eWxlKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmdldFN0eWxlc0Zvck5vZGUoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3Vt
ZW50LmJvZHkuaWQsIGRpZEdldFN0eWxlcyk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LkNTUy5nZXRTdHlsZXNGb3JOb2RlKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5ib2R5
LmlkLCBkaWRHZXRTdHlsZXMpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcnVsZUFk
ZGVkKHJ1bGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJv
cGVydHlUZXh0KHJ1bGUuc3R5bGUuc3R5bGVJZCwgMCwgImZvbnQtZmFtaWx5OiBzZXJpZjsiLCBm
YWxzZSwgZGlkU2V0U3R5bGVUZXh0KTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NT
LnNldFByb3BlcnR5VGV4dChydWxlLnN0eWxlLnN0eWxlSWQsIDAsICJmb250LWZhbWlseTogc2Vy
aWY7IiwgZmFsc2UsIGRpZFNldFN0eWxlVGV4dCk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmFkZFJ1bGUoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHku
aWQsICJib2R5IiwgcnVsZUFkZGVkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1MuYWRk
UnVsZShXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5pZCwgImJvZHkiLCBydWxl
QWRkZWQpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHRlc3RfZGlzYWJsZVByb3BlcnR5KCkKQEAg
LTE3NSwxMyArMTc1LDEzIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgLy8gYm9yZGVy
LXdpZHRoOiAwcHg7CiAKICAgICAgICAgICAgIHZhciBzdHlsZSA9IHN0eWxlcy5tYXRjaGVkQ1NT
UnVsZXNbMV0uc3R5bGU7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnRvZ2dsZVByb3Bl
cnR5KHN0eWxlLnN0eWxlSWQsIDAsIHRydWUpOyAvLyBoZWlnaHQ6IDEwMCUKLSAgICAgICAgICAg
IEluc3BlY3RvckJhY2tlbmQudG9nZ2xlUHJvcGVydHkoc3R5bGUuc3R5bGVJZCwgNywgdHJ1ZSk7
IC8vIGJvcmRlci13aWR0aDogMHB4Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFBy
b3BlcnR5VGV4dChzdHlsZS5zdHlsZUlkLCA3LCAiZm9udC1zaXplOiAxMnB4OyIsIGZhbHNlKTsK
LSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxl
SWQsIDksICJmb250LXNpemU6IDE0cHg7IiwgZmFsc2UpOwotICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA5LCB0cnVlKTsgLy8gZm9udC1z
aXplOiAxNHB4Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dChz
dHlsZS5zdHlsZUlkLCA4LCAiYm9yZGVyLXdpZHRoOiAxcHg7IiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnRvZ2dsZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDgsIGZhbHNl
KTsgLy8gYm9yZGVyLXdpZHRoOiAxcHgKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NT
LnRvZ2dsZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDAsIHRydWUpOyAvLyBoZWlnaHQ6IDEwMCUK
KyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLnRvZ2dsZVByb3BlcnR5KHN0eWxlLnN0
eWxlSWQsIDcsIHRydWUpOyAvLyBib3JkZXItd2lkdGg6IDBweAorICAgICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5DU1Muc2V0UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxlSWQsIDcsICJmb250LXNp
emU6IDEycHg7IiwgZmFsc2UpOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1Muc2V0
UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxlSWQsIDksICJmb250LXNpemU6IDE0cHg7IiwgZmFsc2Up
OworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1MudG9nZ2xlUHJvcGVydHkoc3R5bGUu
c3R5bGVJZCwgOSwgdHJ1ZSk7IC8vIGZvbnQtc2l6ZTogMTRweAorICAgICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5DU1Muc2V0UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxlSWQsIDgsICJib3JkZXIt
d2lkdGg6IDFweDsiLCB0cnVlKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLnRv
Z2dsZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDgsIGZhbHNlKTsgLy8gYm9yZGVyLXdpZHRoOiAx
cHgKICAgICAgICAgICAgIC8vIGhlaWdodCA6IDEwMCUgOyBbZF0KICAgICAgICAgICAgIC8vIGJv
cmRlcjogMXB4IHNvbGlkOwogICAgICAgICAgICAgLy8gYm9yZGVyLXdpZHRoOiAycHg7CkBAIC0x
OTMsMTIgKzE5MywxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIC8vIGJvcmRlci13
aWR0aDogMXB4OwogICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxNHB4OyBbZF0KIAotICAgICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgMywg
IiIsIHRydWUsIGRpZERpc2FibGVQcm9wZXJ0eSk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLkNTUy5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgMywgIiIsIHRydWUsIGRpZERp
c2FibGVQcm9wZXJ0eSk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBub2RlQ2FsbGJh
Y2sobm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHls
ZXNGb3JOb2RlKG5vZGUuaWQsIHN0eWxlc0NhbGxiYWNrKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuQ1NTLmdldFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgc3R5bGVzQ2FsbGJhY2spOwog
ICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgidG9nZ2xlIiwgbm9k
ZUNhbGxiYWNrKTsKICAgICB9CkBAIC0yMTMsOCArMjEzLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICB9CiAKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZUlkLCA2LCBmYWxzZSk7
Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlUHJvcGVydHkoc3R5bGVJZCwgOCwgZmFs
c2UsIGRpZEVuYWJsZVByb3BlcnR5KTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1MudG9n
Z2xlUHJvcGVydHkoc3R5bGVJZCwgNiwgZmFsc2UpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LkNTUy50b2dnbGVQcm9wZXJ0eShzdHlsZUlkLCA4LCBmYWxzZSwgZGlkRW5hYmxlUHJvcGVydHkp
OwogICAgIH0KIAogICAgIC8vIERhdGEgZHVtcGluZwpAQCAtMjU4LDcgKzI1OCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbihzdHlsZVNoZWV0KTsKICAg
ICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChzdHlsZVNo
ZWV0SWQsIHN0eWxlU2hlZXRMb2FkZWQpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5n
ZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgc3R5bGVTaGVldExvYWRlZCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNl
LW9mZnNldHMuaHRtbAppbmRleCAxNjIyN2VmLi44ZmFlOGI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAg
LTM3LDcgKzM3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMShub2Rl
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUu
aWQsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1MuZ2V0U3R5bGVzRm9yTm9k
ZShub2RlLmlkLCBzdGVwMik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDIoc3R5bGVzKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdv
cmstcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1uZXR3b3JrLXJlc291cmNlLmh0bWwKaW5kZXggYzQxZjhhYS4uNTNmMjYzMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3Vy
Y2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0
d29yay1yZXNvdXJjZS5odG1sCkBAIC0xOCw3ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHZhciByZXNvdXJjZUlkOwogICAgIHZhciBzY3JpcHRVcmwgPSAidGltZWxpbmUtbmV0d29yay1y
ZXNvdXJjZS5qcyI7CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnN0YXJ0VGltZWxpbmVQcm9maWxl
cihzdGVwMSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3Iuc3RhcnRUaW1lbGluZVBy
b2ZpbGVyKHN0ZXAxKTsKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7CkBAIC0yOCw3ICsy
OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CisgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAz
KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWwKaW5kZXgg
ZmIwNGY0ZC4uN2JkZTIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbApAQCAtMTMsNyArMTMsNyBAQCBm
dW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpCiAKIGZ1bmN0aW9uIHRlc3QoKSAKIHsKLSAgICBJbnNw
ZWN0b3JCYWNrZW5kLnN0YXJ0VGltZWxpbmVQcm9maWxlcihzdGVwMSk7CisgICAgSW5zcGVjdG9y
QmFja2VuZC5JbnNwZWN0b3Iuc3RhcnRUaW1lbGluZVByb2ZpbGVyKHN0ZXAxKTsKICAgICBmdW5j
dGlvbiBzdGVwMSgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJwZXJmb3JtQWN0aW9ucygpIik7CkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
dG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5z
cGVjdG9yLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKICAgICB9CiAKICAgICBmdW5jdGlv
biBzdGVwMygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwKaW5kZXggOWQ2ZjBhOC4uMjhjMDczMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWct
Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3Jp
cHQtdGFnLTIuaHRtbApAQCAtMTMsNyArMTMsNyBAQCBmdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygp
CiAKIGZ1bmN0aW9uIHRlc3QoKSAKIHsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnN0YXJ0VGltZWxp
bmVQcm9maWxlcihzdGVwMSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3Iuc3RhcnRU
aW1lbGluZVByb2ZpbGVyKHN0ZXAxKTsKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewogICAg
ICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5w
cm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwpAQCAtMjIsNyArMjIsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLkluc3BlY3Rvci5zdG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdGVzdC5qcwppbmRleCA1NGQ2M2MxLi40ZjUyZWEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qcwpAQCAtMTcsNyArMTcsNyBA
QCBJbnNwZWN0b3JUZXN0LnRpbWVsaW5lTm9uRGV0ZXJtaW5pc3RpY1Byb3BzID0gewogCiBJbnNw
ZWN0b3JUZXN0LnBlcmZvcm1BY3Rpb25zQW5kUHJpbnQgPSBmdW5jdGlvbihhY3Rpb25zLCB0eXBl
TmFtZSkKIHsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnN0YXJ0VGltZWxpbmVQcm9maWxlcihzdGVw
MSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3Iuc3RhcnRUaW1lbGluZVByb2ZpbGVy
KHN0ZXAxKTsKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKGFjdGlvbnMsIHN0ZXAyKTsKQEAgLTI1LDcgKzI1LDcgQEAgSW5z
cGVjdG9yVGVzdC5wZXJmb3JtQWN0aW9uc0FuZFByaW50ID0gZnVuY3Rpb24oYWN0aW9ucywgdHlw
ZU5hbWUpCiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5JbnNwZWN0b3Iuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS10cml2aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtdHJpdmlhbC5odG1sCmluZGV4IDQyNTFhMjQuLmVlNjEyODggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10cml2aWFsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRyaXZpYWwuaHRt
bApAQCAtMTAsNyArMTAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiVGltZWxpbmUgc3RhcnRlZCIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnN0YXJ0VGltZWxp
bmVQcm9maWxlcihjYWxsYmFjayk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3Iuc3Rh
cnRUaW1lbGluZVByb2ZpbGVyKGNhbGxiYWNrKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhOTFm
OS4uMWUzOTMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0OCBAQAorMjAxMS0wMi0xNiAgSWx5
YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgYWxsIHRo
ZSBmdW5jdGlvbnMgb2YgSW5zcGVjdG9yIGJhY2tlbmQgQVBJIGJ5IGRvbWFpbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTU4CisKKyAgICAgICAg
V2UgaGF2ZSBhIG51bWJlciBvZiBmdW5jdGlvbnMgZnJvbSBkaWZmZXJlbnQgZG9tYWlucyBpbiBz
aW5nbGUgSW5zcGVjdG9yQmFja2VuZCBpbnN0YW5jZS4KKyAgICAgICAgSSdkIGJlIGJldHRlciB0
byBzcGxpdCB0aGUgZnVuY3Rpb25zIGJ5IGRvbWFpbi4KKyAgICAgICAgQXMgZXhhbXBsZSAnZXZh
bHVhdGUnIHdpbGwgYmUgbW92ZWQgZnJvbSBJbnNwZWN0b3JCYWNrZW5kIHRvIEluc3BlY3RvckJh
Y2tlbmQuUnVudGltZSBjb250YWluZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5wbToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVs
ZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5ldmFsdWF0ZUluVGFyZ2V0
V2luZG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUu
cHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1Bh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZS5fcmVs
b2FkUmVzb3VyY2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRN
YW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3Rv
dHlwZS5fcHJvamVjdENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLnByb3RvdHlwZS5yZXN0b3JlRE9NQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fc2F2ZUJyZWFrcG9pbnRzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LnByb3RvdHlwZS5fZW5hYmxlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LnByb3RvdHlwZS5fZGlzYWJsZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQucHJvdG90eXBlLl9l
bmFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50LnBy
b3RvdHlwZS5fZGlzYWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludC5w
cm90b3R5cGUuX2VuYWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludC5w
cm90b3R5cGUuX2Rpc2FibGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5
bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlw
ZS5nZXRTdHlsZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5w
cm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZS5nZXRJbmxpbmVTdHlsZUFzeW5jKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5zZXRSdWxlU2VsZWN0b3IuY2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLnNldFJ1
bGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5
cGUuYWRkUnVsZS5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUuYWRkUnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUuX3N0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fb25SZXZlcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmluc2VydFByb3BlcnR5QXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5zZXRUZXh0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0RGlzYWJsZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnNldFRleHQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlLnJlcXVlc3RDbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuY29tcGxldGlvbnMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVu
dC5pdGVtQWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNvb2tpZUl0ZW1zVmlldy5wcm90b3R5cGUuX2RlbGV0ZUNvb2tpZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01B
Z2VudC5wcm90b3R5cGUuZ2V0Q2hpbGROb2Rlc0FzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlQXN5bmMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVBc3luYyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnNldFRleHROb2RlVmFsdWVBc3luYyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIuZ2V0QXBw
bGljYXRpb25DYWNoZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llcy5nZXRD
b29raWVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzLmdldEV2
ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5jKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5
cGUuZ2V0RW50cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5
cGUuc2V0SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUu
cmVtb3ZlSXRlbSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5cGUuZ2V0VGFibGVOYW1lcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJvdG90eXBlLmV4ZWN1dGVTcWwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5lbmFibGVEZWJ1Z2dlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuZGlzYWJsZURlYnVn
Z2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5jb250
aW51ZVRvTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yZW1vdmVCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5lZGl0U2NyaXB0U291cmNlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC50aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWROb2Rl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuc2V0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNlYXJjaENhbmNlbGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5wZXJmb3Jt
U2VhcmNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5o
YW5kbGVDb3B5RXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJv
dG90eXBlLnNldFNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fY3JlYXRlVG9vbHRpcEZvck5vZGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl90YWdOYW1lRWRpdGlu
Z0NvbW1pdHRlZCk6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RXh0ZW5zaW9uUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uV2F0Y2hT
aWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0RXhwcmVzc2lvbik6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25BZGRSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25SZWxvYWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uRXZhbHVhdGVPbklu
c3BlY3RlZFBhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5w
cm90b3R5cGUuYnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJlc2V0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUucmVxdWVzdENv
bnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEYXRhR3JpZE5vZGUucHJvdG90eXBlLl9vcGVu
SW5OZXdUYWIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX2NsZWFyUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9yZW1vdmVQcm9maWxlSGVhZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5sb2FkSGVh
cFNuYXBzaG90KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fdG9nZ2xlUHJvZmlsaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZS50YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9w
ZXJ0aWVzU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LnJlc29sdmVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Qu
cHJvdG90eXBlLmdldFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuc2V0UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LnByb3RvdHlwZS5wdXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBob3ZlcmVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uZGJsY2xp
Y2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUucmVxdWVzdFNvdXJjZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3NldFBhdXNlT25F
eGNlcHRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
Ll90b2dnbGVQYXVzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fc3RlcE92ZXJDbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlLl9zdGVwSW50b0NsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuX3N0ZXBPdXRDbGlja2VkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hpZGVQb3B1cCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXN0Q29udHJvbGxlci5wcm90b3R5cGUubm90aWZ5RG9uZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl90b2dnbGVUaW1lbGluZUJ1dHRvbkNsaWNrZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5l
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3Rv
dHlwZS51cGRhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGVi
YXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5wcm90
b3R5cGUuc2V0SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01Ob2RlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLm9wZW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3du
KToKKwogMjAxMS0wMi0xNiAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQppbmRleCBlNGUxOWIwLi5jYjc5MWFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3Bl
Y3Rvci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3Bl
Y3Rvci5wbQpAQCAtNTc3LDcgKzU3Nyw3IEBAIHN1YiBjb2xsZWN0QmFja2VuZEpTU3R1YkZ1bmN0
aW9ucwogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAZnVuY3Rpb25zKSB7CiAgICAgICAgIG15
ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgIG15ICRhcmd1bWVu
dE5hbWVzID0gam9pbigiLCIsIG1hcCgiXCIiIC4gJF8tPm5hbWUgLiAiXCI6IFwiIiAuICR0eXBl
VHJhbnNmb3JteyRfLT50eXBlfS0+eyJKU1R5cGUifSAuICJcIiIsIGdyZXAoJF8tPmRpcmVjdGlv
biBlcSAiaW4iLCBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pKSk7Ci0gICAgICAgIHB1c2goQGJh
Y2tlbmRKU1N0dWJzLCAiICAgIHRoaXMuX3JlZ2lzdGVyRGVsZWdhdGUoJ3siIC4KKyAgICAgICAg
cHVzaChAYmFja2VuZEpTU3R1YnMsICIgICAgdGhpcy5fcmVnaXN0ZXJEZWxlZ2F0ZSgnJGRvbWFp
bicsICd7IiAuCiAgICAgICAgICAgICAiXCJzZXFcIjogMCwgIiAuCiAgICAgICAgICAgICAiXCJk
b21haW5cIjogXCIkZG9tYWluXCIsICIgLgogICAgICAgICAgICAgIlwiY29tbWFuZFwiOiBcIiRu
YW1lXCIsICIgLgpAQCAtNjIwLDEwICs2MjAsMTIgQEAgSW5zcGVjdG9yQmFja2VuZFN0dWIucHJv
dG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2NhbGxiYWNrSWRdOwog
ICAgIH0sCiAKLSAgICBfcmVnaXN0ZXJEZWxlZ2F0ZTogZnVuY3Rpb24oY29tbWFuZEluZm8pCisg
ICAgX3JlZ2lzdGVyRGVsZWdhdGU6IGZ1bmN0aW9uKGRvbWFpbiwgY29tbWFuZEluZm8pCiAgICAg
ewogICAgICAgICB2YXIgY29tbWFuZE9iamVjdCA9IEpTT04ucGFyc2UoY29tbWFuZEluZm8pOwot
ICAgICAgICB0aGlzW2NvbW1hbmRPYmplY3QuY29tbWFuZF0gPSB0aGlzLnNlbmRNZXNzYWdlVG9C
YWNrZW5kLmJpbmQodGhpcywgY29tbWFuZEluZm8pOworICAgICAgICBpZiAoIXRoaXNbZG9tYWlu
XSkKKyAgICAgICAgICAgIHRoaXNbZG9tYWluXSA9IFtdOworICAgICAgICB0aGlzW2RvbWFpbl1b
Y29tbWFuZE9iamVjdC5jb21tYW5kXSA9IHRoaXMuc2VuZE1lc3NhZ2VUb0JhY2tlbmQuYmluZCh0
aGlzLCBjb21tYW5kSW5mbyk7CiAgICAgfSwKIAogICAgIHNlbmRNZXNzYWdlVG9CYWNrZW5kOiBm
dW5jdGlvbigpCkBAIC02MzMsMTIgKzYzNSwxMiBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90
b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIga2V5IGluIHJlcXVlc3QuYXJndW1lbnRzKSB7
CiAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgICAgICAgICBj
b25zb2xlLmVycm9yKCJQcm90b2NvbCBFcnJvcjogSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRz
IGZvciAnSW5zcGVjdG9yQmFja2VuZC4lcycgY2FsbC4gSXQgc2hvdWxkIGhhdmUgdGhlIG5leHQg
YXJndW1lbnRzICclcycuIiwgcmVxdWVzdC5jb21tYW5kLCBKU09OLnN0cmluZ2lmeShyZXF1ZXN0
LmFyZ3VtZW50cykpOworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVy
cm9yOiBJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICdJbnNwZWN0b3JCYWNrZW5kLiVz
LiVzJyBjYWxsLiBJdCBzaG91bGQgaGF2ZSB0aGUgbmV4dCBhcmd1bWVudHMgJyVzJy4iLCByZXF1
ZXN0LmRvbWFpbiwgcmVxdWVzdC5jb21tYW5kLCBKU09OLnN0cmluZ2lmeShyZXF1ZXN0LmFyZ3Vt
ZW50cykpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHZhciB2YWx1ZSA9IGFyZ3Muc2hpZnQoKTsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LmFy
Z3VtZW50c1trZXldICYmIHR5cGVvZiB2YWx1ZSAhPT0gcmVxdWVzdC5hcmd1bWVudHNba2V5XSkg
ewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9yOiBJbnZhbGlk
IHR5cGUgb2YgYXJndW1lbnQgJyVzJyBmb3IgJ0luc3BlY3RvckJhY2tlbmQuJXMnIGNhbGwuIEl0
IHNob3VsZCBiZSAnJXMnIGJ1dCBpdCBpcyAnJXMnLiIsIGtleSwgcmVxdWVzdC5jb21tYW5kLCBy
ZXF1ZXN0LmFyZ3VtZW50c1trZXldLCB0eXBlb2YgdmFsdWUpOworICAgICAgICAgICAgICAgIGNv
bnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJyVz
JyBmb3IgJ0luc3BlY3RvckJhY2tlbmQuJXMuJXMnIGNhbGwuIEl0IHNob3VsZCBiZSAnJXMnIGJ1
dCBpdCBpcyAnJXMnLiIsIGtleSwgcmVxdWVzdC5kb21haW4sIHJlcXVlc3QuY29tbWFuZCwgcmVx
dWVzdC5hcmd1bWVudHNba2V5XSwgdHlwZW9mIHZhbHVlKTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXF1ZXN0LmFyZ3VtZW50c1trZXldID0g
dmFsdWU7CkBAIC02NDYsNyArNjQ4LDcgQEAgSW5zcGVjdG9yQmFja2VuZFN0dWIucHJvdG90eXBl
ID0gewogCiAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgICAgaWYg
KHR5cGVvZiBhcmdzWzBdICE9PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBhcmdzWzBdICE9PSAidW5k
ZWZpbmVkIikgewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9y
OiBPcHRpb25hbCBjYWxsYmFjayBhcmd1bWVudCBmb3IgJ0luc3BlY3RvckJhY2tlbmQuJXMnIGNh
bGwgc2hvdWxkIGJlIGEgZnVuY3Rpb24gYnV0IGl0cyB0eXBlIGlzICclcycuIiwgcmVxdWVzdC5j
b21tYW5kLCB0eXBlb2YgYXJnc1swXSk7CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigi
UHJvdG9jb2wgRXJyb3I6IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciAnSW5zcGVjdG9y
QmFja2VuZC4lcy4lcycgY2FsbCBzaG91bGQgYmUgYSBmdW5jdGlvbiBidXQgaXRzIHR5cGUgaXMg
JyVzJy4iLCByZXF1ZXN0LmRvbWFpbiwgcmVxdWVzdC5jb21tYW5kLCB0eXBlb2YgYXJnc1swXSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmVx
dWVzdC5zZXEgPSB0aGlzLl93cmFwKGFyZ3NbMF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCmluZGV4IGMxMjJiYTQuLmQ4MDdjMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMK
QEAgLTY1LDcgKzY1LDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZ2V0RG9tYWluVG9SZXNv
dXJjZXNNYXAgPSBmdW5jdGlvbihyZXNvdXJjZXMsIHR5cGVzLCBuZWUKIAogV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuZXZhbHVhdGVJblRhcmdldFdpbmRvdyA9IGZ1bmN0aW9uKGZ1bmMsIGFyZ3Ms
IGNhbGxiYWNrKQogewotICAgIEluc3BlY3RvckJhY2tlbmQuZXZhbHVhdGVPblNlbGYoZnVuYy50
b1N0cmluZygpLCBhcmdzLCBjYWxsYmFjayk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5JbmplY3Rl
ZFNjcmlwdC5ldmFsdWF0ZU9uU2VsZihmdW5jLnRvU3RyaW5nKCksIGFyZ3MsIGNhbGxiYWNrKTsK
IH0KIAogCkBAIC0zODMsNyArMzgzLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2Vk
Q3NzUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNTU1N0
eWxlU2hlZXQuY3JlYXRlRm9ySWQoc3R5bGVTaGVldElkc1tpXSwgc3R5bGVTaGVldENhbGxiYWNr
LmJpbmQobnVsbCwgc3R5bGVTaGVldHMsIGkgPT0gc3R5bGVTaGVldElkcy5sZW5ndGggLSAxID8g
ZXZhbENhbGxiYWNrIDogbnVsbCkpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRBbGxTdHlsZXMoYWxsU3R5bGVzQ2FsbGJhY2spOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLkNTUy5nZXRBbGxTdHlsZXMoYWxsU3R5bGVzQ2FsbGJhY2spOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMK
aW5kZXggNDdjMGIzMC4uYjA3OTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBAIC0xOTIsNyArMTkyLDcgQEAgV2ViSW5zcGVj
dG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfcmVsb2FkUmVzb3VyY2VzOiBmdW5j
dGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMuX3BhZ2VSZWxvYWRDYWxsYmFjayA9
IGNhbGxiYWNrOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbG9hZFBhZ2UoZmFsc2UpOwor
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5yZWxvYWRQYWdlKGZhbHNlKTsKICAg
ICB9LAogCiAgICAgX2RpZE1haW5SZXNvdXJjZUxvYWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpz
CmluZGV4IDk0MzQ1ZDUuLmRiNjUwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtMjA3LDcgKzIwNyw3
IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoIXRoaXMuX2JyZWFrcG9pbnRzUHVzaGVkVG9Gcm9udGVuZCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRBbGxCcm93c2VyQnJlYWtwb2ludHModGhp
cy5fc3RpY2t5QnJlYWtwb2ludHMpOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5Ccm93
c2VyRGVidWdnZXIuc2V0QWxsQnJvd3NlckJyZWFrcG9pbnRzKHRoaXMuX3N0aWNreUJyZWFrcG9p
bnRzKTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzUHVzaGVkVG9Gcm9udGVuZCA9IHRy
dWU7CiAgICAgICAgIH0KICAgICB9LApAQCAtMjQzLDcgKzI0Myw3IEBAIFdlYkluc3BlY3Rvci5C
cmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICBwYXRoVG9Ob2RlSWRbcGF0aF0gPSAwOwogICAgICAgICAgICAgcGVuZGlu
Z0NhbGxzICs9IDE7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnB1c2hOb2RlQnlQYXRo
VG9Gcm9udGVuZChwYXRoLCBkaWRQdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQuYmluZCh0aGlzLCBw
YXRoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5wdXNoTm9kZUJ5UGF0aFRv
RnJvbnRlbmQocGF0aCwgZGlkUHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kLmJpbmQodGhpcywgcGF0
aCkpOwogICAgICAgICB9CiAgICAgICAgIGlmICghcGVuZGluZ0NhbGxzKQogICAgICAgICAgICAg
dGhpcy5fZG9tQnJlYWtwb2ludHNSZXN0b3JlZCA9IHRydWU7CkBAIC0yNjgsNyArMjY4LDcgQEAg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLm5hdGl2ZUJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHM7CiAKICAg
ICAgICAgdGhpcy5fc3RpY2t5QnJlYWtwb2ludHNbV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2pl
Y3RJZF0gPSBicmVha3BvaW50czsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRBbGxCcm93
c2VyQnJlYWtwb2ludHModGhpcy5fc3RpY2t5QnJlYWtwb2ludHMpOworICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLkJyb3dzZXJEZWJ1Z2dlci5zZXRBbGxCcm93c2VyQnJlYWtwb2ludHModGhpcy5f
c3RpY2t5QnJlYWtwb2ludHMpOwogICAgIH0sCiAKICAgICBfdmFsaWRhdGVCcmVha3BvaW50czog
ZnVuY3Rpb24ocGVyc2lzdGVudEJyZWFrcG9pbnRzKQpAQCAtMzMxLDEyICszMzEsMTIgQEAgV2Vi
SW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQgPSBmdW5jdGlvbihub2RlLCB0eXBlKQogV2ViSW5zcGVj
dG9yLkRPTUJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgIF9lbmFibGU6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0RE9NQnJlYWtwb2ludCh0aGlzLl9u
b2RlSWQsIHRoaXMuX3R5cGUpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkJyb3dzZXJEZWJ1
Z2dlci5zZXRET01CcmVha3BvaW50KHRoaXMuX25vZGVJZCwgdGhpcy5fdHlwZSk7CiAgICAgfSwK
IAogICAgIF9kaXNhYmxlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlbW92ZURPTUJyZWFrcG9pbnQodGhpcy5fbm9kZUlkLCB0aGlzLl90eXBlKTsKKyAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5Ccm93c2VyRGVidWdnZXIucmVtb3ZlRE9NQnJlYWtwb2ludCh0
aGlzLl9ub2RlSWQsIHRoaXMuX3R5cGUpOwogICAgIH0sCiAKICAgICBfc2VyaWFsaXplVG9KU09O
OiBmdW5jdGlvbigpCkBAIC0zNTQsMTIgKzM1NCwxMiBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0
ZW5lckJyZWFrcG9pbnQgPSBmdW5jdGlvbihldmVudE5hbWUpCiBXZWJJbnNwZWN0b3IuRXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgIF9lbmFibGU6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9p
bnQodGhpcy5fZXZlbnROYW1lKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5Ccm93c2VyRGVi
dWdnZXIuc2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKICAgICB9
LAogCiAgICAgX2Rpc2FibGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQucmVtb3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKKyAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5Ccm93c2VyRGVidWdnZXIucmVtb3ZlRXZlbnRMaXN0ZW5l
ckJyZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKICAgICB9LAogCiAgICAgX3NlcmlhbGl6ZVRv
SlNPTjogZnVuY3Rpb24oKQpAQCAtMzc3LDEyICszNzcsMTIgQEAgV2ViSW5zcGVjdG9yLlhIUkJy
ZWFrcG9pbnQgPSBmdW5jdGlvbih1cmwpCiBXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludC5wcm90
b3R5cGUgPSB7CiAgICAgX2VuYWJsZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5zZXRYSFJCcmVha3BvaW50KHRoaXMuX3VybCk7CisgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuQnJvd3NlckRlYnVnZ2VyLnNldFhIUkJyZWFrcG9pbnQodGhpcy5fdXJsKTsKICAg
ICB9LAogCiAgICAgX2Rpc2FibGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQucmVtb3ZlWEhSQnJlYWtwb2ludCh0aGlzLl91cmwpOworICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLkJyb3dzZXJEZWJ1Z2dlci5yZW1vdmVYSFJCcmVha3BvaW50KHRoaXMuX3VybCk7
CiAgICAgfSwKIAogICAgIF9zZXJpYWxpemVUb0pTT046IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCA2
OWJkN2E5Li4wOWZkYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC04Myw3ICs4Myw3IEBAIFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
cmVzdWx0KTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVz
Rm9yTm9kZShub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CisgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLmdldFN0eWxlc0Zvck5vZGUobm9kZUlkLCBjYWxsYmFj
ay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBnZXRDb21wdXRlZFN0
eWxlQXN5bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNhbGxiYWNrKQpAQCAtOTYsNyArOTYsNyBA
QCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAg
ICAgdXNlckNhbGxiYWNrKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5
bG9hZChzdHlsZVBheWxvYWQpKTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUobm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVz
ZXJDYWxsYmFjaykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5nZXRDb21wdXRlZFN0
eWxlRm9yTm9kZShub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CiAg
ICAgfSwKIAogICAgIGdldElubGluZVN0eWxlQXN5bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNh
bGxiYWNrKQpAQCAtMTA5LDcgKzEwOSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHN0eWxlUGF5bG9hZCkpOwogICAgICAgICB9
CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRJbmxpbmVTdHlsZUZvck5vZGUobm9kZUlk
LCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLkNTUy5nZXRJbmxpbmVTdHlsZUZvck5vZGUobm9kZUlkLCBjYWxsYmFjay5iaW5kKG51
bGwsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBzZXRSdWxlU2VsZWN0b3I6IGZ1bmN0
aW9uKHJ1bGVJZCwgbm9kZUlkLCBuZXdTZWxlY3Rvciwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJl
Q2FsbGJhY2spCkBAIC0xMjcsMTAgKzEyNywxMCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoIXJ1bGVQYXlsb2FkKQogICAgICAgICAg
ICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQucXVlcnlTZWxlY3RvckFsbChub2RlSWQsIG5ld1NlbGVjdG9y
LCBjaGVja0FmZmVjdHNDYWxsYmFjay5iaW5kKHRoaXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNr
LCBydWxlUGF5bG9hZCkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLnF1
ZXJ5U2VsZWN0b3JBbGwobm9kZUlkLCBuZXdTZWxlY3RvciwgY2hlY2tBZmZlY3RzQ2FsbGJhY2su
YmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsKICAgICAg
ICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UnVsZVNlbGVjdG9yKHJ1bGVJZCwg
bmV3U2VsZWN0b3IsIGNhbGxiYWNrLmJpbmQodGhpcywgbm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ss
IGZhaWx1cmVDYWxsYmFjaykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5zZXRSdWxl
U2VsZWN0b3IocnVsZUlkLCBuZXdTZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQs
IHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIGFkZFJ1
bGU6IGZ1bmN0aW9uKG5vZGVJZCwgc2VsZWN0b3IsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNh
bGxiYWNrKQpAQCAtMTQ5LDEwICsxNDksMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIC8vIEludmFsaWQgc3ludGF4IGZvciBhIHNl
bGVjdG9yCiAgICAgICAgICAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAgICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnF1ZXJ5U2VsZWN0b3JBbGwo
bm9kZUlkLCBzZWxlY3RvciwgY2hlY2tBZmZlY3RzQ2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQs
IHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLkNTUy5xdWVyeVNlbGVjdG9yQWxsKG5vZGVJZCwgc2VsZWN0b3IsIGNoZWNrQWZm
ZWN0c0NhbGxiYWNrLmJpbmQodGhpcywgbm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIHJ1bGVQYXls
b2FkKSk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFkZFJ1bGUobm9k
ZUlkLCBzZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1
cmVDYWxsYmFjaywgc2VsZWN0b3IpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1MuYWRk
UnVsZShub2RlSWQsIHNlbGVjdG9yLCBjYWxsYmFjay5iaW5kKHRoaXMsIHN1Y2Nlc3NDYWxsYmFj
aywgZmFpbHVyZUNhbGxiYWNrLCBzZWxlY3RvcikpOwogICAgIH0sCiAKICAgICBfc3R5bGVTaGVl
dENoYW5nZWQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgbWFqb3JDaGFuZ2UpCkBAIC0xNjYsNyAr
MTY2LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgaWYgKHJlc291cmNlICYmIHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5UeXBlLlN0eWxlc2hlZXQpCiAgICAgICAgICAgICAgICAgcmVzb3VyY2Uuc2V0Q29udGVu
dChjb250ZW50LCB0aGlzLl9vblJldmVydC5iaW5kKHRoaXMsIHN0eWxlU2hlZXRJZCkpOwogICAg
ICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVT
aGVldElkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5D
U1MuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsK
ICAgICB9LAogCiAgICAgX29uUmV2ZXJ0OiBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIGNvbnRlbnRU
b1JldmVydFRvKQpAQCAtMTc2LDcgKzE3Niw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2VkKHN0eWxl
U2hlZXRJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cygic3R5bGVzaGVldCBjaGFuZ2VkIik7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNvbnRlbnRUb1JldmVydFRvLCBj
YWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5DU1Muc2V0U3R5
bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjb250ZW50VG9SZXZlcnRUbywgY2FsbGJhY2suYmlu
ZCh0aGlzKSk7CiAgICAgfQogfQogCkBAIC0zNDgsNyArMzQ4LDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQodGhpcy5pZCwgaW5k
ZXgsIG5hbWUgKyAiOiAiICsgdmFsdWUgKyAiOyIsIGZhbHNlLCBjYWxsYmFjay5iaW5kKG51bGws
IHVzZXJDYWxsYmFjaykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5zZXRQcm9wZXJ0
eVRleHQodGhpcy5pZCwgaW5kZXgsIG5hbWUgKyAiOiAiICsgdmFsdWUgKyAiOyIsIGZhbHNlLCBj
YWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBhcHBlbmRQ
cm9wZXJ0eTogZnVuY3Rpb24obmFtZSwgdmFsdWUsIHVzZXJDYWxsYmFjaykKQEAgLTQ4OCw3ICs0
ODgsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdGhyb3cgIk5vIG93bmVyU3R5bGUgZm9yIHByb3BlcnR5IjsKIAogICAgICAgICAvLyBBbiBp
bmRleCBwYXN0IGFsbCB0aGUgcHJvcGVydGllcyBhZGRzIGEgbmV3IHByb3BlcnR5IHRvIHRoZSBz
dHlsZS4KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQodGhpcy5vd25l
clN0eWxlLmlkLCB0aGlzLmluZGV4LCBwcm9wZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlzLm93
bmVyU3R5bGUucGFzdExhc3RTb3VyY2VQcm9wZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQodGhp
cykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5zZXRQcm9wZXJ0eVRleHQodGhpcy5v
d25lclN0eWxlLmlkLCB0aGlzLmluZGV4LCBwcm9wZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlz
Lm93bmVyU3R5bGUucGFzdExhc3RTb3VyY2VQcm9wZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQo
dGhpcykpOwogICAgIH0sCiAKICAgICBzZXRWYWx1ZTogZnVuY3Rpb24obmV3VmFsdWUsIHVzZXJD
YWxsYmFjaykKQEAgLTUxNyw3ICs1MTcsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC50b2dnbGVQcm9wZXJ0eSh0aGlzLm93bmVyU3R5bGUuaWQsIHRoaXMuaW5kZXgsIGRp
c2FibGVkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5D
U1MudG9nZ2xlUHJvcGVydHkodGhpcy5vd25lclN0eWxlLmlkLCB0aGlzLmluZGV4LCBkaXNhYmxl
ZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQogfQogCkBAIC01NDgsNyArNTQ4LDcgQEAg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQgPSBmdW5jdGlvbihzdHlsZVNo
ZWV0SWQsIHVzZXJDYWxsYmFjaykKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdXNlckNhbGxi
YWNrKG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldChzdHlsZVNoZWV0UGF5bG9hZCkpOwog
ICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBj
YWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLkNTUy5nZXRTdHlsZVNo
ZWV0KHN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiB9CiAKIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZSA9IHsKQEAgLTU2OSw2ICs1NjksNiBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFN0eWxlU2hlZXRUZXh0KHRoaXMuaWQs
IG5ld1RleHQsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LkNTUy5zZXRTdHlsZVNoZWV0VGV4dCh0aGlzLmlkLCBuZXdUZXh0LCBjYWxsYmFjay5iaW5kKHRo
aXMpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcwppbmRleCAzNWQxZWJmLi45NGI2ZWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTMxNiw3ICsz
MTYsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcmVx
dWVzdENsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5D
b25zb2xlLmNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7CiAgICAgfSwKIAogICAgIGNsZWFyTWVzc2Fn
ZXM6IGZ1bmN0aW9uKCkKQEAgLTM1OSw5ICszNTksOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZp
ZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gKCFk
b3ROb3RhdGlvbiAmJiAhYnJhY2tldE5vdGF0aW9uKTsKICAgICAgICAgdmFyIGluamVjdGVkU2Ny
aXB0QWNjZXNzOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzICYmIFdl
Ykluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5wYXVzZWQpCi0gICAgICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmdldENvbXBsZXRpb25zT25DYWxsRnJhbWUoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3Jp
cHRzLnNlbGVjdGVkQ2FsbEZyYW1lSWQoKSwgZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLCByZXBvcnRDb21wbGV0aW9ucyk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLkRlYnVnZ2VyLmdldENvbXBsZXRpb25zT25DYWxsRnJhbWUoV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnNlbGVjdGVkQ2FsbEZyYW1lSWQoKSwgZXhwcmVzc2lvblN0cmluZywgaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRDb21wbGV0aW9ucyk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0Q29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRDb21wbGV0aW9ucyk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLlJ1bnRpbWUuZ2V0Q29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRDb21wbGV0aW9ucyk7CiAgICAgfSwKIAogICAg
IF9yZXBvcnRDb21wbGV0aW9uczogZnVuY3Rpb24oYmVzdE1hdGNoT25seSwgY29tcGxldGlvbnNS
ZWFkeUNhbGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tldE5vdGF0aW9uLCBwcmVmaXgsIHJlc3Vs
dCwgaXNFeGNlcHRpb24pIHsKQEAgLTQxNyw3ICs0MTcsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBpdGVtQWN0aW9uID0gZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFi
bGVkID0gIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZDsKLSAgICAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoV2ViSW5zcGVj
dG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuQ29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpOwogICAgICAgICB9LmJpbmQodGhpcyk7CiAgICAg
ICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUoKTsKICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBpdGVtQWN0aW9uLCBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCkBAIC01MjYsNyArNTI2LDcgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgewogICAgICAgICAgICAgY2Fs
bGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsKICAg
ICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlKGV4cHJlc3Npb24sIG9i
amVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGV2YWxDYWxsYmFjayk7CisgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuUnVudGltZS5ldmFsdWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91
cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBldmFsQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBf
ZW50ZXJLZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKaW5kZXggZGM3NmIzOS4u
MjhjODU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b29raWVJdGVtc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db29raWVJdGVtc1ZpZXcuanMKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29v
a2llSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9kZWxldGVDb29raWU6IGZ1bmN0aW9u
KGNvb2tpZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGVsZXRlQ29va2llKGNv
b2tpZS5uYW1lLCB0aGlzLl9jb29raWVEb21haW4pOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
Lkluc3BlY3Rvci5kZWxldGVDb29raWUoY29va2llLm5hbWUsIHRoaXMuX2Nvb2tpZURvbWFpbik7
CiAgICAgICAgIHRoaXMuX3VwZGF0ZSgpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDM2NDViYjkuLmM4NWIxNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAt
MzE5LDI1ICszMTksMjUgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgZnVuY3Rpb24gbXljYWxsYmFjaygpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHBhcmVu
dC5jaGlsZHJlbik7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDaGls
ZE5vZGVzKHBhcmVudC5pZCwgbXljYWxsYmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
RE9NLmdldENoaWxkTm9kZXMocGFyZW50LmlkLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAg
c2V0QXR0cmlidXRlQXN5bmM6IGZ1bmN0aW9uKG5vZGUsIG5hbWUsIHZhbHVlLCBjYWxsYmFjaykK
ICAgICB7CiAgICAgICAgIHZhciBteWNhbGxiYWNrID0gdGhpcy5fZGlkQXBwbHlEb21DaGFuZ2Uu
YmluZCh0aGlzLCBub2RlLCBjYWxsYmFjayk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0
QXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIHZhbHVlLCBteWNhbGxiYWNrKTsKKyAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5ET00uc2V0QXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIHZhbHVlLCBteWNh
bGxiYWNrKTsKICAgICB9LAogCiAgICAgcmVtb3ZlQXR0cmlidXRlQXN5bmM6IGZ1bmN0aW9uKG5v
ZGUsIG5hbWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlz
Ll9kaWRBcHBseURvbUNoYW5nZS5iaW5kKHRoaXMsIG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAg
SW5zcGVjdG9yQmFja2VuZC5yZW1vdmVBdHRyaWJ1dGUobm9kZS5pZCwgbmFtZSwgbXljYWxsYmFj
ayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLnJlbW92ZUF0dHJpYnV0ZShub2RlLmlk
LCBuYW1lLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgc2V0VGV4dE5vZGVWYWx1ZUFzeW5j
OiBmdW5jdGlvbihub2RlLCB0ZXh0LCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciBteWNh
bGxiYWNrID0gdGhpcy5fZGlkQXBwbHlEb21DaGFuZ2UuYmluZCh0aGlzLCBub2RlLCBjYWxsYmFj
ayk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0VGV4dE5vZGVWYWx1ZShub2RlLmlkLCB0
ZXh0LCBteWNhbGxiYWNrKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5ET00uc2V0VGV4dE5v
ZGVWYWx1ZShub2RlLmlkLCB0ZXh0LCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX2RpZEFw
cGx5RG9tQ2hhbmdlOiBmdW5jdGlvbihub2RlLCBjYWxsYmFjaywgc3VjY2VzcykKQEAgLTUxMSw3
ICs1MTEsNyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIuZ2V0QXBw
bGljYXRpb25DYWNoZXNBc3luYyA9IGZ1bmN0aW9uKGNhbAogICAgICAgICAgICAgY2FsbGJhY2so
YXBwbGljYXRpb25DYWNoZXMpOwogICAgIH0KIAotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0QXBw
bGljYXRpb25DYWNoZXMobXljYWxsYmFjayk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5BcHBsaWNh
dGlvbkNhY2hlLmdldEFwcGxpY2F0aW9uQ2FjaGVzKG15Y2FsbGJhY2spOwogfQogCiBXZWJJbnNw
ZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIucHJvdG90eXBlID0gewpAQCAtNTQwLDcg
KzU0MCw3IEBAIFdlYkluc3BlY3Rvci5Db29raWVzLmdldENvb2tpZXNBc3luYyA9IGZ1bmN0aW9u
KGNhbGxiYWNrKQogICAgICAgICAgICAgY2FsbGJhY2soY29va2llcywgdHJ1ZSk7CiAgICAgfQog
Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDb29raWVzKG15Y2FsbGJhY2spOworICAgIEluc3Bl
Y3RvckJhY2tlbmQuSW5zcGVjdG9yLmdldENvb2tpZXMobXljYWxsYmFjayk7CiB9CiAKIFdlYklu
c3BlY3Rvci5Db29raWVzLmJ1aWxkQ29va2llc0Zyb21TdHJpbmcgPSBmdW5jdGlvbihyYXdDb29r
aWVTdHJpbmcpCkBAIC01ODUsNSArNTg1LDUgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJz
LmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5jID0gZnVuY3Rpb24obm9kZSwgY2FsbGIKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdl
dEV2ZW50TGlzdGVuZXJzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7CisgICAgSW5zcGVjdG9y
QmFja2VuZC5ET00uZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5q
cwppbmRleCA0MzAxMWVhLi4zNDE1NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCkBAIC01MSwxNyArNTEsMTcgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewogCiAgICAgZ2V0RW50cmllczogZnVuY3Rpb24o
Y2FsbGJhY2spCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldERPTVN0b3JhZ2VF
bnRyaWVzKHRoaXMuX2lkLCBjYWxsYmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9N
U3RvcmFnZS5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9pZCwgY2FsbGJhY2spOwogICAgIH0s
CiAgICAgCiAgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2YWx1ZSwgY2FsbGJhY2spCiAgICAg
ewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldERPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBr
ZXksIHZhbHVlLCBjYWxsYmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NU3RvcmFn
ZS5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOwogICAg
IH0sCiAgICAgCiAgICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24oa2V5LCBjYWxsYmFjaykKICAgICB7
Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQs
IGtleSwgY2FsbGJhY2spOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTVN0b3JhZ2UucmVt
b3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMKaW5kZXgg
ZWZmYjgwOS4uZTY5ODg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EYXRhYmFzZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFiYXNlLmpzCkBAIC04MSw3ICs4MSw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhbGxiYWNrKG5hbWVzLnNvcnQo
KSk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXREYXRhYmFzZVRhYmxl
TmFtZXModGhpcy5faWQsIHNvcnRpbmdDYWxsYmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuRGF0YWJhc2UuZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKHRoaXMuX2lkLCBzb3J0aW5nQ2FsbGJh
Y2spOwogICAgIH0sCiAgICAgCiAgICAgZXhlY3V0ZVNxbDogZnVuY3Rpb24ocXVlcnksIG9uU3Vj
Y2Vzcywgb25FcnJvcikKQEAgLTk0LDcgKzk0LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5EYXRh
YmFzZURpc3BhdGNoZXIuX2NhbGxiYWNrc1t0cmFuc2FjdGlvbklkXSA9IHsib25TdWNjZXNzIjog
b25TdWNjZXNzLCAib25FcnJvciI6IG9uRXJyb3J9OwogICAgICAgICB9Ci0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuZXhlY3V0ZVNRTCh0aGlzLl9pZCwgcXVlcnksIGNhbGxiYWNrKTsKKyAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5EYXRhYmFzZS5leGVjdXRlU1FMKHRoaXMuX2lkLCBxdWVyeSwg
Y2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IDMzODRjMzQuLjM4ODc5NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwu
anMKQEAgLTUyLDcgKzUyLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0g
ewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgIGVuYWJsZURl
YnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVuYWJs
ZURlYnVnZ2VyKCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLmVuYWJsZURl
YnVnZ2VyKCk7CiAgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50c1B1c2hlZFRvQmFja2VuZCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVj
dG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzOwpAQCAtNjgsMTIgKzY4LDEyIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGRpc2FibGVEZWJ1Z2dlcjogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlRGVidWdnZXIo
KTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3IuZGlzYWJsZURlYnVnZ2VyKCk7
CiAgICAgfSwKIAogICAgIGNvbnRpbnVlVG9Mb2NhdGlvbjogZnVuY3Rpb24oc291cmNlSUQsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcikKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Y29udGludWVUb0xvY2F0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwor
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLmNvbnRpbnVlVG9Mb2NhdGlvbihzb3Vy
Y2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKICAgICB9LAogCiAgICAgc2V0QnJlYWtw
b2ludDogZnVuY3Rpb24odXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwg
ZW5hYmxlZCkKQEAgLTg5LDcgKzg5LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwogICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2ludCk7CiAgICAgICAgIH0K
LSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludCh1cmwsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3Bv
aW50LmJpbmQodGhpcywgdGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQpKTsKKyAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5EZWJ1Z2dlci5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludCh1cmws
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVh
a3BvaW50LmJpbmQodGhpcywgdGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQpKTsKICAg
ICB9LAogCiAgICAgc2V0QnJlYWtwb2ludEJ5U291cmNlSWQ6IGZ1bmN0aW9uKHNvdXJjZUlELCBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKQEAgLTEwMywxMiAr
MTAzLDEyIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF0gPSBicmVha3BvaW50OwogICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2ludCk7CiAgICAgICAgIH0K
LSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludEJ5U291cmNl
SWQoc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVk
LCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LkRlYnVnZ2VyLnNldEphdmFTY3JpcHRCcmVha3BvaW50QnlTb3VyY2VJZChzb3VyY2VJRCwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIGRpZFNldEJyZWFrcG9p
bnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9u
KGJyZWFrcG9pbnRJZCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlSmF2
YVNjcmlwdEJyZWFrcG9pbnQoYnJlYWtwb2ludElkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5EZWJ1Z2dlci5yZW1vdmVKYXZhU2NyaXB0QnJlYWtwb2ludChicmVha3BvaW50SWQpOwogICAg
ICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF07CiAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50SWRdOwogICAgICAgICB0
aGlzLl9zYXZlQnJlYWtwb2ludHMoKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IubG9nKG5ld0JvZHlPckVycm9yTWVzc2FnZSwgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nKTsKICAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmVkaXRTY3JpcHRTb3VyY2Uoc291cmNlSUQsIHNjcmlwdFNv
dXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5EZWJ1Z2dlci5lZGl0U2NyaXB0U291cmNlKHNvdXJjZUlELCBzY3JpcHRTb3VyY2Us
IGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF91cGRhdGVT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBzY3JpcHRTb3VyY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXgg
ZTZhZjkzYy4uNmIxOTE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtNTcsNyArNTcsNyBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhpcy5wYW5lbC51cGRhdGVFdmVu
dExpc3RlbmVycygpOwogCiAgICAgICAgIGlmICh0aGlzLl9mb2N1c2VkRE9NTm9kZSkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5hZGRJbnNwZWN0ZWROb2RlKHRoaXMuX2ZvY3VzZWRE
T01Ob2RlLmlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLmFkZEluc3BlY3Rl
ZE5vZGUodGhpcy5fZm9jdXNlZERPTU5vZGUuaWQpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmV4dGVuc2lvblNlcnZlci5ub3RpZnlPYmplY3RTZWxlY3RlZCh0aGlzLnBhbmVsLm5hbWUpOwog
ICAgICAgICB9CiAgICAgfTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fc2Vs
ZWN0ZWRQYXRoT25SZXNldCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5vZGVC
eVBhdGhUb0Zyb250ZW5kKHRoaXMuX3NlbGVjdGVkUGF0aE9uUmVzZXQsIHNlbGVjdExhc3RTZWxl
Y3RlZE5vZGUuYmluZCh0aGlzKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5w
dXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQodGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldCwgc2VsZWN0
TGFzdFNlbGVjdGVkTm9kZS5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
c2VsZWN0Tm9kZS5jYWxsKHRoaXMpOwogICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRQYXRo
T25SZXNldDsKQEAgLTIyNiw3ICsyMjYsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID0g
MDsKICAgICAgICAgdGhpcy5fc2VhcmNoUmVzdWx0cyA9IFtdOwotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnNlYXJjaENhbmNlbGVkKCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLnNl
YXJjaENhbmNlbGVkKCk7CiAgICAgfSwKIAogICAgIHBlcmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1
ZXJ5KQpAQCAtMjQyLDcgKzI0Miw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fbWF0Y2hlc0NvdW50VXBkYXRlVGltZW91dCA9IG51bGw7
CiAgICAgICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gcXVlcnk7CiAKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5wZXJmb3JtU2VhcmNoKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIGZhbHNlKTsKKyAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5ET00ucGVyZm9ybVNlYXJjaCh3aGl0ZXNwYWNlVHJpbW1l
ZFF1ZXJ5LCBmYWxzZSk7CiAgICAgfSwKIAogICAgIHBvcHVsYXRlSHJlZkNvbnRleHRNZW51OiBm
dW5jdGlvbihjb250ZXh0TWVudSwgZXZlbnQsIGFuY2hvckVsZW1lbnQpCkBAIC0xMDIzLDcgKzEw
MjMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGV2ZW50LmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCk7CiAg
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Y29weU5vZGUodGhpcy5mb2N1c2VkRE9NTm9kZS5pZCk7CisgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuRE9NLmNvcHlOb2RlKHRoaXMuZm9jdXNlZERPTU5vZGUuaWQpOwogICAgIH0sCiAKICAgICBy
aWdodFNpZGViYXJSZXNpemVyRHJhZ1N0YXJ0OiBmdW5jdGlvbihldmVudCkKQEAgLTEwNzAsNyAr
MTA3MCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
IHNldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVuYWJsZWQpCiAgICAgewotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFNlYXJjaGluZ0Zvck5vZGUoZW5hYmxlZCwgdGhpcy5fc2V0U2Vh
cmNoaW5nRm9yTm9kZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNw
ZWN0b3Iuc2V0U2VhcmNoaW5nRm9yTm9kZShlbmFibGVkLCB0aGlzLl9zZXRTZWFyY2hpbmdGb3JO
b2RlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICB0b2dnbGVTZWFyY2hpbmdGb3JOb2RlOiBm
dW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggNTZjM2U3NS4uZWZmMThlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRs
aW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qcwpAQCAtNDEwLDcgKzQxMCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICB0aGlzLnRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIHBpeGVscyAo
TmF0dXJhbDogJWQgw5cgJWQgcGl4ZWxzKSIsIHByb3BlcnRpZXMub2Zmc2V0V2lkdGgsIHByb3Bl
cnRpZXMub2Zmc2V0SGVpZ2h0LCBwcm9wZXJ0aWVzLm5hdHVyYWxXaWR0aCwgcHJvcGVydGllcy5u
YXR1cmFsSGVpZ2h0KTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldE5v
ZGVQcm9wZXJ0aWVzKG5vZGUuaWQsIFsibmF0dXJhbEhlaWdodCIsICJuYXR1cmFsV2lkdGgiLCAi
b2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFdpZHRoIl0sIHNldFRvb2x0aXAuYmluZCh0aGlzKSk7Cisg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLmdldE5vZGVQcm9wZXJ0aWVzKG5vZGUuaWQsIFsi
bmF0dXJhbEhlaWdodCIsICJuYXR1cmFsV2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFdp
ZHRoIl0sIHNldFRvb2x0aXAuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHVwZGF0ZVNlbGVj
dGlvbjogZnVuY3Rpb24oKQpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1l
bnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgbW92ZVRvTmV4dEF0dHJp
YnV0ZUlmTmVlZGVkLmNhbGwobmV3VHJlZUl0ZW0pOwogICAgICAgICB9CiAKLSAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5jaGFuZ2VUYWdOYW1lKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQsIG5l
d1RleHQsIGNoYW5nZVRhZ05hbWVDYWxsYmFjayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
RE9NLmNoYW5nZVRhZ05hbWUodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pZCwgbmV3VGV4dCwgY2hh
bmdlVGFnTmFtZUNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX3RleHROb2RlRWRpdGluZ0NvbW1p
dHRlZDogZnVuY3Rpb24oZWxlbWVudCwgbmV3VGV4dCkKQEAgLTEzODEsNyArMTM4MSw3IEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHBhcmVudEVsZW1lbnQuYWRqdXN0Q29sbGFwc2VkUmFuZ2UodHJ1ZSk7CiAgICAgICAgIH0KIAot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZU5vZGUodGhpcy5yZXByZXNlbnRlZE9iamVj
dC5pZCwgcmVtb3ZlTm9kZUNhbGxiYWNrKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5ET00u
cmVtb3ZlTm9kZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkLCByZW1vdmVOb2RlQ2FsbGJhY2sp
OwogICAgIH0sCiAKICAgICBfZWRpdEFzSFRNTDogZnVuY3Rpb24oKQpAQCAtMTQwOCwxNSArMTQw
OCwxNSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgZnVuY3Rpb24gY29tbWl0Q2hhbmdlKHZhbHVlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE91dGVySFRNTChub2RlLmlkLCB2YWx1ZSwgc2VsZWN0
Tm9kZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5zZXRPdXRlckhUTUwobm9k
ZS5pZCwgdmFsdWUsIHNlbGVjdE5vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5nZXRPdXRlckhUTUwobm9kZS5pZCwgdGhpcy5fc3RhcnRFZGl0aW5nQXNIVE1MLmJp
bmQodGhpcywgY29tbWl0Q2hhbmdlKSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLmdl
dE91dGVySFRNTChub2RlLmlkLCB0aGlzLl9zdGFydEVkaXRpbmdBc0hUTUwuYmluZCh0aGlzLCBj
b21taXRDaGFuZ2UpKTsKICAgICB9LAogCiAgICAgX2NvcHlIVE1MOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNvcHlOb2RlKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaWQpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5jb3B5Tm9kZSh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LmlkKTsKICAgICB9LAogCiAgICAgX2hpZ2hsaWdodFNlYXJjaFJlc3VsdHM6
IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IDE0NGQ1NWQuLjEzNjk4ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwpAQCAt
OTUsNyArOTUsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uV2F0Y2hTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAKICAgICBzZXRFeHByZXNzaW9uOiBmdW5jdGlvbihleHByZXNzaW9uLCB0aXRs
ZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZXZhbHVhdGUoZXhwcmVzc2lvbiwg
ImV4dGVuc2lvbi13YXRjaCIsIGZhbHNlLCB0aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0
bGUpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5SdW50aW1lLmV2YWx1YXRlKGV4cHJlc3Np
b24sICJleHRlbnNpb24td2F0Y2giLCBmYWxzZSwgdGhpcy5fb25FdmFsdWF0ZS5iaW5kKHRoaXMs
IHRpdGxlKSk7CiAgICAgfSwKIAogICAgIF9vbkV2YWx1YXRlOiBmdW5jdGlvbih0aXRsZSwgcmVz
dWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVu
c2lvblNlcnZlci5qcwppbmRleCA3ZDMzYjczLi4xNzQyYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMTY2
LDcgKzE2Niw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgICAgICBhbGxIZWFkZXJzW25hbWVdID0gaGVhZGVyc1tuYW1lXTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEV4dHJh
SGVhZGVycyhhbGxIZWFkZXJzKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5OZXR3b3JrLnNl
dEV4dHJhSGVhZGVycyhhbGxIZWFkZXJzKTsKICAgICB9LAogCiAgICAgX29uQ3JlYXRlUGFuZWw6
IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCkBAIC0yNTUsOSArMjU1LDkgQEAgV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgX29uUmVsb2FkOiBmdW5jdGlvbiht
ZXNzYWdlKQogICAgIHsKICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlLnVzZXJBZ2VudCA9PT0g
InN0cmluZyIpCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFVzZXJBZ2VudE92ZXJy
aWRlKG1lc3NhZ2UudXNlckFnZW50KTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5z
cGVjdG9yLnNldFVzZXJBZ2VudE92ZXJyaWRlKG1lc3NhZ2UudXNlckFnZW50KTsKIAotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJlbG9hZFBhZ2UoZmFsc2UpOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLkluc3BlY3Rvci5yZWxvYWRQYWdlKGZhbHNlKTsKICAgICAgICAgcmV0dXJuIHRoaXMu
X3N0YXR1cy5PSygpOwogICAgIH0sCiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNo
Q2FsbGJhY2sobWVzc2FnZS5yZXF1ZXN0SWQsIHBvcnQsIHJlc3VsdCk7CiAgICAgICAgIH0KICAg
ICAgICAgdmFyIGV2YWxFeHByZXNzaW9uID0gIkpTT04uc3RyaW5naWZ5KGV2YWwodW5lc2NhcGUo
JyIgKyBlc2NhcGUobWVzc2FnZS5leHByZXNzaW9uKSArICInKSkpOyI7Ci0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuZXZhbHVhdGUoZXZhbEV4cHJlc3Npb24sICJub25lIiwgdHJ1ZSwgY2FsbGJh
Y2suYmluZCh0aGlzKSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuUnVudGltZS5ldmFsdWF0
ZShldmFsRXhwcmVzc2lvbiwgIm5vbmUiLCB0cnVlLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAg
ICB9LAogCiAgICAgX29uUmV2ZWFsQW5kU2VsZWN0OiBmdW5jdGlvbihtZXNzYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3
LmpzCmluZGV4IDQ0Yjk1YzMuLjUwYzdjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTEwMTAsNyArMTAx
MCw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7
CiAKICAgICBidXR0b25DbGlja2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLnRha2VIZWFwU25hcHNob3QoZmFsc2UpOworICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLlByb2ZpbGVyLnRha2VIZWFwU25hcHNob3QoZmFsc2UpOwogICAgIH0sCiAKICAgICBnZXQg
d2VsY29tZU1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggZGEwNDNmZS4uMWNkODRjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpz
CkBAIC0zMyw3ICszMyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlciA9IGZ1bmN0aW9u
KHJlc291cmNlVHJlZU1vZGVsKQogICAgIFdlYkluc3BlY3Rvci5PYmplY3QuY2FsbCh0aGlzKTsK
ICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbCA9IHJlc291cmNlVHJlZU1vZGVsOwogICAgIHRo
aXMuX2Rpc3BhdGNoZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyKHJlc291
cmNlVHJlZU1vZGVsLCB0aGlzKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmNhY2hlZFJlc291cmNl
cyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOworICAgIEluc3BlY3Rv
ckJhY2tlbmQuTmV0d29yay5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hlZFJlc291
cmNlcy5iaW5kKHRoaXMpKTsKIH0KIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50
VHlwZXMgPSB7CkBAIC00OCw3ICs0OCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5w
cm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsu
Y2xlYXIoKTsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwucmVzZXQoKTsKLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hlZFJl
c291cmNlcy5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5OZXR3b3JrLmNh
Y2hlZFJlc291cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOwog
ICAgIH0sCiAKICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGJhc2U2NEVu
Y29kZSwgY2FsbGJhY2spCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFu
YWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHN1Y2Nl
c3MgPyBjb250ZW50IDogbnVsbCk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5yZXNvdXJjZUNvbnRlbnQocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlLnVybCwg
YmFzZTY0RW5jb2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
Lk5ldHdvcmsucmVzb3VyY2VDb250ZW50KHJlc291cmNlLmxvYWRlci5mcmFtZUlkLCByZXNvdXJj
ZS51cmwsIGJhc2U2NEVuY29kZSwgY2FsbGJhY2tXcmFwcGVyKTsKICAgICB9LAogCiAgICAgX3By
b2Nlc3NDYWNoZWRSZXNvdXJjZXM6IGZ1bmN0aW9uKG1haW5GcmFtZVBheWxvYWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4
IDA4NWY0NjguLmMyMGM1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBfb3BlbkluTmV3VGFi
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLm9wZW5Jbkluc3Bl
Y3RlZFdpbmRvdyh0aGlzLl9yZXNvdXJjZS51cmwpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
Lkluc3BlY3Rvci5vcGVuSW5JbnNwZWN0ZWRXaW5kb3codGhpcy5fcmVzb3VyY2UudXJsKTsKICAg
ICB9LAogCiAgICAgZ2V0IHNlbGVjdGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggYzMyNWJmNy4uYmQ5MWRkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3Lmpz
CkBAIC05NCw3ICs5NCw3IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldyA9IGZ1bmN0aW9u
KHByb2ZpbGUpCiAgICAgICAgIHNlbGYuX3VwZGF0ZVBlcmNlbnRCdXR0b24oKTsKICAgICB9CiAK
LSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGUodGhpcy5wcm9maWxlLnR5cGVJZCwgdGhp
cy5wcm9maWxlLnVpZCwgcHJvZmlsZUNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLlBy
b2ZpbGVyLmdldFByb2ZpbGUodGhpcy5wcm9maWxlLnR5cGVJZCwgdGhpcy5wcm9maWxlLnVpZCwg
cHJvZmlsZUNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3Rv
dHlwZSA9IHsKQEAgLTU5Myw5ICs1OTMsOSBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWNvcmRpbmcgPSAhdGhpcy5fcmVjb3JkaW5n
OwogCiAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcpCi0gICAgICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnN0YXJ0UHJvZmlsaW5nKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLklu
c3BlY3Rvci5zdGFydFByb2ZpbGluZygpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLnN0b3BQcm9maWxpbmcoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuSW5zcGVjdG9yLnN0b3BQcm9maWxpbmcoKTsKICAgICB9LAogCiAgICAgZ2V0IHdlbGNvbWVN
ZXNzYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZXNQYW5lbC5qcwppbmRleCBiODdlYTdmLi5iYTE0MmRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0yMTUsNyAr
MjE1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
X2NsZWFyUHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuY2xlYXJQcm9maWxlcygpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLlByb2ZpbGVyLmNs
ZWFyUHJvZmlsZXMoKTsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKICAgICB9LAogCkBAIC0zNTEs
NyArMzUxLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICBzaWRlYmFyUGFyZW50LnJlbW92ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1l
bnQpOwogCiAgICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIElu
c3BlY3RvckJhY2tlbmQucmVtb3ZlUHJvZmlsZShwcm9maWxlLnR5cGVJZCwgcHJvZmlsZS51aWQp
OworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5Qcm9maWxlci5yZW1vdmVQcm9maWxlKHBy
b2ZpbGUudHlwZUlkLCBwcm9maWxlLnVpZCk7CiAKICAgICAgICAgLy8gTm8gb3RoZXIgaXRlbSB3
aWxsIGJlIHNlbGVjdGVkIGlmIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcHJvZmlsZXMsIHNvCiAg
ICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHZpZXcgZ2V0cyBjbGVhcmVkIHdoZW4gdGhlIGxhc3Qg
cHJvZmlsZSBpcyByZW1vdmVkLgpAQCAtNDI0LDcgKzQyNCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHByb2ZpbGUuX2NhbGxiYWNrcyA9
IFtjYWxsYmFja107CiAgICAgICAgICAgICBwcm9maWxlLl9qc29uID0gIiI7CiAgICAgICAgICAg
ICBwcm9maWxlLnNpZGVCYXJFbGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJMb2FkaW5n4oCmIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGUo
cHJvZmlsZS50eXBlSWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuUHJvZmlsZXIuZ2V0UHJvZmlsZShwcm9maWxlLnR5cGVJZCwgcHJvZmlsZS51aWQpOwogICAg
ICAgICB9CiAgICAgfSwKIApAQCAtNTkyLDEwICs1OTIsMTAgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3Byb2ZpbGVy
RW5hYmxlZCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5h
YmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNhYmxlUHJvZmls
ZXIodHJ1ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5kaXNhYmxl
UHJvZmlsZXIodHJ1ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gISFvcHRpb25hbEFsd2F5czsKLSAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuSW5zcGVjdG9yLmVuYWJsZVByb2ZpbGVyKCk7CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC02MTIsNyArNjEyLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZFByb2ZpbGVIZWFkZXIocHJvZmls
ZUhlYWRlcnNbaV0pOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQ
cm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLlByb2ZpbGVyLmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2su
YmluZCh0aGlzKSk7CiAKICAgICAgICAgdGhpcy5fcHJvZmlsZXNXZXJlUmVxdWVzdGVkID0gdHJ1
ZTsKICAgICB9LApAQCAtNjU4LDcgKzY1OCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMuX2FkZFByb2Zp
bGVIZWFkZXIodGhpcy5fdGVtcG9yYXJ5VGFraW5nU25hcHNob3QpOwogICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQudGFrZUhlYXBTbmFwc2hvdChkZXRhaWxlZCk7CisgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuUHJvZmlsZXIudGFrZUhlYXBTbmFwc2hvdChkZXRhaWxlZCk7CiAg
ICAgfSwKIAogICAgIF9yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzczogZnVuY3Rpb24oZG9uZSwg
dG90YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b3BlcnRpZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCmluZGV4IGExZTM3YmMuLjlmMDQ4M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVy
dGllc1NpZGViYXJQYW5lLmpzCkBAIC01OSw3ICs1OSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9wZXJ0
aWVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGJvZHkuYXBwZW5k
Q2hpbGQoc2VjdGlvbi5lbGVtZW50KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldE5vZGVQcm90b3R5cGVzKG5vZGUuaWQsIGNhbGxiYWNrLmJp
bmQodGhpcykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRPTS5nZXROb2RlUHJvdG90eXBl
cyhub2RlLmlkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggMTBh
ZjJlMy4uNzUzMTIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTUyLDcgKzUyLDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdC5yZXNvbHZlTm9kZSA9IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKQogICAgIHsKICAg
ICAgICAgY2FsbGJhY2sob2JqZWN0ID8gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5
bG9hZChvYmplY3QpIDogbnVsbCk7CiAgICAgfQotICAgIEluc3BlY3RvckJhY2tlbmQucmVzb2x2
ZU5vZGUobm9kZS5pZCwgbXljYWxsYmFjayk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5ET00ucmVz
b2x2ZU5vZGUobm9kZS5pZCwgbXljYWxsYmFjayk7CiB9CiAKIFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QuZnJvbVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2FkKQpAQCAtMTE4LDcgKzExOCw3IEBA
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHByb3BlcnRpZXNbaV0udmFsdWUgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXls
b2FkKHByb3BlcnRpZXNbaV0udmFsdWUpOwogICAgICAgICAgICAgY2FsbGJhY2socHJvcGVydGll
cyk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9wZXJ0aWVzKHRo
aXMuX29iamVjdElkLCAhIWlnbm9yZUhhc093blByb3BlcnR5LCBhYmJyZXZpYXRlLCByZW1vdGVP
YmplY3RCaW5kZXIpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLlJ1bnRpbWUuZ2V0UHJvcGVy
dGllcyh0aGlzLl9vYmplY3RJZCwgISFpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSwg
cmVtb3RlT2JqZWN0QmluZGVyKTsKICAgICB9LAogCiAgICAgc2V0UHJvcGVydHlWYWx1ZTogZnVu
Y3Rpb24obmFtZSwgdmFsdWUsIGNhbGxiYWNrKQpAQCAtMTI3LDEyICsxMjcsMTIgQEAgV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFjayhm
YWxzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5zZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX29iamVjdElkLCBuYW1lLCB2YWx1ZSwgY2Fs
bGJhY2spOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1
ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwgdmFsdWUsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAg
cHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQucHVzaE5vZGVUb0Zyb250ZW5kKHRoaXMuX29iamVjdElkLCBjYWxsYmFj
ayk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRE9NLnB1c2hOb2RlVG9Gcm9udGVuZCh0aGlz
Ll9vYmplY3RJZCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggN2MwNjQ5Zi4u
NzQyNDljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCkBAIC05MDQsNyArOTA0LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1l
VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hv
d0NhdGVnb3J5Vmlldyh0aGlzLl9kaXNwbGF5TmFtZSk7CiAKICAgICAgICAgdGhpcy5saXN0SXRl
bUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmhpZGVGcmFtZUhpZ2hsaWdodCgpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLklu
c3BlY3Rvci5oaWRlRnJhbWVIaWdobGlnaHQoKTsKICAgICB9LAogCiAgICAgZ2V0IGRpc3BsYXlO
YW1lKCkKQEAgLTkzNywxMCArOTM3LDEwIEBAIFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmIChob3ZlcmVkKSB7CiAgICAgICAgICAg
ICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJob3ZlcmVkIik7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmhpZ2hsaWdodEZyYW1lKHRoaXMuX2ZyYW1lSWQpOworICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3IuaGlnaGxpZ2h0RnJhbWUodGhpcy5f
ZnJhbWVJZCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxl
bWVudC5yZW1vdmVTdHlsZUNsYXNzKCJob3ZlcmVkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmhpZGVGcmFtZUhpZ2hsaWdodCgpOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5JbnNwZWN0b3IuaGlkZUZyYW1lSGlnaGxpZ2h0KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBA
IC05NjksNyArOTY5LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAKICAgICBvbmRibGNsaWNrOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIEluc3BlY3RvckJhY2tlbmQub3BlbkluSW5zcGVjdGVkV2luZG93KHRoaXMuX3Jlc291
cmNlLnVybCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLm9wZW5Jbkluc3Bl
Y3RlZFdpbmRvdyh0aGlzLl9yZXNvdXJjZS51cmwpOwogICAgIH0sCiAKICAgICBvbmF0dGFjaDog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5q
cwppbmRleCA4ZDNlYWJmLi45NWU1MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtMTIwLDYgKzEyMCw2IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fc291cmNlID0gc291cmNlOwogICAg
ICAgICAgICAgY2FsbGJhY2sodGhpcy5fc291cmNlKTsKICAgICAgICAgfQotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmdldFNjcmlwdFNvdXJjZSh0aGlzLnNvdXJjZUlELCBkaWRHZXRTY3JpcHRT
b3VyY2UuYmluZCh0aGlzKSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRGVidWdnZXIuZ2V0
U2NyaXB0U291cmNlKHRoaXMuc291cmNlSUQsIGRpZEdldFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMp
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzCmluZGV4IDNiMjRkNDUuLjdiZmQ5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0zNjIsNyAr
MzYyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4udXBkYXRlKHNlbGVjdGVk
Q2FsbEZyYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmV2YWx1YXRlT25DYWxsRnJhbWUoc2VsZWN0ZWRDYWxsRnJhbWUuaWQsIGNvZGUsIG9i
amVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVy
LmJpbmQodGhpcykpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLmV2YWx1YXRl
T25DYWxsRnJhbWUoc2VsZWN0ZWRDYWxsRnJhbWUuaWQsIGNvZGUsIG9iamVjdEdyb3VwLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIHVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVyLmJpbmQodGhpcykpOwog
ICAgIH0sCiAKICAgICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNzQ3LDcg
Kzc0Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5zdGF0ZSA9IHBhdXNlT25FeGNlcHRp
b25zU3RhdGU7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucGF1c2VPbkV4Y2Vw
dGlvblN0YXRlID0gcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTsKICAgICAgICAgfQotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUocGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShwYXVzZU9uRXhjZXB0aW9uc1N0YXRl
LCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZURlYnVnZ2VyQnV0
dG9uczogZnVuY3Rpb24oKQpAQCAtODY1LDExICs4NjUsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9wYXVzZWQpIHsKICAgICAg
ICAgICAgIHRoaXMuX3BhdXNlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fd2FpdGluZ1Rv
UGF1c2UgPSBmYWxzZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVzdW1lKCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLnJlc3VtZSgpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgdGhpcy5fc3RlcHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAg
IHRoaXMuX3dhaXRpbmdUb1BhdXNlID0gdHJ1ZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQucGF1c2UoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRGVidWdnZXIucGF1c2Uo
KTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJmYWNlKCk7CkBAIC04ODIs
NyArODgyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgdGhpcy5fY2xlYXJJbnRlcmZhY2UoKTsKIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnN0ZXBPdmVyKCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuRGVidWdnZXIuc3RlcE92ZXIo
KTsKICAgICB9LAogCiAgICAgX3N0ZXBJbnRvQ2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtODkyLDcg
Kzg5Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHRoaXMuX2NsZWFySW50ZXJmYWNlKCk7CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
dGVwSW50bygpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLnN0ZXBJbnRvKCk7
CiAgICAgfSwKIAogICAgIF9zdGVwT3V0Q2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtOTAyLDE4ICs5
MDIsMTggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgdGhpcy5fY2xlYXJJbnRlcmZhY2UoKTsKIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0
ZXBPdXQoKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5EZWJ1Z2dlci5zdGVwT3V0KCk7CiAg
ICAgfSwKIAogICAgIHRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsK
ICAgICAgICAgdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkID0gIXRoaXMudG9n
Z2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZDsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlQnJl
YWtwb2ludHNCdXR0b24udG9nZ2xlZCkgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5h
Y3RpdmF0ZUJyZWFrcG9pbnRzKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVn
Z2VyLmFjdGl2YXRlQnJlYWtwb2ludHMoKTsKICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtw
b2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYWN0aXZhdGUgYWxs
IGJyZWFrcG9pbnRzLiIpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1h
aW4tcGFuZWxzIikucmVtb3ZlU3R5bGVDbGFzcygiYnJlYWtwb2ludHMtZGVhY3RpdmF0ZWQiKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGVhY3RpdmF0
ZUJyZWFrcG9pbnRzKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkRlYnVnZ2VyLmRl
YWN0aXZhdGVCcmVha3BvaW50cygpOwogICAgICAgICAgICAgdGhpcy50b2dnbGVCcmVha3BvaW50
c0J1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWN0aXZhdGUgYWxsIGJyZWFr
cG9pbnRzLiIpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFu
ZWxzIikuYWRkU3R5bGVDbGFzcygiYnJlYWtwb2ludHMtZGVhY3RpdmF0ZWQiKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
cmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMKaW5kZXggNmI0YjNiMy4uM2YzNTk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC02ODQsNyArNjg0LDcgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9wb3B1cC5o
aWRlKCk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3B1cDsKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5yZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKDAsIHRoaXMuX3BvcG92ZXJPYmplY3RHcm91
cCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuUnVudGltZS5yZWxlYXNlV3JhcHBlck9iamVj
dEdyb3VwKDAsIHRoaXMuX3BvcG92ZXJPYmplY3RHcm91cCk7CiAgICAgfSwKIAogICAgIF9tb3Vz
ZUhvdmVyOiBmdW5jdGlvbihlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMKaW5kZXggM2JmZTI4Yy4uYzgwOWFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJv
bGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250
cm9sbGVyLmpzCkBAIC00Niw3ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5UZXN0Q29udHJvbGxlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIiAm
JiB0aGlzLnJlc3VsdHMubGVuZ3RoKQogICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5yZXN1bHRz
OwogICAgICAgICB2YXIgbWVzc2FnZSA9IHR5cGVvZiByZXN1bHQgPT09ICJ1bmRlZmluZWQiID8g
IlwiPHVuZGVmaW5lZD5cIiIgOiBKU09OLnN0cmluZ2lmeShyZXN1bHQpOwotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQodGhpcy5fY2FsbElkLCBt
ZXNzYWdlKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5JbnNwZWN0b3IuZGlkRXZhbHVhdGVG
b3JUZXN0SW5Gcm9udGVuZCh0aGlzLl9jYWxsSWQsIG1lc3NhZ2UpOwogICAgIH0sCiAKICAgICBy
dW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzOiBmdW5jdGlvbihjYWxsYmFjaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCAx
ZDhiOWM5Li5jNDQwNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0yNzAsMTAgKzI3MCwxMCBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3RvZ2dsZVRpbWVsaW5lQnV0dG9u
Q2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGltZWxp
bmVCdXR0b24udG9nZ2xlZCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc3RvcFRpbWVs
aW5lUHJvZmlsZXIoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLnN0
b3BUaW1lbGluZVByb2ZpbGVyKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdGhpcy5f
Y2xlYXJQYW5lbCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdGFydFRpbWVsaW5l
UHJvZmlsZXIoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLnN0YXJ0
VGltZWxpbmVQcm9maWxlcigpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lv
bnNTaWRlYmFyUGFuZS5qcwppbmRleCBhNmY1OWNhLi40ZGQzOWZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVz
c2lvbnNTaWRlYmFyUGFuZS5qcwpAQCAtMTIwLDcgKzEyMCw3IEBAIFdlYkluc3BlY3Rvci5XYXRj
aEV4cHJlc3Npb25zU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBUT0RPOiBwYXNzIGV4YWN0IGluamVjdGVkIHNjcmlwdCBpZC4KLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKDAsIHRoaXMuX3dhdGNoT2JqZWN0R3Jv
dXBJZCkKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5SdW50aW1lLnJlbGVhc2VXcmFwcGVyT2Jq
ZWN0R3JvdXAoMCwgdGhpcy5fd2F0Y2hPYmplY3RHcm91cElkKQogICAgICAgICB2YXIgcHJvcGVy
dGllcyA9IFtdOwogCiAgICAgICAgIC8vIENvdW50IHRoZSBwcm9wZXJ0aWVzLCBzbyB3ZSBrbm93
biB3aGVuIHRvIGNhbGwgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKaW5k
ZXggYjI1NGYzYy4uMmFlYTlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKQEAgLTc0LDkgKzc0LDkgQEAg
V2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRJ
bnN0cnVtZW50YXRpb246IGZ1bmN0aW9uKGVuYWJsZWQpCiAgICAgewotICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKCk7CisgICAgICAgIElu
c3BlY3RvckJhY2tlbmQuSW5zcGVjdG9yLnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2Fk
KCk7CiAgICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5h
ZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIpIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5hZGRTY3JpcHRUb0V2YWx1
YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIpIik7CiAgICAgfSwKIAogICAg
IHJlc2V0OiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCmluZGV4IDA5NTkyODkuLjZlZTc4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0zNjAsOSArMzYwLDkg
QEAgdmFyIFdlYkluc3BlY3RvciA9IHsKIAogICAgICAgICB0aGlzLl9oaWdobGlnaHRlZERPTU5v
ZGVJZCA9IG5vZGVJZDsKICAgICAgICAgaWYgKG5vZGVJZCkKLSAgICAgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOworICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5JbnNwZWN0b3IuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLkluc3BlY3Rvci5oaWRlRE9NTm9kZUhpZ2hsaWdo
dCgpOwogICAgIH0sCiAKICAgICBoaWdobGlnaHRET01Ob2RlRm9yVHdvU2Vjb25kczogZnVuY3Rp
b24obm9kZUlkKQpAQCAtNTUwLDIzICs1NTAsMjMgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9u
ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKQog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbChXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
bGFzdEFjdGl2ZVBhbmVsKTsKICAgICB9Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5wb3B1bGF0ZVNj
cmlwdE9iamVjdHMob25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMpOworICAgIEluc3BlY3RvckJhY2tl
bmQuSW5zcGVjdG9yLnBvcHVsYXRlU2NyaXB0T2JqZWN0cyhvblBvcHVsYXRlU2NyaXB0T2JqZWN0
cyk7CiAKICAgICBpZiAoUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFibGVkIHx8IFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQpCiAgICAgICAgIHRoaXMuZGVidWdnZXJN
b2RlbC5lbmFibGVEZWJ1Z2dlcigpOwogICAgIGlmIChQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5
c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5hYmxlZCkKLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcigpOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLkluc3BlY3Rvci5lbmFibGVQcm9maWxlcigpOwogICAgIGlmIChXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Q29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsKIAotICAgIEluc3BlY3RvckJh
Y2tlbmQuc2V0Q29uc29sZU1lc3NhZ2VzRW5hYmxlZCh0cnVlKTsKKyAgICBJbnNwZWN0b3JCYWNr
ZW5kLkNvbnNvbGUuc2V0Q29uc29sZU1lc3NhZ2VzRW5hYmxlZCh0cnVlKTsKIAogICAgIGZ1bmN0
aW9uIHByb3BlcnR5TmFtZXNDYWxsYmFjayhuYW1lcykKICAgICB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jc3NOYW1lQ29tcGxldGlvbnMgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU0NvbXBsZXRpb25z
KG5hbWVzKTsKICAgICB9CiAgICAgLy8gQXMgYSBET01BZ2VudCBtZXRob2QsIHRoaXMgbmVlZHMg
dG8gaGFwcGVuIGFmdGVyIHRoZSBmcm9udGVuZCBoYXMgbG9hZGVkIGFuZCB0aGUgYWdlbnQgaXMg
YXZhaWxhYmxlLgotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGll
cyhwcm9wZXJ0eU5hbWVzQ2FsbGJhY2spOworICAgIEluc3BlY3RvckJhY2tlbmQuQ1NTLmdldFN1
cHBvcnRlZENTU1Byb3BlcnRpZXMocHJvcGVydHlOYW1lc0NhbGxiYWNrKTsKIH0KIAogV2ViSW5z
cGVjdG9yLmFkZFBhbmVsVG9vbGJhckljb24gPSBmdW5jdGlvbih0b29sYmFyRWxlbWVudCwgcGFu
ZWwsIHByZXZpb3VzVG9vbGJhckl0ZW0pCkBAIC03MjcsNyArNzI3LDcgQEAgV2ViSW5zcGVjdG9y
Lm9wZW5SZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBpblJlc291cmNlc1BhbmVsKQog
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zaG93UmVzb3VyY2UocmVzb3Vy
Y2UpOwogICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJyZXNvdXJjZXMiKTsKICAgICB9
IGVsc2UKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3cocmVz
b3VyY2UgPyByZXNvdXJjZS51cmwgOiByZXNvdXJjZVVSTCk7CisgICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuSW5zcGVjdG9yLm9wZW5Jbkluc3BlY3RlZFdpbmRvdyhyZXNvdXJjZSA/IHJlc291cmNl
LnVybCA6IHJlc291cmNlVVJMKTsKIH0KIAogV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0
cyA9IGZ1bmN0aW9uKCkKQEAgLTg3NSwxMyArODc1LDEzIEBAIFdlYkluc3BlY3Rvci5kb2N1bWVu
dEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIAogICAgICAgICBjYXNlICJVKzAwNTIiOiAvLyBS
IGtleQogICAgICAgICAgICAgaWYgKChldmVudC5tZXRhS2V5ICYmIGlzTWFjKSB8fCAoZXZlbnQu
Y3RybEtleSAmJiAhaXNNYWMpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5y
ZWxvYWRQYWdlKGV2ZW50LnNoaWZ0S2V5KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLkluc3BlY3Rvci5yZWxvYWRQYWdlKGV2ZW50LnNoaWZ0S2V5KTsKICAgICAgICAgICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgIkY1IjoKICAgICAgICAgICAgIGlmICghaXNNYWMpCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxvYWRQYWdlKGV2ZW50LmN0cmxLZXkgfHwgZXZl
bnQuc2hpZnRLZXkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuSW5zcGVjdG9y
LnJlbG9hZFBhZ2UoZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82650</attachid>
            <date>2011-02-16 09:02:35 -0800</date>
            <delta_ts>2011-02-16 09:13:43 -0800</delta_ts>
            <desc>[patch] second version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>81953</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZhNGE3Li5lMWFjY2FmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDIt
MTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0
IGFsbCB0aGUgZnVuY3Rpb25zIG9mIEluc3BlY3RvciBiYWNrZW5kIEFQSSBieSBkb21haW4uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OAorCisg
ICAgICAgIFdlIGhhdmUgYSBudW1iZXIgb2YgZnVuY3Rpb25zIGZyb20gZGlmZmVyZW50IGRvbWFp
bnMgaW4gc2luZ2xlIGluc3RhbmNlIG9mIEluc3BlY3RvckJhY2tlbmQuCisgICAgICAgIEknZCBi
ZSBiZXR0ZXIgdG8gc3BsaXQgdGhlIGZ1bmN0aW9ucyBieSB0aGVpciBkb21haW5zLgorICAgICAg
ICBBcyBleGFtcGxlICdldmFsdWF0ZScgd2lsbCBiZSBtb3ZlZCBmcm9tIEluc3BlY3RvckJhY2tl
bmQgdG8gUnVudGltZUFnZW50IGNvbnRhaW5lci4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0V4dGVuc2lv
bnNUZXN0Lkluc3BlY3RvclRlc3QucnVuRXh0ZW5zaW9uVGVzdHMpOgorICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9J
bnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KToKKyAgICAgICAgKGluaXRp
YWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4
LWVycm9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNl
LW9uLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC1zZWFyY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJv
cnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10ZXN0LmpzOgorICAgICAgICAoaW5p
dGlhbGl6ZV9UaW1lbGluZS5JbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rpb25zQW5kUHJpbnQuc3Rl
cDIpOgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10cml2aWFsLmh0bWw6
CisKIDIwMTEtMDItMTYgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sCmlu
ZGV4IDc0ZDIyNmEuLjAzOWFmZjUgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKQEAgLTMzLDcgKzMzLDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoIm1ha2VSZXF1ZXN0cygpIiwgc3RlcDIpOwogICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgY2FsbGJh
Y2spOworICAgICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwg
Y2FsbGJhY2spOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKQEAgLTQyLDcgKzQyLDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoIm1ha2VSZXF1ZXN0cygpIiwgc3RlcDMpOwogICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFsc2UsIGNhbGxi
YWNrKTsKKyAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGZhbHNl
LCBjYWxsYmFjayk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCmluZGV4IDM5
YzRhNTUuLmZhMjI5YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zLXRlc3QuanMKQEAgLTM0LDcgKzM0LDcgQEAgSW5zcGVjdG9yVGVzdC5k
aXNwYXRjaE9uTWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VJZCwgY2FsbGJhY2ssIHJlY3Vycmlu
ZykKIAogSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyA9IGZ1bmN0aW9uKCkKIHsKLSAg
ICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlKCJsb2NhdGlvbi5ocmVmIiwgImNvbnNvbGUiLCBm
YWxzZSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJsb2Nh
dGlvbi5ocmVmIiwgImNvbnNvbGUiLCBmYWxzZSwgZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgICAg
IHZhciBwYWdlVVJMID0gcmVzdWx0LmRlc2NyaXB0aW9uOwogICAgICAgICB2YXIgZXh0ZW5zaW9u
VVJMID0gKC9eaHR0cHM/Oi8udGVzdChwYWdlVVJMKSA/CiAgICAgICAgICAgICBwYWdlVVJMLnJl
cGxhY2UoL14oaHR0cHM/OlwvXC9bXi9dKlwvKS4qJC8sIiQxIikgOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwppbmRleCAzNjE2MjFh
Li5hOTI1YjExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcwpAQCAtNSw3ICs1LDcgQEAgdmFyIHJlc3VsdHNTeW5jaHJvbml6ZWQg
PSBmYWxzZTsKIAogSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QgPSBmdW5jdGlvbigpCiB7Ci0g
ICAgSW5zcGVjdG9yQmFja2VuZC5kaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0Q2FsbElkLCAiIik7CisgICAgSW5zcGVjdG9yQWdlbnQuZGlkRXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdENhbGxJZCwg
IiIpOwogfQogCiBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlID0gZnVuY3Rpb24oY29k
ZSwgY2FsbGJhY2spCkBAIC00MCw3ICs0MCw3IEBAIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykKICAgICAgICAgaWYgKGNhbGxiYWNrKQogICAg
ICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChy
ZXN1bHQpKTsKICAgICB9Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5ldmFsdWF0ZShjb2RlLCAiY29u
c29sZSIsIGZhbHNlLCBteWNhbGxiYWNrKTsKKyAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoY29k
ZSwgImNvbnNvbGUiLCBmYWxzZSwgbXljYWxsYmFjayk7CiB9CiAKIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2VXaXRoVGltZW91dCA9IGZ1bmN0aW9uKGNvZGUsIGNhbGxiYWNrKQpAQCAtMTA5
LDcgKzEwOSw3IEBAIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yaykKICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLl9yZXNldCgpOwotICAgIEluc3BlY3RvckJhY2tlbmQucmVs
b2FkUGFnZShmYWxzZSk7CisgICAgSW5zcGVjdG9yQWdlbnQucmVsb2FkUGFnZShmYWxzZSk7CiB9
CiAKIEluc3BlY3RvclRlc3QucGFnZVJlbG9hZGVkID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbAppbmRl
eCBhNjE1YTYxLi43NTYzMDkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlv
biBkb2l0KCkKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5ldmFs
dWF0ZSgid2luZG93IiwgImNvbnNvbGUiLCBmYWxzZSwgZXZhbENhbGxiYWNrKTsKKyAgICBSdW50
aW1lQWdlbnQuZXZhbHVhdGUoIndpbmRvdyIsICJjb25zb2xlIiwgZmFsc2UsIGV2YWxDYWxsYmFj
ayk7CiAKICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2socmVzdWx0KQogICAgIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUt
b24tc3ludGF4LWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWdnZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci5odG1sCmluZGV4IGViMWEwNTguLmQ2
YTZjNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dl
ci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRt
bApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0YXJ0
RGVidWdnZXJUZXN0Q2FsbGJhY2soKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKKyAgICAgICAgRGVi
dWdnZXJBZ2VudC5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJkZWJ1Z2dlci1hdXRvY29u
dGludWUtb24tc3ludGF4LWVycm9yLmh0bWwiLCByZWxvYWRJbnNwZWN0ZWRQYWdlKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1w
YXVzZS1vbi1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbAppbmRleCAyMzQ5MGMzLi40ZTc0YWQzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcGF1c2Ut
b24tZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLXBhdXNlLW9uLWV4Y2VwdGlvbi5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIHZhciB0ZXN0
ID0gZnVuY3Rpb24oKQogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25z
KTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVn
aHRFeGNlcHRpb25zKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJk
ZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbCIsIHN0ZXAyKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFy
Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1z
ZWFyY2guaHRtbAppbmRleCBlZjhlZjdlLi44ZmZjYThmIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sCkBA
IC0yNSwyNiArMjUsMjYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBpZiAobm9kZS5u
b2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpCiAgICAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0
cy5wdXNoKG5vZGUubm9kZVZhbHVlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldE91dGVySFRNTChub2RlLmlkLCBhZGRTZWFyY2hSZXN1bHQp
OworICAgICAgICAgICAgICAgIERPTUFnZW50LmdldE91dGVySFRNTChub2RlLmlkLCBhZGRTZWFy
Y2hSZXN1bHQpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUGxhaW4gdGV4dC4KLSAgICBJ
bnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2goIkZvbyIgKyAiQmFyIiwgdHJ1ZSk7CisgICAg
RE9NQWdlbnQucGVyZm9ybVNlYXJjaCgiRm9vIiArICJCYXIiLCB0cnVlKTsKICAgICAvLyBQYXJ0
aWFsIHRleHQuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNoKCJvbyIgKyAiQmEi
LCB0cnVlKTsKKyAgICBET01BZ2VudC5wZXJmb3JtU2VhcmNoKCJvbyIgKyAiQmEiLCB0cnVlKTsK
ICAgICAvLyBTdGFydCB0YWcuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNoKCI8
aW5wdSIgKyAidCIsIHRydWUpOworICAgIERPTUFnZW50LnBlcmZvcm1TZWFyY2goIjxpbnB1IiAr
ICJ0IiwgdHJ1ZSk7CiAgICAgLy8gUGFydGlhbCB0YWcuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5w
ZXJmb3JtU2VhcmNoKCJucHUiICsgInQiLCB0cnVlKTsKKyAgICBET01BZ2VudC5wZXJmb3JtU2Vh
cmNoKCJucHUiICsgInQiLCB0cnVlKTsKICAgICAvLyBFeGFjdCBhdHRyaWJ1dGUgbmFtZS4KLSAg
ICBJbnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2goInZhbHUiICsgImUiLCB0cnVlKTsKKyAg
ICBET01BZ2VudC5wZXJmb3JtU2VhcmNoKCJ2YWx1IiArICJlIiwgdHJ1ZSk7CiAgICAgLy8gRXhh
Y3QgYXR0cmlidXRlIHZhbDw+dWUuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNo
KCJJbiIgKyAicHV0VmEiICsgImwiLCB0cnVlKTsKKyAgICBET01BZ2VudC5wZXJmb3JtU2VhcmNo
KCJJbiIgKyAicHV0VmEiICsgImwiLCB0cnVlKTsKICAgICAvLyBQYXJ0aWFsIGF0dHJpYnV0ZSB2
YWw8PnVlLgotICAgIEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCgibiIgKyAicHV0VmEi
ICsgImwiLCB0cnVlKTsKKyAgICBET01BZ2VudC5wZXJmb3JtU2VhcmNoKCJuIiArICJwdXRWYSIg
KyAibCIsIHRydWUpOwogICAgIC8vIFRlcm1pbmF0b3IuCi0gICAgSW5zcGVjdG9yQmFja2VuZC5w
ZXJmb3JtU2VhcmNoKCJ0ZXIiICsgIm1pIiArICJuYXRvciIsIHRydWUpOworICAgIERPTUFnZW50
LnBlcmZvcm1TZWFyY2goInRlciIgKyAibWkiICsgIm5hdG9yIiwgdHJ1ZSk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJ
LWVycm9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1l
cnJvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDEyNGMyOWUuLmI1YTgzNjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLWV4cGVjdGVkLnR4dApAQCAt
MSw4ICsxLDggQEAKIFRlc3RzIHRoYXQgSW5zcGVjdG9yQmFja2VuZFN0dWIgaXMgY2F0Y2hpbmcg
aW5jb3JyZWN0IGFyZ3VtZW50cy4KIAotUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgdHlwZSBvZiBh
cmd1bWVudCAnZW5hYmxlZCcgZm9yICdJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJF
bmFibGVkJyBjYWxsLiBJdCBzaG91bGQgYmUgJ2Jvb2xlYW4nIGJ1dCBpdCBpcyAnbnVtYmVyJy4K
LVByb3RvY29sIEVycm9yOiBJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICdJbnNwZWN0
b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkJyBjYWxsLiBJdCBzaG91bGQgaGF2ZSB0
aGUgbmV4dCBhcmd1bWVudHMgJ3siZW5hYmxlZCI6ImJvb2xlYW4ifScuCi1Qcm90b2NvbCBFcnJv
cjogT3B0aW9uYWwgY2FsbGJhY2sgYXJndW1lbnQgZm9yICdJbnNwZWN0b3JCYWNrZW5kLnNldE1v
bml0b3JpbmdYSFJFbmFibGVkJyBjYWxsIHNob3VsZCBiZSBhIGZ1bmN0aW9uIGJ1dCBpdHMgdHlw
ZSBpcyAnc3RyaW5nJy4KK1Byb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQg
J2VuYWJsZWQnIGZvciAnQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkJyBjYWxs
LiBJdCBzaG91bGQgYmUgJ2Jvb2xlYW4nIGJ1dCBpdCBpcyAnbnVtYmVyJy4KK1Byb3RvY29sIEVy
cm9yOiBJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICdDb25zb2xlQWdlbnQuc2V0TW9u
aXRvcmluZ1hIUkVuYWJsZWQnIGNhbGwuIEl0IHNob3VsZCBoYXZlIHRoZSBuZXh0IGFyZ3VtZW50
cyAneyJlbmFibGVkIjoiYm9vbGVhbiJ9Jy4KK1Byb3RvY29sIEVycm9yOiBPcHRpb25hbCBjYWxs
YmFjayBhcmd1bWVudCBmb3IgJ0NvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCcg
Y2FsbCBzaG91bGQgYmUgYSBmdW5jdGlvbiBidXQgaXRzIHR5cGUgaXMgJ3N0cmluZycuCiBQcm90
b2NvbCBFcnJvcjogdGhlIG1lc3NhZ2UgaXMgZm9yIG5vbi1leGlzdGluZyBkb21haW4gJ3dyb25n
RG9tYWluJwogUHJvdG9jb2wgRXJyb3I6IEF0dGVtcHRlZCB0byBkaXNwYXRjaCBhbiB1bmltcGxl
bWVudGVkIG1ldGhvZCAnSW5zcGVjdG9yLnNvbWV0aGluZy1zdHJhbmdlJwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sCmluZGV4IGM5YTViOGYuLjQyZWI4
M2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sCkBA
IC0xMSwxMSArMTEsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KFN0cmluZy5zcHJpbnRmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogICAgIH0K
IAotICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoMSk7Ci0gICAg
SW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCgpOwotICAgIEluc3BlY3Rv
ckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgIm5vdCBhIGZ1bmN0aW9uIik7
Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCB1bmRl
ZmluZWQpOwotICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFs
c2UsIHVuZGVmaW5lZCk7CisgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVk
KDEpOworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCgpOworICAgIENv
bnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlLCAibm90IGEgZnVuY3Rpb24i
KTsKKyAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgdW5kZWZp
bmVkKTsKKyAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoZmFsc2UsIHVu
ZGVmaW5lZCk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNwYXRjaCgneyJ0eXBlIjogImV2ZW50
IiwgImRvbWFpbiI6ICJ3cm9uZ0RvbWFpbiIsICJldmVudCI6ICJzb21ldGhpbmctc3RyYW5nZSIs
ICJkYXRhIjoge319Jyk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNwYXRjaCgneyJ0eXBlIjog
ImV2ZW50IiwgImRvbWFpbiI6ICJJbnNwZWN0b3IiLCAiZXZlbnQiOiAic29tZXRoaW5nLXN0cmFu
Z2UiLCAiZGF0YSI6IHt9fScpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9y
dC1wcm90b2NvbC1lcnJvcnMuaHRtbAppbmRleCBkNTE5ODVmLi4zYjliMDAxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKQEAgLTM1
LDcgKzM1LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVu
ZEhvc3Quc2VuZE1lc3NhZ2VUb0JhY2tlbmQobWVzc2FnZXNbaV0pOwogICAgIH0KIAotICAgIElu
c3BlY3RvckJhY2tlbmQuZGlzYWJsZURlYnVnZ2VyKGZpcmUpOworICAgIEluc3BlY3RvckFnZW50
LmRpc2FibGVEZWJ1Z2dlcihmaXJlKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKaW5kZXggNTA4NmVjYi4uYzMz
ZjhlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3
LUFQSS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1B
UEkuaHRtbApAQCAtNDcsNyArNDcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5j
dGlvbiBub2RlQ2FsbGJhY2sobm9kZSkKICAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgICAg
IENTU0FnZW50LmdldFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgY2FsbGJhY2spOwogICAgICAgICB9
CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgibWFpbkJvZHkiLCBub2Rl
Q2FsbGJhY2spOwogICAgIH0KQEAgLTY3LDcgKzY3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAg
ICAgICAgZnVuY3Rpb24gbm9kZUNhbGxiYWNrKG5vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7Cisg
ICAgICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsK
ICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInRoZXRhYmxlIiwg
bm9kZUNhbGxiYWNrKTsKICAgICB9CkBAIC04Nyw3ICs4Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IExhc3Qgc3R5bGVzaGVldCBwYXRj
aGVkID09PSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRTdHlsZVNoZWV0VGV4
dChzdHlsZVNoZWV0LnN0eWxlU2hlZXRJZCwgbmV3U3R5bGVTaGVldFRleHQsCisgICAgICAgICAg
ICBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0LnN0eWxlU2hlZXRJZCwgbmV3
U3R5bGVTaGVldFRleHQsCiAgICAgICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0LmJp
bmQobnVsbCwgc3R5bGVTaGVldC5zdHlsZVNoZWV0SWQsIHRlc3RfY2hhbmdlU2VsZWN0b3IpKTsK
ICAgICAgICAgfQogCkBAIC05OCw3ICs5OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICAgICAg
bG9hZEFuZER1bXBTdHlsZVNoZWV0KGlkc1tpXSwgKGkgPCBpZHMubGVuZ3RoIC0gMSkgPyBudWxs
IDogcGF0Y2hTdHlsZVNoZWV0KTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LmdldEFsbFN0eWxlcyhzdHlsZVNoZWV0SWRzTG9hZGVkKTsKKyAgICAgICAgQ1NTQWdlbnQuZ2V0
QWxsU3R5bGVzKHN0eWxlU2hlZXRJZHNMb2FkZWQpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHRl
c3RfY2hhbmdlU2VsZWN0b3Ioc3R5bGVTaGVldCkKQEAgLTExMCw3ICsxMTAsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVldChydWxlLnJ1bGVJZC5z
dHlsZVNoZWV0SWQsIHRlc3Rfc2V0U3R5bGVUZXh0KTsKICAgICAgICAgfQogCi0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQuc2V0UnVsZVNlbGVjdG9yKHN0eWxlU2hlZXQucnVsZXNbMF0ucnVsZUlk
LCAiaHRtbCAqLCBib2R5W2Zvbz1cImJhclwiXSIsIGRpZFNldFNlbGVjdG9yKTsKKyAgICAgICAg
Q1NTQWdlbnQuc2V0UnVsZVNlbGVjdG9yKHN0eWxlU2hlZXQucnVsZXNbMF0ucnVsZUlkLCAiaHRt
bCAqLCBib2R5W2Zvbz1cImJhclwiXSIsIGRpZFNldFNlbGVjdG9yKTsKICAgICB9CiAKICAgICBm
dW5jdGlvbiB0ZXN0X3NldFN0eWxlVGV4dChzdHlsZVNoZWV0KQpAQCAtMTIyLDEyICsxMjIsMTIg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQoc3R5
bGUuc3R5bGVJZC5zdHlsZVNoZWV0SWQsIHRlc3RfYWRkUnVsZSk7CiAgICAgICAgIH0KIAotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBd
LnN0eWxlLnN0eWxlSWQsIDAsICIiLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZS5zdHlsZUlkLCAwLCAiIiwg
dHJ1ZSk7CisgICAgICAgIENTU0FnZW50LnNldFByb3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVz
WzBdLnN0eWxlLnN0eWxlSWQsIDAsICIiLCB0cnVlKTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0UHJv
cGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJZCwgMCwgIiIsIHRydWUp
OwogCiAgICAgICAgIC8vIFRoaXMgb3BlcmF0aW9uIHNob3VsZCBub3QgdXBkYXRlIHRoZSBzdHls
ZSBhcyB0aGUgbmV3IHByb3BlcnR5IHRleHQgaXMgbm90IHBhcnNhYmxlLgotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0
eWxlSWQsIDAsICJ6eno7IiwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFBy
b3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICJjb2xvcjog
d2hpdGU7IGJhY2tncm91bmQ6IGJsYWNrOyIsIGZhbHNlLCBkaWRTZXRTdHlsZVRleHQpOworICAg
ICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZS5z
dHlsZUlkLCAwLCAienp6OyIsIGZhbHNlKTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlU
ZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJZCwgMCwgImNvbG9yOiB3aGl0ZTsg
YmFja2dyb3VuZDogYmxhY2s7IiwgZmFsc2UsIGRpZFNldFN0eWxlVGV4dCk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gdGVzdF9hZGRSdWxlKCkKQEAgLTE0MiwxNSArMTQyLDE1IEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFNldFN0eWxlVGV4dChzdHlsZSkKICAgICAg
ICAgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZXNGb3JOb2RlKFdlYklu
c3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5ib2R5LmlkLCBkaWRHZXRTdHlsZXMpOworICAgICAg
ICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVzRm9yTm9kZShXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9j
dW1lbnQuYm9keS5pZCwgZGlkR2V0U3R5bGVzKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0
aW9uIHJ1bGVBZGRlZChydWxlKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnNldFByb3BlcnR5VGV4dChydWxlLnN0eWxlLnN0eWxlSWQsIDAsICJmb250LWZhbWlseTog
c2VyaWY7IiwgZmFsc2UsIGRpZFNldFN0eWxlVGV4dCk7CisgICAgICAgICAgICBDU1NBZ2VudC5z
ZXRQcm9wZXJ0eVRleHQocnVsZS5zdHlsZS5zdHlsZUlkLCAwLCAiZm9udC1mYW1pbHk6IHNlcmlm
OyIsIGZhbHNlLCBkaWRTZXRTdHlsZVRleHQpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5hZGRSdWxlKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5ib2R5Lmlk
LCAiYm9keSIsIHJ1bGVBZGRlZCk7CisgICAgICAgIENTU0FnZW50LmFkZFJ1bGUoV2ViSW5zcGVj
dG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHkuaWQsICJib2R5IiwgcnVsZUFkZGVkKTsKICAgICB9
CiAKICAgICBmdW5jdGlvbiB0ZXN0X2Rpc2FibGVQcm9wZXJ0eSgpCkBAIC0xNzUsMTMgKzE3NSwx
MyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIC8vIGJvcmRlci13aWR0aDogMHB4Owog
CiAgICAgICAgICAgICB2YXIgc3R5bGUgPSBzdHlsZXMubWF0Y2hlZENTU1J1bGVzWzFdLnN0eWxl
OwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHls
ZUlkLCAwLCB0cnVlKTsgLy8gaGVpZ2h0OiAxMDAlCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnRvZ2dsZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDcsIHRydWUpOyAvLyBib3JkZXItd2lk
dGg6IDBweAotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5
bGUuc3R5bGVJZCwgNywgImZvbnQtc2l6ZTogMTJweDsiLCBmYWxzZSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dChzdHlsZS5zdHlsZUlkLCA5LCAiZm9udC1z
aXplOiAxNHB4OyIsIGZhbHNlKTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xl
UHJvcGVydHkoc3R5bGUuc3R5bGVJZCwgOSwgdHJ1ZSk7IC8vIGZvbnQtc2l6ZTogMTRweAotICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwg
OCwgImJvcmRlci13aWR0aDogMXB4OyIsIHRydWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA4LCBmYWxzZSk7IC8vIGJvcmRlci13
aWR0aDogMXB4CisgICAgICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHls
ZUlkLCAwLCB0cnVlKTsgLy8gaGVpZ2h0OiAxMDAlCisgICAgICAgICAgICBDU1NBZ2VudC50b2dn
bGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA3LCB0cnVlKTsgLy8gYm9yZGVyLXdpZHRoOiAwcHgK
KyAgICAgICAgICAgIENTU0FnZW50LnNldFByb3BlcnR5VGV4dChzdHlsZS5zdHlsZUlkLCA3LCAi
Zm9udC1zaXplOiAxMnB4OyIsIGZhbHNlKTsKKyAgICAgICAgICAgIENTU0FnZW50LnNldFByb3Bl
cnR5VGV4dChzdHlsZS5zdHlsZUlkLCA5LCAiZm9udC1zaXplOiAxNHB4OyIsIGZhbHNlKTsKKyAg
ICAgICAgICAgIENTU0FnZW50LnRvZ2dsZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDksIHRydWUp
OyAvLyBmb250LXNpemU6IDE0cHgKKyAgICAgICAgICAgIENTU0FnZW50LnNldFByb3BlcnR5VGV4
dChzdHlsZS5zdHlsZUlkLCA4LCAiYm9yZGVyLXdpZHRoOiAxcHg7IiwgdHJ1ZSk7CisgICAgICAg
ICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA4LCBmYWxzZSk7IC8v
IGJvcmRlci13aWR0aDogMXB4CiAgICAgICAgICAgICAvLyBoZWlnaHQgOiAxMDAlIDsgW2RdCiAg
ICAgICAgICAgICAvLyBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICAgICAgIC8vIGJvcmRlci13
aWR0aDogMnB4OwpAQCAtMTkzLDEyICsxOTMsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAvLyBib3JkZXItd2lkdGg6IDFweDsKICAgICAgICAgICAgIC8vIGZvbnQtc2l6ZTogMTRw
eDsgW2RdCiAKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0
eWxlLnN0eWxlSWQsIDMsICIiLCB0cnVlLCBkaWREaXNhYmxlUHJvcGVydHkpOworICAgICAgICAg
ICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxlSWQsIDMsICIiLCB0cnVlLCBk
aWREaXNhYmxlUHJvcGVydHkpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbm9kZUNh
bGxiYWNrKG5vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
U3R5bGVzRm9yTm9kZShub2RlLmlkLCBzdHlsZXNDYWxsYmFjayk7CisgICAgICAgICAgICBDU1NB
Z2VudC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIHN0eWxlc0NhbGxiYWNrKTsKICAgICAgICAg
fQogICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInRvZ2dsZSIsIG5vZGVDYWxsYmFj
ayk7CiAgICAgfQpAQCAtMjEzLDggKzIxMyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQudG9nZ2xlUHJvcGVydHkoc3R5bGVJZCwgNiwgZmFsc2UpOwotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnRvZ2dsZVByb3BlcnR5KHN0eWxlSWQsIDgsIGZhbHNlLCBkaWRF
bmFibGVQcm9wZXJ0eSk7CisgICAgICAgIENTU0FnZW50LnRvZ2dsZVByb3BlcnR5KHN0eWxlSWQs
IDYsIGZhbHNlKTsKKyAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkoc3R5bGVJZCwgOCwg
ZmFsc2UsIGRpZEVuYWJsZVByb3BlcnR5KTsKICAgICB9CiAKICAgICAvLyBEYXRhIGR1bXBpbmcK
QEAgLTI1OCw3ICsyNTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBjb250
aW51YXRpb24oc3R5bGVTaGVldCk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBzdHlsZVNoZWV0TG9hZGVkKTsKKyAgICAg
ICAgQ1NTQWdlbnQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIHN0eWxlU2hlZXRMb2FkZWQp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggMTYyMjdlZi4uODRlMzA5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zm
c2V0cy5odG1sCkBAIC0zNyw3ICszNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rp
b24gc3RlcDEobm9kZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVz
Rm9yTm9kZShub2RlLmlkLCBzdGVwMik7CisgICAgICAgIENTU0FnZW50LmdldFN0eWxlc0Zvck5v
ZGUobm9kZS5pZCwgc3RlcDIpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAyKHN0eWxlcykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3
b3JrLXJlc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtbmV0d29yay1yZXNvdXJjZS5odG1sCmluZGV4IGM0MWY4YWEuLjI2MzQwNzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291
cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5l
dHdvcmstcmVzb3VyY2UuaHRtbApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB2YXIgcmVzb3VyY2VJZDsKICAgICB2YXIgc2NyaXB0VXJsID0gInRpbWVsaW5lLW5ldHdvcmst
cmVzb3VyY2UuanMiOwogCi0gICAgSW5zcGVjdG9yQmFja2VuZC5zdGFydFRpbWVsaW5lUHJvZmls
ZXIoc3RlcDEpOworICAgIEluc3BlY3RvckFnZW50LnN0YXJ0VGltZWxpbmVQcm9maWxlcihzdGVw
MSk7CiAKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAgewpAQCAtMjgsNyArMjgsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOworICAgICAgICBJbnNwZWN0
b3JBZ2VudC5zdG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXNjcmlwdC10YWctMS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sCmluZGV4IGZiMDRmNGQuLjg4MjYwNDQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFn
LTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2Ny
aXB0LXRhZy0xLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMo
KQogCiBmdW5jdGlvbiB0ZXN0KCkgCiB7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5zdGFydFRpbWVs
aW5lUHJvZmlsZXIoc3RlcDEpOworICAgIEluc3BlY3RvckFnZW50LnN0YXJ0VGltZWxpbmVQcm9m
aWxlcihzdGVwMSk7CiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicGVyZm9ybUFjdGlvbnMoKSIpOwpAQCAtMjIsNyArMjIs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOworICAgICAg
ICBJbnNwZWN0b3JBZ2VudC5zdG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sCmluZGV4IDlkNmYwYTguLjZmODk2
MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1z
Y3JpcHQtdGFnLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gcGVyZm9y
bUFjdGlvbnMoKQogCiBmdW5jdGlvbiB0ZXN0KCkgCiB7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5z
dGFydFRpbWVsaW5lUHJvZmlsZXIoc3RlcDEpOworICAgIEluc3BlY3RvckFnZW50LnN0YXJ0VGlt
ZWxpbmVQcm9maWxlcihzdGVwMSk7CiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yQWdl
bnQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRlc3Qu
anMKaW5kZXggNTRkNjNjMS4uMmM0YjM5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXRlc3QuanMKQEAgLTE3LDcgKzE3LDcgQEAgSW5zcGVjdG9yVGVz
dC50aW1lbGluZU5vbkRldGVybWluaXN0aWNQcm9wcyA9IHsKIAogSW5zcGVjdG9yVGVzdC5wZXJm
b3JtQWN0aW9uc0FuZFByaW50ID0gZnVuY3Rpb24oYWN0aW9ucywgdHlwZU5hbWUpCiB7Ci0gICAg
SW5zcGVjdG9yQmFja2VuZC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoc3RlcDEpOworICAgIEluc3Bl
Y3RvckFnZW50LnN0YXJ0VGltZWxpbmVQcm9maWxlcihzdGVwMSk7CiAgICAgZnVuY3Rpb24gc3Rl
cDEoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShhY3Rpb25z
LCBzdGVwMik7CkBAIC0yNSw3ICsyNSw3IEBAIEluc3BlY3RvclRlc3QucGVyZm9ybUFjdGlvbnNB
bmRQcmludCA9IGZ1bmN0aW9uKGFjdGlvbnMsIHR5cGVOYW1lKQogCiAgICAgZnVuY3Rpb24gc3Rl
cDIoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdG9wVGltZWxpbmVQcm9maWxl
cihzdGVwMyk7CisgICAgICAgIEluc3BlY3RvckFnZW50LnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0
ZXAzKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMygpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdHJpdmlhbC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRyaXZpYWwuaHRtbAppbmRleCA0MjUxYTI0
Li44OGIyMzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtdHJpdmlhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS10cml2aWFsLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRpbWVsaW5lIHN0YXJ0ZWQiKTsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9Ci0gICAgSW5zcGVjdG9y
QmFja2VuZC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoY2FsbGJhY2spOworICAgIEluc3BlY3RvckFn
ZW50LnN0YXJ0VGltZWxpbmVQcm9maWxlcihjYWxsYmFjayk7CiB9CiAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDcxYTkxZjkuLjRkOGM3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDggQEAKKzIwMTEtMDIt
MTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0
IGFsbCB0aGUgZnVuY3Rpb25zIG9mIEluc3BlY3RvciBiYWNrZW5kIEFQSSBieSBkb21haW4uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OAorCisg
ICAgICAgIFdlIGhhdmUgYSBudW1iZXIgb2YgZnVuY3Rpb25zIGZyb20gZGlmZmVyZW50IGRvbWFp
bnMgaW4gc2luZ2xlIGluc3RhbmNlIG9mIEluc3BlY3RvckJhY2tlbmQuCisgICAgICAgIEknZCBi
ZSBiZXR0ZXIgdG8gc3BsaXQgdGhlIGZ1bmN0aW9ucyBieSB0aGVpciBkb21haW5zLgorICAgICAg
ICBBcyBleGFtcGxlICdldmFsdWF0ZScgd2lsbCBiZSBtb3ZlZCBmcm9tIEluc3BlY3RvckJhY2tl
bmQgdG8gUnVudGltZUFnZW50IGNvbnRhaW5lci4KKworICAgICAgICAqIGluc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnBtOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRSdWxlcy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLmV2YWx1YXRlSW5U
YXJnZXRXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3Nz
UnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBl
Ll9yZWxvYWRSZXNvdXJjZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIu
cHJvdG90eXBlLl9wcm9qZWN0Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludE1hbmFnZXIucHJvdG90eXBlLnJlc3RvcmVET01CcmVha3BvaW50cyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9zYXZlQnJlYWtwb2ludHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQucHJvdG90eXBlLl9lbmFibGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQucHJvdG90eXBlLl9kaXNhYmxl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyQnJlYWtwb2ludC5wcm90b3R5
cGUuX2VuYWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFrcG9p
bnQucHJvdG90eXBlLl9kaXNhYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5YSFJCcmVha3Bv
aW50LnByb3RvdHlwZS5fZW5hYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5YSFJCcmVha3Bv
aW50LnByb3RvdHlwZS5fZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJv
dG90eXBlLmdldFN0eWxlc0FzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmdldElubGluZVN0eWxlQXN5bmMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLnNldFJ1bGVTZWxlY3Rvci5j
YWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUu
c2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBy
b3RvdHlwZS5hZGRSdWxlLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZS5hZGRSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZS5fc3R5bGVTaGVldENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9vblJldmVydCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuaW5zZXJ0UHJvcGVydHlBdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldFRleHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5zZXREaXNhYmxlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUuc2V0VGV4dCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUucmVxdWVzdENsZWFyTWVzc2FnZXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5jb21wbGV0aW9ucyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVu
dUV2ZW50Lml0ZW1BY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29uc29sZVZpZXcucHJvdG90eXBlLmV2YWxJbkluc3BlY3RlZFdpbmRvdyk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29va2llSXRlbXNWaWV3LnByb3RvdHlwZS5fZGVsZXRlQ29va2llKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LnByb3RvdHlwZS5nZXRDaGlsZE5vZGVzQXN5bmMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVBc3luYyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZUFzeW5jKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuc2V0VGV4dE5vZGVWYWx1ZUFz
eW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0Y2hlci5n
ZXRBcHBsaWNhdGlvbkNhY2hlc0FzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVz
LmdldENvb2tpZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnMu
Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlQXN5bmMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRE9NU3RvcmFnZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnBy
b3RvdHlwZS5nZXRFbnRyaWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnBy
b3RvdHlwZS5zZXRJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3Rv
dHlwZS5yZW1vdmVJdGVtKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlLnByb3RvdHlwZS5nZXRUYWJsZU5h
bWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5cGUuZXhlY3V0ZVNx
bCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmVuYWJsZURlYnVnZ2Vy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5kaXNhYmxl
RGVidWdnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBl
LmNvbnRpbnVlVG9Mb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNb2RlbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLnJlbW92ZUJyZWFrcG9pbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmVkaXRTY3JpcHRTb3Vy
Y2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnRoaXMudHJlZU91dGxpbmUuZm9jdXNl
ZE5vZGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5zZXREb2N1bWVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuc2VhcmNoQ2Fu
Y2VsZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnBl
cmZvcm1TZWFyY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90
eXBlLmhhbmRsZUNvcHlFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUuc2V0U2VhcmNoaW5nRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9jcmVhdGVUb29sdGlwRm9yTm9kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX3RhZ05hbWVF
ZGl0aW5nQ29tbWl0dGVkKToKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25X
YXRjaFNpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRFeHByZXNzaW9uKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkFkZFJlcXVlc3RIZWFkZXJzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vblJlbG9hZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25FdmFsdWF0
ZU9uSW5zcGVjdGVkUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25h
cHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVU
eXBlLnByb3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5h
Z2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUucmVz
ZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5yZXF1
ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUu
X29wZW5Jbk5ld1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fY2xlYXJQcm9maWxlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVI
ZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLmxv
YWRIZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlLl90b2dnbGVQcm9maWxpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByb3BlcnRpZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdC5wcm90b3R5cGUuZ2V0UHJvcGVydGllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnByb3RvdHlwZS5zZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnB1c2hOb2RlVG9Gcm9udGVuZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUuc2V0IGhvdmVyZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25k
YmxjbGljayk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZS5yZXF1ZXN0U291cmNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFt
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc2V0UGF1
c2VPbkV4Y2VwdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX3RvZ2dsZVBhdXNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlLl9zdGVwT3ZlckNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX3N0ZXBJbnRvQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc3RlcE91dENsaWNrZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUudG9nZ2xlQnJlYWtwb2ludHNDbGlja2Vk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5faGlkZVBvcHVwKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250cm9sbGVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRlc3RDb250cm9sbGVyLnByb3RvdHlwZS5ub3RpZnlEb25lKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJh
clBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24u
cHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJz
U2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5l
LnByb3RvdHlwZS5zZXRJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmhpZ2hsaWdodERPTU5v
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3Iub3BlblJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVudEtl
eURvd24pOgorCiAyMDExLTAyLTE2ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IGU0ZTE5YjAuLjc2
ZjMxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtCkBAIC01NzcsNyArNTc3LDcgQEAgc3ViIGNvbGxlY3RCYWNrZW5kSlNTdHVi
RnVuY3Rpb25zCiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEBmdW5jdGlvbnMpIHsKICAgICAg
ICAgbXkgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgbXkgJGFy
Z3VtZW50TmFtZXMgPSBqb2luKCIsIiwgbWFwKCJcIiIgLiAkXy0+bmFtZSAuICJcIjogXCIiIC4g
JHR5cGVUcmFuc2Zvcm17JF8tPnR5cGV9LT57IkpTVHlwZSJ9IC4gIlwiIiwgZ3JlcCgkXy0+ZGly
ZWN0aW9uIGVxICJpbiIsIEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkpKTsKLSAgICAgICAgcHVz
aChAYmFja2VuZEpTU3R1YnMsICIgICAgdGhpcy5fcmVnaXN0ZXJEZWxlZ2F0ZSgneyIgLgorICAg
ICAgICBwdXNoKEBiYWNrZW5kSlNTdHVicywgIiAgICB0aGlzLl9yZWdpc3RlckRlbGVnYXRlKCck
ZG9tYWluJywgJ3siIC4KICAgICAgICAgICAgICJcInNlcVwiOiAwLCAiIC4KICAgICAgICAgICAg
ICJcImRvbWFpblwiOiBcIiRkb21haW5cIiwgIiAuCiAgICAgICAgICAgICAiXCJjb21tYW5kXCI6
IFwiJG5hbWVcIiwgIiAuCkBAIC02MjAsMTAgKzYyMCwxMyBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1
Yi5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbY2FsbGJhY2tJ
ZF07CiAgICAgfSwKIAotICAgIF9yZWdpc3RlckRlbGVnYXRlOiBmdW5jdGlvbihjb21tYW5kSW5m
bykKKyAgICBfcmVnaXN0ZXJEZWxlZ2F0ZTogZnVuY3Rpb24oZG9tYWluLCBjb21tYW5kSW5mbykK
ICAgICB7CisgICAgICAgIHZhciBhZ2VudE5hbWUgPSBkb21haW4gKyAiQWdlbnQiOwogICAgICAg
ICB2YXIgY29tbWFuZE9iamVjdCA9IEpTT04ucGFyc2UoY29tbWFuZEluZm8pOwotICAgICAgICB0
aGlzW2NvbW1hbmRPYmplY3QuY29tbWFuZF0gPSB0aGlzLnNlbmRNZXNzYWdlVG9CYWNrZW5kLmJp
bmQodGhpcywgY29tbWFuZEluZm8pOworICAgICAgICBpZiAoIXdpbmRvd1thZ2VudE5hbWVdKQor
ICAgICAgICAgICAgd2luZG93W2FnZW50TmFtZV0gPSBbXTsKKyAgICAgICAgd2luZG93W2FnZW50
TmFtZV1bY29tbWFuZE9iamVjdC5jb21tYW5kXSA9IHRoaXMuc2VuZE1lc3NhZ2VUb0JhY2tlbmQu
YmluZCh0aGlzLCBjb21tYW5kSW5mbyk7CiAgICAgfSwKIAogICAgIHNlbmRNZXNzYWdlVG9CYWNr
ZW5kOiBmdW5jdGlvbigpCkBAIC02MzMsMTIgKzYzNiwxMiBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1
Yi5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIga2V5IGluIHJlcXVlc3QuYXJndW1l
bnRzKSB7CiAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDApIHsKLSAgICAgICAgICAg
ICAgICBjb25zb2xlLmVycm9yKCJQcm90b2NvbCBFcnJvcjogSW52YWxpZCBudW1iZXIgb2YgYXJn
dW1lbnRzIGZvciAnSW5zcGVjdG9yQmFja2VuZC4lcycgY2FsbC4gSXQgc2hvdWxkIGhhdmUgdGhl
IG5leHQgYXJndW1lbnRzICclcycuIiwgcmVxdWVzdC5jb21tYW5kLCBKU09OLnN0cmluZ2lmeShy
ZXF1ZXN0LmFyZ3VtZW50cykpOworICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3Rv
Y29sIEVycm9yOiBJbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICclc0FnZW50LiVzJyBj
YWxsLiBJdCBzaG91bGQgaGF2ZSB0aGUgbmV4dCBhcmd1bWVudHMgJyVzJy4iLCByZXF1ZXN0LmRv
bWFpbiwgcmVxdWVzdC5jb21tYW5kLCBKU09OLnN0cmluZ2lmeShyZXF1ZXN0LmFyZ3VtZW50cykp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHZh
ciB2YWx1ZSA9IGFyZ3Muc2hpZnQoKTsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LmFyZ3VtZW50
c1trZXldICYmIHR5cGVvZiB2YWx1ZSAhPT0gcmVxdWVzdC5hcmd1bWVudHNba2V5XSkgewotICAg
ICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUg
b2YgYXJndW1lbnQgJyVzJyBmb3IgJ0luc3BlY3RvckJhY2tlbmQuJXMnIGNhbGwuIEl0IHNob3Vs
ZCBiZSAnJXMnIGJ1dCBpdCBpcyAnJXMnLiIsIGtleSwgcmVxdWVzdC5jb21tYW5kLCByZXF1ZXN0
LmFyZ3VtZW50c1trZXldLCB0eXBlb2YgdmFsdWUpOworICAgICAgICAgICAgICAgIGNvbnNvbGUu
ZXJyb3IoIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2YgYXJndW1lbnQgJyVzJyBmb3Ig
JyVzQWdlbnQuJXMnIGNhbGwuIEl0IHNob3VsZCBiZSAnJXMnIGJ1dCBpdCBpcyAnJXMnLiIsIGtl
eSwgcmVxdWVzdC5kb21haW4sIHJlcXVlc3QuY29tbWFuZCwgcmVxdWVzdC5hcmd1bWVudHNba2V5
XSwgdHlwZW9mIHZhbHVlKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICByZXF1ZXN0LmFyZ3VtZW50c1trZXldID0gdmFsdWU7CkBAIC02NDYsNyAr
NjQ5LDcgQEAgSW5zcGVjdG9yQmFja2VuZFN0dWIucHJvdG90eXBlID0gewogCiAgICAgICAgIGlm
IChhcmdzLmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdICE9
PSAiZnVuY3Rpb24iICYmIHR5cGVvZiBhcmdzWzBdICE9PSAidW5kZWZpbmVkIikgewotICAgICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9yOiBPcHRpb25hbCBjYWxsYmFj
ayBhcmd1bWVudCBmb3IgJ0luc3BlY3RvckJhY2tlbmQuJXMnIGNhbGwgc2hvdWxkIGJlIGEgZnVu
Y3Rpb24gYnV0IGl0cyB0eXBlIGlzICclcycuIiwgcmVxdWVzdC5jb21tYW5kLCB0eXBlb2YgYXJn
c1swXSk7CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IE9w
dGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciAnJXNBZ2VudC4lcycgY2FsbCBzaG91bGQgYmUg
YSBmdW5jdGlvbiBidXQgaXRzIHR5cGUgaXMgJyVzJy4iLCByZXF1ZXN0LmRvbWFpbiwgcmVxdWVz
dC5jb21tYW5kLCB0eXBlb2YgYXJnc1swXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcmVxdWVzdC5zZXEgPSB0aGlzLl93cmFwKGFyZ3NbMF0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1
bGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpz
CmluZGV4IGMxMjJiYTQuLjdkNGI4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKQEAgLTY1LDcgKzY1LDcgQEAgV2ViSW5zcGVjdG9y
LkF1ZGl0UnVsZXMuZ2V0RG9tYWluVG9SZXNvdXJjZXNNYXAgPSBmdW5jdGlvbihyZXNvdXJjZXMs
IHR5cGVzLCBuZWUKIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZXZhbHVhdGVJblRhcmdldFdp
bmRvdyA9IGZ1bmN0aW9uKGZ1bmMsIGFyZ3MsIGNhbGxiYWNrKQogewotICAgIEluc3BlY3RvckJh
Y2tlbmQuZXZhbHVhdGVPblNlbGYoZnVuYy50b1N0cmluZygpLCBhcmdzLCBjYWxsYmFjayk7Cisg
ICAgSW5qZWN0ZWRTY3JpcHRBZ2VudC5ldmFsdWF0ZU9uU2VsZihmdW5jLnRvU3RyaW5nKCksIGFy
Z3MsIGNhbGxiYWNrKTsKIH0KIAogCkBAIC0zODMsNyArMzgzLDcgQEAgV2ViSW5zcGVjdG9yLkF1
ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQoc3R5bGVTaGVldElkc1tpXSwgc3R5
bGVTaGVldENhbGxiYWNrLmJpbmQobnVsbCwgc3R5bGVTaGVldHMsIGkgPT0gc3R5bGVTaGVldElk
cy5sZW5ndGggLSAxID8gZXZhbENhbGxiYWNrIDogbnVsbCkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRBbGxTdHlsZXMoYWxsU3R5bGVzQ2FsbGJhY2spOworICAg
ICAgICBDU1NBZ2VudC5nZXRBbGxTdHlsZXMoYWxsU3R5bGVzQ2FsbGJhY2spOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwu
anMKaW5kZXggNDdjMGIzMC4uMzE0NGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCkBAIC0xOTIsNyArMTkyLDcgQEAgV2ViSW5z
cGVjdG9yLkF1ZGl0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfcmVsb2FkUmVzb3VyY2VzOiBm
dW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMuX3BhZ2VSZWxvYWRDYWxsYmFj
ayA9IGNhbGxiYWNrOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbG9hZFBhZ2UoZmFsc2Up
OworICAgICAgICBJbnNwZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGZhbHNlKTsKICAgICB9LAogCiAg
ICAgX2RpZE1haW5SZXNvdXJjZUxvYWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IDk0
MzQ1ZDUuLjMyNTcxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtMjA3LDcgKzIwNyw3IEBAIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoIXRoaXMuX2JyZWFrcG9pbnRzUHVzaGVkVG9Gcm9udGVuZCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5zZXRBbGxCcm93c2VyQnJlYWtwb2ludHModGhpcy5fc3RpY2t5
QnJlYWtwb2ludHMpOworICAgICAgICAgICAgQnJvd3NlckRlYnVnZ2VyQWdlbnQuc2V0QWxsQnJv
d3NlckJyZWFrcG9pbnRzKHRoaXMuX3N0aWNreUJyZWFrcG9pbnRzKTsKICAgICAgICAgICAgIHRo
aXMuX2JyZWFrcG9pbnRzUHVzaGVkVG9Gcm9udGVuZCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9
LApAQCAtMjQzLDcgKzI0Myw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBwYXRoVG9O
b2RlSWRbcGF0aF0gPSAwOwogICAgICAgICAgICAgcGVuZGluZ0NhbGxzICs9IDE7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChwYXRoLCBkaWRQ
dXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQuYmluZCh0aGlzLCBwYXRoKSk7CisgICAgICAgICAgICBE
T01BZ2VudC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQocGF0aCwgZGlkUHVzaE5vZGVCeVBhdGhU
b0Zyb250ZW5kLmJpbmQodGhpcywgcGF0aCkpOwogICAgICAgICB9CiAgICAgICAgIGlmICghcGVu
ZGluZ0NhbGxzKQogICAgICAgICAgICAgdGhpcy5fZG9tQnJlYWtwb2ludHNSZXN0b3JlZCA9IHRy
dWU7CkBAIC0yNjgsNyArMjY4LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm5hdGl2ZUJyZWFrcG9p
bnRzID0gYnJlYWtwb2ludHM7CiAKICAgICAgICAgdGhpcy5fc3RpY2t5QnJlYWtwb2ludHNbV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLnByb2plY3RJZF0gPSBicmVha3BvaW50czsKLSAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5zZXRBbGxCcm93c2VyQnJlYWtwb2ludHModGhpcy5fc3RpY2t5QnJlYWtw
b2ludHMpOworICAgICAgICBCcm93c2VyRGVidWdnZXJBZ2VudC5zZXRBbGxCcm93c2VyQnJlYWtw
b2ludHModGhpcy5fc3RpY2t5QnJlYWtwb2ludHMpOwogICAgIH0sCiAKICAgICBfdmFsaWRhdGVC
cmVha3BvaW50czogZnVuY3Rpb24ocGVyc2lzdGVudEJyZWFrcG9pbnRzKQpAQCAtMzMxLDEyICsz
MzEsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQgPSBmdW5jdGlvbihub2RlLCB0eXBl
KQogV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgIF9lbmFibGU6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0RE9NQnJlYWtw
b2ludCh0aGlzLl9ub2RlSWQsIHRoaXMuX3R5cGUpOworICAgICAgICBCcm93c2VyRGVidWdnZXJB
Z2VudC5zZXRET01CcmVha3BvaW50KHRoaXMuX25vZGVJZCwgdGhpcy5fdHlwZSk7CiAgICAgfSwK
IAogICAgIF9kaXNhYmxlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlbW92ZURPTUJyZWFrcG9pbnQodGhpcy5fbm9kZUlkLCB0aGlzLl90eXBlKTsKKyAgICAg
ICAgQnJvd3NlckRlYnVnZ2VyQWdlbnQucmVtb3ZlRE9NQnJlYWtwb2ludCh0aGlzLl9ub2RlSWQs
IHRoaXMuX3R5cGUpOwogICAgIH0sCiAKICAgICBfc2VyaWFsaXplVG9KU09OOiBmdW5jdGlvbigp
CkBAIC0zNTQsMTIgKzM1NCwxMiBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFrcG9p
bnQgPSBmdW5jdGlvbihldmVudE5hbWUpCiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFr
cG9pbnQucHJvdG90eXBlID0gewogICAgIF9lbmFibGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuc2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQodGhpcy5fZXZl
bnROYW1lKTsKKyAgICAgICAgQnJvd3NlckRlYnVnZ2VyQWdlbnQuc2V0RXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKICAgICB9LAogCiAgICAgX2Rpc2FibGU6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlRXZlbnRMaXN0ZW5l
ckJyZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKKyAgICAgICAgQnJvd3NlckRlYnVnZ2VyQWdl
bnQucmVtb3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQodGhpcy5fZXZlbnROYW1lKTsKICAgICB9
LAogCiAgICAgX3NlcmlhbGl6ZVRvSlNPTjogZnVuY3Rpb24oKQpAQCAtMzc3LDEyICszNzcsMTIg
QEAgV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9pbnQgPSBmdW5jdGlvbih1cmwpCiBXZWJJbnNwZWN0
b3IuWEhSQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgX2VuYWJsZTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRYSFJCcmVha3BvaW50KHRoaXMuX3Vy
bCk7CisgICAgICAgIEJyb3dzZXJEZWJ1Z2dlckFnZW50LnNldFhIUkJyZWFrcG9pbnQodGhpcy5f
dXJsKTsKICAgICB9LAogCiAgICAgX2Rpc2FibGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IEluc3BlY3RvckJhY2tlbmQucmVtb3ZlWEhSQnJlYWtwb2ludCh0aGlzLl91cmwpOworICAgICAg
ICBCcm93c2VyRGVidWdnZXJBZ2VudC5yZW1vdmVYSFJCcmVha3BvaW50KHRoaXMuX3VybCk7CiAg
ICAgfSwKIAogICAgIF9zZXJpYWxpemVUb0pTT046IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCA2OWJk
N2E5Li5kYzVjYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC04Myw3ICs4Myw3IEBAIFdlYkluc3BlY3Rvci5DU1NT
dHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2socmVz
dWx0KTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzRm9y
Tm9kZShub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CisgICAgICAg
IENTU0FnZW50LmdldFN0eWxlc0Zvck5vZGUobm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVz
ZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBnZXRDb21wdXRlZFN0eWxlQXN5bmM6IGZ1bmN0
aW9uKG5vZGVJZCwgdXNlckNhbGxiYWNrKQpAQCAtOTYsNyArOTYsNyBAQCBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNr
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9hZChzdHlsZVBheWxv
YWQpKTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0Q29tcHV0ZWRT
dHlsZUZvck5vZGUobm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwor
ICAgICAgICBDU1NBZ2VudC5nZXRDb21wdXRlZFN0eWxlRm9yTm9kZShub2RlSWQsIGNhbGxiYWNr
LmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIGdldElubGluZVN0eWxl
QXN5bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNhbGxiYWNrKQpAQCAtMTA5LDcgKzEwOSw3IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXls
b2FkKHN0eWxlUGF5bG9hZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5nZXRJbmxpbmVTdHlsZUZvck5vZGUobm9kZUlkLCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJD
YWxsYmFjaykpOworICAgICAgICBDU1NBZ2VudC5nZXRJbmxpbmVTdHlsZUZvck5vZGUobm9kZUlk
LCBjYWxsYmFjay5iaW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBzZXRS
dWxlU2VsZWN0b3I6IGZ1bmN0aW9uKHJ1bGVJZCwgbm9kZUlkLCBuZXdTZWxlY3Rvciwgc3VjY2Vz
c0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2spCkBAIC0xMjcsMTAgKzEyNywxMCBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoIXJ1bGVQ
YXlsb2FkKQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucXVlcnlTZWxlY3RvckFsbChu
b2RlSWQsIG5ld1NlbGVjdG9yLCBjaGVja0FmZmVjdHNDYWxsYmFjay5iaW5kKHRoaXMsIG5vZGVJ
ZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCkpOworICAgICAgICAgICAgICAgIENTU0Fn
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlkLCBuZXdTZWxlY3RvciwgY2hlY2tBZmZlY3RzQ2Fs
bGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsK
ICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UnVsZVNlbGVjdG9yKHJ1
bGVJZCwgbmV3U2VsZWN0b3IsIGNhbGxiYWNrLmJpbmQodGhpcywgbm9kZUlkLCBzdWNjZXNzQ2Fs
bGJhY2ssIGZhaWx1cmVDYWxsYmFjaykpOworICAgICAgICBDU1NBZ2VudC5zZXRSdWxlU2VsZWN0
b3IocnVsZUlkLCBuZXdTZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nl
c3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIGFkZFJ1bGU6IGZ1
bmN0aW9uKG5vZGVJZCwgc2VsZWN0b3IsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNr
KQpAQCAtMTQ5LDEwICsxNDksMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgIC8vIEludmFsaWQgc3ludGF4IGZvciBhIHNlbGVjdG9y
CiAgICAgICAgICAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlk
LCBzZWxlY3RvciwgY2hlY2tBZmZlY3RzQ2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nl
c3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsKKyAgICAgICAgICAgICAgICBDU1NBZ2VudC5xdWVy
eVNlbGVjdG9yQWxsKG5vZGVJZCwgc2VsZWN0b3IsIGNoZWNrQWZmZWN0c0NhbGxiYWNrLmJpbmQo
dGhpcywgbm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIHJ1bGVQYXlsb2FkKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFkZFJ1bGUobm9kZUlkLCBzZWxlY3RvciwgY2Fs
bGJhY2suYmluZCh0aGlzLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaywgc2VsZWN0
b3IpKTsKKyAgICAgICAgQ1NTQWdlbnQuYWRkUnVsZShub2RlSWQsIHNlbGVjdG9yLCBjYWxsYmFj
ay5iaW5kKHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBzZWxlY3Rvcikp
OwogICAgIH0sCiAKICAgICBfc3R5bGVTaGVldENoYW5nZWQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXRJ
ZCwgbWFqb3JDaGFuZ2UpCkBAIC0xNjYsNyArMTY2LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKHJlc291cmNlICYmIHJlc291cmNl
LnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlN0eWxlc2hlZXQpCiAgICAgICAg
ICAgICAgICAgcmVzb3VyY2Uuc2V0Q29udGVudChjb250ZW50LCB0aGlzLl9vblJldmVydC5iaW5k
KHRoaXMsIHN0eWxlU2hlZXRJZCkpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsK
KyAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjYWxsYmFj
ay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX29uUmV2ZXJ0OiBmdW5jdGlvbihzdHlsZVNo
ZWV0SWQsIGNvbnRlbnRUb1JldmVydFRvKQpAQCAtMTc2LDcgKzE3Niw3IEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hl
ZXRDaGFuZ2VkKHN0eWxlU2hlZXRJZCwgdHJ1ZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycygic3R5bGVzaGVldCBjaGFuZ2VkIik7CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNvbnRl
bnRUb1JldmVydFRvLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0
U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldElkLCBjb250ZW50VG9SZXZlcnRUbywgY2FsbGJhY2su
YmluZCh0aGlzKSk7CiAgICAgfQogfQogCkBAIC0zNDgsNyArMzQ4LDcgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQodGhpcy5pZCwg
aW5kZXgsIG5hbWUgKyAiOiAiICsgdmFsdWUgKyAiOyIsIGZhbHNlLCBjYWxsYmFjay5iaW5kKG51
bGwsIHVzZXJDYWxsYmFjaykpOworICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQodGhp
cy5pZCwgaW5kZXgsIG5hbWUgKyAiOiAiICsgdmFsdWUgKyAiOyIsIGZhbHNlLCBjYWxsYmFjay5i
aW5kKG51bGwsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAgICBhcHBlbmRQcm9wZXJ0eTog
ZnVuY3Rpb24obmFtZSwgdmFsdWUsIHVzZXJDYWxsYmFjaykKQEAgLTQ4OCw3ICs0ODgsNyBAQCBX
ZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhyb3cg
Ik5vIG93bmVyU3R5bGUgZm9yIHByb3BlcnR5IjsKIAogICAgICAgICAvLyBBbiBpbmRleCBwYXN0
IGFsbCB0aGUgcHJvcGVydGllcyBhZGRzIGEgbmV3IHByb3BlcnR5IHRvIHRoZSBzdHlsZS4KLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQodGhpcy5vd25lclN0eWxlLmlk
LCB0aGlzLmluZGV4LCBwcm9wZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlzLm93bmVyU3R5bGUu
cGFzdExhc3RTb3VyY2VQcm9wZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQodGhpcy5vd25lclN0eWxlLmlkLCB0aGlzLmlu
ZGV4LCBwcm9wZXJ0eVRleHQsIHRoaXMuaW5kZXggPCB0aGlzLm93bmVyU3R5bGUucGFzdExhc3RT
b3VyY2VQcm9wZXJ0eUluZGV4KCksIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAg
ICBzZXRWYWx1ZTogZnVuY3Rpb24obmV3VmFsdWUsIHVzZXJDYWxsYmFjaykKQEAgLTUxNyw3ICs1
MTcsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVQcm9wZXJ0
eSh0aGlzLm93bmVyU3R5bGUuaWQsIHRoaXMuaW5kZXgsIGRpc2FibGVkLCBjYWxsYmFjay5iaW5k
KHRoaXMpKTsKKyAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkodGhpcy5vd25lclN0eWxl
LmlkLCB0aGlzLmluZGV4LCBkaXNhYmxlZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQog
fQogCkBAIC01NDgsNyArNTQ4LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRl
Rm9ySWQgPSBmdW5jdGlvbihzdHlsZVNoZWV0SWQsIHVzZXJDYWxsYmFjaykKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgdXNlckNhbGxiYWNrKG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVl
dChzdHlsZVNoZWV0UGF5bG9hZCkpOwogICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0
eWxlU2hlZXQoc3R5bGVTaGVldElkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICBDU1NBZ2Vu
dC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiB9CiAK
IFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZSA9IHsKQEAgLTU2OSw2ICs1Njks
NiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFN0eWxlU2hlZXRU
ZXh0KHRoaXMuaWQsIG5ld1RleHQsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBDU1NB
Z2VudC5zZXRTdHlsZVNoZWV0VGV4dCh0aGlzLmlkLCBuZXdUZXh0LCBjYWxsYmFjay5iaW5kKHRo
aXMpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcwppbmRleCAzNWQxZWJmLi40NjMyOWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTMxNiw3ICsz
MTYsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcmVx
dWVzdENsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKKyAgICAgICAgQ29uc29sZUFnZW50LmNsZWFy
Q29uc29sZU1lc3NhZ2VzKCk7CiAgICAgfSwKIAogICAgIGNsZWFyTWVzc2FnZXM6IGZ1bmN0aW9u
KCkKQEAgLTM1OSw5ICszNTksOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gKCFkb3ROb3RhdGlvbiAm
JiAhYnJhY2tldE5vdGF0aW9uKTsKICAgICAgICAgdmFyIGluamVjdGVkU2NyaXB0QWNjZXNzOwog
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzICYmIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5wYXVzZWQpCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldENv
bXBsZXRpb25zT25DYWxsRnJhbWUoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNlbGVjdGVk
Q2FsbEZyYW1lSWQoKSwgZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBy
ZXBvcnRDb21wbGV0aW9ucyk7CisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LmdldENvbXBsZXRp
b25zT25DYWxsRnJhbWUoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNlbGVjdGVkQ2FsbEZy
YW1lSWQoKSwgZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRD
b21wbGV0aW9ucyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0Q29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBy
ZXBvcnRDb21wbGV0aW9ucyk7CisgICAgICAgICAgICBSdW50aW1lQWdlbnQuZ2V0Q29tcGxldGlv
bnMoZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRDb21wbGV0
aW9ucyk7CiAgICAgfSwKIAogICAgIF9yZXBvcnRDb21wbGV0aW9uczogZnVuY3Rpb24oYmVzdE1h
dGNoT25seSwgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tldE5v
dGF0aW9uLCBwcmVmaXgsIHJlc3VsdCwgaXNFeGNlcHRpb24pIHsKQEAgLTQxNyw3ICs0MTcsNyBA
QCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBp
dGVtQWN0aW9uID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRp
bmdzLm1vbml0b3JpbmdYSFJFbmFibGVkID0gIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9y
aW5nWEhSRW5hYmxlZDsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmlu
Z1hIUkVuYWJsZWQoV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkKTsK
KyAgICAgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpOwogICAgICAgICB9LmJpbmQodGhp
cyk7CiAgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1l
bnUoKTsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBpdGVtQWN0aW9uLCBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCkBAIC01MjYsNyArNTI2LDcgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgewogICAgICAg
ICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1
bHQpKTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlKGV4cHJl
c3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGV2YWxDYWxsYmFjayk7
CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBldmFsQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfZW50
ZXJLZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llSXRlbXNWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMKaW5kZXggZGM3NmIzOS4uYzgx
ODdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29r
aWVJdGVtc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b29raWVJdGVtc1ZpZXcuanMKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJJbnNwZWN0b3IuQ29va2ll
SXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9kZWxldGVDb29raWU6IGZ1bmN0aW9uKGNv
b2tpZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGVsZXRlQ29va2llKGNvb2tp
ZS5uYW1lLCB0aGlzLl9jb29raWVEb21haW4pOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5kZWxl
dGVDb29raWUoY29va2llLm5hbWUsIHRoaXMuX2Nvb2tpZURvbWFpbik7CiAgICAgICAgIHRoaXMu
X3VwZGF0ZSgpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzCmluZGV4IDM2NDViYjkuLjA3Zjg0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtMzE5LDI1ICszMTksMjUg
QEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24g
bXljYWxsYmFjaygpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHBhcmVudC5jaGlsZHJlbik7CiAg
ICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDaGlsZE5vZGVzKHBhcmVudC5p
ZCwgbXljYWxsYmFjayk7CisgICAgICAgIERPTUFnZW50LmdldENoaWxkTm9kZXMocGFyZW50Lmlk
LCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgc2V0QXR0cmlidXRlQXN5bmM6IGZ1bmN0aW9u
KG5vZGUsIG5hbWUsIHZhbHVlLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciBteWNhbGxi
YWNrID0gdGhpcy5fZGlkQXBwbHlEb21DaGFuZ2UuYmluZCh0aGlzLCBub2RlLCBjYWxsYmFjayk7
Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0QXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIHZh
bHVlLCBteWNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQuc2V0QXR0cmlidXRlKG5vZGUuaWQs
IG5hbWUsIHZhbHVlLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgcmVtb3ZlQXR0cmlidXRl
QXN5bmM6IGZ1bmN0aW9uKG5vZGUsIG5hbWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFy
IG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRBcHBseURvbUNoYW5nZS5iaW5kKHRoaXMsIG5vZGUsIGNh
bGxiYWNrKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZW1vdmVBdHRyaWJ1dGUobm9kZS5p
ZCwgbmFtZSwgbXljYWxsYmFjayk7CisgICAgICAgIERPTUFnZW50LnJlbW92ZUF0dHJpYnV0ZShu
b2RlLmlkLCBuYW1lLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgc2V0VGV4dE5vZGVWYWx1
ZUFzeW5jOiBmdW5jdGlvbihub2RlLCB0ZXh0LCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZh
ciBteWNhbGxiYWNrID0gdGhpcy5fZGlkQXBwbHlEb21DaGFuZ2UuYmluZCh0aGlzLCBub2RlLCBj
YWxsYmFjayk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0VGV4dE5vZGVWYWx1ZShub2Rl
LmlkLCB0ZXh0LCBteWNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQuc2V0VGV4dE5vZGVWYWx1
ZShub2RlLmlkLCB0ZXh0LCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX2RpZEFwcGx5RG9t
Q2hhbmdlOiBmdW5jdGlvbihub2RlLCBjYWxsYmFjaywgc3VjY2VzcykKQEAgLTUxMSw3ICs1MTEs
NyBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIuZ2V0QXBwbGljYXRp
b25DYWNoZXNBc3luYyA9IGZ1bmN0aW9uKGNhbAogICAgICAgICAgICAgY2FsbGJhY2soYXBwbGlj
YXRpb25DYWNoZXMpOwogICAgIH0KIAotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0QXBwbGljYXRp
b25DYWNoZXMobXljYWxsYmFjayk7CisgICAgQXBwbGljYXRpb25DYWNoZUFnZW50LmdldEFwcGxp
Y2F0aW9uQ2FjaGVzKG15Y2FsbGJhY2spOwogfQogCiBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZURpc3BhdGNoZXIucHJvdG90eXBlID0gewpAQCAtNTQwLDcgKzU0MCw3IEBAIFdlYkluc3Bl
Y3Rvci5Db29raWVzLmdldENvb2tpZXNBc3luYyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAg
ICAgICAgY2FsbGJhY2soY29va2llcywgdHJ1ZSk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRDb29raWVzKG15Y2FsbGJhY2spOworICAgIEluc3BlY3RvckFnZW50LmdldENvb2tp
ZXMobXljYWxsYmFjayk7CiB9CiAKIFdlYkluc3BlY3Rvci5Db29raWVzLmJ1aWxkQ29va2llc0Zy
b21TdHJpbmcgPSBmdW5jdGlvbihyYXdDb29raWVTdHJpbmcpCkBAIC01ODUsNSArNTg1LDUgQEAg
V2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5j
ID0gZnVuY3Rpb24obm9kZSwgY2FsbGIKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVy
bjsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShub2RlLmlk
LCBjYWxsYmFjayk7CisgICAgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKG5vZGUu
aWQsIGNhbGxiYWNrKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NU3RvcmFnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NU3RvcmFnZS5qcwppbmRleCA0MzAxMWVhLi42ZWU4OTlmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwpAQCAtNTEsMTcgKzUx
LDE3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKIAogICAgIGdldEVu
dHJpZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9pZCwgY2FsbGJhY2spOworICAgICAgICBET01T
dG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFnZUVudHJpZXModGhpcy5faWQsIGNhbGxiYWNrKTsKICAg
ICB9LAogICAgIAogICAgIHNldEl0ZW06IGZ1bmN0aW9uKGtleSwgdmFsdWUsIGNhbGxiYWNrKQog
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9p
ZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9N
U3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgdmFsdWUsIGNhbGxiYWNrKTsKICAgICB9LAogICAg
IAogICAgIHJlbW92ZUl0ZW06IGZ1bmN0aW9uKGtleSwgY2FsbGJhY2spCiAgICAgewotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIGNh
bGxiYWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRo
aXMuX2lkLCBrZXksIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpzCmluZGV4IGVmZmI4MDkuLjcyY2M1OTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qcwpAQCAt
ODEsNyArODEsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJvdG90eXBlID0gewogICAgICAg
ICB7CiAgICAgICAgICAgICBjYWxsYmFjayhuYW1lcy5zb3J0KCkpOwogICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKHRoaXMuX2lkLCBzb3J0
aW5nQ2FsbGJhY2spOworICAgICAgICBEYXRhYmFzZUFnZW50LmdldERhdGFiYXNlVGFibGVOYW1l
cyh0aGlzLl9pZCwgc29ydGluZ0NhbGxiYWNrKTsKICAgICB9LAogICAgIAogICAgIGV4ZWN1dGVT
cWw6IGZ1bmN0aW9uKHF1ZXJ5LCBvblN1Y2Nlc3MsIG9uRXJyb3IpCkBAIC05NCw3ICs5NCw3IEBA
IFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YWJhc2VEaXNwYXRjaGVyLl9jYWxsYmFja3NbdHJhbnNh
Y3Rpb25JZF0gPSB7Im9uU3VjY2VzcyI6IG9uU3VjY2VzcywgIm9uRXJyb3IiOiBvbkVycm9yfTsK
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmV4ZWN1dGVTUUwodGhpcy5faWQs
IHF1ZXJ5LCBjYWxsYmFjayk7CisgICAgICAgIERhdGFiYXNlQWdlbnQuZXhlY3V0ZVNRTCh0aGlz
Ll9pZCwgcXVlcnksIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCAzMzg0YzM0Li5k
YzdlMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCkBAIC01Miw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLkV2ZW50cyA9IHsKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICBlbmFibGVEZWJ1Z2dlcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5lbmFibGVEZWJ1Z2dlcigpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5lbmFibGVE
ZWJ1Z2dlcigpOwogICAgICAgICBpZiAodGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBicmVha3BvaW50cyA9IFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5icmVha3BvaW50czsKQEAgLTY4LDEyICs2OCwxMiBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBkaXNhYmxlRGVidWdnZXI6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGlzYWJsZURlYnVnZ2Vy
KCk7CisgICAgICAgIEluc3BlY3RvckFnZW50LmRpc2FibGVEZWJ1Z2dlcigpOwogICAgIH0sCiAK
ICAgICBjb250aW51ZVRvTG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNvbnRpbnVlVG9M
b2NhdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKKyAgICAgICAgRGVi
dWdnZXJBZ2VudC5jb250aW51ZVRvTG9jYXRpb24oc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcik7CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVybCwgbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCkBAIC04OSw3ICs4OSw3
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB0aGlzLl9zYXZlQnJlYWtwb2ludHMoKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3Bv
aW50QWRkZWQsIGJyZWFrcG9pbnQpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuc2V0SmF2YVNjcmlwdEJyZWFrcG9pbnQodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIs
IGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMsIHRoaXMuX2Jy
ZWFrcG9pbnRzUHVzaGVkVG9CYWNrZW5kKSk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0SmF2
YVNjcmlwdEJyZWFrcG9pbnQodXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlv
biwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMsIHRoaXMuX2JyZWFrcG9pbnRz
UHVzaGVkVG9CYWNrZW5kKSk7CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9pbnRCeVNvdXJjZUlk
OiBmdW5jdGlvbihzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24s
IGVuYWJsZWQpCkBAIC0xMDMsMTIgKzEwMywxMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50
SWRdID0gYnJlYWtwb2ludDsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIGJy
ZWFrcG9pbnQpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0SmF2YVNj
cmlwdEJyZWFrcG9pbnRCeVNvdXJjZUlkKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgRGVidWdnZXJBZ2VudC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludEJ5U291cmNlSWQoc291
cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRT
ZXRCcmVha3BvaW50LmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICByZW1vdmVCcmVha3BvaW50
OiBmdW5jdGlvbihicmVha3BvaW50SWQpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnJlbW92ZUphdmFTY3JpcHRCcmVha3BvaW50KGJyZWFrcG9pbnRJZCk7CisgICAgICAgIERlYnVn
Z2VyQWdlbnQucmVtb3ZlSmF2YVNjcmlwdEJyZWFrcG9pbnQoYnJlYWtwb2ludElkKTsKICAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50SWRdOwogICAg
ICAgICBkZWxldGUgdGhpcy5fYnJlYWtwb2ludHNbYnJlYWtwb2ludElkXTsKICAgICAgICAgdGhp
cy5fc2F2ZUJyZWFrcG9pbnRzKCk7CkBAIC0yMTksNyArMjE5LDcgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmxvZyhuZXdCb2R5T3JFcnJvck1lc3NhZ2UsIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyk7CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5lZGl0U2NyaXB0U291cmNlKHNvdXJjZUlELCBzY3JpcHRTb3Vy
Y2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CisgICAgICAgIERlYnVnZ2VyQWdl
bnQuZWRpdFNjcmlwdFNvdXJjZShzb3VyY2VJRCwgc2NyaXB0U291cmNlLCBkaWRFZGl0U2NyaXB0
U291cmNlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfdXBkYXRlU2NyaXB0U291cmNlOiBm
dW5jdGlvbihzb3VyY2VJRCwgc2NyaXB0U291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IGU2YWY5M2MuLjc5YWUy
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzUGFuZWwuanMKQEAgLTU3LDcgKzU3LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwg
PSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMucGFuZWwudXBkYXRlRXZlbnRMaXN0ZW5lcnMoKTsK
IAogICAgICAgICBpZiAodGhpcy5fZm9jdXNlZERPTU5vZGUpIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuYWRkSW5zcGVjdGVkTm9kZSh0aGlzLl9mb2N1c2VkRE9NTm9kZS5pZCk7Cisg
ICAgICAgICAgICBET01BZ2VudC5hZGRJbnNwZWN0ZWROb2RlKHRoaXMuX2ZvY3VzZWRET01Ob2Rl
LmlkKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5T2Jq
ZWN0U2VsZWN0ZWQodGhpcy5wYW5lbC5uYW1lKTsKICAgICAgICAgfQogICAgIH07CkBAIC0yMTEs
NyArMjExLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkUGF0aE9uUmVzZXQpCi0gICAgICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCh0aGlzLl9zZWxl
Y3RlZFBhdGhPblJlc2V0LCBzZWxlY3RMYXN0U2VsZWN0ZWROb2RlLmJpbmQodGhpcykpOworICAg
ICAgICAgICAgRE9NQWdlbnQucHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKHRoaXMuX3NlbGVjdGVk
UGF0aE9uUmVzZXQsIHNlbGVjdExhc3RTZWxlY3RlZE5vZGUuYmluZCh0aGlzKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHNlbGVjdE5vZGUuY2FsbCh0aGlzKTsKICAgICAgICAgZGVsZXRl
IHRoaXMuX3NlbGVjdGVkUGF0aE9uUmVzZXQ7CkBAIC0yMjYsNyArMjI2LDcgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRT
ZWFyY2hSZXN1bHRJbmRleCA9IDA7CiAgICAgICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMgPSBbXTsK
LSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZWFyY2hDYW5jZWxlZCgpOworICAgICAgICBET01B
Z2VudC5zZWFyY2hDYW5jZWxlZCgpOwogICAgIH0sCiAKICAgICBwZXJmb3JtU2VhcmNoOiBmdW5j
dGlvbihxdWVyeSkKQEAgLTI0Miw3ICsyNDIsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX21hdGNoZXNDb3VudFVwZGF0ZVRpbWVvdXQg
PSBudWxsOwogICAgICAgICB0aGlzLl9zZWFyY2hRdWVyeSA9IHF1ZXJ5OwogCi0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCh3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBmYWxz
ZSk7CisgICAgICAgIERPTUFnZW50LnBlcmZvcm1TZWFyY2god2hpdGVzcGFjZVRyaW1tZWRRdWVy
eSwgZmFsc2UpOwogICAgIH0sCiAKICAgICBwb3B1bGF0ZUhyZWZDb250ZXh0TWVudTogZnVuY3Rp
b24oY29udGV4dE1lbnUsIGV2ZW50LCBhbmNob3JFbGVtZW50KQpAQCAtMTAyMyw3ICsxMDIzLDcg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBldmVudC5jbGlwYm9hcmREYXRhLmNsZWFyRGF0YSgpOwogICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNvcHlO
b2RlKHRoaXMuZm9jdXNlZERPTU5vZGUuaWQpOworICAgICAgICBET01BZ2VudC5jb3B5Tm9kZSh0
aGlzLmZvY3VzZWRET01Ob2RlLmlkKTsKICAgICB9LAogCiAgICAgcmlnaHRTaWRlYmFyUmVzaXpl
ckRyYWdTdGFydDogZnVuY3Rpb24oZXZlbnQpCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRTZWFyY2hpbmdGb3JO
b2RlOiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRTZWFyY2hpbmdGb3JOb2RlKGVuYWJsZWQsIHRoaXMuX3NldFNlYXJjaGluZ0Zvck5vZGUuYmlu
ZCh0aGlzKSk7CisgICAgICAgIEluc3BlY3RvckFnZW50LnNldFNlYXJjaGluZ0Zvck5vZGUoZW5h
YmxlZCwgdGhpcy5fc2V0U2VhcmNoaW5nRm9yTm9kZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAg
ICAgdG9nZ2xlU2VhcmNoaW5nRm9yTm9kZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmlu
ZGV4IDU2YzNlNzUuLjkxYWZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTQxMCw3ICs0MTAs
NyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy50b29sdGlwID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCIlZCDDlyAlZCBwaXhlbHMgKE5hdHVyYWw6ICVkIMOXICVkIHBpeGVscykiLCBw
cm9wZXJ0aWVzLm9mZnNldFdpZHRoLCBwcm9wZXJ0aWVzLm9mZnNldEhlaWdodCwgcHJvcGVydGll
cy5uYXR1cmFsV2lkdGgsIHByb3BlcnRpZXMubmF0dXJhbEhlaWdodCk7CiAgICAgICAgIH0KLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXROb2RlUHJvcGVydGllcyhub2RlLmlkLCBbIm5hdHVy
YWxIZWlnaHQiLCAibmF0dXJhbFdpZHRoIiwgIm9mZnNldEhlaWdodCIsICJvZmZzZXRXaWR0aCJd
LCBzZXRUb29sdGlwLmJpbmQodGhpcykpOworICAgICAgICBET01BZ2VudC5nZXROb2RlUHJvcGVy
dGllcyhub2RlLmlkLCBbIm5hdHVyYWxIZWlnaHQiLCAibmF0dXJhbFdpZHRoIiwgIm9mZnNldEhl
aWdodCIsICJvZmZzZXRXaWR0aCJdLCBzZXRUb29sdGlwLmJpbmQodGhpcykpOwogICAgIH0sCiAK
ICAgICB1cGRhdGVTZWxlY3Rpb246IGZ1bmN0aW9uKCkKQEAgLTExNTQsNyArMTE1NCw3IEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IG1vdmVUb05leHRBdHRyaWJ1dGVJZk5lZWRlZC5jYWxsKG5ld1RyZWVJdGVtKTsKICAgICAgICAg
fQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuY2hhbmdlVGFnTmFtZSh0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0LmlkLCBuZXdUZXh0LCBjaGFuZ2VUYWdOYW1lQ2FsbGJhY2spOworICAgICAgICBE
T01BZ2VudC5jaGFuZ2VUYWdOYW1lKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQsIG5ld1RleHQs
IGNoYW5nZVRhZ05hbWVDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF90ZXh0Tm9kZUVkaXRpbmdD
b21taXR0ZWQ6IGZ1bmN0aW9uKGVsZW1lbnQsIG5ld1RleHQpCkBAIC0xMzgxLDcgKzEzODEsNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICBwYXJlbnRFbGVtZW50LmFkanVzdENvbGxhcHNlZFJhbmdlKHRydWUpOwogICAgICAgICB9
CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZW1vdmVOb2RlKHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuaWQsIHJlbW92ZU5vZGVDYWxsYmFjayk7CisgICAgICAgIERPTUFnZW50LnJlbW92ZU5v
ZGUodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pZCwgcmVtb3ZlTm9kZUNhbGxiYWNrKTsKICAgICB9
LAogCiAgICAgX2VkaXRBc0hUTUw6IGZ1bmN0aW9uKCkKQEAgLTE0MDgsMTUgKzE0MDgsMTUgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAg
IGZ1bmN0aW9uIGNvbW1pdENoYW5nZSh2YWx1ZSkKICAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5zZXRPdXRlckhUTUwobm9kZS5pZCwgdmFsdWUsIHNlbGVjdE5vZGUpOwor
ICAgICAgICAgICAgRE9NQWdlbnQuc2V0T3V0ZXJIVE1MKG5vZGUuaWQsIHZhbHVlLCBzZWxlY3RO
b2RlKTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0T3V0ZXJIVE1M
KG5vZGUuaWQsIHRoaXMuX3N0YXJ0RWRpdGluZ0FzSFRNTC5iaW5kKHRoaXMsIGNvbW1pdENoYW5n
ZSkpOworICAgICAgICBET01BZ2VudC5nZXRPdXRlckhUTUwobm9kZS5pZCwgdGhpcy5fc3RhcnRF
ZGl0aW5nQXNIVE1MLmJpbmQodGhpcywgY29tbWl0Q2hhbmdlKSk7CiAgICAgfSwKIAogICAgIF9j
b3B5SFRNTDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jb3B5
Tm9kZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKKyAgICAgICAgRE9NQWdlbnQuY29weU5v
ZGUodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pZCk7CiAgICAgfSwKIAogICAgIF9oaWdobGlnaHRT
ZWFyY2hSZXN1bHRzOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwppbmRleCAxNDRkNTVkLi4xNDJiOGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
UGFuZWwuanMKQEAgLTk1LDcgKzk1LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvbldhdGNoU2lk
ZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgc2V0RXhwcmVzc2lvbjogZnVuY3Rpb24oZXhw
cmVzc2lvbiwgdGl0bGUpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRl
KGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCBmYWxzZSwgdGhpcy5fb25FdmFsdWF0ZS5i
aW5kKHRoaXMsIHRpdGxlKSk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHByZXNz
aW9uLCAiZXh0ZW5zaW9uLXdhdGNoIiwgZmFsc2UsIHRoaXMuX29uRXZhbHVhdGUuYmluZCh0aGlz
LCB0aXRsZSkpOwogICAgIH0sCiAKICAgICBfb25FdmFsdWF0ZTogZnVuY3Rpb24odGl0bGUsIHJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanMKaW5kZXggN2QzM2I3My4uYmEzMGY3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTE2
Niw3ICsxNjYsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgYWxsSGVhZGVyc1tuYW1lXSA9IGhlYWRlcnNbbmFtZV07CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRFeHRy
YUhlYWRlcnMoYWxsSGVhZGVycyk7CisgICAgICAgIE5ldHdvcmtBZ2VudC5zZXRFeHRyYUhlYWRl
cnMoYWxsSGVhZGVycyk7CiAgICAgfSwKIAogICAgIF9vbkNyZWF0ZVBhbmVsOiBmdW5jdGlvbiht
ZXNzYWdlLCBwb3J0KQpAQCAtMjU1LDkgKzI1NSw5IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIucHJvdG90eXBlID0gewogICAgIF9vblJlbG9hZDogZnVuY3Rpb24obWVzc2FnZSkKICAg
ICB7CiAgICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZS51c2VyQWdlbnQgPT09ICJzdHJpbmciKQot
ICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRVc2VyQWdlbnRPdmVycmlkZShtZXNzYWdl
LnVzZXJBZ2VudCk7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5zZXRVc2VyQWdlbnRPdmVy
cmlkZShtZXNzYWdlLnVzZXJBZ2VudCk7CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxv
YWRQYWdlKGZhbHNlKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQucmVsb2FkUGFnZShmYWxzZSk7
CiAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMuT0soKTsKICAgICB9LAogCkBAIC0yNzMsNyAr
MjczLDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB0aGlzLl9kaXNwYXRjaENhbGxiYWNrKG1lc3NhZ2UucmVxdWVzdElkLCBwb3J0LCBy
ZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIHZhciBldmFsRXhwcmVzc2lvbiA9ICJKU09OLnN0
cmluZ2lmeShldmFsKHVuZXNjYXBlKCciICsgZXNjYXBlKG1lc3NhZ2UuZXhwcmVzc2lvbikgKyAi
JykpKTsiOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlKGV2YWxFeHByZXNzaW9u
LCAibm9uZSIsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBSdW50aW1lQWdl
bnQuZXZhbHVhdGUoZXZhbEV4cHJlc3Npb24sICJub25lIiwgdHJ1ZSwgY2FsbGJhY2suYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIF9vblJldmVhbEFuZFNlbGVjdDogZnVuY3Rpb24obWVzc2Fn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90Vmlldy5qcwppbmRleCA0NGI5NWMzLi44N2UwMmY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCkBAIC0x
MDEwLDcgKzEwMTAsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUucHJv
dG90eXBlID0gewogCiAgICAgYnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC50YWtlSGVhcFNuYXBzaG90KGZhbHNlKTsKKyAgICAgICAgUHJv
ZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KGZhbHNlKTsKICAgICB9LAogCiAgICAgZ2V0IHdl
bGNvbWVNZXNzYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IGRhMDQzZmUuLjRjMjhhMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpA
QCAtMzMsNyArMzMsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIgPSBmdW5jdGlvbihy
ZXNvdXJjZVRyZWVNb2RlbCkKICAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7CiAg
ICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwgPSByZXNvdXJjZVRyZWVNb2RlbDsKICAgICB0aGlz
Ll9kaXNwYXRjaGVyID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlcihyZXNvdXJj
ZVRyZWVNb2RlbCwgdGhpcyk7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5jYWNoZWRSZXNvdXJjZXMo
dGhpcy5fcHJvY2Vzc0NhY2hlZFJlc291cmNlcy5iaW5kKHRoaXMpKTsKKyAgICBOZXR3b3JrQWdl
bnQuY2FjaGVkUmVzb3VyY2VzKHRoaXMuX3Byb2Nlc3NDYWNoZWRSZXNvdXJjZXMuYmluZCh0aGlz
KSk7CiB9CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzID0gewpAQCAt
NDgsNyArNDgsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmNsZWFyKCk7CiAgICAg
ICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLnJlc2V0KCk7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuY2FjaGVkUmVzb3VyY2VzKHRoaXMuX3Byb2Nlc3NDYWNoZWRSZXNvdXJjZXMuYmluZCh0
aGlzKSk7CisgICAgICAgIE5ldHdvcmtBZ2VudC5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vz
c0NhY2hlZFJlc291cmNlcy5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgcmVxdWVzdENvbnRl
bnQ6IGZ1bmN0aW9uKHJlc291cmNlLCBiYXNlNjRFbmNvZGUsIGNhbGxiYWNrKQpAQCAtNTcsNyAr
NTcsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBlID0gewogICAgICAg
ICB7CiAgICAgICAgICAgICBjYWxsYmFjayhzdWNjZXNzID8gY29udGVudCA6IG51bGwpOwogICAg
ICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVzb3VyY2VDb250ZW50KHJlc291cmNl
LmxvYWRlci5mcmFtZUlkLCByZXNvdXJjZS51cmwsIGJhc2U2NEVuY29kZSwgY2FsbGJhY2tXcmFw
cGVyKTsKKyAgICAgICAgTmV0d29ya0FnZW50LnJlc291cmNlQ29udGVudChyZXNvdXJjZS5sb2Fk
ZXIuZnJhbWVJZCwgcmVzb3VyY2UudXJsLCBiYXNlNjRFbmNvZGUsIGNhbGxiYWNrV3JhcHBlcik7
CiAgICAgfSwKIAogICAgIF9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzOiBmdW5jdGlvbihtYWluRnJh
bWVQYXlsb2FkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtQYW5lbC5qcwppbmRleCAwODVmNDY4Li5lMDA3ZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTM5NSw3ICsx
Mzk1LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewog
CiAgICAgX29wZW5Jbk5ld1RhYjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3codGhpcy5fcmVzb3VyY2UudXJsKTsKKyAgICAg
ICAgSW5zcGVjdG9yQWdlbnQub3BlbkluSW5zcGVjdGVkV2luZG93KHRoaXMuX3Jlc291cmNlLnVy
bCk7CiAgICAgfSwKIAogICAgIGdldCBzZWxlY3RhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGMzMjViZjcuLjMzNWJm
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
Vmlldy5qcwpAQCAtOTQsNyArOTQsNyBAQCBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcgPSBm
dW5jdGlvbihwcm9maWxlKQogICAgICAgICBzZWxmLl91cGRhdGVQZXJjZW50QnV0dG9uKCk7CiAg
ICAgfQogCi0gICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9maWxlKHRoaXMucHJvZmlsZS50eXBl
SWQsIHRoaXMucHJvZmlsZS51aWQsIHByb2ZpbGVDYWxsYmFjayk7CisgICAgUHJvZmlsZXJBZ2Vu
dC5nZXRQcm9maWxlKHRoaXMucHJvZmlsZS50eXBlSWQsIHRoaXMucHJvZmlsZS51aWQsIHByb2Zp
bGVDYWxsYmFjayk7CiB9CiAKIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVmlldy5wcm90b3R5cGUg
PSB7CkBAIC01OTMsOSArNTkzLDkgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVjb3JkaW5nID0gIXRoaXMuX3JlY29yZGluZzsKIAog
ICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nKQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5zdGFydFByb2ZpbGluZygpOworICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuc3RhcnRQcm9m
aWxpbmcoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdG9w
UHJvZmlsaW5nKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5zdG9wUHJvZmlsaW5nKCk7
CiAgICAgfSwKIAogICAgIGdldCB3ZWxjb21lTWVzc2FnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggYjg3ZWE3Zi4u
NTZjN2Y4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZmlsZXNQYW5lbC5qcwpAQCAtMjE1LDcgKzIxNSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9jbGVhclByb2ZpbGVzOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmNsZWFyUHJvZmlsZXMoKTsKKyAgICAgICAg
UHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKCk7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAg
ICAgfSwKIApAQCAtMzUxLDcgKzM1MSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgc2lkZWJhclBhcmVudC5yZW1vdmVDaGlsZChwcm9maWxlLl9w
cm9maWxlc1RyZWVFbGVtZW50KTsKIAogICAgICAgICBpZiAoIXByb2ZpbGUuaXNUZW1wb3Jhcnkp
Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZVByb2ZpbGUocHJvZmlsZS50eXBl
SWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJvZmls
ZShwcm9maWxlLnR5cGVJZCwgcHJvZmlsZS51aWQpOwogCiAgICAgICAgIC8vIE5vIG90aGVyIGl0
ZW0gd2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHByb2ZpbGVzLCBz
bwogICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBs
YXN0IHByb2ZpbGUgaXMgcmVtb3ZlZC4KQEAgLTQyNCw3ICs0MjQsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBwcm9maWxlLl9jYWxsYmFj
a3MgPSBbY2FsbGJhY2tdOwogICAgICAgICAgICAgcHJvZmlsZS5fanNvbiA9ICIiOwogICAgICAg
ICAgICAgcHJvZmlsZS5zaWRlQmFyRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiTG9hZGluZ+KApiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9m
aWxlKHByb2ZpbGUudHlwZUlkLCBwcm9maWxlLnVpZCk7CisgICAgICAgICAgICBQcm9maWxlckFn
ZW50LmdldFByb2ZpbGUocHJvZmlsZS50eXBlSWQsIHByb2ZpbGUudWlkKTsKICAgICAgICAgfQog
ICAgIH0sCiAKQEAgLTU5MiwxMCArNTkyLDEwIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9wcm9maWxlckVuYWJsZWQp
IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQgPSBm
YWxzZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGlzYWJsZVByb2ZpbGVyKHRydWUp
OworICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuZGlzYWJsZVByb2ZpbGVyKHRydWUpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVy
RW5hYmxlZCA9ICEhb3B0aW9uYWxBbHdheXM7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LmVuYWJsZVByb2ZpbGVyKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5lbmFibGVQcm9m
aWxlcigpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtNjEyLDcgKzYxMiw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVIZWFkZXJzW2ldKTsKICAgICAgICAgfQogCi0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UHJvZmlsZUhlYWRlcnMocG9wdWxhdGVDYWxsYmFjay5i
aW5kKHRoaXMpKTsKKyAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1
bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOwogCiAgICAgICAgIHRoaXMuX3Byb2ZpbGVzV2VyZVJl
cXVlc3RlZCA9IHRydWU7CiAgICAgfSwKQEAgLTY1OCw3ICs2NTgsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0
aGlzLl9hZGRQcm9maWxlSGVhZGVyKHRoaXMuX3RlbXBvcmFyeVRha2luZ1NuYXBzaG90KTsKICAg
ICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnRha2VIZWFwU25hcHNob3QoZGV0YWls
ZWQpOworICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3QoZGV0YWlsZWQpOwog
ICAgIH0sCiAKICAgICBfcmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3M6IGZ1bmN0aW9uKGRvbmUs
IHRvdGFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9wZXJ0aWVzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcwppbmRleCBhMWUzN2JjLi40Y2M0YjY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRl
YmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3Bl
cnRpZXNTaWRlYmFyUGFuZS5qcwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuUHJvcGVy
dGllc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBib2R5LmFwcGVu
ZENoaWxkKHNlY3Rpb24uZWxlbWVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXROb2RlUHJvdG90eXBlcyhub2RlLmlkLCBjYWxsYmFjay5i
aW5kKHRoaXMpKTsKKyAgICAgICAgRE9NQWdlbnQuZ2V0Tm9kZVByb3RvdHlwZXMobm9kZS5pZCwg
Y2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDEwYWYyZTMuLmViNzBk
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3Rl
T2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3Rl
T2JqZWN0LmpzCkBAIC01Miw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucmVz
b2x2ZU5vZGUgPSBmdW5jdGlvbihub2RlLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGNhbGxi
YWNrKG9iamVjdCA/IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0
KSA6IG51bGwpOwogICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnJlc29sdmVOb2RlKG5vZGUu
aWQsIG15Y2FsbGJhY2spOworICAgIERPTUFnZW50LnJlc29sdmVOb2RlKG5vZGUuaWQsIG15Y2Fs
bGJhY2spOwogfQogCiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkID0gZnVu
Y3Rpb24ocGF5bG9hZCkKQEAgLTExOCw3ICsxMTgsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2ldLnZhbHVlID0g
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0aWVzW2ldLnZhbHVl
KTsKICAgICAgICAgICAgIGNhbGxiYWNrKHByb3BlcnRpZXMpOwogICAgICAgICB9Ci0gICAgICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0UHJvcGVydGllcyh0aGlzLl9vYmplY3RJZCwgISFpZ25vcmVI
YXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSwgcmVtb3RlT2JqZWN0QmluZGVyKTsKKyAgICAgICAg
UnVudGltZUFnZW50LmdldFByb3BlcnRpZXModGhpcy5fb2JqZWN0SWQsICEhaWdub3JlSGFzT3du
UHJvcGVydHksIGFiYnJldmlhdGUsIHJlbW90ZU9iamVjdEJpbmRlcik7CiAgICAgfSwKIAogICAg
IHNldFByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBjYWxsYmFjaykKQEAgLTEy
NywxMiArMTI3LDEyIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmpl
Y3RJZCwgbmFtZSwgdmFsdWUsIGNhbGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LnNldFBy
b3BlcnR5VmFsdWUodGhpcy5fb2JqZWN0SWQsIG5hbWUsIHZhbHVlLCBjYWxsYmFjayk7CiAgICAg
fSwKIAogICAgIHB1c2hOb2RlVG9Gcm9udGVuZDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnB1c2hOb2RlVG9Gcm9udGVuZCh0aGlzLl9vYmplY3RJ
ZCwgY2FsbGJhY2spOworICAgICAgICBET01BZ2VudC5wdXNoTm9kZVRvRnJvbnRlbmQodGhpcy5f
b2JqZWN0SWQsIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDdjMDY0OWYuLjNj
ODU4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qcwpAQCAtOTA0LDcgKzkwNCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVRy
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc3RvcmFnZVBhbmVsLnNob3dD
YXRlZ29yeVZpZXcodGhpcy5fZGlzcGxheU5hbWUpOwogCiAgICAgICAgIHRoaXMubGlzdEl0ZW1F
bGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhvdmVyZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5oaWRlRnJhbWVIaWdobGlnaHQoKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQuaGlkZUZy
YW1lSGlnaGxpZ2h0KCk7CiAgICAgfSwKIAogICAgIGdldCBkaXNwbGF5TmFtZSgpCkBAIC05Mzcs
MTAgKzkzNywxMCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAgICAgewogICAgICAgICBpZiAoaG92ZXJlZCkgewogICAgICAgICAgICAgdGhpcy5saXN0SXRl
bUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5oaWdobGlnaHRGcmFtZSh0aGlzLl9mcmFtZUlkKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvckFnZW50LmhpZ2hsaWdodEZyYW1lKHRoaXMuX2ZyYW1lSWQpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaG92
ZXJlZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5oaWRlRnJhbWVIaWdobGlnaHQo
KTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50LmhpZGVGcmFtZUhpZ2hsaWdodCgpOwogICAg
ICAgICB9CiAgICAgfQogfQpAQCAtOTY5LDcgKzk2OSw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25kYmxjbGljazogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLm9wZW5Jbkluc3BlY3Rl
ZFdpbmRvdyh0aGlzLl9yZXNvdXJjZS51cmwpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5vcGVu
SW5JbnNwZWN0ZWRXaW5kb3codGhpcy5fcmVzb3VyY2UudXJsKTsKICAgICB9LAogCiAgICAgb25h
dHRhY2g6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMKaW5kZXggOGQzZWFiZi4uM2YyNzQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTEyMCw2ICsxMjAsNiBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3NvdXJjZSA9IHNvdXJj
ZTsKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX3NvdXJjZSk7CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTY3JpcHRTb3VyY2UodGhpcy5zb3VyY2VJRCwgZGlkR2V0
U2NyaXB0U291cmNlLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LmdldFNjcmlw
dFNvdXJjZSh0aGlzLnNvdXJjZUlELCBkaWRHZXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qcwppbmRleCAzYjI0ZDQ1Li5jMzVhNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMzYyLDcgKzM2Miw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluLnVwZGF0ZShzZWxlY3RlZENhbGxG
cmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5ldmFsdWF0ZU9uQ2FsbEZyYW1lKHNlbGVjdGVkQ2FsbEZyYW1lLmlkLCBjb2RlLCBvYmplY3RH
cm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCB1cGRhdGluZ0NhbGxiYWNrV3JhcHBlci5iaW5k
KHRoaXMpKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5ldmFsdWF0ZU9uQ2FsbEZyYW1lKHNlbGVj
dGVkQ2FsbEZyYW1lLmlkLCBjb2RlLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
LCB1cGRhdGluZ0NhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX2Rl
YnVnZ2VyUGF1c2VkOiBmdW5jdGlvbihldmVudCkKQEAgLTc0Nyw3ICs3NDcsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3BhdXNl
T25FeGNlcHRpb25CdXR0b24uc3RhdGUgPSBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlOwogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnBhdXNlT25FeGNlcHRpb25TdGF0ZSA9IHBhdXNl
T25FeGNlcHRpb25zU3RhdGU7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKHBhdXNlT25FeGNlcHRpb25zU3RhdGUsIGNhbGxiYWNr
LmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnNldFBhdXNlT25FeGNlcHRpb25z
U3RhdGUocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAg
fSwKIAogICAgIF91cGRhdGVEZWJ1Z2dlckJ1dHRvbnM6IGZ1bmN0aW9uKCkKQEAgLTg2NSwxMSAr
ODY1LDExIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAodGhpcy5fcGF1c2VkKSB7CiAgICAgICAgICAgICB0aGlzLl9wYXVzZWQgPSBmYWxzZTsK
ICAgICAgICAgICAgIHRoaXMuX3dhaXRpbmdUb1BhdXNlID0gZmFsc2U7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnJlc3VtZSgpOworICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5yZXN1
bWUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuX3N0ZXBwaW5nID0gZmFs
c2U7CiAgICAgICAgICAgICB0aGlzLl93YWl0aW5nVG9QYXVzZSA9IHRydWU7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnBhdXNlKCk7CisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnBh
dXNlKCk7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9jbGVhckludGVyZmFjZSgpOwpAQCAt
ODgyLDcgKzg4Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
CiAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJmYWNlKCk7CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zdGVwT3ZlcigpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnN0ZXBPdmVyKCk7CiAgICAg
fSwKIAogICAgIF9zdGVwSW50b0NsaWNrZWQ6IGZ1bmN0aW9uKCkKQEAgLTg5Miw3ICs4OTIsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlz
Ll9jbGVhckludGVyZmFjZSgpOwogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc3RlcEludG8o
KTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zdGVwSW50bygpOwogICAgIH0sCiAKICAgICBfc3Rl
cE91dENsaWNrZWQ6IGZ1bmN0aW9uKCkKQEAgLTkwMiwxOCArOTAyLDE4IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJm
YWNlKCk7CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdGVwT3V0KCk7CisgICAgICAgIERl
YnVnZ2VyQWdlbnQuc3RlcE91dCgpOwogICAgIH0sCiAKICAgICB0b2dnbGVCcmVha3BvaW50c0Ns
aWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNC
dXR0b24udG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQ7CiAg
ICAgICAgIGlmICh0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVCcmVha3BvaW50cygpOworICAgICAgICAg
ICAgRGVidWdnZXJBZ2VudC5hY3RpdmF0ZUJyZWFrcG9pbnRzKCk7CiAgICAgICAgICAgICB0aGlz
LnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJE
ZWFjdGl2YXRlIGFsbCBicmVha3BvaW50cy4iKTsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJtYWluLXBhbmVscyIpLnJlbW92ZVN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRl
YWN0aXZhdGVkIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmRlYWN0aXZhdGVCcmVha3BvaW50cygpOworICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5k
ZWFjdGl2YXRlQnJlYWtwb2ludHMoKTsKICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2lu
dHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFjdGl2YXRlIGFsbCBicmVh
a3BvaW50cy4iKTsKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBh
bmVscyIpLmFkZFN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0aXZhdGVkIik7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
RnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzCmluZGV4IDZiNGIzYjMuLmYzNWRiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNjg0LDcgKzY4NCw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fcG9wdXAu
aGlkZSgpOwogICAgICAgICBkZWxldGUgdGhpcy5fcG9wdXA7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgwLCB0aGlzLl9wb3BvdmVyT2JqZWN0R3Jv
dXApOworICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgwLCB0
aGlzLl9wb3BvdmVyT2JqZWN0R3JvdXApOwogICAgIH0sCiAKICAgICBfbW91c2VIb3ZlcjogZnVu
Y3Rpb24oZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGVzdENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Rlc3RDb250cm9sbGVyLmpzCmluZGV4IDNiZmUyOGMuLjA5NjcwMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcwpA
QCAtNDYsNyArNDYsNyBAQCBXZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xsZXIucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gInVuZGVmaW5lZCIgJiYgdGhpcy5yZXN1
bHRzLmxlbmd0aCkKICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucmVzdWx0czsKICAgICAgICAg
dmFyIG1lc3NhZ2UgPSB0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIiA/ICJcIjx1bmRlZmlu
ZWQ+XCIiIDogSlNPTi5zdHJpbmdpZnkocmVzdWx0KTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5kaWRFdmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKHRoaXMuX2NhbGxJZCwgbWVzc2FnZSk7Cisg
ICAgICAgIEluc3BlY3RvckFnZW50LmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQodGhpcy5f
Y2FsbElkLCBtZXNzYWdlKTsKICAgICB9LAogCiAgICAgcnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hl
czogZnVuY3Rpb24oY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggMWQ4YjljOS4uZmU5ZThjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5q
cwpAQCAtMjcwLDEwICsyNzAsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlID0gewogICAgIF90b2dnbGVUaW1lbGluZUJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9uLnRvZ2dsZWQpCi0gICAg
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0b3BUaW1lbGluZVByb2ZpbGVyKCk7CisgICAgICAg
ICAgICBJbnNwZWN0b3JBZ2VudC5zdG9wVGltZWxpbmVQcm9maWxlcigpOwogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIHRoaXMuX2NsZWFyUGFuZWwoKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuc3RhcnRUaW1lbGluZVByb2ZpbGVyKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JB
Z2VudC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKICAgICAgICAgfQogICAgIH0sCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9u
c1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRj
aEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggYTZmNTljYS4uOWRiMmUwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25z
U2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
YXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKQEAgLTEyMCw3ICsxMjAsNyBAQCBXZWJJbnNw
ZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICB9CiAK
ICAgICAgICAgLy8gVE9ETzogcGFzcyBleGFjdCBpbmplY3RlZCBzY3JpcHQgaWQuCi0gICAgICAg
IEluc3BlY3RvckJhY2tlbmQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgwLCB0aGlzLl93YXRj
aE9iamVjdEdyb3VwSWQpCisgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxlYXNlV3JhcHBlck9iamVj
dEdyb3VwKDAsIHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCkKICAgICAgICAgdmFyIHByb3BlcnRp
ZXMgPSBbXTsKIAogICAgICAgICAvLyBDb3VudCB0aGUgcHJvcGVydGllcywgc28gd2Uga25vd24g
d2hlbiB0byBjYWxsIHRoaXMudXBkYXRlUHJvcGVydGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCmluZGV4
IGIyNTRmM2MuLmVmZGI5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzCkBAIC03NCw5ICs3NCw5IEBAIFdl
Ykluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgc2V0SW5z
dHJ1bWVudGF0aW9uOiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCgpOworICAgICAgICBJbnNw
ZWN0b3JBZ2VudC5yZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCgpOwogICAgICAgICBp
ZiAoZW5hYmxlZCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuYWRkU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZCgiKCIgKyBJbmplY3RlZEZha2VXb3JrZXIgKyAiKSIpOworICAgICAgICAgICAg
SW5zcGVjdG9yQWdlbnQuYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCgiKCIgKyBJbmplY3RlZEZh
a2VXb3JrZXIgKyAiKSIpOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAwOTU5
Mjg5Li42Mjg2OGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwpAQCAtMzYwLDkgKzM2MCw5IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAK
ICAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRET01Ob2RlSWQgPSBub2RlSWQ7CiAgICAgICAgIGlm
IChub2RlSWQpCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmhpZ2hsaWdodERPTU5vZGUo
bm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50LmhpZ2hsaWdodERPTU5vZGUobm9k
ZUlkKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5oaWRlRE9N
Tm9kZUhpZ2hsaWdodCgpOworICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuaGlkZURPTU5vZGVI
aWdobGlnaHQoKTsKICAgICB9LAogCiAgICAgaGlnaGxpZ2h0RE9NTm9kZUZvclR3b1NlY29uZHM6
IGZ1bmN0aW9uKG5vZGVJZCkKQEAgLTU1MCwyMyArNTUwLDIzIEBAIFdlYkluc3BlY3Rvci5kb0xv
YWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmN1cnJlbnRQ
YW5lbCkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLmxhc3RBY3RpdmVQYW5lbCk7CiAgICAgfQotICAgIEluc3BlY3RvckJhY2tlbmQucG9w
dWxhdGVTY3JpcHRPYmplY3RzKG9uUG9wdWxhdGVTY3JpcHRPYmplY3RzKTsKKyAgICBJbnNwZWN0
b3JBZ2VudC5wb3B1bGF0ZVNjcmlwdE9iamVjdHMob25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMpOwog
CiAgICAgaWYgKFByZWZlcmVuY2VzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZCB8fCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkKQogICAgICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwu
ZW5hYmxlRGVidWdnZXIoKTsKICAgICBpZiAoUHJlZmVyZW5jZXMucHJvZmlsZXJBbHdheXNFbmFi
bGVkIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQpCi0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQu
ZW5hYmxlUHJvZmlsZXIoKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3Jp
bmdYSFJFbmFibGVkKQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJF
bmFibGVkKHRydWUpOworICAgICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJs
ZWQodHJ1ZSk7CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnNldENvbnNvbGVNZXNzYWdlc0VuYWJs
ZWQodHJ1ZSk7CisgICAgQ29uc29sZUFnZW50LnNldENvbnNvbGVNZXNzYWdlc0VuYWJsZWQodHJ1
ZSk7CiAKICAgICBmdW5jdGlvbiBwcm9wZXJ0eU5hbWVzQ2FsbGJhY2sobmFtZXMpCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zID0gbmV3IFdlYkluc3BlY3Rv
ci5DU1NDb21wbGV0aW9ucyhuYW1lcyk7CiAgICAgfQogICAgIC8vIEFzIGEgRE9NQWdlbnQgbWV0
aG9kLCB0aGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB0aGUgZnJvbnRlbmQgaGFzIGxvYWRlZCBh
bmQgdGhlIGFnZW50IGlzIGF2YWlsYWJsZS4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN1cHBv
cnRlZENTU1Byb3BlcnRpZXMocHJvcGVydHlOYW1lc0NhbGxiYWNrKTsKKyAgICBDU1NBZ2VudC5n
ZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKHByb3BlcnR5TmFtZXNDYWxsYmFjayk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5hZGRQYW5lbFRvb2xiYXJJY29uID0gZnVuY3Rpb24odG9vbGJhckVsZW1lbnQs
IHBhbmVsLCBwcmV2aW91c1Rvb2xiYXJJdGVtKQpAQCAtNzI3LDcgKzcyNyw3IEBAIFdlYkluc3Bl
Y3Rvci5vcGVuUmVzb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZVVSTCwgaW5SZXNvdXJjZXNQYW5l
bCkKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuc2hvd1Jlc291cmNlKHJl
c291cmNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQub3BlbkluSW5zcGVjdGVkV2luZG93
KHJlc291cmNlID8gcmVzb3VyY2UudXJsIDogcmVzb3VyY2VVUkwpOworICAgICAgICBJbnNwZWN0
b3JBZ2VudC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3cocmVzb3VyY2UgPyByZXNvdXJjZS51cmwgOiBy
ZXNvdXJjZVVSTCk7CiB9CiAKIFdlYkluc3BlY3Rvci5fcmVnaXN0ZXJTaG9ydGN1dHMgPSBmdW5j
dGlvbigpCkBAIC04NzUsMTMgKzg3NSwxMyBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3du
ID0gZnVuY3Rpb24oZXZlbnQpCiAKICAgICAgICAgY2FzZSAiVSswMDUyIjogLy8gUiBrZXkKICAg
ICAgICAgICAgIGlmICgoZXZlbnQubWV0YUtleSAmJiBpc01hYykgfHwgKGV2ZW50LmN0cmxLZXkg
JiYgIWlzTWFjKSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVsb2FkUGFn
ZShldmVudC5zaGlmdEtleSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQucmVsb2Fk
UGFnZShldmVudC5zaGlmdEtleSk7CiAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJG
NSI6CiAgICAgICAgICAgICBpZiAoIWlzTWFjKQotICAgICAgICAgICAgICAgIEluc3BlY3RvckJh
Y2tlbmQucmVsb2FkUGFnZShldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5KTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGV2ZW50LmN0cmxLZXkgfHwgZXZl
bnQuc2hpZnRLZXkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="74325"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82651</attachid>
            <date>2011-02-16 09:13:43 -0800</date>
            <delta_ts>2011-02-16 09:18:16 -0800</delta_ts>
            <desc>[patch] third version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>81286</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmZhNGE3Li45YmIwOWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDIt
MTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0
IGFsbCB0aGUgZnVuY3Rpb25zIG9mIEluc3BlY3RvciBiYWNrZW5kIEFQSSBieSBkb21haW4uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU1OAorCisg
ICAgICAgIFdlIGhhdmUgYSBudW1iZXIgb2YgZnVuY3Rpb25zIGZyb20gZGlmZmVyZW50IGRvbWFp
bnMgaW4gc2luZ2xlIGluc3RhbmNlIG9mIEluc3BlY3RvckJhY2tlbmQuCisgICAgICAgIEl0J2Qg
YmUgYmV0dGVyIHRvIHNwbGl0IHRoZSBmdW5jdGlvbnMgYnkgdGhlaXIgZG9tYWlucy4KKyAgICAg
ICAgQXMgZXhhbXBsZSAnZXZhbHVhdGUnIHdpbGwgYmUgbW92ZWQgZnJvbSBJbnNwZWN0b3JCYWNr
ZW5kIHRvIFJ1bnRpbWVBZ2VudCBjb250YWluZXIuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNp
b25zVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkV4dGVuc2lvblRlc3RzKToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVf
SW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCk6CisgICAgICAgIChpbml0
aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSk6CisgICAg
ICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRh
eC1lcnJvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wYXVz
ZS1vbi1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVu
dHMtcGFuZWwtc2VhcmNoLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJy
b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMS5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qczoKKyAgICAgICAgKGlu
aXRpYWxpemVfVGltZWxpbmUuSW5zcGVjdG9yVGVzdC5wZXJmb3JtQWN0aW9uc0FuZFByaW50LnN0
ZXAyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdHJpdmlhbC5odG1s
OgorCiAyMDExLTAyLTE2ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApp
bmRleCA3NGQyMjZhLi4wMzlhZmY1IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sCkBAIC0zMyw3ICszMyw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJtYWtlUmVxdWVzdHMoKSIsIHN0ZXAyKTsKICAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUsIGNhbGxi
YWNrKTsKKyAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUs
IGNhbGxiYWNrKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMigpCkBAIC00Miw3ICs0Miw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJtYWtlUmVxdWVzdHMoKSIsIHN0ZXAzKTsKICAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGZhbHNlLCBjYWxs
YmFjayk7CisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxz
ZSwgY2FsbGJhY2spOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAzKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcwppbmRleCAz
OWM0YTU1Li5mYTIyOWI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCkBAIC0zNCw3ICszNCw3IEBAIEluc3BlY3RvclRlc3Qu
ZGlzcGF0Y2hPbk1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlSWQsIGNhbGxiYWNrLCByZWN1cnJp
bmcpCiAKIEluc3BlY3RvclRlc3QucnVuRXh0ZW5zaW9uVGVzdHMgPSBmdW5jdGlvbigpCiB7Ci0g
ICAgSW5zcGVjdG9yQmFja2VuZC5ldmFsdWF0ZSgibG9jYXRpb24uaHJlZiIsICJjb25zb2xlIiwg
ZmFsc2UsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgibG9j
YXRpb24uaHJlZiIsICJjb25zb2xlIiwgZmFsc2UsIGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAg
ICB2YXIgcGFnZVVSTCA9IHJlc3VsdC5kZXNjcmlwdGlvbjsKICAgICAgICAgdmFyIGV4dGVuc2lv
blVSTCA9ICgvXmh0dHBzPzovLnRlc3QocGFnZVVSTCkgPwogICAgICAgICAgICAgcGFnZVVSTC5y
ZXBsYWNlKC9eKGh0dHBzPzpcL1wvW14vXSpcLykuKiQvLCIkMSIpIDoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKaW5kZXggMzYxNjIx
YS4uYTkyNWIxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMKQEAgLTUsNyArNSw3IEBAIHZhciByZXN1bHRzU3luY2hyb25pemVk
ID0gZmFsc2U7CiAKIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0ID0gZnVuY3Rpb24oKQogewot
ICAgIEluc3BlY3RvckJhY2tlbmQuZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdENhbGxJZCwgIiIpOworICAgIEluc3BlY3RvckFnZW50LmRpZEV2
YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3RDYWxsSWQs
ICIiKTsKIH0KIAogSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSA9IGZ1bmN0aW9uKGNv
ZGUsIGNhbGxiYWNrKQpAQCAtNDAsNyArNDAsNyBAQCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlID0gZnVuY3Rpb24oY29kZSwgY2FsbGJhY2spCiAgICAgICAgIGlmIChjYWxsYmFjaykKICAg
ICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQo
cmVzdWx0KSk7CiAgICAgfQotICAgIEluc3BlY3RvckJhY2tlbmQuZXZhbHVhdGUoY29kZSwgImNv
bnNvbGUiLCBmYWxzZSwgbXljYWxsYmFjayk7CisgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGNv
ZGUsICJjb25zb2xlIiwgZmFsc2UsIG15Y2FsbGJhY2spOwogfQogCiBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykKQEAgLTEw
OSw3ICsxMDksNyBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UgPSBmdW5jdGlvbihjYWxsYmFj
aykKIAogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCiAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnJl
bG9hZFBhZ2UoZmFsc2UpOworICAgIEluc3BlY3RvckFnZW50LnJlbG9hZFBhZ2UoZmFsc2UpOwog
fQogCiBJbnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwKaW5k
ZXggYTYxNWE2MS4uNzU2MzA5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1kaXItZ2xvYmFsLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rp
b24gZG9pdCgpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIEluc3BlY3RvckJhY2tlbmQuZXZh
bHVhdGUoIndpbmRvdyIsICJjb25zb2xlIiwgZmFsc2UsIGV2YWxDYWxsYmFjayk7CisgICAgUnVu
dGltZUFnZW50LmV2YWx1YXRlKCJ3aW5kb3ciLCAiY29uc29sZSIsIGZhbHNlLCBldmFsQ2FsbGJh
Y2spOwogCiAgICAgZnVuY3Rpb24gZXZhbENhbGxiYWNrKHJlc3VsdCkKICAgICB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItYXV0b2NvbnRpbnVl
LW9uLXN5bnRheC1lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rl
YnVnZ2VyLWF1dG9jb250aW51ZS1vbi1zeW50YXgtZXJyb3IuaHRtbAppbmRleCBlYjFhMDU4Li5k
NmE2YzQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItYXV0b2NvbnRpbnVlLW9uLXN5bnRheC1lcnJvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0
bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGFy
dERlYnVnZ2VyVGVzdENhbGxiYWNrKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNl
T25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9ucyk7CisgICAgICAgIERl
YnVnZ2VyQWdlbnQuc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9ucyk7
CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZGVidWdnZXItYXV0b2Nv
bnRpbnVlLW9uLXN5bnRheC1lcnJvci5odG1sIiwgcmVsb2FkSW5zcGVjdGVkUGFnZSk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
cGF1c2Utb24tZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWdnZXItcGF1c2Utb24tZXhjZXB0aW9uLmh0bWwKaW5kZXggMjM0OTBjMy4uNGU3NGFkMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXBhdXNl
LW9uLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1wYXVzZS1vbi1leGNlcHRpb24uaHRtbApAQCAtMjAsNyArMjAsNyBAQCB2YXIgdGVz
dCA9IGZ1bmN0aW9uKCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQuc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9u
cyk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1
Z2h0RXhjZXB0aW9ucyk7CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgi
ZGVidWdnZXItcGF1c2Utb24tZXhjZXB0aW9uLmh0bWwiLCBzdGVwMik7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2Vh
cmNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwt
c2VhcmNoLmh0bWwKaW5kZXggZWY4ZWY3ZS4uOGZmY2E4ZiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbApA
QCAtMjUsMjYgKzI1LDI2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgaWYgKG5vZGUu
bm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKQogICAgICAgICAgICAgICAgIHNlYXJjaFJlc3Vs
dHMucHVzaChub2RlLm5vZGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRPdXRlckhUTUwobm9kZS5pZCwgYWRkU2VhcmNoUmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBET01BZ2VudC5nZXRPdXRlckhUTUwobm9kZS5pZCwgYWRkU2Vh
cmNoUmVzdWx0KTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFBsYWluIHRleHQuCi0gICAg
SW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNoKCJGb28iICsgIkJhciIsIHRydWUpOworICAg
IERPTUFnZW50LnBlcmZvcm1TZWFyY2goIkZvbyIgKyAiQmFyIiwgdHJ1ZSk7CiAgICAgLy8gUGFy
dGlhbCB0ZXh0LgotICAgIEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCgib28iICsgIkJh
IiwgdHJ1ZSk7CisgICAgRE9NQWdlbnQucGVyZm9ybVNlYXJjaCgib28iICsgIkJhIiwgdHJ1ZSk7
CiAgICAgLy8gU3RhcnQgdGFnLgotICAgIEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJjaCgi
PGlucHUiICsgInQiLCB0cnVlKTsKKyAgICBET01BZ2VudC5wZXJmb3JtU2VhcmNoKCI8aW5wdSIg
KyAidCIsIHRydWUpOwogICAgIC8vIFBhcnRpYWwgdGFnLgotICAgIEluc3BlY3RvckJhY2tlbmQu
cGVyZm9ybVNlYXJjaCgibnB1IiArICJ0IiwgdHJ1ZSk7CisgICAgRE9NQWdlbnQucGVyZm9ybVNl
YXJjaCgibnB1IiArICJ0IiwgdHJ1ZSk7CiAgICAgLy8gRXhhY3QgYXR0cmlidXRlIG5hbWUuCi0g
ICAgSW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNoKCJ2YWx1IiArICJlIiwgdHJ1ZSk7Cisg
ICAgRE9NQWdlbnQucGVyZm9ybVNlYXJjaCgidmFsdSIgKyAiZSIsIHRydWUpOwogICAgIC8vIEV4
YWN0IGF0dHJpYnV0ZSB2YWw8PnVlLgotICAgIEluc3BlY3RvckJhY2tlbmQucGVyZm9ybVNlYXJj
aCgiSW4iICsgInB1dFZhIiArICJsIiwgdHJ1ZSk7CisgICAgRE9NQWdlbnQucGVyZm9ybVNlYXJj
aCgiSW4iICsgInB1dFZhIiArICJsIiwgdHJ1ZSk7CiAgICAgLy8gUGFydGlhbCBhdHRyaWJ1dGUg
dmFsPD51ZS4KLSAgICBJbnNwZWN0b3JCYWNrZW5kLnBlcmZvcm1TZWFyY2goIm4iICsgInB1dFZh
IiArICJsIiwgdHJ1ZSk7CisgICAgRE9NQWdlbnQucGVyZm9ybVNlYXJjaCgibiIgKyAicHV0VmEi
ICsgImwiLCB0cnVlKTsKICAgICAvLyBUZXJtaW5hdG9yLgotICAgIEluc3BlY3RvckJhY2tlbmQu
cGVyZm9ybVNlYXJjaCgidGVyIiArICJtaSIgKyAibmF0b3IiLCB0cnVlKTsKKyAgICBET01BZ2Vu
dC5wZXJmb3JtU2VhcmNoKCJ0ZXIiICsgIm1pIiArICJuYXRvciIsIHRydWUpOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQ
SS1lcnJvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEkt
ZXJyb3JzLWV4cGVjdGVkLnR4dAppbmRleCAxMjRjMjllLi5iNWE4MzY2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy1leHBlY3RlZC50eHQKQEAg
LTEsOCArMSw4IEBACiBUZXN0cyB0aGF0IEluc3BlY3RvckJhY2tlbmRTdHViIGlzIGNhdGNoaW5n
IGluY29ycmVjdCBhcmd1bWVudHMuCiAKLVByb3RvY29sIEVycm9yOiBJbnZhbGlkIHR5cGUgb2Yg
YXJndW1lbnQgJ2VuYWJsZWQnIGZvciAnSW5zcGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhS
RW5hYmxlZCcgY2FsbC4gSXQgc2hvdWxkIGJlICdib29sZWFuJyBidXQgaXQgaXMgJ251bWJlcicu
Ci1Qcm90b2NvbCBFcnJvcjogSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciAnSW5zcGVj
dG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCcgY2FsbC4gSXQgc2hvdWxkIGhhdmUg
dGhlIG5leHQgYXJndW1lbnRzICd7ImVuYWJsZWQiOiJib29sZWFuIn0nLgotUHJvdG9jb2wgRXJy
b3I6IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciAnSW5zcGVjdG9yQmFja2VuZC5zZXRN
b25pdG9yaW5nWEhSRW5hYmxlZCcgY2FsbCBzaG91bGQgYmUgYSBmdW5jdGlvbiBidXQgaXRzIHR5
cGUgaXMgJ3N0cmluZycuCitQcm90b2NvbCBFcnJvcjogSW52YWxpZCB0eXBlIG9mIGFyZ3VtZW50
ICdlbmFibGVkJyBmb3IgJ0NvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCcgY2Fs
bC4gSXQgc2hvdWxkIGJlICdib29sZWFuJyBidXQgaXQgaXMgJ251bWJlcicuCitQcm90b2NvbCBF
cnJvcjogSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciAnQ29uc29sZUFnZW50LnNldE1v
bml0b3JpbmdYSFJFbmFibGVkJyBjYWxsLiBJdCBzaG91bGQgaGF2ZSB0aGUgbmV4dCBhcmd1bWVu
dHMgJ3siZW5hYmxlZCI6ImJvb2xlYW4ifScuCitQcm90b2NvbCBFcnJvcjogT3B0aW9uYWwgY2Fs
bGJhY2sgYXJndW1lbnQgZm9yICdDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQn
IGNhbGwgc2hvdWxkIGJlIGEgZnVuY3Rpb24gYnV0IGl0cyB0eXBlIGlzICdzdHJpbmcnLgogUHJv
dG9jb2wgRXJyb3I6IHRoZSBtZXNzYWdlIGlzIGZvciBub24tZXhpc3RpbmcgZG9tYWluICd3cm9u
Z0RvbWFpbicKIFByb3RvY29sIEVycm9yOiBBdHRlbXB0ZWQgdG8gZGlzcGF0Y2ggYW4gdW5pbXBs
ZW1lbnRlZCBtZXRob2QgJ0luc3BlY3Rvci5zb21ldGhpbmctc3RyYW5nZScKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbAppbmRleCBjOWE1YjhmLi40MmVi
ODNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbApA
QCAtMTEsMTEgKzExLDExIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChTdHJpbmcuc3ByaW50Zi5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICAgICB9
CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKDEpOwotICAg
IEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoKTsKLSAgICBJbnNwZWN0
b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUsICJub3QgYSBmdW5jdGlvbiIp
OwotICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgdW5k
ZWZpbmVkKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGZh
bHNlLCB1bmRlZmluZWQpOworICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZCgxKTsKKyAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoKTsKKyAgICBD
b25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSwgIm5vdCBhIGZ1bmN0aW9u
Iik7CisgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUsIHVuZGVm
aW5lZCk7CisgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGZhbHNlLCB1
bmRlZmluZWQpOwogICAgIEluc3BlY3RvckJhY2tlbmQuZGlzcGF0Y2goJ3sidHlwZSI6ICJldmVu
dCIsICJkb21haW4iOiAid3JvbmdEb21haW4iLCAiZXZlbnQiOiAic29tZXRoaW5nLXN0cmFuZ2Ui
LCAiZGF0YSI6IHt9fScpOwogICAgIEluc3BlY3RvckJhY2tlbmQuZGlzcGF0Y2goJ3sidHlwZSI6
ICJldmVudCIsICJkb21haW4iOiAiSW5zcGVjdG9yIiwgImV2ZW50IjogInNvbWV0aGluZy1zdHJh
bmdlIiwgImRhdGEiOiB7fX0nKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBv
cnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKaW5kZXggZDUxOTg1Zi4uM2I5YjAwMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1sCkBAIC0z
NSw3ICszNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LnNlbmRNZXNzYWdlVG9CYWNrZW5kKG1lc3NhZ2VzW2ldKTsKICAgICB9CiAKLSAgICBJ
bnNwZWN0b3JCYWNrZW5kLmRpc2FibGVEZWJ1Z2dlcihmaXJlKTsKKyAgICBJbnNwZWN0b3JBZ2Vu
dC5kaXNhYmxlRGVidWdnZXIoZmlyZSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sCmluZGV4IDUwODZlY2IuLmMz
M2Y4ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5l
dy1BUEkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXct
QVBJLmh0bWwKQEAgLTQ3LDcgKzQ3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVu
Y3Rpb24gbm9kZUNhbGxiYWNrKG5vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuZ2V0U3R5bGVzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7CisgICAgICAgICAg
ICBDU1NBZ2VudC5nZXRTdHlsZXNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKICAgICAgICAg
fQogICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm1haW5Cb2R5Iiwgbm9k
ZUNhbGxiYWNrKTsKICAgICB9CkBAIC02Nyw3ICs2Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgICAgIGZ1bmN0aW9uIG5vZGVDYWxsYmFjayhub2RlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgY2FsbGJhY2spOwor
ICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7
CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJ0aGV0YWJsZSIs
IG5vZGVDYWxsYmFjayk7CiAgICAgfQpAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBMYXN0IHN0eWxlc2hlZXQgcGF0
Y2hlZCA9PT0iKTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0U3R5bGVTaGVldFRl
eHQoc3R5bGVTaGVldC5zdHlsZVNoZWV0SWQsIG5ld1N0eWxlU2hlZXRUZXh0LAorICAgICAgICAg
ICAgQ1NTQWdlbnQuc2V0U3R5bGVTaGVldFRleHQoc3R5bGVTaGVldC5zdHlsZVNoZWV0SWQsIG5l
d1N0eWxlU2hlZXRUZXh0LAogICAgICAgICAgICAgICAgIGxvYWRBbmREdW1wU3R5bGVTaGVldC5i
aW5kKG51bGwsIHN0eWxlU2hlZXQuc3R5bGVTaGVldElkLCB0ZXN0X2NoYW5nZVNlbGVjdG9yKSk7
CiAgICAgICAgIH0KIApAQCAtOTgsNyArOTgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAg
IGxvYWRBbmREdW1wU3R5bGVTaGVldChpZHNbaV0sIChpIDwgaWRzLmxlbmd0aCAtIDEpID8gbnVs
bCA6IHBhdGNoU3R5bGVTaGVldCk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5nZXRBbGxTdHlsZXMoc3R5bGVTaGVldElkc0xvYWRlZCk7CisgICAgICAgIENTU0FnZW50Lmdl
dEFsbFN0eWxlcyhzdHlsZVNoZWV0SWRzTG9hZGVkKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB0
ZXN0X2NoYW5nZVNlbGVjdG9yKHN0eWxlU2hlZXQpCkBAIC0xMTAsNyArMTEwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQocnVsZS5ydWxlSWQu
c3R5bGVTaGVldElkLCB0ZXN0X3NldFN0eWxlVGV4dCk7CiAgICAgICAgIH0KIAotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFJ1bGVTZWxlY3RvcihzdHlsZVNoZWV0LnJ1bGVzWzBdLnJ1bGVJ
ZCwgImh0bWwgKiwgYm9keVtmb289XCJiYXJcIl0iLCBkaWRTZXRTZWxlY3Rvcik7CisgICAgICAg
IENTU0FnZW50LnNldFJ1bGVTZWxlY3RvcihzdHlsZVNoZWV0LnJ1bGVzWzBdLnJ1bGVJZCwgImh0
bWwgKiwgYm9keVtmb289XCJiYXJcIl0iLCBkaWRTZXRTZWxlY3Rvcik7CiAgICAgfQogCiAgICAg
ZnVuY3Rpb24gdGVzdF9zZXRTdHlsZVRleHQoc3R5bGVTaGVldCkKQEAgLTEyMiwxMiArMTIyLDEy
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0KHN0
eWxlLnN0eWxlSWQuc3R5bGVTaGVldElkLCB0ZXN0X2FkZFJ1bGUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1sw
XS5zdHlsZS5zdHlsZUlkLCAwLCAiIiwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
c2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUuc3R5bGVJZCwgMCwgIiIs
IHRydWUpOworICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxl
c1swXS5zdHlsZS5zdHlsZUlkLCAwLCAiIiwgdHJ1ZSk7CisgICAgICAgIENTU0FnZW50LnNldFBy
b3BlcnR5VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICIiLCB0cnVl
KTsKIAogICAgICAgICAvLyBUaGlzIG9wZXJhdGlvbiBzaG91bGQgbm90IHVwZGF0ZSB0aGUgc3R5
bGUgYXMgdGhlIG5ldyBwcm9wZXJ0eSB0ZXh0IGlzIG5vdCBwYXJzYWJsZS4KLSAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZS5z
dHlsZUlkLCAwLCAienp6OyIsIGZhbHNlKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQ
cm9wZXJ0eVRleHQoc3R5bGVTaGVldC5ydWxlc1swXS5zdHlsZS5zdHlsZUlkLCAwLCAiY29sb3I6
IHdoaXRlOyBiYWNrZ3JvdW5kOiBibGFjazsiLCBmYWxzZSwgZGlkU2V0U3R5bGVUZXh0KTsKKyAg
ICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHN0eWxlU2hlZXQucnVsZXNbMF0uc3R5bGUu
c3R5bGVJZCwgMCwgInp6ejsiLCBmYWxzZSk7CisgICAgICAgIENTU0FnZW50LnNldFByb3BlcnR5
VGV4dChzdHlsZVNoZWV0LnJ1bGVzWzBdLnN0eWxlLnN0eWxlSWQsIDAsICJjb2xvcjogd2hpdGU7
IGJhY2tncm91bmQ6IGJsYWNrOyIsIGZhbHNlLCBkaWRTZXRTdHlsZVRleHQpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHRlc3RfYWRkUnVsZSgpCkBAIC0xNDIsMTUgKzE0MiwxNSBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiBkaWRTZXRTdHlsZVRleHQoc3R5bGUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzRm9yTm9kZShXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5pZCwgZGlkR2V0U3R5bGVzKTsKKyAgICAg
ICAgICAgIENTU0FnZW50LmdldFN0eWxlc0Zvck5vZGUoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRv
Y3VtZW50LmJvZHkuaWQsIGRpZEdldFN0eWxlcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5j
dGlvbiBydWxlQWRkZWQocnVsZSkKICAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRQcm9wZXJ0eVRleHQocnVsZS5zdHlsZS5zdHlsZUlkLCAwLCAiZm9udC1mYW1pbHk6
IHNlcmlmOyIsIGZhbHNlLCBkaWRTZXRTdHlsZVRleHQpOworICAgICAgICAgICAgQ1NTQWdlbnQu
c2V0UHJvcGVydHlUZXh0KHJ1bGUuc3R5bGUuc3R5bGVJZCwgMCwgImZvbnQtZmFtaWx5OiBzZXJp
ZjsiLCBmYWxzZSwgZGlkU2V0U3R5bGVUZXh0KTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuYWRkUnVsZShXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5p
ZCwgImJvZHkiLCBydWxlQWRkZWQpOworICAgICAgICBDU1NBZ2VudC5hZGRSdWxlKFdlYkluc3Bl
Y3Rvci5kb21BZ2VudC5kb2N1bWVudC5ib2R5LmlkLCAiYm9keSIsIHJ1bGVBZGRlZCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gdGVzdF9kaXNhYmxlUHJvcGVydHkoKQpAQCAtMTc1LDEzICsxNzUs
MTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAvLyBib3JkZXItd2lkdGg6IDBweDsK
IAogICAgICAgICAgICAgdmFyIHN0eWxlID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxlc1sxXS5zdHls
ZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlUHJvcGVydHkoc3R5bGUuc3R5
bGVJZCwgMCwgdHJ1ZSk7IC8vIGhlaWdodDogMTAwJQotICAgICAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA3LCB0cnVlKTsgLy8gYm9yZGVyLXdp
ZHRoOiAwcHgKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0
eWxlLnN0eWxlSWQsIDcsICJmb250LXNpemU6IDEycHg7IiwgZmFsc2UpOwotICAgICAgICAgICAg
SW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgOSwgImZvbnQt
c2l6ZTogMTRweDsiLCBmYWxzZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnRvZ2ds
ZVByb3BlcnR5KHN0eWxlLnN0eWxlSWQsIDksIHRydWUpOyAvLyBmb250LXNpemU6IDE0cHgKLSAg
ICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0UHJvcGVydHlUZXh0KHN0eWxlLnN0eWxlSWQs
IDgsICJib3JkZXItd2lkdGg6IDFweDsiLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvckJh
Y2tlbmQudG9nZ2xlUHJvcGVydHkoc3R5bGUuc3R5bGVJZCwgOCwgZmFsc2UpOyAvLyBib3JkZXIt
d2lkdGg6IDFweAorICAgICAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkoc3R5bGUuc3R5
bGVJZCwgMCwgdHJ1ZSk7IC8vIGhlaWdodDogMTAwJQorICAgICAgICAgICAgQ1NTQWdlbnQudG9n
Z2xlUHJvcGVydHkoc3R5bGUuc3R5bGVJZCwgNywgdHJ1ZSk7IC8vIGJvcmRlci13aWR0aDogMHB4
CisgICAgICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgNywg
ImZvbnQtc2l6ZTogMTJweDsiLCBmYWxzZSk7CisgICAgICAgICAgICBDU1NBZ2VudC5zZXRQcm9w
ZXJ0eVRleHQoc3R5bGUuc3R5bGVJZCwgOSwgImZvbnQtc2l6ZTogMTRweDsiLCBmYWxzZSk7Cisg
ICAgICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkLCA5LCB0cnVl
KTsgLy8gZm9udC1zaXplOiAxNHB4CisgICAgICAgICAgICBDU1NBZ2VudC5zZXRQcm9wZXJ0eVRl
eHQoc3R5bGUuc3R5bGVJZCwgOCwgImJvcmRlci13aWR0aDogMXB4OyIsIHRydWUpOworICAgICAg
ICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkoc3R5bGUuc3R5bGVJZCwgOCwgZmFsc2UpOyAv
LyBib3JkZXItd2lkdGg6IDFweAogICAgICAgICAgICAgLy8gaGVpZ2h0IDogMTAwJSA7IFtkXQog
ICAgICAgICAgICAgLy8gYm9yZGVyOiAxcHggc29saWQ7CiAgICAgICAgICAgICAvLyBib3JkZXIt
d2lkdGg6IDJweDsKQEAgLTE5MywxMiArMTkzLDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgLy8gYm9yZGVyLXdpZHRoOiAxcHg7CiAgICAgICAgICAgICAvLyBmb250LXNpemU6IDE0
cHg7IFtkXQogCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dChz
dHlsZS5zdHlsZUlkLCAzLCAiIiwgdHJ1ZSwgZGlkRGlzYWJsZVByb3BlcnR5KTsKKyAgICAgICAg
ICAgIENTU0FnZW50LnNldFByb3BlcnR5VGV4dChzdHlsZS5zdHlsZUlkLCAzLCAiIiwgdHJ1ZSwg
ZGlkRGlzYWJsZVByb3BlcnR5KTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIG5vZGVD
YWxsYmFjayhub2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdl
dFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgc3R5bGVzQ2FsbGJhY2spOworICAgICAgICAgICAgQ1NT
QWdlbnQuZ2V0U3R5bGVzRm9yTm9kZShub2RlLmlkLCBzdHlsZXNDYWxsYmFjayk7CiAgICAgICAg
IH0KICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJ0b2dnbGUiLCBub2RlQ2FsbGJh
Y2spOwogICAgIH0KQEAgLTIxMyw4ICsyMTMsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnRvZ2dsZVByb3BlcnR5KHN0eWxlSWQsIDYsIGZhbHNlKTsKLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVQcm9wZXJ0eShzdHlsZUlkLCA4LCBmYWxzZSwgZGlk
RW5hYmxlUHJvcGVydHkpOworICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0eShzdHlsZUlk
LCA2LCBmYWxzZSk7CisgICAgICAgIENTU0FnZW50LnRvZ2dsZVByb3BlcnR5KHN0eWxlSWQsIDgs
IGZhbHNlLCBkaWRFbmFibGVQcm9wZXJ0eSk7CiAgICAgfQogCiAgICAgLy8gRGF0YSBkdW1waW5n
CkBAIC0yNTgsNyArMjU4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgY29u
dGludWF0aW9uKHN0eWxlU2hlZXQpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgc3R5bGVTaGVldExvYWRlZCk7CisgICAg
ICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBzdHlsZVNoZWV0TG9hZGVk
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCmluZGV4IDE2MjI3ZWYuLjg0ZTMwOWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9m
ZnNldHMuaHRtbApAQCAtMzcsNyArMzcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0
aW9uIHN0ZXAxKG5vZGUpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxl
c0Zvck5vZGUobm9kZS5pZCwgc3RlcDIpOworICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZXNGb3JO
b2RlKG5vZGUuaWQsIHN0ZXAyKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMihzdHlsZXMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0
d29yay1yZXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbAppbmRleCBjNDFmOGFhLi4yNjM0MDc0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNv
dXJjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1u
ZXR3b3JrLXJlc291cmNlLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgdmFyIHJlc291cmNlSWQ7CiAgICAgdmFyIHNjcmlwdFVybCA9ICJ0aW1lbGluZS1uZXR3b3Jr
LXJlc291cmNlLmpzIjsKIAotICAgIEluc3BlY3RvckJhY2tlbmQuc3RhcnRUaW1lbGluZVByb2Zp
bGVyKHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JBZ2VudC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoc3Rl
cDEpOwogCiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKQEAgLTI4LDcgKzI4LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKKyAgICAgICAgSW5zcGVj
dG9yQWdlbnQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbAppbmRleCBmYjA0ZjRkLi44ODI2MDQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRh
Zy0xLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNj
cmlwdC10YWctMS5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25z
KCkKIAogZnVuY3Rpb24gdGVzdCgpIAogewotICAgIEluc3BlY3RvckJhY2tlbmQuc3RhcnRUaW1l
bGluZVByb2ZpbGVyKHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JBZ2VudC5zdGFydFRpbWVsaW5lUHJv
ZmlsZXIoc3RlcDEpOwogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKQEAgLTIyLDcgKzIy
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBzdGVwMigpCiAgICAgewotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKKyAgICAg
ICAgSW5zcGVjdG9yQWdlbnQuc3RvcFRpbWVsaW5lUHJvZmlsZXIoc3RlcDMpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbAppbmRleCA5ZDZmMGE4Li42Zjg5
NjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
c2NyaXB0LXRhZy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXNjcmlwdC10YWctMi5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIHBlcmZv
cm1BY3Rpb25zKCkKIAogZnVuY3Rpb24gdGVzdCgpIAogewotICAgIEluc3BlY3RvckJhY2tlbmQu
c3RhcnRUaW1lbGluZVByb2ZpbGVyKHN0ZXAxKTsKKyAgICBJbnNwZWN0b3JBZ2VudC5zdGFydFRp
bWVsaW5lUHJvZmlsZXIoc3RlcDEpOwogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7CiAgICAg
ICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5zdG9wVGltZWxpbmVQcm9maWxlcihzdGVwMyk7CisgICAgICAgIEluc3BlY3RvckFn
ZW50LnN0b3BUaW1lbGluZVByb2ZpbGVyKHN0ZXAzKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBz
dGVwMygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10ZXN0
LmpzCmluZGV4IDU0ZDYzYzEuLjJjNGIzOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS10ZXN0LmpzCkBAIC0xNyw3ICsxNyw3IEBAIEluc3BlY3RvclRl
c3QudGltZWxpbmVOb25EZXRlcm1pbmlzdGljUHJvcHMgPSB7CiAKIEluc3BlY3RvclRlc3QucGVy
Zm9ybUFjdGlvbnNBbmRQcmludCA9IGZ1bmN0aW9uKGFjdGlvbnMsIHR5cGVOYW1lKQogewotICAg
IEluc3BlY3RvckJhY2tlbmQuc3RhcnRUaW1lbGluZVByb2ZpbGVyKHN0ZXAxKTsKKyAgICBJbnNw
ZWN0b3JBZ2VudC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoc3RlcDEpOwogICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYWN0aW9u
cywgc3RlcDIpOwpAQCAtMjUsNyArMjUsNyBAQCBJbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rpb25z
QW5kUHJpbnQgPSBmdW5jdGlvbihhY3Rpb25zLCB0eXBlTmFtZSkKIAogICAgIGZ1bmN0aW9uIHN0
ZXAyKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuc3RvcFRpbWVsaW5lUHJvZmls
ZXIoc3RlcDMpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5zdG9wVGltZWxpbmVQcm9maWxlcihz
dGVwMyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRyaXZpYWwuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10cml2aWFsLmh0bWwKaW5kZXggNDI1MWEy
NC4uODhiMjM5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXRyaXZpYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtdHJpdmlhbC5odG1sCkBAIC0xMCw3ICsxMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUaW1lbGluZSBzdGFydGVkIik7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQotICAgIEluc3BlY3Rv
ckJhY2tlbmQuc3RhcnRUaW1lbGluZVByb2ZpbGVyKGNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JB
Z2VudC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoY2FsbGJhY2spOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA3MWE5MWY5Li4yNDYwY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ4IEBACisyMDExLTAy
LTE2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzcGxp
dCBhbGwgdGhlIGZ1bmN0aW9ucyBvZiBJbnNwZWN0b3IgYmFja2VuZCBBUEkgYnkgZG9tYWluLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NTgKKwor
ICAgICAgICBXZSBoYXZlIGEgbnVtYmVyIG9mIGZ1bmN0aW9ucyBmcm9tIGRpZmZlcmVudCBkb21h
aW5zIGluIHNpbmdsZSBpbnN0YW5jZSBvZiBJbnNwZWN0b3JCYWNrZW5kLgorICAgICAgICBJdCdk
IGJlIGJldHRlciB0byBzcGxpdCB0aGUgZnVuY3Rpb25zIGJ5IHRoZWlyIGRvbWFpbnMuCisgICAg
ICAgIEFzIGV4YW1wbGUgJ2V2YWx1YXRlJyB3aWxsIGJlIG1vdmVkIGZyb20gSW5zcGVjdG9yQmFj
a2VuZCB0byBSdW50aW1lQWdlbnQgY29udGFpbmVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdFJ1bGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZXZhbHVhdGVJ
blRhcmdldFdpbmRvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRD
c3NSdWxlLnByb3RvdHlwZS5kb1J1bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbC5wcm90b3R5
cGUuX3JlbG9hZFJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVh
a3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdl
ci5wcm90b3R5cGUuX3Byb2plY3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50TWFuYWdlci5wcm90b3R5cGUucmVzdG9yZURPTUJyZWFrcG9pbnRzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUuX3NhdmVCcmVha3BvaW50
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5wcm90b3R5cGUuX2VuYWJs
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5wcm90b3R5cGUuX2Rpc2Fi
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50LnByb3Rv
dHlwZS5fZW5hYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyQnJlYWtw
b2ludC5wcm90b3R5cGUuX2Rpc2FibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlhIUkJyZWFr
cG9pbnQucHJvdG90eXBlLl9lbmFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlhIUkJyZWFr
cG9pbnQucHJvdG90eXBlLl9kaXNhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5w
cm90b3R5cGUuZ2V0U3R5bGVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlLmdldENvbXB1dGVkU3R5bGVBc3luYyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuZ2V0SW5saW5lU3R5bGVBc3luYyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuc2V0UnVsZVNlbGVjdG9y
LmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlw
ZS5zZXRSdWxlU2VsZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
cHJvdG90eXBlLmFkZFJ1bGUuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwucHJvdG90eXBlLmFkZFJ1bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwucHJvdG90eXBlLl9zdHlsZVNoZWV0Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX29uUmV2ZXJ0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pbnNlcnRQcm9wZXJ0eUF0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4dCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldERpc2FibGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5zZXRUZXh0KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5yZXF1ZXN0Q2xlYXJNZXNzYWdlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmNvbXBsZXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX2hhbmRsZUNvbnRleHRN
ZW51RXZlbnQuaXRlbUFjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcu
cHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUuZXZhbEluSW5zcGVjdGVkV2luZG93KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBlLl9kZWxldGVDb29raWUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NQWdlbnQucHJvdG90eXBlLmdldENoaWxkTm9kZXNBc3luYyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZUFzeW5jKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlQXN5bmMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5zZXRUZXh0Tm9kZVZhbHVl
QXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVEaXNwYXRjaGVy
LmdldEFwcGxpY2F0aW9uQ2FjaGVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tp
ZXMuZ2V0Q29va2llc0FzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVy
cy5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGVBc3luYyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01TdG9yYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uu
cHJvdG90eXBlLmdldEVudHJpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uu
cHJvdG90eXBlLnNldEl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJv
dG90eXBlLnJlbW92ZUl0ZW0pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJh
c2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJvdG90eXBlLmdldFRhYmxl
TmFtZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlLnByb3RvdHlwZS5leGVjdXRl
U3FsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuZW5hYmxlRGVidWdn
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmRpc2Fi
bGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuY29udGludWVUb0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50QnlTb3VyY2VJZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUucmVtb3ZlQnJlYWtwb2ludCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuZWRpdFNjcmlwdFNv
dXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwudGhpcy50cmVlT3V0bGluZS5mb2N1
c2VkTm9kZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNldERvY3VtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5zZWFyY2hD
YW5jZWxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
cGVyZm9ybVNlYXJjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90
b3R5cGUuaGFuZGxlQ29weUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZS5zZXRTZWFyY2hpbmdGb3JOb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX2NyZWF0ZVRvb2x0aXBGb3JOb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGFnTmFt
ZUVkaXRpbmdDb21taXR0ZWQpOgorICAgICAgICAoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lv
bldhdGNoU2lkZWJhclBhbmUucHJvdG90eXBlLnNldEV4cHJlc3Npb24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uQWRkUmVxdWVzdEhlYWRlcnMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29uUmVsb2FkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkV2YWx1
YXRlT25JbnNwZWN0ZWRQYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmls
ZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya01hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya01h
bmFnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5y
ZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90eXBlLnJl
cXVlc3RDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrRGF0YUdyaWROb2RlLnByb3RvdHlw
ZS5fb3BlbkluTmV3VGFiKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVW
aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9uQ2xpY2tlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9jbGVhclByb2ZpbGVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlUHJvZmls
ZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
bG9hZEhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX3RvZ2dsZVByb2ZpbGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUudGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvcGVydGllc1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0LnByb3RvdHlwZS5nZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUucHVzaE5vZGVUb0Zyb250ZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5zZXQgaG92ZXJlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5v
bmRibGNsaWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLnJlcXVlc3RTb3VyY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuZXZhbHVhdGVJblNlbGVjdGVkQ2FsbEZy
YW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zZXRQ
YXVzZU9uRXhjZXB0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5fdG9nZ2xlUGF1c2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUuX3N0ZXBPdmVyQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZS5fc3RlcEludG9DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zdGVwT3V0Q2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS50b2dnbGVCcmVha3BvaW50c0NsaWNr
ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9oaWRlUG9wdXApOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xsZXIucHJvdG90eXBlLm5vdGlmeURvbmUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fdG9nZ2xlVGltZWxpbmVCdXR0b25DbGlj
a2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRl
YmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2VjdGlv
bi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
cnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBh
bmUucHJvdG90eXBlLnNldEluc3RydW1lbnRhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0RE9N
Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5vcGVuUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50
S2V5RG93bik6CisKIDIwMTEtMDItMTYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5kZXggZTRlMTliMC4u
N2IwYTM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucG0KQEAgLTYyMyw3ICs2MjMsMTAgQEAgSW5zcGVjdG9yQmFja2VuZFN0dWIu
cHJvdG90eXBlID0gewogICAgIF9yZWdpc3RlckRlbGVnYXRlOiBmdW5jdGlvbihjb21tYW5kSW5m
bykKICAgICB7CiAgICAgICAgIHZhciBjb21tYW5kT2JqZWN0ID0gSlNPTi5wYXJzZShjb21tYW5k
SW5mbyk7Ci0gICAgICAgIHRoaXNbY29tbWFuZE9iamVjdC5jb21tYW5kXSA9IHRoaXMuc2VuZE1l
c3NhZ2VUb0JhY2tlbmQuYmluZCh0aGlzLCBjb21tYW5kSW5mbyk7CisgICAgICAgIHZhciBhZ2Vu
dE5hbWUgPSBjb21tYW5kT2JqZWN0LmRvbWFpbiArICJBZ2VudCI7CisgICAgICAgIGlmICghd2lu
ZG93W2FnZW50TmFtZV0pCisgICAgICAgICAgICB3aW5kb3dbYWdlbnROYW1lXSA9IHt9OworICAg
ICAgICB3aW5kb3dbYWdlbnROYW1lXVtjb21tYW5kT2JqZWN0LmNvbW1hbmRdID0gdGhpcy5zZW5k
TWVzc2FnZVRvQmFja2VuZC5iaW5kKHRoaXMsIGNvbW1hbmRJbmZvKTsKICAgICB9LAogCiAgICAg
c2VuZE1lc3NhZ2VUb0JhY2tlbmQ6IGZ1bmN0aW9uKCkKQEAgLTYzMywxMiArNjM2LDEyIEBAIElu
c3BlY3RvckJhY2tlbmRTdHViLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmb3IgKHZhciBrZXkg
aW4gcmVxdWVzdC5hcmd1bWVudHMpIHsKICAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0g
MCkgewotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3RvY29sIEVycm9yOiBJbnZh
bGlkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yICdJbnNwZWN0b3JCYWNrZW5kLiVzJyBjYWxsLiBJ
dCBzaG91bGQgaGF2ZSB0aGUgbmV4dCBhcmd1bWVudHMgJyVzJy4iLCByZXF1ZXN0LmNvbW1hbmQs
IEpTT04uc3RyaW5naWZ5KHJlcXVlc3QuYXJndW1lbnRzKSk7CisgICAgICAgICAgICAgICAgY29u
c29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBm
b3IgJyVzQWdlbnQuJXMnIGNhbGwuIEl0IHNob3VsZCBoYXZlIHRoZSBuZXh0IGFyZ3VtZW50cyAn
JXMnLiIsIHJlcXVlc3QuZG9tYWluLCByZXF1ZXN0LmNvbW1hbmQsIEpTT04uc3RyaW5naWZ5KHJl
cXVlc3QuYXJndW1lbnRzKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJncy5zaGlmdCgpOwogICAgICAgICAgICAgaWYg
KHJlcXVlc3QuYXJndW1lbnRzW2tleV0gJiYgdHlwZW9mIHZhbHVlICE9PSByZXF1ZXN0LmFyZ3Vt
ZW50c1trZXldKSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJy
b3I6IEludmFsaWQgdHlwZSBvZiBhcmd1bWVudCAnJXMnIGZvciAnSW5zcGVjdG9yQmFja2VuZC4l
cycgY2FsbC4gSXQgc2hvdWxkIGJlICclcycgYnV0IGl0IGlzICclcycuIiwga2V5LCByZXF1ZXN0
LmNvbW1hbmQsIHJlcXVlc3QuYXJndW1lbnRzW2tleV0sIHR5cGVvZiB2YWx1ZSk7CisgICAgICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgdHlwZSBvZiBh
cmd1bWVudCAnJXMnIGZvciAnJXNBZ2VudC4lcycgY2FsbC4gSXQgc2hvdWxkIGJlICclcycgYnV0
IGl0IGlzICclcycuIiwga2V5LCByZXF1ZXN0LmRvbWFpbiwgcmVxdWVzdC5jb21tYW5kLCByZXF1
ZXN0LmFyZ3VtZW50c1trZXldLCB0eXBlb2YgdmFsdWUpOwogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlcXVlc3QuYXJndW1lbnRzW2tleV0gPSB2
YWx1ZTsKQEAgLTY0Niw3ICs2NDksNyBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICBpZiAo
dHlwZW9mIGFyZ3NbMF0gIT09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIGFyZ3NbMF0gIT09ICJ1bmRl
ZmluZWQiKSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6
IE9wdGlvbmFsIGNhbGxiYWNrIGFyZ3VtZW50IGZvciAnSW5zcGVjdG9yQmFja2VuZC4lcycgY2Fs
bCBzaG91bGQgYmUgYSBmdW5jdGlvbiBidXQgaXRzIHR5cGUgaXMgJyVzJy4iLCByZXF1ZXN0LmNv
bW1hbmQsIHR5cGVvZiBhcmdzWzBdKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJQ
cm90b2NvbCBFcnJvcjogT3B0aW9uYWwgY2FsbGJhY2sgYXJndW1lbnQgZm9yICclc0FnZW50LiVz
JyBjYWxsIHNob3VsZCBiZSBhIGZ1bmN0aW9uIGJ1dCBpdHMgdHlwZSBpcyAnJXMnLiIsIHJlcXVl
c3QuZG9tYWluLCByZXF1ZXN0LmNvbW1hbmQsIHR5cGVvZiBhcmdzWzBdKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXF1ZXN0LnNlcSA9IHRo
aXMuX3dyYXAoYXJnc1swXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggYzEyMmJhNC4uN2Q0YjhhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtNjUsNyArNjUs
NyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5nZXREb21haW5Ub1Jlc291cmNlc01hcCA9IGZ1
bmN0aW9uKHJlc291cmNlcywgdHlwZXMsIG5lZQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5l
dmFsdWF0ZUluVGFyZ2V0V2luZG93ID0gZnVuY3Rpb24oZnVuYywgYXJncywgY2FsbGJhY2spCiB7
Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5ldmFsdWF0ZU9uU2VsZihmdW5jLnRvU3RyaW5nKCksIGFy
Z3MsIGNhbGxiYWNrKTsKKyAgICBJbmplY3RlZFNjcmlwdEFnZW50LmV2YWx1YXRlT25TZWxmKGZ1
bmMudG9TdHJpbmcoKSwgYXJncywgY2FsbGJhY2spOwogfQogCiAKQEAgLTM4Myw3ICszODMsNyBA
QCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVGb3JJZChzdHls
ZVNoZWV0SWRzW2ldLCBzdHlsZVNoZWV0Q2FsbGJhY2suYmluZChudWxsLCBzdHlsZVNoZWV0cywg
aSA9PSBzdHlsZVNoZWV0SWRzLmxlbmd0aCAtIDEgPyBldmFsQ2FsbGJhY2sgOiBudWxsKSk7CiAg
ICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldEFsbFN0eWxlcyhhbGxTdHls
ZXNDYWxsYmFjayk7CisgICAgICAgIENTU0FnZW50LmdldEFsbFN0eWxlcyhhbGxTdHlsZXNDYWxs
YmFjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9BdWRpdHNQYW5lbC5qcwppbmRleCA0N2MwYjMwLi4zMTQ0Yzc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTE5Miw3
ICsxOTIsNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9y
ZWxvYWRSZXNvdXJjZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdGhpcy5f
cGFnZVJlbG9hZENhbGxiYWNrID0gY2FsbGJhY2s7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
cmVsb2FkUGFnZShmYWxzZSk7CisgICAgICAgIEluc3BlY3RvckFnZW50LnJlbG9hZFBhZ2UoZmFs
c2UpOwogICAgIH0sCiAKICAgICBfZGlkTWFpblJlc291cmNlTG9hZDogZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFu
YWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1h
bmFnZXIuanMKaW5kZXggOTQzNDVkNS4uMzI1NzE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC0yMDcs
NyArMjA3LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0Zyb250
ZW5kKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEFsbEJyb3dzZXJCcmVha3Bv
aW50cyh0aGlzLl9zdGlja3lCcmVha3BvaW50cyk7CisgICAgICAgICAgICBCcm93c2VyRGVidWdn
ZXJBZ2VudC5zZXRBbGxCcm93c2VyQnJlYWtwb2ludHModGhpcy5fc3RpY2t5QnJlYWtwb2ludHMp
OwogICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0Zyb250ZW5kID0gdHJ1ZTsK
ICAgICAgICAgfQogICAgIH0sCkBAIC0yNDMsNyArMjQzLDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIHBhdGhUb05vZGVJZFtwYXRoXSA9IDA7CiAgICAgICAgICAgICBwZW5kaW5nQ2Fs
bHMgKz0gMTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5vZGVCeVBhdGhUb0Zy
b250ZW5kKHBhdGgsIGRpZFB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZC5iaW5kKHRoaXMsIHBhdGgp
KTsKKyAgICAgICAgICAgIERPTUFnZW50LnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChwYXRoLCBk
aWRQdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQuYmluZCh0aGlzLCBwYXRoKSk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKCFwZW5kaW5nQ2FsbHMpCiAgICAgICAgICAgICB0aGlzLl9kb21CcmVha3Bv
aW50c1Jlc3RvcmVkID0gdHJ1ZTsKQEAgLTI2OCw3ICsyNjgsNyBAQCBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3MubmF0aXZlQnJlYWtwb2ludHMgPSBicmVha3BvaW50czsKIAogICAgICAgICB0aGlzLl9zdGlj
a3lCcmVha3BvaW50c1tXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvamVjdElkXSA9IGJyZWFrcG9p
bnRzOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEFsbEJyb3dzZXJCcmVha3BvaW50cyh0
aGlzLl9zdGlja3lCcmVha3BvaW50cyk7CisgICAgICAgIEJyb3dzZXJEZWJ1Z2dlckFnZW50LnNl
dEFsbEJyb3dzZXJCcmVha3BvaW50cyh0aGlzLl9zdGlja3lCcmVha3BvaW50cyk7CiAgICAgfSwK
IAogICAgIF92YWxpZGF0ZUJyZWFrcG9pbnRzOiBmdW5jdGlvbihwZXJzaXN0ZW50QnJlYWtwb2lu
dHMpCkBAIC0zMzEsMTIgKzMzMSwxMiBAQCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludCA9IGZ1
bmN0aW9uKG5vZGUsIHR5cGUpCiBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5wcm90b3R5cGUg
PSB7CiAgICAgX2VuYWJsZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRET01CcmVha3BvaW50KHRoaXMuX25vZGVJZCwgdGhpcy5fdHlwZSk7CisgICAgICAg
IEJyb3dzZXJEZWJ1Z2dlckFnZW50LnNldERPTUJyZWFrcG9pbnQodGhpcy5fbm9kZUlkLCB0aGlz
Ll90eXBlKTsKICAgICB9LAogCiAgICAgX2Rpc2FibGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlRE9NQnJlYWtwb2ludCh0aGlzLl9ub2RlSWQsIHRo
aXMuX3R5cGUpOworICAgICAgICBCcm93c2VyRGVidWdnZXJBZ2VudC5yZW1vdmVET01CcmVha3Bv
aW50KHRoaXMuX25vZGVJZCwgdGhpcy5fdHlwZSk7CiAgICAgfSwKIAogICAgIF9zZXJpYWxpemVU
b0pTT046IGZ1bmN0aW9uKCkKQEAgLTM1NCwxMiArMzU0LDEyIEBAIFdlYkluc3BlY3Rvci5FdmVu
dExpc3RlbmVyQnJlYWtwb2ludCA9IGZ1bmN0aW9uKGV2ZW50TmFtZSkKIFdlYkluc3BlY3Rvci5F
dmVudExpc3RlbmVyQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgX2VuYWJsZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRFdmVudExpc3RlbmVyQnJl
YWtwb2ludCh0aGlzLl9ldmVudE5hbWUpOworICAgICAgICBCcm93c2VyRGVidWdnZXJBZ2VudC5z
ZXRFdmVudExpc3RlbmVyQnJlYWtwb2ludCh0aGlzLl9ldmVudE5hbWUpOwogICAgIH0sCiAKICAg
ICBfZGlzYWJsZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5y
ZW1vdmVFdmVudExpc3RlbmVyQnJlYWtwb2ludCh0aGlzLl9ldmVudE5hbWUpOworICAgICAgICBC
cm93c2VyRGVidWdnZXJBZ2VudC5yZW1vdmVFdmVudExpc3RlbmVyQnJlYWtwb2ludCh0aGlzLl9l
dmVudE5hbWUpOwogICAgIH0sCiAKICAgICBfc2VyaWFsaXplVG9KU09OOiBmdW5jdGlvbigpCkBA
IC0zNzcsMTIgKzM3NywxMiBAQCBXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludCA9IGZ1bmN0aW9u
KHVybCkKIFdlYkluc3BlY3Rvci5YSFJCcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICBfZW5h
YmxlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFhIUkJy
ZWFrcG9pbnQodGhpcy5fdXJsKTsKKyAgICAgICAgQnJvd3NlckRlYnVnZ2VyQWdlbnQuc2V0WEhS
QnJlYWtwb2ludCh0aGlzLl91cmwpOwogICAgIH0sCiAKICAgICBfZGlzYWJsZTogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZW1vdmVYSFJCcmVha3BvaW50KHRo
aXMuX3VybCk7CisgICAgICAgIEJyb3dzZXJEZWJ1Z2dlckFnZW50LnJlbW92ZVhIUkJyZWFrcG9p
bnQodGhpcy5fdXJsKTsKICAgICB9LAogCiAgICAgX3NlcmlhbGl6ZVRvSlNPTjogZnVuY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHls
ZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1v
ZGVsLmpzCmluZGV4IDY5YmQ3YTkuLmRjNWNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTgzLDcgKzgzLDcgQEAg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHVzZXJDYWxsYmFjayhyZXN1bHQpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRTdHlsZXNGb3JOb2RlKG5vZGVJZCwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2Fs
bGJhY2spKTsKKyAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVzRm9yTm9kZShub2RlSWQsIGNhbGxi
YWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIGdldENvbXB1dGVk
U3R5bGVBc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCkBAIC05Niw3ICs5Niw3
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQ
YXlsb2FkKHN0eWxlUGF5bG9hZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRDb21wdXRlZFN0eWxlRm9yTm9kZShub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwg
dXNlckNhbGxiYWNrKSk7CisgICAgICAgIENTU0FnZW50LmdldENvbXB1dGVkU3R5bGVGb3JOb2Rl
KG5vZGVJZCwgY2FsbGJhY2suYmluZChudWxsLCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAg
ICAgZ2V0SW5saW5lU3R5bGVBc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCkBA
IC0xMDksNyArMTA5LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldElubGluZVN0eWxlRm9yTm9kZShub2RlSWQsIGNhbGxiYWNr
LmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CisgICAgICAgIENTU0FnZW50LmdldElubGluZVN0
eWxlRm9yTm9kZShub2RlSWQsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CiAg
ICAgfSwKIAogICAgIHNldFJ1bGVTZWxlY3RvcjogZnVuY3Rpb24ocnVsZUlkLCBub2RlSWQsIG5l
d1NlbGVjdG9yLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaykKQEAgLTEyNywxMCAr
MTI3LDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIGlmICghcnVsZVBheWxvYWQpCiAgICAgICAgICAgICAgICAgZmFpbHVyZUNhbGxiYWNr
KCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5x
dWVyeVNlbGVjdG9yQWxsKG5vZGVJZCwgbmV3U2VsZWN0b3IsIGNoZWNrQWZmZWN0c0NhbGxiYWNr
LmJpbmQodGhpcywgbm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIHJ1bGVQYXlsb2FkKSk7CisgICAg
ICAgICAgICAgICAgQ1NTQWdlbnQucXVlcnlTZWxlY3RvckFsbChub2RlSWQsIG5ld1NlbGVjdG9y
LCBjaGVja0FmZmVjdHNDYWxsYmFjay5iaW5kKHRoaXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNr
LCBydWxlUGF5bG9hZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5z
ZXRSdWxlU2VsZWN0b3IocnVsZUlkLCBuZXdTZWxlY3RvciwgY2FsbGJhY2suYmluZCh0aGlzLCBu
b2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKSk7CisgICAgICAgIENTU0Fn
ZW50LnNldFJ1bGVTZWxlY3RvcihydWxlSWQsIG5ld1NlbGVjdG9yLCBjYWxsYmFjay5iaW5kKHRo
aXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2spKTsKICAgICB9LAog
CiAgICAgYWRkUnVsZTogZnVuY3Rpb24obm9kZUlkLCBzZWxlY3Rvciwgc3VjY2Vzc0NhbGxiYWNr
LCBmYWlsdXJlQ2FsbGJhY2spCkBAIC0xNDksMTAgKzE0OSwxMCBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgLy8gSW52YWxpZCBzeW50
YXggZm9yIGEgc2VsZWN0b3IKICAgICAgICAgICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucXVlcnlT
ZWxlY3RvckFsbChub2RlSWQsIHNlbGVjdG9yLCBjaGVja0FmZmVjdHNDYWxsYmFjay5iaW5kKHRo
aXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCkpOworICAgICAgICAgICAg
ICAgIENTU0FnZW50LnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlkLCBzZWxlY3RvciwgY2hlY2tBZmZl
Y3RzQ2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxv
YWQpKTsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuYWRkUnVsZShub2Rl
SWQsIHNlbGVjdG9yLCBjYWxsYmFjay5iaW5kKHRoaXMsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVy
ZUNhbGxiYWNrLCBzZWxlY3RvcikpOworICAgICAgICBDU1NBZ2VudC5hZGRSdWxlKG5vZGVJZCwg
c2VsZWN0b3IsIGNhbGxiYWNrLmJpbmQodGhpcywgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2Fs
bGJhY2ssIHNlbGVjdG9yKSk7CiAgICAgfSwKIAogICAgIF9zdHlsZVNoZWV0Q2hhbmdlZDogZnVu
Y3Rpb24oc3R5bGVTaGVldElkLCBtYWpvckNoYW5nZSkKQEAgLTE2Niw3ICsxNjYsNyBAQCBXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAocmVz
b3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU3R5
bGVzaGVldCkKICAgICAgICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KGNvbnRlbnQsIHRo
aXMuX29uUmV2ZXJ0LmJpbmQodGhpcywgc3R5bGVTaGVldElkKSk7CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNhbGxi
YWNrLmJpbmQodGhpcykpOworICAgICAgICBDU1NBZ2VudC5nZXRTdHlsZVNoZWV0VGV4dChzdHls
ZVNoZWV0SWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfb25SZXZlcnQ6
IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgY29udGVudFRvUmV2ZXJ0VG8pCkBAIC0xNzYsNyArMTc2
LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdGhpcy5fc3R5bGVTaGVldENoYW5nZWQoc3R5bGVTaGVldElkLCB0cnVlKTsKICAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsK
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFN0eWxlU2hlZXRUZXh0KHN0
eWxlU2hlZXRJZCwgY29udGVudFRvUmV2ZXJ0VG8sIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICBDU1NBZ2VudC5zZXRTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0SWQsIGNvbnRlbnRUb1Jl
dmVydFRvLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAKQEAgLTM0OCw3ICszNDgs
NyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3Bl
cnR5VGV4dCh0aGlzLmlkLCBpbmRleCwgbmFtZSArICI6ICIgKyB2YWx1ZSArICI7IiwgZmFsc2Us
IGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CisgICAgICAgIENTU0FnZW50LnNl
dFByb3BlcnR5VGV4dCh0aGlzLmlkLCBpbmRleCwgbmFtZSArICI6ICIgKyB2YWx1ZSArICI7Iiwg
ZmFsc2UsIGNhbGxiYWNrLmJpbmQobnVsbCwgdXNlckNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAg
IGFwcGVuZFByb3BlcnR5OiBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgdXNlckNhbGxiYWNrKQpAQCAt
NDg4LDcgKzQ4OCw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB0aHJvdyAiTm8gb3duZXJTdHlsZSBmb3IgcHJvcGVydHkiOwogCiAgICAgICAg
IC8vIEFuIGluZGV4IHBhc3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFkZHMgYSBuZXcgcHJvcGVydHkg
dG8gdGhlIHN0eWxlLgotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFByb3BlcnR5VGV4dCh0
aGlzLm93bmVyU3R5bGUuaWQsIHRoaXMuaW5kZXgsIHByb3BlcnR5VGV4dCwgdGhpcy5pbmRleCA8
IHRoaXMub3duZXJTdHlsZS5wYXN0TGFzdFNvdXJjZVByb3BlcnR5SW5kZXgoKSwgY2FsbGJhY2su
YmluZCh0aGlzKSk7CisgICAgICAgIENTU0FnZW50LnNldFByb3BlcnR5VGV4dCh0aGlzLm93bmVy
U3R5bGUuaWQsIHRoaXMuaW5kZXgsIHByb3BlcnR5VGV4dCwgdGhpcy5pbmRleCA8IHRoaXMub3du
ZXJTdHlsZS5wYXN0TGFzdFNvdXJjZVByb3BlcnR5SW5kZXgoKSwgY2FsbGJhY2suYmluZCh0aGlz
KSk7CiAgICAgfSwKIAogICAgIHNldFZhbHVlOiBmdW5jdGlvbihuZXdWYWx1ZSwgdXNlckNhbGxi
YWNrKQpAQCAtNTE3LDcgKzUxNyw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnRvZ2dsZVByb3BlcnR5KHRoaXMub3duZXJTdHlsZS5pZCwgdGhpcy5pbmRleCwgZGlzYWJs
ZWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0
eSh0aGlzLm93bmVyU3R5bGUuaWQsIHRoaXMuaW5kZXgsIGRpc2FibGVkLCBjYWxsYmFjay5iaW5k
KHRoaXMpKTsKICAgICB9CiB9CiAKQEAgLTU0OCw3ICs1NDgsNyBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVTaGVldC5jcmVhdGVGb3JJZCA9IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgdXNlckNhbGxi
YWNrKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobmV3IFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZVNoZWV0KHN0eWxlU2hlZXRQYXlsb2FkKSk7CiAgICAgfQotICAgIEluc3Bl
Y3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGNhbGxiYWNrLmJpbmQodGhp
cykpOworICAgIENTU0FnZW50LmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBjYWxsYmFjay5i
aW5kKHRoaXMpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlID0g
ewpAQCAtNTY5LDYgKzU2OSw2IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuc2V0U3R5bGVTaGVldFRleHQodGhpcy5pZCwgbmV3VGV4dCwgY2FsbGJhY2suYmluZCh0aGlz
KSk7CisgICAgICAgIENTU0FnZW50LnNldFN0eWxlU2hlZXRUZXh0KHRoaXMuaWQsIG5ld1RleHQs
IGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDM1ZDFlYmYuLjQ2MzI5ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmll
dy5qcwpAQCAtMzE2LDcgKzMxNiw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUgPSB7CiAKICAgICByZXF1ZXN0Q2xlYXJNZXNzYWdlczogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5jbGVhckNvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBD
b25zb2xlQWdlbnQuY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKICAgICB9LAogCiAgICAgY2xlYXJN
ZXNzYWdlczogZnVuY3Rpb24oKQpAQCAtMzU5LDkgKzM1OSw5IEBAIFdlYkluc3BlY3Rvci5Db25z
b2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBpbmNsdWRlQ29tbWFuZExpbmVBUEkg
PSAoIWRvdE5vdGF0aW9uICYmICFicmFja2V0Tm90YXRpb24pOwogICAgICAgICB2YXIgaW5qZWN0
ZWRTY3JpcHRBY2Nlc3M7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMg
JiYgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKLSAgICAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuZ2V0Q29tcGxldGlvbnNPbkNhbGxGcmFtZShXZWJJbnNwZWN0b3IucGFuZWxz
LnNjcmlwdHMuc2VsZWN0ZWRDYWxsRnJhbWVJZCgpLCBleHByZXNzaW9uU3RyaW5nLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEksIHJlcG9ydENvbXBsZXRpb25zKTsKKyAgICAgICAgICAgIERlYnVnZ2Vy
QWdlbnQuZ2V0Q29tcGxldGlvbnNPbkNhbGxGcmFtZShXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuc2VsZWN0ZWRDYWxsRnJhbWVJZCgpLCBleHByZXNzaW9uU3RyaW5nLCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIHJlcG9ydENvbXBsZXRpb25zKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
SW5zcGVjdG9yQmFja2VuZC5nZXRDb21wbGV0aW9ucyhleHByZXNzaW9uU3RyaW5nLCBpbmNsdWRl
Q29tbWFuZExpbmVBUEksIHJlcG9ydENvbXBsZXRpb25zKTsKKyAgICAgICAgICAgIFJ1bnRpbWVB
Z2VudC5nZXRDb21wbGV0aW9ucyhleHByZXNzaW9uU3RyaW5nLCBpbmNsdWRlQ29tbWFuZExpbmVB
UEksIHJlcG9ydENvbXBsZXRpb25zKTsKICAgICB9LAogCiAgICAgX3JlcG9ydENvbXBsZXRpb25z
OiBmdW5jdGlvbihiZXN0TWF0Y2hPbmx5LCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2ssIGRvdE5v
dGF0aW9uLCBicmFja2V0Tm90YXRpb24sIHByZWZpeCwgcmVzdWx0LCBpc0V4Y2VwdGlvbikgewpA
QCAtNDE3LDcgKzQxNyw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgdmFyIGl0ZW1BY3Rpb24gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQgPSAhV2ViSW5zcGVjdG9y
LnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRv
cmluZ1hIUkVuYWJsZWQpOworICAgICAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdY
SFJFbmFibGVkKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCk7CiAg
ICAgICAgIH0uYmluZCh0aGlzKTsKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYklu
c3BlY3Rvci5Db250ZXh0TWVudSgpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2Jv
eEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYTUxIdHRwUmVxdWVzdCBsb2dnaW5nIiksIGl0
ZW1BY3Rpb24sIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZCkKQEAg
LTUyNiw3ICs1MjYsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICB7CiAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21QYXlsb2FkKHJlc3VsdCkpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQ
SSwgZXZhbENhbGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Np
b24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGV2YWxDYWxsYmFjayk7CiAg
ICAgfSwKIAogICAgIF9lbnRlcktleVByZXNzZWQ6IGZ1bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVJdGVtc1ZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwpp
bmRleCBkYzc2YjM5Li5jODE4N2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZUl0ZW1zVmlldy5qcwpAQCAtMTQwLDcgKzE0MCw3IEBAIFdl
Ykluc3BlY3Rvci5Db29raWVJdGVtc1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgX2RlbGV0ZUNv
b2tpZTogZnVuY3Rpb24oY29va2llKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5k
ZWxldGVDb29raWUoY29va2llLm5hbWUsIHRoaXMuX2Nvb2tpZURvbWFpbik7CisgICAgICAgIElu
c3BlY3RvckFnZW50LmRlbGV0ZUNvb2tpZShjb29raWUubmFtZSwgdGhpcy5fY29va2llRG9tYWlu
KTsKICAgICAgICAgdGhpcy5fdXBkYXRlKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggMzY0NWJiOS4uMDdmODQyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBA
IC0zMTksMjUgKzMxOSwyNSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewog
ICAgICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKCkgewogICAgICAgICAgICAgY2FsbGJhY2socGFy
ZW50LmNoaWxkcmVuKTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldENo
aWxkTm9kZXMocGFyZW50LmlkLCBteWNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQuZ2V0Q2hp
bGROb2RlcyhwYXJlbnQuaWQsIG15Y2FsbGJhY2spOwogICAgIH0sCiAKICAgICBzZXRBdHRyaWJ1
dGVBc3luYzogZnVuY3Rpb24obm9kZSwgbmFtZSwgdmFsdWUsIGNhbGxiYWNrKQogICAgIHsKICAg
ICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRBcHBseURvbUNoYW5nZS5iaW5kKHRoaXMs
IG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRBdHRyaWJ1dGUo
bm9kZS5pZCwgbmFtZSwgdmFsdWUsIG15Y2FsbGJhY2spOworICAgICAgICBET01BZ2VudC5zZXRB
dHRyaWJ1dGUobm9kZS5pZCwgbmFtZSwgdmFsdWUsIG15Y2FsbGJhY2spOwogICAgIH0sCiAKICAg
ICByZW1vdmVBdHRyaWJ1dGVBc3luYzogZnVuY3Rpb24obm9kZSwgbmFtZSwgY2FsbGJhY2spCiAg
ICAgewogICAgICAgICB2YXIgbXljYWxsYmFjayA9IHRoaXMuX2RpZEFwcGx5RG9tQ2hhbmdlLmJp
bmQodGhpcywgbm9kZSwgY2FsbGJhY2spOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92
ZUF0dHJpYnV0ZShub2RlLmlkLCBuYW1lLCBteWNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQu
cmVtb3ZlQXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIG15Y2FsbGJhY2spOwogICAgIH0sCiAKICAg
ICBzZXRUZXh0Tm9kZVZhbHVlQXN5bmM6IGZ1bmN0aW9uKG5vZGUsIHRleHQsIGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRBcHBseURvbUNoYW5nZS5i
aW5kKHRoaXMsIG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRU
ZXh0Tm9kZVZhbHVlKG5vZGUuaWQsIHRleHQsIG15Y2FsbGJhY2spOworICAgICAgICBET01BZ2Vu
dC5zZXRUZXh0Tm9kZVZhbHVlKG5vZGUuaWQsIHRleHQsIG15Y2FsbGJhY2spOwogICAgIH0sCiAK
ICAgICBfZGlkQXBwbHlEb21DaGFuZ2U6IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrLCBzdWNjZXNz
KQpAQCAtNTExLDcgKzUxMSw3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0
Y2hlci5nZXRBcHBsaWNhdGlvbkNhY2hlc0FzeW5jID0gZnVuY3Rpb24oY2FsCiAgICAgICAgICAg
ICBjYWxsYmFjayhhcHBsaWNhdGlvbkNhY2hlcyk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRBcHBsaWNhdGlvbkNhY2hlcyhteWNhbGxiYWNrKTsKKyAgICBBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuZ2V0QXBwbGljYXRpb25DYWNoZXMobXljYWxsYmFjayk7CiB9CiAKIFdlYkluc3Bl
Y3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CkBAIC01NDAsNyAr
NTQwLDcgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZXMuZ2V0Q29va2llc0FzeW5jID0gZnVuY3Rpb24o
Y2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjayhjb29raWVzLCB0cnVlKTsKICAgICB9CiAK
LSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldENvb2tpZXMobXljYWxsYmFjayk7CisgICAgSW5zcGVj
dG9yQWdlbnQuZ2V0Q29va2llcyhteWNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvb2tp
ZXMuYnVpbGRDb29raWVzRnJvbVN0cmluZyA9IGZ1bmN0aW9uKHJhd0Nvb2tpZVN0cmluZykKQEAg
LTU4NSw1ICs1ODUsNSBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnMuZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlQXN5bmMgPSBmdW5jdGlvbihub2RlLCBjYWxsYgogewogICAgIGlmICghbm9k
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0RXZlbnRMaXN0ZW5l
cnNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAgICBET01BZ2VudC5nZXRFdmVudExpc3Rl
bmVyc0Zvck5vZGUobm9kZS5pZCwgY2FsbGJhY2spOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCmluZGV4IDQzMDExZWEuLjZlZTg5OWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3Jh
Z2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdl
LmpzCkBAIC01MSwxNyArNTEsMTcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBl
ID0gewogCiAgICAgZ2V0RW50cmllczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldERPTVN0b3JhZ2VFbnRyaWVzKHRoaXMuX2lkLCBjYWxsYmFj
ayk7CisgICAgICAgIERPTVN0b3JhZ2VBZ2VudC5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9p
ZCwgY2FsbGJhY2spOwogICAgIH0sCiAgICAgCiAgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2
YWx1ZSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldERPTVN0
b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIHZhbHVlLCBjYWxsYmFjayk7CisgICAgICAgIERPTVN0
b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSwgY2FsbGJh
Y2spOwogICAgIH0sCiAgICAgCiAgICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24oa2V5LCBjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0o
dGhpcy5faWQsIGtleSwgY2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQucmVtb3Zl
RE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMKaW5kZXggZWZm
YjgwOS4uNzJjYzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RhdGFiYXNlLmpzCkBAIC04MSw3ICs4MSw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhbGxiYWNrKG5hbWVzLnNvcnQoKSk7
CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXREYXRhYmFzZVRhYmxlTmFt
ZXModGhpcy5faWQsIHNvcnRpbmdDYWxsYmFjayk7CisgICAgICAgIERhdGFiYXNlQWdlbnQuZ2V0
RGF0YWJhc2VUYWJsZU5hbWVzKHRoaXMuX2lkLCBzb3J0aW5nQ2FsbGJhY2spOwogICAgIH0sCiAg
ICAgCiAgICAgZXhlY3V0ZVNxbDogZnVuY3Rpb24ocXVlcnksIG9uU3VjY2Vzcywgb25FcnJvcikK
QEAgLTk0LDcgKzk0LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5EYXRhYmFzZURpc3BhdGNoZXIu
X2NhbGxiYWNrc1t0cmFuc2FjdGlvbklkXSA9IHsib25TdWNjZXNzIjogb25TdWNjZXNzLCAib25F
cnJvciI6IG9uRXJyb3J9OwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZXhl
Y3V0ZVNRTCh0aGlzLl9pZCwgcXVlcnksIGNhbGxiYWNrKTsKKyAgICAgICAgRGF0YWJhc2VBZ2Vu
dC5leGVjdXRlU1FMKHRoaXMuX2lkLCBxdWVyeSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpz
CmluZGV4IDMzODRjMzQuLmRjN2UwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTUyLDcgKzUyLDcgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0gewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwucHJvdG90eXBlID0gewogICAgIGVuYWJsZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVuYWJsZURlYnVnZ2VyKCk7CisgICAgICAgIEluc3Bl
Y3RvckFnZW50LmVuYWJsZURlYnVnZ2VyKCk7CiAgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50
c1B1c2hlZFRvQmFja2VuZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIGJyZWFr
cG9pbnRzID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzOwpAQCAtNjgsMTIgKzY4
LDEyIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGRp
c2FibGVEZWJ1Z2dlcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5kaXNhYmxlRGVidWdnZXIoKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQuZGlzYWJsZURlYnVn
Z2VyKCk7CiAgICAgfSwKIAogICAgIGNvbnRpbnVlVG9Mb2NhdGlvbjogZnVuY3Rpb24oc291cmNl
SUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuY29udGludWVUb0xvY2F0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIpOworICAgICAgICBEZWJ1Z2dlckFnZW50LmNvbnRpbnVlVG9Mb2NhdGlvbihzb3VyY2VJRCwg
bGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKICAgICB9LAogCiAgICAgc2V0QnJlYWtwb2ludDog
ZnVuY3Rpb24odXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxl
ZCkKQEAgLTg5LDcgKzg5LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwogICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2ludCk7CiAgICAgICAgIH0KLSAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludCh1cmwsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3BvaW50LmJp
bmQodGhpcywgdGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQpKTsKKyAgICAgICAgRGVi
dWdnZXJBZ2VudC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludCh1cmwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcywg
dGhpcy5fYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQpKTsKICAgICB9LAogCiAgICAgc2V0QnJl
YWtwb2ludEJ5U291cmNlSWQ6IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKQEAgLTEwMywxMiArMTAzLDEyIEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2JyZWFr
cG9pbnRzW2JyZWFrcG9pbnRJZF0gPSBicmVha3BvaW50OwogICAgICAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJy
ZWFrcG9pbnRBZGRlZCwgYnJlYWtwb2ludCk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5zZXRKYXZhU2NyaXB0QnJlYWtwb2ludEJ5U291cmNlSWQoc291cmNlSUQsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBkaWRTZXRCcmVha3BvaW50
LmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEphdmFTY3JpcHRCcmVha3Bv
aW50QnlTb3VyY2VJZChzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRp
b24sIGVuYWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAg
IHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRJZCkKICAgICB7Ci0gICAgICAg
IEluc3BlY3RvckJhY2tlbmQucmVtb3ZlSmF2YVNjcmlwdEJyZWFrcG9pbnQoYnJlYWtwb2ludElk
KTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5yZW1vdmVKYXZhU2NyaXB0QnJlYWtwb2ludChicmVh
a3BvaW50SWQpOwogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRzW2Jy
ZWFrcG9pbnRJZF07CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9icmVha3BvaW50c1ticmVha3BvaW50
SWRdOwogICAgICAgICB0aGlzLl9zYXZlQnJlYWtwb2ludHMoKTsKQEAgLTIxOSw3ICsyMTksNyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nKG5ld0JvZHlPckVycm9yTWVz
c2FnZSwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nKTsK
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVkaXRTY3JpcHRTb3VyY2Uoc291
cmNlSUQsIHNjcmlwdFNvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgRGVidWdnZXJBZ2VudC5lZGl0U2NyaXB0U291cmNlKHNvdXJjZUlELCBzY3JpcHRTb3Vy
Y2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF91cGRh
dGVTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBzY3JpcHRTb3VyY2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5k
ZXggZTZhZjkzYy4uNzlhZTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtNTcsNyArNTcsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhpcy5wYW5lbC51cGRhdGVF
dmVudExpc3RlbmVycygpOwogCiAgICAgICAgIGlmICh0aGlzLl9mb2N1c2VkRE9NTm9kZSkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5hZGRJbnNwZWN0ZWROb2RlKHRoaXMuX2ZvY3Vz
ZWRET01Ob2RlLmlkKTsKKyAgICAgICAgICAgIERPTUFnZW50LmFkZEluc3BlY3RlZE5vZGUodGhp
cy5fZm9jdXNlZERPTU5vZGUuaWQpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lv
blNlcnZlci5ub3RpZnlPYmplY3RTZWxlY3RlZCh0aGlzLnBhbmVsLm5hbWUpOwogICAgICAgICB9
CiAgICAgfTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRQYXRo
T25SZXNldCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5vZGVCeVBhdGhUb0Zy
b250ZW5kKHRoaXMuX3NlbGVjdGVkUGF0aE9uUmVzZXQsIHNlbGVjdExhc3RTZWxlY3RlZE5vZGUu
YmluZCh0aGlzKSk7CisgICAgICAgICAgICBET01BZ2VudC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRl
bmQodGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldCwgc2VsZWN0TGFzdFNlbGVjdGVkTm9kZS5iaW5k
KHRoaXMpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2VsZWN0Tm9kZS5jYWxsKHRoaXMp
OwogICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldDsKQEAgLTIyNiw3ICsy
MjYsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAg
ICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID0gMDsKICAgICAgICAgdGhpcy5fc2Vh
cmNoUmVzdWx0cyA9IFtdOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNlYXJjaENhbmNlbGVk
KCk7CisgICAgICAgIERPTUFnZW50LnNlYXJjaENhbmNlbGVkKCk7CiAgICAgfSwKIAogICAgIHBl
cmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQpAQCAtMjQyLDcgKzI0Miw3IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbWF0Y2hlc0Nv
dW50VXBkYXRlVGltZW91dCA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gcXVl
cnk7CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5wZXJmb3JtU2VhcmNoKHdoaXRlc3BhY2VU
cmltbWVkUXVlcnksIGZhbHNlKTsKKyAgICAgICAgRE9NQWdlbnQucGVyZm9ybVNlYXJjaCh3aGl0
ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBmYWxzZSk7CiAgICAgfSwKIAogICAgIHBvcHVsYXRlSHJlZkNv
bnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgZXZlbnQsIGFuY2hvckVsZW1lbnQpCkBA
IC0xMDIzLDcgKzEwMjMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGV2ZW50LmNsaXBib2FyZERhdGEuY2xl
YXJEYXRhKCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuY29weU5vZGUodGhpcy5mb2N1c2VkRE9NTm9kZS5pZCk7CisgICAgICAgIERP
TUFnZW50LmNvcHlOb2RlKHRoaXMuZm9jdXNlZERPTU5vZGUuaWQpOwogICAgIH0sCiAKICAgICBy
aWdodFNpZGViYXJSZXNpemVyRHJhZ1N0YXJ0OiBmdW5jdGlvbihldmVudCkKQEAgLTEwNzAsNyAr
MTA3MCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
IHNldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVuYWJsZWQpCiAgICAgewotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFNlYXJjaGluZ0Zvck5vZGUoZW5hYmxlZCwgdGhpcy5fc2V0U2Vh
cmNoaW5nRm9yTm9kZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQuc2V0U2Vh
cmNoaW5nRm9yTm9kZShlbmFibGVkLCB0aGlzLl9zZXRTZWFyY2hpbmdGb3JOb2RlLmJpbmQodGhp
cykpOwogICAgIH0sCiAKICAgICB0b2dnbGVTZWFyY2hpbmdGb3JOb2RlOiBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJl
ZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanMKaW5kZXggNTZjM2U3NS4uOTFhZmNlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5q
cwpAQCAtNDEwLDcgKzQxMCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aGlzLnRvb2x0
aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIHBpeGVscyAoTmF0dXJhbDogJWQg
w5cgJWQgcGl4ZWxzKSIsIHByb3BlcnRpZXMub2Zmc2V0V2lkdGgsIHByb3BlcnRpZXMub2Zmc2V0
SGVpZ2h0LCBwcm9wZXJ0aWVzLm5hdHVyYWxXaWR0aCwgcHJvcGVydGllcy5uYXR1cmFsSGVpZ2h0
KTsKICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldE5vZGVQcm9wZXJ0aWVz
KG5vZGUuaWQsIFsibmF0dXJhbEhlaWdodCIsICJuYXR1cmFsV2lkdGgiLCAib2Zmc2V0SGVpZ2h0
IiwgIm9mZnNldFdpZHRoIl0sIHNldFRvb2x0aXAuYmluZCh0aGlzKSk7CisgICAgICAgIERPTUFn
ZW50LmdldE5vZGVQcm9wZXJ0aWVzKG5vZGUuaWQsIFsibmF0dXJhbEhlaWdodCIsICJuYXR1cmFs
V2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFdpZHRoIl0sIHNldFRvb2x0aXAuYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIHVwZGF0ZVNlbGVjdGlvbjogZnVuY3Rpb24oKQpAQCAtMTE1
NCw3ICsxMTU0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgbW92ZVRvTmV4dEF0dHJpYnV0ZUlmTmVlZGVkLmNhbGwobmV3VHJl
ZUl0ZW0pOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jaGFuZ2VUYWdO
YW1lKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQsIG5ld1RleHQsIGNoYW5nZVRhZ05hbWVDYWxs
YmFjayk7CisgICAgICAgIERPTUFnZW50LmNoYW5nZVRhZ05hbWUodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5pZCwgbmV3VGV4dCwgY2hhbmdlVGFnTmFtZUNhbGxiYWNrKTsKICAgICB9LAogCiAgICAg
X3RleHROb2RlRWRpdGluZ0NvbW1pdHRlZDogZnVuY3Rpb24oZWxlbWVudCwgbmV3VGV4dCkKQEAg
LTEzODEsNyArMTM4MSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuYWRqdXN0Q29sbGFwc2VkUmFuZ2Uo
dHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZU5vZGUo
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5pZCwgcmVtb3ZlTm9kZUNhbGxiYWNrKTsKKyAgICAgICAg
RE9NQWdlbnQucmVtb3ZlTm9kZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkLCByZW1vdmVOb2Rl
Q2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfZWRpdEFzSFRNTDogZnVuY3Rpb24oKQpAQCAtMTQw
OCwxNSArMTQwOCwxNSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gY29tbWl0Q2hhbmdlKHZhbHVlKQogICAgICAgICB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE91dGVySFRNTChub2RlLmlkLCB2YWx1
ZSwgc2VsZWN0Tm9kZSk7CisgICAgICAgICAgICBET01BZ2VudC5zZXRPdXRlckhUTUwobm9kZS5p
ZCwgdmFsdWUsIHNlbGVjdE5vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5nZXRPdXRlckhUTUwobm9kZS5pZCwgdGhpcy5fc3RhcnRFZGl0aW5nQXNIVE1MLmJpbmQo
dGhpcywgY29tbWl0Q2hhbmdlKSk7CisgICAgICAgIERPTUFnZW50LmdldE91dGVySFRNTChub2Rl
LmlkLCB0aGlzLl9zdGFydEVkaXRpbmdBc0hUTUwuYmluZCh0aGlzLCBjb21taXRDaGFuZ2UpKTsK
ICAgICB9LAogCiAgICAgX2NvcHlIVE1MOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmNvcHlOb2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQpOworICAgICAg
ICBET01BZ2VudC5jb3B5Tm9kZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKICAgICB9LAog
CiAgICAgX2hpZ2hsaWdodFNlYXJjaFJlc3VsdHM6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IDE0
NGQ1NWQuLjE0MmI4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwpAQCAtOTUsNyArOTUsNyBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uV2F0Y2hTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRFeHByZXNz
aW9uOiBmdW5jdGlvbihleHByZXNzaW9uLCB0aXRsZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgImV4dGVuc2lvbi13YXRjaCIsIGZhbHNlLCB0
aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0bGUpKTsKKyAgICAgICAgUnVudGltZUFnZW50
LmV2YWx1YXRlKGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCBmYWxzZSwgdGhpcy5fb25F
dmFsdWF0ZS5iaW5kKHRoaXMsIHRpdGxlKSk7CiAgICAgfSwKIAogICAgIF9vbkV2YWx1YXRlOiBm
dW5jdGlvbih0aXRsZSwgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCA3ZDMzYjczLi5iYTMwZjczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blNlcnZlci5qcwpAQCAtMTY2LDcgKzE2Niw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICBhbGxIZWFkZXJzW25hbWVdID0g
aGVhZGVyc1tuYW1lXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLnNldEV4dHJhSGVhZGVycyhhbGxIZWFkZXJzKTsKKyAgICAgICAgTmV0d29ya0Fn
ZW50LnNldEV4dHJhSGVhZGVycyhhbGxIZWFkZXJzKTsKICAgICB9LAogCiAgICAgX29uQ3JlYXRl
UGFuZWw6IGZ1bmN0aW9uKG1lc3NhZ2UsIHBvcnQpCkBAIC0yNTUsOSArMjU1LDkgQEAgV2ViSW5z
cGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgX29uUmVsb2FkOiBmdW5j
dGlvbihtZXNzYWdlKQogICAgIHsKICAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlLnVzZXJBZ2Vu
dCA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFVzZXJBZ2Vu
dE92ZXJyaWRlKG1lc3NhZ2UudXNlckFnZW50KTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50
LnNldFVzZXJBZ2VudE92ZXJyaWRlKG1lc3NhZ2UudXNlckFnZW50KTsKIAotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLnJlbG9hZFBhZ2UoZmFsc2UpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5y
ZWxvYWRQYWdlKGZhbHNlKTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5PSygpOwogICAg
IH0sCiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2FsbGJhY2sobWVzc2FnZS5y
ZXF1ZXN0SWQsIHBvcnQsIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgdmFyIGV2YWxFeHBy
ZXNzaW9uID0gIkpTT04uc3RyaW5naWZ5KGV2YWwodW5lc2NhcGUoJyIgKyBlc2NhcGUobWVzc2Fn
ZS5leHByZXNzaW9uKSArICInKSkpOyI7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZXZhbHVh
dGUoZXZhbEV4cHJlc3Npb24sICJub25lIiwgdHJ1ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShldmFsRXhwcmVzc2lvbiwgIm5vbmUiLCB0cnVl
LCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX29uUmV2ZWFsQW5kU2VsZWN0
OiBmdW5jdGlvbihtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IDQ0Yjk1YzMuLjg3ZTAyZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFw
c2hvdFZpZXcuanMKQEAgLTEwMTAsNyArMTAxMCw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKICAgICBidXR0b25DbGlja2VkOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnRha2VIZWFwU25hcHNob3QoZmFs
c2UpOworICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3QoZmFsc2UpOwogICAg
IH0sCiAKICAgICBnZXQgd2VsY29tZU1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggZGEwNDNmZS4uNGMy
OGEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCkBAIC0zMyw3ICszMyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFu
YWdlciA9IGZ1bmN0aW9uKHJlc291cmNlVHJlZU1vZGVsKQogICAgIFdlYkluc3BlY3Rvci5PYmpl
Y3QuY2FsbCh0aGlzKTsKICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbCA9IHJlc291cmNlVHJl
ZU1vZGVsOwogICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtE
aXNwYXRjaGVyKHJlc291cmNlVHJlZU1vZGVsLCB0aGlzKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5k
LmNhY2hlZFJlc291cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykp
OworICAgIE5ldHdvcmtBZ2VudC5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hlZFJl
c291cmNlcy5iaW5kKHRoaXMpKTsKIH0KIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2
ZW50VHlwZXMgPSB7CkBAIC00OCw3ICs0OCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdl
ci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdv
cmsuY2xlYXIoKTsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwucmVzZXQoKTsKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hl
ZFJlc291cmNlcy5iaW5kKHRoaXMpKTsKKyAgICAgICAgTmV0d29ya0FnZW50LmNhY2hlZFJlc291
cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOwogICAgIH0sCiAK
ICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGJhc2U2NEVuY29kZSwgY2Fs
bGJhY2spCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MgPyBjb250
ZW50IDogbnVsbCk7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZXNvdXJj
ZUNvbnRlbnQocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlLnVybCwgYmFzZTY0RW5j
b2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICBOZXR3b3JrQWdlbnQucmVzb3VyY2VDb250
ZW50KHJlc291cmNlLmxvYWRlci5mcmFtZUlkLCByZXNvdXJjZS51cmwsIGJhc2U2NEVuY29kZSwg
Y2FsbGJhY2tXcmFwcGVyKTsKICAgICB9LAogCiAgICAgX3Byb2Nlc3NDYWNoZWRSZXNvdXJjZXM6
IGZ1bmN0aW9uKG1haW5GcmFtZVBheWxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDA4NWY0NjguLmUwMDdlY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVs
LmpzCkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9k
ZS5wcm90b3R5cGUgPSB7CiAKICAgICBfb3BlbkluTmV3VGFiOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLm9wZW5Jbkluc3BlY3RlZFdpbmRvdyh0aGlzLl9yZXNv
dXJjZS51cmwpOworICAgICAgICBJbnNwZWN0b3JBZ2VudC5vcGVuSW5JbnNwZWN0ZWRXaW5kb3co
dGhpcy5fcmVzb3VyY2UudXJsKTsKICAgICB9LAogCiAgICAgZ2V0IHNlbGVjdGFibGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKaW5k
ZXggYzMyNWJmNy4uMzM1YmYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCkBAIC05NCw3ICs5NCw3IEBAIFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVmlldyA9IGZ1bmN0aW9uKHByb2ZpbGUpCiAgICAgICAgIHNlbGYuX3VwZGF0ZVBl
cmNlbnRCdXR0b24oKTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGUo
dGhpcy5wcm9maWxlLnR5cGVJZCwgdGhpcy5wcm9maWxlLnVpZCwgcHJvZmlsZUNhbGxiYWNrKTsK
KyAgICBQcm9maWxlckFnZW50LmdldFByb2ZpbGUodGhpcy5wcm9maWxlLnR5cGVJZCwgdGhpcy5w
cm9maWxlLnVpZCwgcHJvZmlsZUNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNQVVByb2Zp
bGVWaWV3LnByb3RvdHlwZSA9IHsKQEAgLTU5Myw5ICs1OTMsOSBAQCBXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZWNvcmRpbmcgPSAhdGhp
cy5fcmVjb3JkaW5nOwogCiAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcpCi0gICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnN0YXJ0UHJvZmlsaW5nKCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JBZ2VudC5zdGFydFByb2ZpbGluZygpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLnN0b3BQcm9maWxpbmcoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50
LnN0b3BQcm9maWxpbmcoKTsKICAgICB9LAogCiAgICAgZ2V0IHdlbGNvbWVNZXNzYWdlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5q
cwppbmRleCBiODdlYTdmLi41NmM3ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0yMTUsNyArMjE1LDcgQEAgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2NsZWFyUHJvZmls
ZXM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuY2xlYXJQcm9m
aWxlcygpOworICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoKTsKICAgICAgICAg
dGhpcy5fcmVzZXQoKTsKICAgICB9LAogCkBAIC0zNTEsNyArMzUxLDcgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBzaWRlYmFyUGFyZW50LnJlbW92
ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwogCiAgICAgICAgIGlmICghcHJv
ZmlsZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVtb3ZlUHJv
ZmlsZShwcm9maWxlLnR5cGVJZCwgcHJvZmlsZS51aWQpOworICAgICAgICAgICAgUHJvZmlsZXJB
Z2VudC5yZW1vdmVQcm9maWxlKHByb2ZpbGUudHlwZUlkLCBwcm9maWxlLnVpZCk7CiAKICAgICAg
ICAgLy8gTm8gb3RoZXIgaXRlbSB3aWxsIGJlIHNlbGVjdGVkIGlmIHRoZXJlIGFyZW4ndCBhbnkg
b3RoZXIgcHJvZmlsZXMsIHNvCiAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHZpZXcgZ2V0cyBj
bGVhcmVkIHdoZW4gdGhlIGxhc3QgcHJvZmlsZSBpcyByZW1vdmVkLgpAQCAtNDI0LDcgKzQyNCw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHByb2ZpbGUuX2NhbGxiYWNrcyA9IFtjYWxsYmFja107CiAgICAgICAgICAgICBwcm9maWxlLl9q
c29uID0gIiI7CiAgICAgICAgICAgICBwcm9maWxlLnNpZGVCYXJFbGVtZW50LnN1YnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkaW5n4oCmIik7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFByb2ZpbGUocHJvZmlsZS50eXBlSWQsIHByb2ZpbGUudWlkKTsKKyAgICAg
ICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0UHJvZmlsZShwcm9maWxlLnR5cGVJZCwgcHJvZmlsZS51
aWQpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtNTkyLDEwICs1OTIsMTAgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X3Byb2ZpbGVyRW5hYmxlZCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnBy
b2ZpbGVyRW5hYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNh
YmxlUHJvZmlsZXIodHJ1ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5kaXNhYmxlUHJv
ZmlsZXIodHJ1ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gISFvcHRpb25hbEFsd2F5czsKLSAgICAgICAgICAg
IEluc3BlY3RvckJhY2tlbmQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
ckFnZW50LmVuYWJsZVByb2ZpbGVyKCk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC02MTIsNyAr
NjEyLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgICAgIHRoaXMuX2FkZFByb2ZpbGVIZWFkZXIocHJvZmlsZUhlYWRlcnNbaV0pOwog
ICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9maWxlSGVhZGVycyhw
b3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBQcm9maWxlckFnZW50LmdldFBy
b2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgdGhp
cy5fcHJvZmlsZXNXZXJlUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9LApAQCAtNjU4LDcgKzY1OCw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHRoaXMuX2FkZFByb2ZpbGVIZWFkZXIodGhpcy5fdGVtcG9yYXJ5VGFr
aW5nU25hcHNob3QpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQudGFrZUhl
YXBTbmFwc2hvdChkZXRhaWxlZCk7CisgICAgICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFw
c2hvdChkZXRhaWxlZCk7CiAgICAgfSwKIAogICAgIF9yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVz
czogZnVuY3Rpb24oZG9uZSwgdG90YWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCmluZGV4IGExZTM3
YmMuLjRjYzRiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCkBAIC01OSw3ICs1OSw3IEBAIFdl
Ykluc3BlY3Rvci5Qcm9wZXJ0aWVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoc2VjdGlvbi5lbGVtZW50KTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldE5vZGVQcm90b3R5cGVzKG5v
ZGUuaWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBET01BZ2VudC5nZXROb2RlUHJv
dG90eXBlcyhub2RlLmlkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5k
ZXggMTBhZjJlMy4uZWI3MGQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTUyLDcgKzUyLDcgQEAgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSA9IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgY2FsbGJhY2sob2JqZWN0ID8gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChvYmplY3QpIDogbnVsbCk7CiAgICAgfQotICAgIEluc3BlY3RvckJhY2tlbmQu
cmVzb2x2ZU5vZGUobm9kZS5pZCwgbXljYWxsYmFjayk7CisgICAgRE9NQWdlbnQucmVzb2x2ZU5v
ZGUobm9kZS5pZCwgbXljYWxsYmFjayk7CiB9CiAKIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Qu
ZnJvbVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2FkKQpAQCAtMTE4LDcgKzExOCw3IEBAIFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHByb3Bl
cnRpZXNbaV0udmFsdWUgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHBy
b3BlcnRpZXNbaV0udmFsdWUpOwogICAgICAgICAgICAgY2FsbGJhY2socHJvcGVydGllcyk7CiAg
ICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9wZXJ0aWVzKHRoaXMuX29i
amVjdElkLCAhIWlnbm9yZUhhc093blByb3BlcnR5LCBhYmJyZXZpYXRlLCByZW1vdGVPYmplY3RC
aW5kZXIpOworICAgICAgICBSdW50aW1lQWdlbnQuZ2V0UHJvcGVydGllcyh0aGlzLl9vYmplY3RJ
ZCwgISFpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSwgcmVtb3RlT2JqZWN0QmluZGVy
KTsKICAgICB9LAogCiAgICAgc2V0UHJvcGVydHlWYWx1ZTogZnVuY3Rpb24obmFtZSwgdmFsdWUs
IGNhbGxiYWNrKQpAQCAtMTI3LDEyICsxMjcsMTIgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQcm9wZXJ0
eVZhbHVlKHRoaXMuX29iamVjdElkLCBuYW1lLCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICBS
dW50aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwgdmFsdWUs
IGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihj
YWxsYmFjaykKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5vZGVUb0Zyb250
ZW5kKHRoaXMuX29iamVjdElkLCBjYWxsYmFjayk7CisgICAgICAgIERPTUFnZW50LnB1c2hOb2Rl
VG9Gcm9udGVuZCh0aGlzLl9vYmplY3RJZCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMK
aW5kZXggN2MwNjQ5Zi4uM2M4NTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC05MDQsNyArOTA0LDcgQEAgV2Vi
SW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9z
dG9yYWdlUGFuZWwuc2hvd0NhdGVnb3J5Vmlldyh0aGlzLl9kaXNwbGF5TmFtZSk7CiAKICAgICAg
ICAgdGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmhpZGVGcmFtZUhpZ2hsaWdodCgpOworICAgICAgICBJbnNw
ZWN0b3JBZ2VudC5oaWRlRnJhbWVIaWdobGlnaHQoKTsKICAgICB9LAogCiAgICAgZ2V0IGRpc3Bs
YXlOYW1lKCkKQEAgLTkzNywxMCArOTM3LDEwIEBAIFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVt
ZW50LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmIChob3ZlcmVkKSB7CiAgICAgICAg
ICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJob3ZlcmVkIik7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmhpZ2hsaWdodEZyYW1lKHRoaXMuX2ZyYW1lSWQpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuaGlnaGxpZ2h0RnJhbWUodGhpcy5fZnJhbWVJZCk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1v
dmVTdHlsZUNsYXNzKCJob3ZlcmVkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmhp
ZGVGcmFtZUhpZ2hsaWdodCgpOworICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuaGlkZUZyYW1l
SGlnaGxpZ2h0KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC05NjksNyArOTY5LDcgQEAgV2Vi
SW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBv
bmRibGNsaWNrOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tl
bmQub3BlbkluSW5zcGVjdGVkV2luZG93KHRoaXMuX3Jlc291cmNlLnVybCk7CisgICAgICAgIElu
c3BlY3RvckFnZW50Lm9wZW5Jbkluc3BlY3RlZFdpbmRvdyh0aGlzLl9yZXNvdXJjZS51cmwpOwog
ICAgIH0sCiAKICAgICBvbmF0dGFjaDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRleCA4ZDNlYWJmLi4zZjI3NDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtMTIwLDYgKzEy
MCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5fc291cmNlID0gc291cmNlOwogICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fc291cmNlKTsK
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFNjcmlwdFNvdXJjZSh0aGlz
LnNvdXJjZUlELCBkaWRHZXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CisgICAgICAgIERlYnVn
Z2VyQWdlbnQuZ2V0U2NyaXB0U291cmNlKHRoaXMuc291cmNlSUQsIGRpZEdldFNjcmlwdFNvdXJj
ZS5iaW5kKHRoaXMpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDNiMjRkNDUuLmMzNWE1NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CkBAIC0zNjIsNyArMzYyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4udXBk
YXRlKHNlbGVjdGVkQ2FsbEZyYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmV2YWx1YXRlT25DYWxsRnJhbWUoc2VsZWN0ZWRDYWxsRnJhbWUu
aWQsIGNvZGUsIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHVwZGF0aW5nQ2Fs
bGJhY2tXcmFwcGVyLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dlckFnZW50LmV2YWx1YXRl
T25DYWxsRnJhbWUoc2VsZWN0ZWRDYWxsRnJhbWUuaWQsIGNvZGUsIG9iamVjdEdyb3VwLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIHVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVyLmJpbmQodGhpcykpOwog
ICAgIH0sCiAKICAgICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNzQ3LDcg
Kzc0Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5zdGF0ZSA9IHBhdXNlT25FeGNlcHRp
b25zU3RhdGU7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucGF1c2VPbkV4Y2Vw
dGlvblN0YXRlID0gcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTsKICAgICAgICAgfQotICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUocGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQuc2V0
UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShwYXVzZU9uRXhjZXB0aW9uc1N0YXRlLCBjYWxsYmFjay5i
aW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX3VwZGF0ZURlYnVnZ2VyQnV0dG9uczogZnVuY3Rp
b24oKQpAQCAtODY1LDExICs4NjUsMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9wYXVzZWQpIHsKICAgICAgICAgICAgIHRoaXMu
X3BhdXNlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fd2FpdGluZ1RvUGF1c2UgPSBmYWxz
ZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVzdW1lKCk7CisgICAgICAgICAgICBE
ZWJ1Z2dlckFnZW50LnJlc3VtZSgpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhp
cy5fc3RlcHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIHRoaXMuX3dhaXRpbmdUb1BhdXNlID0g
dHJ1ZTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucGF1c2UoKTsKKyAgICAgICAgICAg
IERlYnVnZ2VyQWdlbnQucGF1c2UoKTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2NsZWFy
SW50ZXJmYWNlKCk7CkBAIC04ODIsNyArODgyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcmZhY2UoKTsKIAotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0ZXBPdmVyKCk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQu
c3RlcE92ZXIoKTsKICAgICB9LAogCiAgICAgX3N0ZXBJbnRvQ2xpY2tlZDogZnVuY3Rpb24oKQpA
QCAtODkyLDcgKzg5Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJmYWNlKCk7CiAKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5zdGVwSW50bygpOworICAgICAgICBEZWJ1Z2dlckFnZW50LnN0ZXBJbnRvKCk7CiAg
ICAgfSwKIAogICAgIF9zdGVwT3V0Q2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtOTAyLDE4ICs5MDIs
MTggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
dGhpcy5fY2xlYXJJbnRlcmZhY2UoKTsKIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0ZXBP
dXQoKTsKKyAgICAgICAgRGVidWdnZXJBZ2VudC5zdGVwT3V0KCk7CiAgICAgfSwKIAogICAgIHRv
Z2dsZUJyZWFrcG9pbnRzQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy50
b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkID0gIXRoaXMudG9nZ2xlQnJlYWtwb2ludHNC
dXR0b24udG9nZ2xlZDsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24u
dG9nZ2xlZCkgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZUJyZWFrcG9p
bnRzKCk7CisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LmFjdGl2YXRlQnJlYWtwb2ludHMoKTsK
ICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkRlYWN0aXZhdGUgYWxsIGJyZWFrcG9pbnRzLiIpOwogICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tcGFuZWxzIikucmVtb3ZlU3R5bGVDbGFz
cygiYnJlYWtwb2ludHMtZGVhY3RpdmF0ZWQiKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZGVhY3RpdmF0ZUJyZWFrcG9pbnRzKCk7CisgICAgICAgICAg
ICBEZWJ1Z2dlckFnZW50LmRlYWN0aXZhdGVCcmVha3BvaW50cygpOwogICAgICAgICAgICAgdGhp
cy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
QWN0aXZhdGUgYWxsIGJyZWFrcG9pbnRzLiIpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1haW4tcGFuZWxzIikuYWRkU3R5bGVDbGFzcygiYnJlYWtwb2ludHMtZGVhY3Rp
dmF0ZWQiKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggNmI0YjNiMy4uZjM1ZGIyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC02ODQs
NyArNjg0LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB0aGlzLl9wb3B1cC5oaWRlKCk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3B1cDsKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKDAsIHRoaXMu
X3BvcG92ZXJPYmplY3RHcm91cCk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxlYXNlV3JhcHBl
ck9iamVjdEdyb3VwKDAsIHRoaXMuX3BvcG92ZXJPYmplY3RHcm91cCk7CiAgICAgfSwKIAogICAg
IF9tb3VzZUhvdmVyOiBmdW5jdGlvbihlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMKaW5kZXggM2JmZTI4Yy4uMDk2
NzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0
Q29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
c3RDb250cm9sbGVyLmpzCkBAIC00Niw3ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5UZXN0Q29udHJv
bGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZp
bmVkIiAmJiB0aGlzLnJlc3VsdHMubGVuZ3RoKQogICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5y
ZXN1bHRzOwogICAgICAgICB2YXIgbWVzc2FnZSA9IHR5cGVvZiByZXN1bHQgPT09ICJ1bmRlZmlu
ZWQiID8gIlwiPHVuZGVmaW5lZD5cIiIgOiBKU09OLnN0cmluZ2lmeShyZXN1bHQpOwotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQodGhpcy5fY2Fs
bElkLCBtZXNzYWdlKTsKKyAgICAgICAgSW5zcGVjdG9yQWdlbnQuZGlkRXZhbHVhdGVGb3JUZXN0
SW5Gcm9udGVuZCh0aGlzLl9jYWxsSWQsIG1lc3NhZ2UpOwogICAgIH0sCiAKICAgICBydW5BZnRl
clBlbmRpbmdEaXNwYXRjaGVzOiBmdW5jdGlvbihjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCAxZDhiOWM5
Li5mZTllOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0yNzAsMTAgKzI3MCwxMCBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tl
ZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0
b24udG9nZ2xlZCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc3RvcFRpbWVsaW5lUHJv
ZmlsZXIoKTsKKyAgICAgICAgICAgIEluc3BlY3RvckFnZW50LnN0b3BUaW1lbGluZVByb2ZpbGVy
KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdGhpcy5fY2xlYXJQYW5lbCgpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvckFnZW50LnN0YXJ0VGltZWxpbmVQcm9maWxlcigpOwogICAgICAgICB9
CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwppbmRleCBhNmY1OWNh
Li45ZGIyZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwpAQCAtMTIwLDcg
KzEyMCw3IEBAIFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2VjdGlvbi5wcm90b3R5cGUg
PSB7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUT0RPOiBwYXNzIGV4YWN0IGluamVjdGVkIHNj
cmlwdCBpZC4KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxlYXNlV3JhcHBlck9iamVjdEdy
b3VwKDAsIHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCkKKyAgICAgICAgUnVudGltZUFnZW50LnJl
bGVhc2VXcmFwcGVyT2JqZWN0R3JvdXAoMCwgdGhpcy5fd2F0Y2hPYmplY3RHcm91cElkKQogICAg
ICAgICB2YXIgcHJvcGVydGllcyA9IFtdOwogCiAgICAgICAgIC8vIENvdW50IHRoZSBwcm9wZXJ0
aWVzLCBzbyB3ZSBrbm93biB3aGVuIHRvIGNhbGwgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vyc1NpZGVi
YXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lk
ZWJhclBhbmUuanMKaW5kZXggYjI1NGYzYy4uZWZkYjkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKQEAg
LTc0LDkgKzc0LDkgQEAgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAKICAgICBzZXRJbnN0cnVtZW50YXRpb246IGZ1bmN0aW9uKGVuYWJsZWQpCiAgICAgewot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2Fk
KCk7CisgICAgICAgIEluc3BlY3RvckFnZW50LnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25M
b2FkKCk7CiAgICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5hZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIp
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JBZ2VudC5hZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2Fk
KCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIpIik7CiAgICAgfSwKIAogICAgIHJlc2V0OiBm
dW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCmluZGV4IDA5NTkyODkuLjYyODY4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0zNjAsOSArMzYwLDkgQEAgdmFyIFdl
Ykluc3BlY3RvciA9IHsKIAogICAgICAgICB0aGlzLl9oaWdobGlnaHRlZERPTU5vZGVJZCA9IG5v
ZGVJZDsKICAgICAgICAgaWYgKG5vZGVJZCkKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
aGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOworICAgICAgICAgICAgSW5zcGVjdG9yQWdlbnQuaGln
aGxpZ2h0RE9NTm9kZShub2RlSWQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JB
Z2VudC5oaWRlRE9NTm9kZUhpZ2hsaWdodCgpOwogICAgIH0sCiAKICAgICBoaWdobGlnaHRET01O
b2RlRm9yVHdvU2Vjb25kczogZnVuY3Rpb24obm9kZUlkKQpAQCAtNTUwLDIzICs1NTAsMjMgQEAg
V2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IuY3VycmVudFBhbmVsKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdEFjdGl2ZVBhbmVsKTsKICAgICB9Ci0gICAgSW5z
cGVjdG9yQmFja2VuZC5wb3B1bGF0ZVNjcmlwdE9iamVjdHMob25Qb3B1bGF0ZVNjcmlwdE9iamVj
dHMpOworICAgIEluc3BlY3RvckFnZW50LnBvcHVsYXRlU2NyaXB0T2JqZWN0cyhvblBvcHVsYXRl
U2NyaXB0T2JqZWN0cyk7CiAKICAgICBpZiAoUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFi
bGVkIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQpCiAgICAgICAgIHRo
aXMuZGVidWdnZXJNb2RlbC5lbmFibGVEZWJ1Z2dlcigpOwogICAgIGlmIChQcmVmZXJlbmNlcy5w
cm9maWxlckFsd2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5h
YmxlZCkKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVQcm9maWxlcigpOworICAgICAg
ICBJbnNwZWN0b3JBZ2VudC5lbmFibGVQcm9maWxlcigpOwogICAgIGlmIChXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQpCi0gICAgICAgIEluc3BlY3RvckJhY2tlbmQu
c2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQodHJ1ZSk7CisgICAgICAgIENvbnNvbGVBZ2VudC5zZXRN
b25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsKIAotICAgIEluc3BlY3RvckJhY2tlbmQuc2V0Q29u
c29sZU1lc3NhZ2VzRW5hYmxlZCh0cnVlKTsKKyAgICBDb25zb2xlQWdlbnQuc2V0Q29uc29sZU1l
c3NhZ2VzRW5hYmxlZCh0cnVlKTsKIAogICAgIGZ1bmN0aW9uIHByb3BlcnR5TmFtZXNDYWxsYmFj
ayhuYW1lcykKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NOYW1lQ29tcGxldGlvbnMg
PSBuZXcgV2ViSW5zcGVjdG9yLkNTU0NvbXBsZXRpb25zKG5hbWVzKTsKICAgICB9CiAgICAgLy8g
QXMgYSBET01BZ2VudCBtZXRob2QsIHRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBmcm9u
dGVuZCBoYXMgbG9hZGVkIGFuZCB0aGUgYWdlbnQgaXMgYXZhaWxhYmxlLgotICAgIEluc3BlY3Rv
ckJhY2tlbmQuZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhwcm9wZXJ0eU5hbWVzQ2FsbGJhY2sp
OworICAgIENTU0FnZW50LmdldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMocHJvcGVydHlOYW1lc0Nh
bGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLmFkZFBhbmVsVG9vbGJhckljb24gPSBmdW5jdGlv
bih0b29sYmFyRWxlbWVudCwgcGFuZWwsIHByZXZpb3VzVG9vbGJhckl0ZW0pCkBAIC03MjcsNyAr
NzI3LDcgQEAgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJM
LCBpblJlc291cmNlc1BhbmVsKQogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNl
cy5zaG93UmVzb3VyY2UocmVzb3VyY2UpOwogICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJyZXNvdXJjZXMiKTsKICAgICB9IGVsc2UKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5vcGVu
SW5JbnNwZWN0ZWRXaW5kb3cocmVzb3VyY2UgPyByZXNvdXJjZS51cmwgOiByZXNvdXJjZVVSTCk7
CisgICAgICAgIEluc3BlY3RvckFnZW50Lm9wZW5Jbkluc3BlY3RlZFdpbmRvdyhyZXNvdXJjZSA/
IHJlc291cmNlLnVybCA6IHJlc291cmNlVVJMKTsKIH0KIAogV2ViSW5zcGVjdG9yLl9yZWdpc3Rl
clNob3J0Y3V0cyA9IGZ1bmN0aW9uKCkKQEAgLTg3NSwxMyArODc1LDEzIEBAIFdlYkluc3BlY3Rv
ci5kb2N1bWVudEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIAogICAgICAgICBjYXNlICJVKzAw
NTIiOiAvLyBSIGtleQogICAgICAgICAgICAgaWYgKChldmVudC5tZXRhS2V5ICYmIGlzTWFjKSB8
fCAoZXZlbnQuY3RybEtleSAmJiAhaXNNYWMpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWxvYWRQYWdlKGV2ZW50LnNoaWZ0S2V5KTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JBZ2VudC5yZWxvYWRQYWdlKGV2ZW50LnNoaWZ0S2V5KTsKICAgICAgICAgICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgIkY1IjoKICAgICAgICAgICAgIGlmICghaXNNYWMpCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxvYWRQYWdlKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQu
c2hpZnRLZXkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvckFnZW50LnJlbG9hZFBhZ2UoZXZl
bnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSk7CiAgICAgICAgICAgICBicmVhazsKICAgICB9
CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>