<?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>63907</bug_id>
          
          <creation_ts>2011-07-04 07:34:31 -0700</creation_ts>
          <short_desc>Web Inspector: implement settings panel.</short_desc>
          <delta_ts>2011-07-04 07:49:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>431927</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-04 07:34:31 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431928</commentid>
    <comment_count>1</comment_count>
      <attachid>99630</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-04 07:36:13 -0700</bug_when>
    <thetext>Created attachment 99630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431930</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-04 07:49:03 -0700</bug_when>
    <thetext>Committed r90365: &lt;http://trac.webkit.org/changeset/90365&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99630</attachid>
            <date>2011-07-04 07:36:13 -0700</date>
            <delta_ts>2011-07-04 07:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63907-20110704183611.patch</filename>
            <type>text/plain</type>
            <size>66065</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTAzNTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtcHJlc2VydmUtbG9nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLXByZXNlcnZlLWxvZy5odG1sCmluZGV4IGY0NTc4NDc0NDFi
ZmQ1MWNjNzg3OTMzZGI5MTVlNzVkN2ZkNTNlMzYuLmIzMmU5MjZlZTUxZDk0NGNjNGQ3ODRkOWMy
MGYzMWRjZjQ4ZjE3NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtcHJlc2VydmUtbG9nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1wcmVzZXJ2ZS1sb2cuaHRtbApAQCAtNSwxMiArNSwxMSBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3Nh
Z2UoCi0gICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2Fn
ZSgiUEFTUyIpKTsKLSAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9n
ID0gdHJ1ZTsKKyAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRNZXNzYWdlKFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZSgiUEFTUyIpKTsKKyAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLnNldCh0cnVlKTsKICAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2UoZnVuY3Rpb24oKSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2Vy
dmVDb25zb2xlTG9nID0gZmFsc2U7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVz
ZXJ2ZUNvbnNvbGVMb2cuc2V0KGZhbHNlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjI0MzEzNDdhY2Q2OTQzZGM4NDdi
MzM5MTdkYTgyNTFkNWFiMTVjLi4yZjM2MjZkYzhhZDcxMWZiYzU3MDFkMDJjNjdjZjM3NmI2ZTlh
MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDExLTA3LTA0ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBs
ZW1lbnQgc2V0dGluZ3MgcGFuZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MzkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUuX3NhdmVCcmVha3BvaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0
ZW5lckJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9zYXZlQnJlYWtwb2ludHMpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5tb25pdG9yaW5nWEhSSXRlbUFj
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9oYW5k
bGVDb250ZXh0TWVudUV2ZW50LmdldCBwcmVzZXJ2ZUxvZ0l0ZW1BY3Rpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fbW9uaXRvcmluZ1hIUkVuYWJsZWRT
ZXR0aW5nQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90
eXBlLl9yZWdpc3RlclNob3J0Y3V0cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9zYXZlQnJlYWtwb2ludHMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
c2F2ZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
X2NvbnRleHRNZW51RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbC5wcm90b3R5cGUuX2RvbVdvcmRXcmFwU2V0dGluZ0NoYW5nZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9yZWdpc3RlclNob3J0Y3V0cyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUucHJvdG90
eXBlKToKKyAgICAgICAgKCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2Ny
ZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4ucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNhdmVTaWRlYmFyV2lkdGgp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudC5wcm90b3R5cGUu
b25leHBhbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVt
ZW50LnByb3RvdHlwZS5zZXQgb25jb2xsYXBzZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc291cmNlRmlsZUFkZGVkLmdldCBpZik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc2V0UGF1c2VPbkV4Y2VwdGlvbnMuY2FsbGJhY2sp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVNp
ZGViYXJCdXR0b25BbmRSZWdpc3RlclNob3J0Y3V0cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3MucHJvdG90eXBlLmluc3RhbGxBcHBsaWNhdGlv
blNldHRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNldHRpbmcucHJvdG90eXBlLmFkZENoYW5nZUxpc3RlbmVyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZXR0aW5nLnByb3RvdHlwZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZy5wcm90b3R5cGUuZ2V0IHZhcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2V0dGluZy5wcm90b3R5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmcucHJvdG90eXBlLnNldCBpZik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5nc1NjcmVlbi5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NTY3JlZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlw
ZS5fYXBwZW5kU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4u
cHJvdG90eXBlLl9jb2x1bW5FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5n
c1NjcmVlbi5wcm90b3R5cGUuX2NyZWF0ZUNoZWNrYm94U2V0dGluZy5nZXQgbGlzdGVuZXIpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fY3JlYXRlUmFk
aW9TZXR0aW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVl
bi5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hv
cnRjdXRzSGVscC5qcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaG9ydGN1dHNTY3JlZW4pOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLnJlZ2lzdGVyU2hv
cnRjdXRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNT
aWRlYmFyUGFuZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAg
KC5oZWxwLXdpbmRvdy1tYWluKToKKyAgICAgICAgKGJvZHkuYXR0YWNoZWQgLmhlbHAtd2luZG93
LW1haW4pOgorICAgICAgICAoLmhlbHAtd2luZG93LWNhcHRpb24pOgorICAgICAgICAoYm9keS5h
dHRhY2hlZCAuaGVscC13aW5kb3ctY2FwdGlvbik6CisgICAgICAgICguaGVscC1jb250ZW50KToK
KyAgICAgICAgKC5oZWxwLWNsb3NlLWJ1dHRvbik6CisgICAgICAgIChib2R5LmF0dGFjaGVkIC5o
ZWxwLWNsb3NlLWJ1dHRvbik6CisgICAgICAgIChib2R5LmF0dGFjaGVkIC5oZWxwLWNvbnRlbnQp
OgorICAgICAgICAoLmhlbHAtdGFibGUpOgorICAgICAgICAoYm9keS5wbGF0Zm9ybS1tYWMgLmhl
bHAta2V5KToKKyAgICAgICAgKC5oZWxwLWNvbWJpbmUta2V5cyk6CisgICAgICAgICguaGVscC1j
b250ZW50IHApOgorICAgICAgICAoLmhlbHAtY29udGVudCBmaWVsZHNldCk6CisgICAgICAgICgu
aGVscC1jb250ZW50IGZpZWxkc2V0IHApOgorICAgICAgICAoLmhlbHAtY29udGVudCBwLmhlbHAt
c2VjdGlvbik6CisgICAgICAgICguaGVscC1zZWN0aW9uLXRpdGxlKToKKyAgICAgICAgKC5oZWxw
LWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF0pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKGJ1dHRvbi5zZXR0aW5ncy1zdGF0dXMtYmFy
LWl0ZW0pOgorICAgICAgICAoLnNldHRpbmdzLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2Ny
ZWF0ZUdsb2JhbFN0YXR1c0Jhckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fdG9nZ2xl
QXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fdG9nZ2xlU2V0dGluZ3MpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuZG9jdW1lbnRLZXlEb3duKToKKwogMjAxMS0wNy0wNCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CmluZGV4IDJmYjBkOGVkZWQxMWRkMzkwNzc1OTIxMTlmMmRmOWJiMTMzYTdkY2QuLmJmMDMyZDAz
MDViYTJkNzYyNjliNzMyNTIzOTkzZmQzNWNmMmYwZGYgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gK
ZGVsdGEgMTE1CnpjbVoyK2Z3fUpqXjlKUiQ+Xj08bjRDeEZDbFEqb0Q2KWsyXlZ1KW8+VjZYKlpC
P2NzISQ/VjU8SHJ1YURGJkVCKApyQ30ke1RDOytuWmZDfT5fN2hEcFp7OUJmNXZoKl92VUlqRTYr
c1cqZ21UaXVHY0E2MFljUH1GMgoKZGVsdGEgMTU1CnpjbWVDWHpgV3VEXjlKUiRsUSRsY2t5Yz52
VmFSN2wyZnxFLUpScXNXNVgrI3pVPDxAYmxRJGZhPCVHKm03VnQySAp6PmN9Q1cxMWI7RnYzY3Aq
NiFYZFQ3dWhFM0thflUxJUlzUWAtIz11VntQJjN2UCl1YnFoO09VVXdifVJDS31HOzYKQ2o0eUVq
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGQ4MTdhMGFjYThjMzNlNmYzYTE0MzUzZTJiNTcyODMyOWQ4
OGI0Y2IuLjI4OTIwZWMxOTJhMTVlMzUxMmEwN2U5ZGMyOTNkOWZmZGViODI1NjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTYzMzIsNyArNjMzMiw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvU2hvcnRjdXRzSGVscC5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9TaG9ydGN1dHNTY3JlZW4uanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3NTY3JlZW4uanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2hv
d01vcmVEYXRhR3JpZE5vZGUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
U2VjdGlvbi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5q
cycsCkBAIC02NDIzLDYgKzY0MjQsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvSW1hZ2VzL3BhbmVBZGRCdXR0b25zLnBuZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9JbWFnZXMvcGFuZUJvdHRvbUdyb3cucG5nJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvZnJvbnQtZW5kL0ltYWdlcy9wYW5lQm90dG9tR3Jvd0FjdGl2ZS5wbmcnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzL3BhbmVGaWx0ZXJCdXR0b25zLnBuZycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvcGFuZUdyb3dIYW5kbGVMaW5l
LnBuZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvcGFuZVJlZnJl
c2hCdXR0b25zLnBuZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMv
cGFuZVNldHRpbmdzQnV0dG9ucy5wbmcnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCBmNThiYTU3ZGZjMzg5NzY1MDRhODdhYzc0NzhlYzA2NDBk
MjBhNGEyLi4xM2IwNzU5ZjMwOGI5ZmI4ZThmOTM5ZDAzYmQ3ODc4ZTc4MmNjMmUwIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjgyOTcsNyAr
NjgyOTcsMTEgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU2hvcnRjdXRzSGVscC5qcyIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNldHRpbmdzU2NyZWVuLmpzIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXGZyb250LWVuZFxTaG9ydGN1dHNTY3JlZW4uanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJ
CQkJPEZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwppbmRleCA0NDQ3ZmFhNjdiNDUzNmM1NmZj
NDJhZjVmNDg3NjBlNGUyOTcyZDBjLi43MzJjOGZjMzE1Y2ZjZjAyYmU3OTEwZGNjOTNmMzMwNzkx
MDM4NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCkBAIC00MDYsMTIgKzQwNiwxMiBAQCBX
ZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHZhciBicmVha3BvaW50cyA9IFtdOwogICAgICAgICBmb3IgKHZhciB1cmwgaW4gdGhpcy5f
YnJlYWtwb2ludEVsZW1lbnRzKQogICAgICAgICAgICAgYnJlYWtwb2ludHMucHVzaCh7IHVybDog
dXJsLCBlbmFibGVkOiB0aGlzLl9icmVha3BvaW50RWxlbWVudHNbdXJsXS5fY2hlY2tib3hFbGVt
ZW50LmNoZWNrZWQgfSk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy54aHJCcmVha3Bv
aW50cyA9IGJyZWFrcG9pbnRzOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MueGhyQnJl
YWtwb2ludHMuc2V0KGJyZWFrcG9pbnRzKTsKICAgICB9LAogCiAgICAgX3Jlc3RvcmVCcmVha3Bv
aW50czogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLnhockJyZWFrcG9pbnRzOworICAgICAgICB2YXIgYnJlYWtwb2ludHMg
PSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MueGhyQnJlYWtwb2ludHMuZ2V0KCk7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAg
IHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbaV07CiAgICAgICAgICAgICBpZiAoYnJlYWtw
b2ludCAmJiB0eXBlb2YgYnJlYWtwb2ludC51cmwgPT09ICJzdHJpbmciKQpAQCAtNTg5LDEyICs1
ODksMTIgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50SXRlbXNbZXZl
bnROYW1lXS5jaGVja2JveC5jaGVja2VkKQogICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRzLnB1
c2goeyBldmVudE5hbWU6IGV2ZW50TmFtZSB9KTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHM7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5ldmVudExpc3RlbmVyQnJlYWtwb2ludHMuc2V0
KGJyZWFrcG9pbnRzKTsKICAgICB9LAogCiAgICAgX3Jlc3RvcmVCcmVha3BvaW50czogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLnNldHRp
bmdzLmV2ZW50TGlzdGVuZXJCcmVha3BvaW50czsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0g
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmV2ZW50TGlzdGVuZXJCcmVha3BvaW50cy5nZXQoKTsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tpXTsKICAgICAgICAgICAgIGlm
IChicmVha3BvaW50ICYmIHR5cGVvZiBicmVha3BvaW50LmV2ZW50TmFtZSA9PT0gInN0cmluZyIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
cwppbmRleCA2NTE1NGRjMmIzNWJmMWVmOGYwMDUzNzVkNGJjNzhmMTU5ODQ2OWI4Li40MDJlNzdi
OTNhMjdjNDZhYmU3MjZmYTQ3ZDU3NjFhMmE4YTUzYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTQ4LDcgKzQ4LDcgQEAg
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAgIHRoaXMucHJv
bXB0RWxlbWVudC5jbGFzc05hbWUgPSAic291cmNlLWNvZGUiOwogICAgIHRoaXMucHJvbXB0RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fcHJvbXB0S2V5RG93bi5iaW5k
KHRoaXMpLCB0cnVlKTsKICAgICB0aGlzLnByb21wdCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFBy
b21wdCh0aGlzLnByb21wdEVsZW1lbnQsIHRoaXMuY29tcGxldGlvbnMuYmluZCh0aGlzKSwgRXhw
cmVzc2lvblN0b3BDaGFyYWN0ZXJzICsgIi4iKTsKLSAgICB0aGlzLnByb21wdC5oaXN0b3J5ID0g
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbnNvbGVIaXN0b3J5OworICAgIHRoaXMucHJvbXB0Lmhp
c3RvcnkgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29uc29sZUhpc3RvcnkuZ2V0KCk7CiAKICAg
ICB0aGlzLnRvcEdyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAobnVsbCk7CiAg
ICAgdGhpcy5tZXNzYWdlc0VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMudG9wR3JvdXAuZWxlbWVu
dCwgdGhpcy5wcm9tcHRFbGVtZW50KTsKQEAgLTk4LDYgKzk4LDggQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAgIH07CiAKICAgICB0aGlzLl9yZWdpc3Rl
ckNvbnNvbGVEb21haW5EaXNwYXRjaGVyKCk7CisKKyAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mu
bW9uaXRvcmluZ1hIUkVuYWJsZWQuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fbW9uaXRvcmluZ1hI
UkVuYWJsZWRTZXR0aW5nQ2hhbmdlZC5iaW5kKHRoaXMpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LkV2ZW50cyA9IHsKQEAgLTE0Nyw3ICsxNDksNyBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBtZXNzYWdlc0NsZWFyZWQ6IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cpCisgICAgICAgICAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLmdldCgpKQogICAgICAgICAgICAg
ICAgICAgICBjb25zb2xlLmNsZWFyTWVzc2FnZXMoKTsKICAgICAgICAgICAgIH0sCiAgICAgICAg
IH0KQEAgLTQ1MiwyMSArNDU0LDI3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250
ZXh0TWVudSgpOwogCi0gICAgICAgIHZhciBtb25pdG9yaW5nWEhSSXRlbUFjdGlvbiA9IGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5tb25pdG9yaW5nWEhS
RW5hYmxlZCA9ICFXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQ7Ci0g
ICAgICAgICAgICBDb25zb2xlQWdlbnQuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoV2ViSW5zcGVj
dG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkKTsKLSAgICAgICAgfS5iaW5kKHRoaXMp
OwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiWE1MSHR0cFJl
cXVlc3QgbG9nZ2luZyIgOiAiWE1MSHR0cFJlcXVlc3QgTG9nZ2luZyIpLCBtb25pdG9yaW5nWEhS
SXRlbUFjdGlvbiwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkKTsK
KyAgICAgICAgZnVuY3Rpb24gbW9uaXRvcmluZ1hIUkl0ZW1BY3Rpb24oKQorICAgICAgICB7Cisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQuc2V0
KCFXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQuZ2V0KCkpOworICAg
ICAgICB9CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbShXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkxvZyBYTUxIdHRwUmVxdWVzdHMiKSwgbW9uaXRvcmluZ1hIUkl0ZW1BY3Rp
b24uYmluZCh0aGlzKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVk
LmdldCgpKTsKIAotICAgICAgICB2YXIgcHJlc2VydmVMb2dJdGVtQWN0aW9uID0gZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByZXNlcnZlQ29uc29sZUxv
ZyA9ICFXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nOwotICAgICAgICB9
LmJpbmQodGhpcyk7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/
ICJQcmVzZXJ2ZSBsb2ciIDogIlByZXNlcnZlIExvZyIpLCBwcmVzZXJ2ZUxvZ0l0ZW1BY3Rpb24s
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cpOworICAgICAgICBmdW5j
dGlvbiBwcmVzZXJ2ZUxvZ0l0ZW1BY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLnNldCghV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLnByZXNlcnZlQ29uc29sZUxvZy5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNw
ZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIlByZXNlcnZlIGxvZyB1cG9uIG5hdmln
YXRpb24iIDogIlByZXNlcnZlIExvZyB1cG9uIE5hdmlnYXRpb24iKSwgcHJlc2VydmVMb2dJdGVt
QWN0aW9uLmJpbmQodGhpcyksIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVM
b2cuZ2V0KCkpOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiQ2xlYXIg
Y29uc29sZSIgOiAiQ2xlYXIgQ29uc29sZSIpLCB0aGlzLnJlcXVlc3RDbGVhck1lc3NhZ2VzLmJp
bmQodGhpcykpOwogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LAogCisg
ICAgX21vbml0b3JpbmdYSFJFbmFibGVkU2V0dGluZ0NoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKGV2ZW50
LmRhdGEpOworICAgIH0sCisKICAgICBfbWVzc2FnZXNTZWxlY3RTdGFydDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uVGltZW91dCkKQEAgLTUxMCw3
ICs1MTgsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICB2YXIgc2hvcnRjdXRMID0gc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImwiLCBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7CiAgICAgICAgIHRoaXMuX3Nob3J0
Y3V0c1tzaG9ydGN1dEwua2V5XSA9IGNsZWFyQ29uc29sZUhhbmRsZXI7CiAKLSAgICAgICAgdmFy
IHNlY3Rpb24gPSBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzSGVscC5zZWN0aW9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ29uc29sZSIpKTsKKyAgICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0
b3Iuc2hvcnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25zb2xl
IikpOwogICAgICAgICB2YXIga2V5cyA9IFdlYkluc3BlY3Rvci5pc01hYygpID8gWyBzaG9ydGN1
dEsubmFtZSwgc2hvcnRjdXRMLm5hbWUgXSA6IFsgc2hvcnRjdXRMLm5hbWUgXTsKICAgICAgICAg
c2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xl
YXIgQ29uc29sZSIpKTsKIApAQCAtNTk2LDcgKzYwNCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzZWxmLnByb21wdC5oaXN0b3J5T2Zmc2V0
ID0gMDsKICAgICAgICAgICAgIHNlbGYucHJvbXB0LnRleHQgPSAiIjsKIAotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbnNvbGVIaXN0b3J5ID0gc2VsZi5wcm9tcHQuaGlzdG9y
eS5zbGljZSgtMzApOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbnNvbGVI
aXN0b3J5LnNldChzZWxmLnByb21wdC5oaXN0b3J5LnNsaWNlKC0zMCkpOwogCiAgICAgICAgICAg
ICBzZWxmLmFkZE1lc3NhZ2UobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZFJlc3VsdChy
ZXN1bHQsIHdhc1Rocm93biwgY29tbWFuZE1lc3NhZ2UpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3BvaW50c1NpZGVi
YXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01CcmVha3Bv
aW50c1NpZGViYXJQYW5lLmpzCmluZGV4IGU1ODExMjM4OWMyZDFiMjM1Y2MxOWM0YWQ3ODRmYmU5
NzA2ZDQ3YjMuLjZjMmY0ODlkMmI0YjA2MzcyOTlhYzA0MzA0NmEyNmI1OGI4NmNjZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQnJlYWtwb2ludHNT
aWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKQEAgLTI2NCw3ICsyNjQsNyBAQCBXZWJJbnNwZWN0
b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgX3NhdmVCcmVh
a3BvaW50czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gW107
Ci0gICAgICAgIHZhciBzdG9yZWRCcmVha3BvaW50cyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5k
b21CcmVha3BvaW50czsKKyAgICAgICAgdmFyIHN0b3JlZEJyZWFrcG9pbnRzID0gV2ViSW5zcGVj
dG9yLnNldHRpbmdzLmRvbUJyZWFrcG9pbnRzLmdldCgpOwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHN0b3JlZEJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIg
YnJlYWtwb2ludCA9IHN0b3JlZEJyZWFrcG9pbnRzW2ldOwogICAgICAgICAgICAgaWYgKGJyZWFr
cG9pbnQudXJsICE9PSB0aGlzLl9pbnNwZWN0ZWRVUkwpCkBAIC0yNzQsNyArMjc0LDcgQEAgV2Vi
SW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl9icmVha3BvaW50RWxlbWVudHNbaWRdOwogICAgICAg
ICAgICAgYnJlYWtwb2ludHMucHVzaCh7IHVybDogdGhpcy5faW5zcGVjdGVkVVJMLCBwYXRoOiBl
bGVtZW50Ll9ub2RlLnBhdGgoKSwgdHlwZTogZWxlbWVudC5fdHlwZSwgZW5hYmxlZDogZWxlbWVu
dC5fY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgfSk7CiAgICAgICAgIH0KLSAgICAgICAgV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmRvbUJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHM7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5kb21CcmVha3BvaW50cy5zZXQoYnJlYWtwb2ludHMpOwogICAg
IH0sCiAKICAgICByZXN0b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKCkKQEAgLTI5Miw3ICsyOTIs
NyBAQCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChub2RlLCBicmVha3BvaW50c1tp
XS50eXBlLCBicmVha3BvaW50c1tpXS5lbmFibGVkKTsKICAgICAgICAgfQogCi0gICAgICAgIHZh
ciBicmVha3BvaW50cyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kb21CcmVha3BvaW50czsKKyAg
ICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRvbUJyZWFrcG9p
bnRzLmdldCgpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwog
ICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsICE9PSB0aGlzLl9pbnNwZWN0ZWRVUkwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggNDhkMzMwOWRlNTkwMzA0NjBlYzAzZGM4
NDEwMmZjMzQ4MzNkNTY2OC4uZTMyMzc4NjdmNGZjN2YzNjY4OTU1NGM1ZTFjZTVkYWY0ZDYxNDYx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNTA1LDcgKzUwNSw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAg
IF9yZXN0b3JlQnJlYWtwb2ludHNGcm9tU2V0dGluZ3M6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHZhciBicmVha3BvaW50cyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50czsK
KyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9p
bnRzLmdldCgpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludERhdGEgPSBicmVha3BvaW50c1tp
XTsKICAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSBicmVha3BvaW50RGF0YS5zb3VyY2VG
aWxlSWQ7CkBAIC01NTksNyArNTU5LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgc2VyaWFsaXplZEJyZWFrcG9pbnRz
W2ldID0gYnJlYWtwb2ludENvcHk7CiAgICAgICAgIH0KIAotICAgICAgICBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MuYnJlYWtwb2ludHMgPSBzZXJpYWxpemVkQnJlYWtwb2ludHM7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50cy5zZXQoc2VyaWFsaXplZEJyZWFrcG9pbnRz
KTsKICAgICB9LAogCiAgICAgX2RlYnVnZ2VyUGF1c2VkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXgg
ZWQwM2Y2YzU0ZTE1Zjc4NDMzMTUyZTY1YzE1M2Y1OWExYmI4NWFlOS4uYmE5ZmRiOWE0ODJhYTZk
Y2RlMzdlMTM4OTJmY2EzZjhkMjIwNjY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtMzUsOCArMzUsOSBAQCBXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNvbnRlbnRFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5jb250ZW50RWxl
bWVudC5pZCA9ICJlbGVtZW50cy1jb250ZW50IjsKICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNs
YXNzTmFtZSA9ICJvdXRsaW5lLWRpc2Nsb3N1cmUgc291cmNlLWNvZGUiOwotICAgIGlmICghV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLmRvbVdvcmRXcmFwKQorICAgIGlmICghV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLmRvbVdvcmRXcmFwLmdldCgpKQogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNs
YXNzTGlzdC5hZGQoIm5vd3JhcCIpOworICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kb21Xb3Jk
V3JhcC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLl9kb21Xb3JkV3JhcFNldHRpbmdDaGFuZ2VkLmJp
bmQodGhpcykpOwogCiAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
b250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51RXZlbnRGaXJlZC5iaW5kKHRoaXMpLCB0cnVl
KTsKIApAQCAtMjcwLDMxICsyNzEsMzIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJv
dG90eXBlID0gewogCiAgICAgX2NvbnRleHRNZW51RXZlbnRGaXJlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICBmdW5jdGlvbiBpc1RleHRXcmFwcGVkKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuICF0aGlzLmNvbnRlbnRFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIm5vd3Jh
cCIpOwotICAgICAgICB9Ci0KICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlV29yZFdyYXAoKQogICAg
ICAgICB7Ci0gICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
Im5vd3JhcCIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRvbVdvcmRXcmFw
ID0gIXRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJub3dyYXAiKTsKLQot
ICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy50cmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQodGhpcy5mb2N1c2VkRE9NTm9kZSk7Ci0gICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQp
Ci0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQudXBkYXRlU2VsZWN0aW9uKCk7IC8vIFJlY2Fs
Y3VsYXRlIHNlbGVjdGlvbiBoaWdobGlnaHQgZGltZW5zaW9ucy4KKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5kb21Xb3JkV3JhcC5zZXQoIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5k
b21Xb3JkV3JhcC5nZXQoKSk7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgY29udGV4dE1lbnUg
PSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KCk7Ci0KICAgICAgICAgdmFyIHBvcHVsYXRl
ZCA9IHRoaXMudHJlZU91dGxpbmUucG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgZXZl
bnQpOwogICAgICAgICBpZiAocG9wdWxhdGVkKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kU2VwYXJhdG9yKCk7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMo
KSA/ICJXb3JkIHdyYXAiIDogIldvcmQgV3JhcCIpLCB0b2dnbGVXb3JkV3JhcC5iaW5kKHRoaXMp
LCBpc1RleHRXcmFwcGVkLmNhbGwodGhpcykpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRD
aGVja2JveEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNh
c2VNZW51VGl0bGVzKCkgPyAiV29yZCB3cmFwIiA6ICJXb3JkIFdyYXAiKSwgdG9nZ2xlV29yZFdy
YXAuYmluZCh0aGlzKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRvbVdvcmRXcmFwLmdldCgpKTsK
IAogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LAogCisgICAgX2RvbVdv
cmRXcmFwU2V0dGluZ0NoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYg
KGV2ZW50LmRhdGEpCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoIm5vd3JhcCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLmNvbnRlbnRF
bGVtZW50LmFkZFN0eWxlQ2xhc3MoIm5vd3JhcCIpOworCisgICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IHRoaXMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHRoaXMuZm9jdXNlZERPTU5vZGUp
OworICAgICAgICBpZiAodHJlZUVsZW1lbnQpCisgICAgICAgICAgICB0cmVlRWxlbWVudC51cGRh
dGVTZWxlY3Rpb24oKTsgLy8gUmVjYWxjdWxhdGUgc2VsZWN0aW9uIGhpZ2hsaWdodCBkaW1lbnNp
b25zLgorICAgIH0sCisKICAgICBwb3B1bGF0ZUhyZWZDb250ZXh0TWVudTogZnVuY3Rpb24oY29u
dGV4dE1lbnUsIGV2ZW50LCBhbmNob3JFbGVtZW50KQogICAgIHsKICAgICAgICAgaWYgKCFhbmNo
b3JFbGVtZW50LmhyZWYpCkBAIC0xMDYwLDcgKzEwNjIsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3JlZ2lzdGVyU2hvcnRjdXRzOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB2YXIgc2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dDsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzSGVscC5z
ZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWxlbWVudHMgUGFuZWwiKSk7CisgICAgICAg
IHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRWxlbWVudHMgUGFuZWwiKSk7CiAgICAgICAgIHZhciBrZXlzID0g
WwogICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlVw
KSwKICAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5E
b3duKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVu
dExpc3RlbmVyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCmluZGV4IDZiNGUwNDBlMTJmZGNlMThh
NDU2YTQxNjNkNTRlODU4ZDU3OGI0OTMuLjMzMzIzYjBkOTQyNTRiMGY1OGVkY2ZmMzJiOTBiNDFl
NWU4MjIwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKQEAgLTQ3LDcgKzQ3LDcg
QEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUgPSBmdW5jdGlvbigpCiAg
ICAgb3B0aW9uLmxhYmVsID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWxlY3RlZCBOb2RlIE9u
bHkiKTsKICAgICB0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudC5hcHBlbmRDaGlsZChvcHRpb24p
OwogCi0gICAgdmFyIGZpbHRlciA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5ldmVudExpc3RlbmVy
c0ZpbHRlcjsKKyAgICB2YXIgZmlsdGVyID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmV2ZW50TGlz
dGVuZXJzRmlsdGVyLmdldCgpOwogICAgIGlmIChmaWx0ZXIgPT09ICJhbGwiKQogICAgICAgICB0
aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudFswXS5zZWxlY3RlZCA9IHRydWU7CiAgICAgZWxzZSBp
ZiAoZmlsdGVyID09PSAic2VsZWN0ZWQiKQpAQCAtMTE1LDcgKzExNSw3IEBAIFdlYkluc3BlY3Rv
ci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICBfY2hhbmdlU2V0
dGluZzogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgc2VsZWN0ZWRPcHRpb24g
PSB0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudFt0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudC5z
ZWxlY3RlZEluZGV4XTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmV2ZW50TGlzdGVu
ZXJzRmlsdGVyID0gc2VsZWN0ZWRPcHRpb24udmFsdWU7CisgICAgICAgIFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5ldmVudExpc3RlbmVyc0ZpbHRlci5zZXQoc2VsZWN0ZWRPcHRpb24udmFsdWUpOwog
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zZWN0aW9ucy5sZW5ndGg7ICsraSkK
ICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNbaV0udXBkYXRlKCk7CkBAIC0xNDUsNyArMTQ1LDcg
QEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICAvLyBBIEZpbHRlcmVkIEFycmF5IHNpbXBsaWZpZXMgd2hlbiB0byBjcmVhdGUg
Y29ubmVjdG9ycwogICAgICAgICB2YXIgZmlsdGVyZWRFdmVudExpc3RlbmVycyA9IHRoaXMuZXZl
bnRMaXN0ZW5lcnM7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZXZlbnRMaXN0
ZW5lcnNGaWx0ZXIgPT09ICJzZWxlY3RlZCIpIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5ldmVudExpc3RlbmVyc0ZpbHRlci5nZXQoKSA9PSAic2VsZWN0ZWQiKSB7CiAgICAg
ICAgICAgICBmaWx0ZXJlZEV2ZW50TGlzdGVuZXJzID0gW107CiAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRoaXMuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgICAgICB2YXIgZXZlbnRMaXN0ZW5lciA9IHRoaXMuZXZlbnRMaXN0ZW5lcnNbaV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMKaW5kZXgg
YWE0NzcxMmVhNzkyZjFlN2FiYTRiY2MyOTA4Mzg3ZmUwNzM0ZDNhMC4uNGMyOWZkNmI0YTk1Yjky
ZTRiNDc3ZmM3Y2RjYThmNjVlMDFjMWZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSGVscFNjcmVlbi5qcwpAQCAtNDMsMzggKzQzLDQyIEBAIFdlYkluc3Bl
Y3Rvci5IZWxwU2NyZWVuID0gZnVuY3Rpb24odGl0bGUpCiAgICAgY2FwdGlvbldpbmRvdy5jcmVh
dGVDaGlsZCgiaDEiLCAiaGVscC13aW5kb3ctdGl0bGUiKS50ZXh0Q29udGVudCA9IHRpdGxlOwog
CiAgICAgY2xvc2VCdXR0b24udGV4dENvbnRlbnQgPSAiXHUyNzE2IjsgLy8gQ29kZSBzdGFuZHMg
Zm9yIEhFQVZZIE1VTFRJUExJQ0FUSU9OIFguCi0gICAgY2xvc2VCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9oaWRlLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICBjbG9zZUJ1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuaGlkZS5iaW5kKHRoaXMpLCBmYWxz
ZSk7CiAgICAgdGhpcy5fY2xvc2VLZXlzID0gWwogICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlzLkVudGVyLmNvZGUsCiAgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0LktleXMuRXNjLmNvZGUsCiAgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0LktleXMuU3BhY2UuY29kZSwKICAgICBdOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQodGhpcy5fZWxlbWVudCk7CiB9CiAKIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLnByb3Rv
dHlwZSA9IHsKLSAgICBzaG93OiBmdW5jdGlvbigpCisgICAgc2hvdzogZnVuY3Rpb24ob25IaWRl
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lzU2hvd24pCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwor
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpOwogICAgICAg
ICB0aGlzLl9pc1Nob3duID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fb25IaWRlID0gb25IaWRlOwog
ICAgICAgICB0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCA9IFdlYkluc3BlY3Rvci5jdXJyZW50
Rm9jdXNFbGVtZW50OwogICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9
IHRoaXMuY29udGVudEVsZW1lbnQ7CiAgICAgfSwKIAotICAgIF9oaWRlOiBmdW5jdGlvbigpCisg
ICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5faXNTaG93biA9IGZhbHNl
OwotICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KTsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLl9wcmV2aW91c0ZvY3VzRWxl
bWVudDsKKyAgICAgICAgaWYgKHRoaXMuX29uSGlkZSkgeworICAgICAgICAgICAgdGhpcy5fb25I
aWRlKCk7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fb25IaWRlOworICAgICAgICB9CiAgICAg
fSwKIAogICAgIF9vbktleURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX2lzU2hvd24gJiYgdGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkg
Pj0gMCkgewotICAgICAgICAgICAgdGhpcy5faGlkZSgpOworICAgICAgICAgICAgdGhpcy5oaWRl
KCk7CiAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgfQogICAg
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtJdGVtVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a0l0ZW1WaWV3LmpzCmluZGV4IDg4MGNmNjA1Yjk0MGYwMGYwODIwYzk5NjgwY2U1ZjhmNDczZDc4
ZDYuLmU3NmU0MDhlNWE0NGUxMmNmOGY1OTE1MjhmMGUzZGMwM2VjOTViMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3Lmpz
CkBAIC02Nyw3ICs2Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcucHJvdG90eXBl
ID0gewogICAgIF9zZWxlY3RUYWI6IGZ1bmN0aW9uKHRhYklkKQogICAgIHsKICAgICAgICAgaWYg
KCF0YWJJZCkKLSAgICAgICAgICAgIHRhYklkID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291
cmNlVmlld1RhYjsKKyAgICAgICAgICAgIHRhYklkID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJl
c291cmNlVmlld1RhYi5nZXQoKTsKIAogICAgICAgICBpZiAoIXRoaXMuX3RhYmJlZFBhbmUuc2Vs
ZWN0VGFiKHRhYklkKSkgewogICAgICAgICAgICAgdGhpcy5faXNJbkZhbGxiYWNrU2VsZWN0aW9u
ID0gdHJ1ZTsKQEAgLTc5LDcgKzc5LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgX3RhYlNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIGlmIChldmVudC5kYXRhLmlzVXNlckdlc3R1cmUpCi0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MucmVzb3VyY2VWaWV3VGFiID0gZXZlbnQuZGF0YS50YWJJZDsKKyAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZVZpZXdUYWIuc2V0KGV2ZW50LmRh
dGEudGFiSWQpOwogICAgICAgICB0aGlzLl9pbnN0YWxsSGlnaGxpZ2h0U3VwcG9ydChldmVudC5k
YXRhLnZpZXcpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggZjYyYjg0NzcyZjc0M2EwYzI1MTIwNGZjOTQx
MDZiOWRhNTJmOTdlYi4uOGI2N2JjY2JjZWVlMzJlNDEyNDIzOWVlNjQ3MDIwMTgzMzMxNWY1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFu
ZWwuanMKQEAgLTc0LDggKzc0LDggQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbCA9IGZ1bmN0
aW9uKCkKICAgICB0aGlzLl9jcmVhdGVGaWx0ZXJTdGF0dXNCYXJJdGVtcygpOwogICAgIHRoaXMu
X2NyZWF0ZVN1bW1hcnlCYXIoKTsKIAotICAgIGlmICghV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJl
c291cmNlc0xhcmdlUm93cykKLSAgICAgICAgdGhpcy5fc2V0TGFyZ2VyUmVzb3VyY2VzKFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3MpOworICAgIGlmICghV2ViSW5zcGVj
dG9yLnNldHRpbmdzLnJlc291cmNlc0xhcmdlUm93cy5nZXQoKSkKKyAgICAgICAgdGhpcy5fc2V0
TGFyZ2VyUmVzb3VyY2VzKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3Mu
Z2V0KCkpOwogCiAgICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9w
b3ZlckhlbHBlcih0aGlzLmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlz
KSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgLy8gRW5hYmxlIGZh
c3RlciBoaW50LgpAQCAtNjA5LDcgKzYwOSw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jbGVhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX3Jlc2V0LmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgICAgICB0aGlz
Ll9sYXJnZXJSZXNvdXJjZXNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRv
bihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzZSBzbWFsbCByZXNvdXJjZSByb3dzLiIpLCAibmV0
d29yay1sYXJnZXItcmVzb3VyY2VzLXN0YXR1cy1iYXItaXRlbSIpOwotICAgICAgICB0aGlzLl9s
YXJnZXJSZXNvdXJjZXNCdXR0b24udG9nZ2xlZCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5yZXNv
dXJjZXNMYXJnZVJvd3M7CisgICAgICAgIHRoaXMuX2xhcmdlclJlc291cmNlc0J1dHRvbi50b2dn
bGVkID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhcmdlUm93cy5nZXQoKTsKICAg
ICAgICAgdGhpcy5fbGFyZ2VyUmVzb3VyY2VzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fdG9nZ2xlTGFyZ2VyUmVzb3VyY2VzLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB9
LAogCkBAIC04NTEsOCArODUxLDggQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5
cGUgPSB7CiAKICAgICBfdG9nZ2xlTGFyZ2VyUmVzb3VyY2VzOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucmVzb3VyY2VzTGFyZ2VSb3dzID0gIVdlYklu
c3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3M7Ci0gICAgICAgIHRoaXMuX3NldExh
cmdlclJlc291cmNlcyhXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucmVzb3VyY2VzTGFyZ2VSb3dzKTsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhcmdlUm93cy5zZXQoIVdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3MuZ2V0KCkpOworICAgICAgICB0
aGlzLl9zZXRMYXJnZXJSZXNvdXJjZXMoV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xh
cmdlUm93cy5nZXQoKSk7CiAgICAgfSwKIAogICAgIF9zZXRMYXJnZXJSZXNvdXJjZXM6IGZ1bmN0
aW9uKGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5q
cwppbmRleCBmYzhjNDAzNzI4ZmNkMjI0OTIxMmIwODRkZjdhMDhhMzU4ZjFjZTY3Li5iZTYxZTU4
ZDVmMjY4MWFlNmIwYmU2MTI4NzJiOWRkMGZkODY1NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTM2NSw3ICszNjUsNyBAQCBXZWJJbnNwZWN0
b3IuUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgcmVzdG9yZVNpZGViYXJXaWR0aDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJXaWR0aCA9IFdlYkluc3BlY3Rvci5zZXR0
aW5nc1t0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5nTmFtZSgpXTsKKyAgICAgICAgdmFyIHNpZGVi
YXJXaWR0aCA9IFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9zaWRlYmFyV2lkdGhTZXR0aW5n
TmFtZSgpXS5nZXQoKTsKICAgICAgICAgdGhpcy51cGRhdGVTaWRlYmFyV2lkdGgoc2lkZWJhcldp
ZHRoKTsKICAgICB9LAogCkBAIC0zNzMsNyArMzczLDcgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaWRlYmFyRWxlbWVudCkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzW3RoaXMuX3Np
ZGViYXJXaWR0aFNldHRpbmdOYW1lKCldID0gdGhpcy5zaWRlYmFyRWxlbWVudC5vZmZzZXRXaWR0
aDsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzW3RoaXMuX3NpZGViYXJXaWR0aFNldHRp
bmdOYW1lKCldLnNldCh0aGlzLnNpZGViYXJFbGVtZW50Lm9mZnNldFdpZHRoKTsKICAgICB9LAog
CiAgICAgdXBkYXRlTWFpblZpZXdXaWR0aDogZnVuY3Rpb24od2lkdGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggN2Zj
ZDdhYTY0MTIwMzIyM2NkZGMyMTIwNDBmOTZkMzI4OGEzOWU5MS4uNWJkMjg4MjlmNTA5OGVkNzJh
YzViYTY4MTE2NDBiNmM0ZjU5MjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMTMxLDcgKzEzMSw3IEBAIFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIoIlByb2ZpbGVyIiwgbmV3IFdlYkluc3BlY3Rvci5Q
cm9maWxlckRpc3BhdGNoZXIodGhpcykpOwogCi0gICAgaWYgKFByZWZlcmVuY2VzLnByb2ZpbGVy
QWx3YXlzRW5hYmxlZCB8fCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkKQor
ICAgIGlmIChQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnByb2ZpbGVyRW5hYmxlZC5nZXQoKSkKICAgICAgICAgUHJvZmlsZXJBZ2VudC5l
bmFibGUoKTsKICAgICBlbHNlIHsKICAgICAgICAgZnVuY3Rpb24gb25Qcm9maWxlckVuZWJsZWQo
ZXJyb3IsIHZhbHVlKSB7CkBAIC02MDAsMTAgKzYwMCwxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3RvZ2dsZVByb2ZpbGluZzogZnVuY3Rpb24ob3B0
aW9uYWxBbHdheXMpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gZmFs
c2U7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkLnNl
dChmYWxzZSk7CiAgICAgICAgICAgICBQcm9maWxlckFnZW50LmRpc2FibGUoKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJs
ZWQgPSAhIW9wdGlvbmFsQWx3YXlzOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LnByb2ZpbGVyRW5hYmxlZC5zZXQoISFvcHRpb25hbEFsd2F5cyk7CiAgICAgICAgICAgICBQcm9m
aWxlckFnZW50LmVuYWJsZSgpOwogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDlhYTky
NzRiMzk0M2JhMjViMTU1YjdkZWE1MjYwZDJjZjEwNTMxMmEuLjMwYWFjMDE3Yjk0Y2RlZWYwN2Iy
NGExNGIyZTlhODIyM2U3YzMwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTE1LDcgKzExNSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfaW5pdERlZmF1bHRT
ZWxlY3Rpb246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBpdGVtVVJMID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhc3RTZWxlY3RlZEl0ZW07CisgICAgICAgIHZhciBp
dGVtVVJMID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhc3RTZWxlY3RlZEl0ZW0u
Z2V0KCk7CiAgICAgICAgIGlmIChpdGVtVVJMKSB7CiAgICAgICAgICAgICBmb3IgKHZhciB0cmVl
RWxlbWVudCA9IHRoaXMuc2lkZWJhclRyZWUuY2hpbGRyZW5bMF07IHRyZWVFbGVtZW50OyB0cmVl
RWxlbWVudCA9IHRyZWVFbGVtZW50LnRyYXZlcnNlTmV4dFRyZWVFbGVtZW50KGZhbHNlLCB0aGlz
LnNpZGViYXJUcmVlLCB0cnVlKSkgewogICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5p
dGVtVVJMID09PSBpdGVtVVJMKSB7CkBAIC05NTUsNyArOTU1LDcgQEAgV2ViSW5zcGVjdG9yLkJh
c2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGl0
ZW1VUkwgPSB0aGlzLml0ZW1VUkw7CiAgICAgICAgIGlmIChpdGVtVVJMKQotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhc3RTZWxlY3RlZEl0ZW0gPSBpdGVtVVJM
OworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhc3RTZWxlY3Rl
ZEl0ZW0uc2V0KGl0ZW1VUkwpOwogICAgIH0sCiAKICAgICBvbnJldmVhbDogZnVuY3Rpb24oKQpA
QCAtMTAxMiwxOCArMTAxMiwxOCBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICAgIG9uYXR0YWNoOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRh
Y2guY2FsbCh0aGlzKTsKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9l
eHBhbmRlZFNldHRpbmdLZXldKQorICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzW3Ro
aXMuX2V4cGFuZGVkU2V0dGluZ0tleV0uZ2V0KCkpCiAgICAgICAgICAgICB0aGlzLmV4cGFuZCgp
OwogICAgIH0sCiAKICAgICBvbmV4cGFuZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzW3RoaXMuX2V4cGFuZGVkU2V0dGluZ0tleV0gPSB0cnVlOworICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3NbdGhpcy5fZXhwYW5kZWRTZXR0aW5nS2V5XS5zZXQo
dHJ1ZSk7CiAgICAgfSwKIAogICAgIG9uY29sbGFwc2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9leHBhbmRlZFNldHRpbmdLZXldID0gZmFs
c2U7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1t0aGlzLl9leHBhbmRlZFNldHRpbmdL
ZXldLnNldChmYWxzZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGE4MGUzYTMxNGY2YTU2MWY3MmNl
OThkYzRhZjRjYzRjYjIyMDZlYzEuLjJiOWRhYzliNjc4NTc2YWI4MmI2YWExYzI5ZDQzNjk1Mjg1
YjEzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0xMDgsNyArMTA4LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bCA9IGZ1bmN0aW9uKCkKIAogICAgIGlmIChQcmVmZXJlbmNlcy5jYW5JbnNwZWN0V29ya2VycyAm
JiBXZWJJbnNwZWN0b3Iud29ya2VyTWFuYWdlcikKICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51LmJpbmQo
dGhpcyksIGZhbHNlKTsKLSAgICBpZiAoUHJlZmVyZW5jZXMuY2FuSW5zcGVjdFdvcmtlcnMgJiYg
V2ViSW5zcGVjdG9yLndvcmtlck1hbmFnZXIgJiYgV2ViSW5zcGVjdG9yLnNldHRpbmdzLndvcmtl
ckluc3BlY3Rpb25FbmFibGVkKSB7CisgICAgaWYgKFByZWZlcmVuY2VzLmNhbkluc3BlY3RXb3Jr
ZXJzICYmIFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyICYmIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy53b3JrZXJJbnNwZWN0aW9uRW5hYmxlZC5nZXQoKSkgewogICAgICAgICBXb3JrZXJBZ2VudC5z
ZXRXb3JrZXJJbnNwZWN0aW9uRW5hYmxlZCh0cnVlKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFu
ZXMud29ya2VyTGlzdCA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lKFdl
Ykluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKTsKICAgICB9IGVsc2UKQEAgLTEyMiw3ICsxMjIsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2lkZWJh
clBhbmVzLnNjb3BlY2hhaW4uZXhwYW5kZWQgPSB0cnVlOwogICAgIHRoaXMuc2lkZWJhclBhbmVz
LmpzQnJlYWtwb2ludHMuZXhwYW5kZWQgPSB0cnVlOwogCi0gICAgdmFyIGhlbHBTZWN0aW9uID0g
V2ViSW5zcGVjdG9yLnNob3J0Y3V0c0hlbHAuc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlNjcmlwdHMgUGFuZWwiKSk7CisgICAgdmFyIGhlbHBTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNo
b3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0cyBQYW5l
bCIpKTsKICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2sucmVnaXN0ZXJTaG9ydGN1dHMo
aGVscFNlY3Rpb24sIHRoaXMucmVnaXN0ZXJTaG9ydGN1dC5iaW5kKHRoaXMpKTsKIAogICAgIHZh
ciBwYW5lbEVuYWJsZXJIZWFkaW5nID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZb3UgbmVlZCB0
byBlbmFibGUgZGVidWdnaW5nIGJlZm9yZSB5b3UgY2FuIHVzZSB0aGUgU2NyaXB0cyBwYW5lbC4i
KTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rp
b24oKQogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVzdW1lZCwg
dGhpcy5fZGVidWdnZXJSZXN1bWVkLCB0aGlzKTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cy5DYWxsRnJhbWVTZWxlY3RlZCwgdGhpcy5fY2FsbEZyYW1lU2VsZWN0ZWQsIHRoaXMp
OwogCi0gICAgdmFyIGVuYWJsZURlYnVnZ2VyID0gUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNF
bmFibGVkIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQ7CisgICAgdmFy
IGVuYWJsZURlYnVnZ2VyID0gUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFibGVkIHx8IFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQuZ2V0KCk7CiAgICAgaWYgKGVuYWJs
ZURlYnVnZ2VyIHx8IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkU2Vzc2lvblNldHRpbmcoImRl
YnVnZ2VyLWVuYWJsZWQiKSA9PT0gInRydWUiKQogICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5lbmFibGVEZWJ1Z2dlcigpOwogfQpAQCAtMjM5LDE0ICsyMzksMTQgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5fYWRkT3B0
aW9uVG9GaWxlc1NlbGVjdChzb3VyY2VGaWxlKTsKIAotICAgICAgICB2YXIgbGFzdFZpZXdlZFVS
TCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZTsKKyAgICAgICAg
dmFyIGxhc3RWaWV3ZWRVUkwgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdFZpZXdlZFNjcmlw
dEZpbGUuZ2V0KCk7CiAgICAgICAgIGlmICh0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQubGVuZ3Ro
ID09PSAxKSB7CiAgICAgICAgICAgICAvLyBPcHRpb24gd2UganVzdCBhZGRlZCBpcyB0aGUgb25s
eSBvcHRpb24gaW4gZmlsZXMgc2VsZWN0LgogICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBzaG93
IGNvcnJlc3BvbmRpbmcgc291cmNlIGZyYW1lIGltbWVkaWF0ZWx5LgogICAgICAgICAgICAgdGhp
cy5fc2hvd1NvdXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5KHNvdXJjZUZpbGUuaWQpOwogICAgICAg
ICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCB2YWx1ZSBvZiBsYXN0Vmlld2VkU2NyaXB0RmlsZSBi
ZWNhdXNlCiAgICAgICAgICAgICAvLyBzb3VyY2UgZnJhbWUgd2FzIHNob3duIGFzIGEgcmVzdWx0
IG9mIGluaXRpYWwgbG9hZC4KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0
Vmlld2VkU2NyaXB0RmlsZSA9IGxhc3RWaWV3ZWRVUkw7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MubGFzdFZpZXdlZFNjcmlwdEZpbGUuc2V0KGxhc3RWaWV3ZWRVUkwpOwogICAg
ICAgICB9IGVsc2UgaWYgKHNvdXJjZUZpbGUudXJsID09PSBsYXN0Vmlld2VkVVJMKQogICAgICAg
ICAgICAgdGhpcy5fc2hvd1NvdXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5KHNvdXJjZUZpbGUuaWQp
OwogICAgIH0sCkBAIC00NTQsNyArNDU0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICBfZGVidWdnZXJXYXNFbmFibGVkOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB0aGlzLl9zZXRQYXVzZU9uRXhjZXB0aW9ucyhXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3MucGF1c2VPbkV4Y2VwdGlvblN0YXRlU3RyaW5nKTsKKyAgICAgICAgdGhpcy5fc2V0UGF1c2VP
bkV4Y2VwdGlvbnMoV2ViSW5zcGVjdG9yLnNldHRpbmdzLnBhdXNlT25FeGNlcHRpb25TdGF0ZVN0
cmluZy5nZXQoKSk7CiAKICAgICAgICAgaWYgKHRoaXMuX2RlYnVnZ2VyRW5hYmxlZCkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTU5Myw3ICs1OTMsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNl
bnRhdGlvbk1vZGVsLnNvdXJjZUZpbGUoc291cmNlRmlsZUlkKTsKICAgICAgICAgaWYgKHNvdXJj
ZUZpbGUudXJsKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxhc3RWaWV3ZWRT
Y3JpcHRGaWxlID0gc291cmNlRmlsZS51cmw7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MubGFzdFZpZXdlZFNjcmlwdEZpbGUuc2V0KHNvdXJjZUZpbGUudXJsKTsKIAogICAgICAg
ICByZXR1cm4gc291cmNlRnJhbWU7CiAgICAgfSwKQEAgLTc0OCw3ICs3NDgsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9w
YXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVz
ZSBvbiB1bmNhdWdodCBleGNlcHRpb25zLlxuQ2xpY2sgdG8gTm90IHBhdXNlIG9uIGV4Y2VwdGlv
bnMuIik7CiAKICAgICAgICAgICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uc3RhdGUg
PSBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRp
bmdzLnBhdXNlT25FeGNlcHRpb25TdGF0ZVN0cmluZyA9IHBhdXNlT25FeGNlcHRpb25zU3RhdGU7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucGF1c2VPbkV4Y2VwdGlvblN0YXRl
U3RyaW5nLnNldChwYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsKICAgICAgICAgfQogICAgICAgICBE
ZWJ1Z2dlckFnZW50LnNldFBhdXNlT25FeGNlcHRpb25zKHBhdXNlT25FeGNlcHRpb25zU3RhdGUs
IGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCkBAIC04NTAsMTAgKzg1MCwxMCBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc3RlcHBp
bmcgPSBmYWxzZTsKIAogICAgICAgICBpZiAodGhpcy5fZGVidWdnZXJFbmFibGVkKSB7Ci0gICAg
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkID0gZmFsc2U7Cisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkLnNldChmYWxz
ZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5kaXNhYmxlRGVidWdn
ZXIoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5kZWJ1Z2dlckVuYWJsZWQgPSAhIW9wdGlvbmFsQWx3YXlzOworICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZC5zZXQoISFvcHRpb25hbEFsd2F5cyk7CiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5lbmFibGVEZWJ1Z2dlcigpOwog
ICAgICAgICB9CiAgICAgfSwKQEAgLTk5MCw3ICs5OTAsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dChz
aG9ydGN1dHNbaV0ua2V5LCBoYW5kbGVyKTsKICAgICAgICAgICAgIHNob3J0Y3V0TmFtZXMucHVz
aChzaG9ydGN1dHNbaV0ubmFtZSk7CiAgICAgICAgIH0KLSAgICAgICAgdmFyIHNlY3Rpb24gPSBX
ZWJJbnNwZWN0b3Iuc2hvcnRjdXRzSGVscC5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U2NyaXB0cyBQYW5lbCIpKTsKKyAgICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3Iuc2hv
cnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHRzIFBhbmVs
IikpOwogICAgICAgICBzZWN0aW9uLmFkZEFsdGVybmF0ZUtleXMoc2hvcnRjdXROYW1lcywgc2hv
cnRjdXREZXNjcmlwdGlvbik7CiAKICAgICAgICAgcmV0dXJuIGJ1dHRvbjsKQEAgLTEwNzcsOCAr
MTA3Nyw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIGZ1bmN0aW9uIGVuYWJsZVdvcmtlckluc3BlY3Rpb24oKQogICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgbmV3VmFsdWUgPSAhV2ViSW5zcGVjdG9yLnNldHRpbmdzLndvcmtlckluc3BlY3Rp
b25FbmFibGVkOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLndvcmtlckluc3Bl
Y3Rpb25FbmFibGVkID0gbmV3VmFsdWU7CisgICAgICAgICAgICB2YXIgbmV3VmFsdWUgPSAhV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLndvcmtlckluc3BlY3Rpb25FbmFibGVkLmdldCgpOworICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLndvcmtlckluc3BlY3Rpb25FbmFibGVkLnNldChu
ZXdWYWx1ZSk7CiAgICAgICAgICAgICBXb3JrZXJBZ2VudC5zZXRXb3JrZXJJbnNwZWN0aW9uRW5h
YmxlZChuZXdWYWx1ZSk7CiAgICAgICAgICAgICBpZiAobmV3VmFsdWUpIHsKICAgICAgICAgICAg
ICAgICB2YXIgZWxlbWVudCA9IHRoaXMuc2lkZWJhclBhbmVzLndvcmtlcnMuZWxlbWVudDsKQEAg
LTEwOTIsNyArMTA5Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodGhpcy5z
aWRlYmFyUGFuZXMud29ya2Vycy5lbGVtZW50LCBlbGVtZW50KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJFbmFibGUgd29ya2VyIGluc3BlY3Rpb24iKSwgZW5hYmxlV29ya2VySW5z
cGVjdGlvbi5iaW5kKHRoaXMpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud29ya2VySW5zcGVjdGlv
bkVuYWJsZWQpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJFbmFibGUgd29ya2VyIGluc3BlY3Rpb24iKSwgZW5hYmxlV29ya2Vy
SW5zcGVjdGlvbi5iaW5kKHRoaXMpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud29ya2VySW5zcGVj
dGlvbkVuYWJsZWQuZ2V0KCkpOwogCiAgICAgICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpz
CmluZGV4IDg1YWM3YmZkZWJkZDJkNTE4ODIyMjlmZTZkOWVjZWRjMTNhZTU5ZDkuLmMxM2VjYjc2
MDllNTU2ZDE3YjI1ODVmOWFkMmRjNzVhNDM2YTFmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtNTcsNiArNTcsOCBAQCB2YXIgUHJl
ZmVyZW5jZXMgPSB7CiAKIFdlYkluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKIHsKKyAg
ICB0aGlzLl9ldmVudFN1cHBvcnQgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdCgpOworCiAgICAg
dGhpcy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKCJjb2xvckZvcm1hdCIsICJoZXgiKTsKICAg
ICB0aGlzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcoImNvbnNvbGVIaXN0b3J5IiwgW10pOwog
ICAgIHRoaXMuaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZygiZGVidWdnZXJFbmFibGVkIiwgZmFs
c2UpOwpAQCAtOTEsMjggKzkzLDUwIEBAIFdlYkluc3BlY3Rvci5TZXR0aW5ncy5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICBpZiAoa2V5IGluIHRoaXMpCiAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXNba2V5XSA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZyhrZXksIGRlZmF1
bHRWYWx1ZSwgdGhpcy5fZXZlbnRTdXBwb3J0KTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5T
ZXR0aW5nID0gZnVuY3Rpb24obmFtZSwgZGVmYXVsdFZhbHVlLCBldmVudFN1cHBvcnQpCit7Cisg
ICAgdGhpcy5fbmFtZSA9IG5hbWU7CisgICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZh
bHVlOworICAgIHRoaXMuX2V2ZW50U3VwcG9ydCA9IGV2ZW50U3VwcG9ydDsKK30KIAotICAgICAg
ICB0aGlzLl9fZGVmaW5lR2V0dGVyX18oa2V5LCB0aGlzLl9nZXQuYmluZCh0aGlzLCBrZXksIGRl
ZmF1bHRWYWx1ZSkpOwotICAgICAgICB0aGlzLl9fZGVmaW5lU2V0dGVyX18oa2V5LCB0aGlzLl9z
ZXQuYmluZCh0aGlzLCBrZXkpKTsKK1dlYkluc3BlY3Rvci5TZXR0aW5nLnByb3RvdHlwZSA9IHsK
KyAgICBhZGRDaGFuZ2VMaXN0ZW5lcjogZnVuY3Rpb24obGlzdGVuZXIsIHRoaXNPYmplY3QpCisg
ICAgeworICAgICAgICB0aGlzLl9ldmVudFN1cHBvcnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl9u
YW1lLCBsaXN0ZW5lciwgdGhpc09iamVjdCk7CiAgICAgfSwKIAotICAgIF9nZXQ6IGZ1bmN0aW9u
KGtleSwgZGVmYXVsdFZhbHVlKQorICAgIHJlbW92ZUNoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihs
aXN0ZW5lciwgdGhpc09iamVjdCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubG9jYWxTdG9y
YWdlICE9IG51bGwgJiYga2V5IGluIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKKyAgICAgICAgdGhp
cy5fZXZlbnRTdXBwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fbmFtZSwgbGlzdGVuZXIs
IHRoaXNPYmplY3QpOworICAgIH0sCisKKyAgICBnZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHZhciB2YWx1ZSA9IHRoaXMuX2RlZmF1bHRWYWx1ZTsKKyAgICAgICAgaWYgKHdpbmRvdy5s
b2NhbFN0b3JhZ2UgIT0gbnVsbCAmJiB0aGlzLl9uYW1lIGluIHdpbmRvdy5sb2NhbFN0b3JhZ2Up
IHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uo
d2luZG93LmxvY2FsU3RvcmFnZVtrZXldKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IEpTT04u
cGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZVt0aGlzLl9uYW1lXSk7CiAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0o
a2V5KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhp
cy5fbmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRlZmF1
bHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0sCiAKLSAgICBfc2V0OiBmdW5j
dGlvbihrZXksIHZhbHVlKQorICAgIHNldDogZnVuY3Rpb24odmFsdWUpCiAgICAgewotICAgICAg
ICBpZiAod2luZG93LmxvY2FsU3RvcmFnZSAhPSBudWxsKQotICAgICAgICAgICAgd2luZG93Lmxv
Y2FsU3RvcmFnZVtrZXldID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpOworICAgICAgICBpZiAod2lu
ZG93LmxvY2FsU3RvcmFnZSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAg
ICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbdGhpcy5fbmFtZV0gPSBKU09OLnN0cmluZ2lmeSh2
YWx1ZSk7CisgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xl
LmVycm9yKCJFcnJvciBzYXZpbmcgc2V0dGluZyB3aXRoIG5hbWU6IiArIHRoaXMuX25hbWUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRoaXMuX2V2ZW50U3VwcG9ydC5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnModGhpcy5fbmFtZSwgdmFsdWUpOwogICAgIH0KIH0KLQotV2Vi
SW5zcGVjdG9yLlNldHRpbmdzLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2Jq
ZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3NTY3JlZW4uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NldHRpbmdzU2NyZWVuLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NGFiMzFkNWI5ZGNkYmVhMDU1ZGNj
MTAwNzdhM2E1NWZmZWEwYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC0wLDAgKzEsMTI4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5z
cGVjdG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5I
ZWxwU2NyZWVuLmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXR0aW5ncyIpKTsK
KworICAgIHRoaXMuX2xlZnRDb2x1bW5FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dGQiKTsKKyAgICB0aGlzLl9yaWdodENvbHVtbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJ0ZCIpOworCisgICAgdmFyIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKCJDb25zb2xlIik7
CisgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJMb2cgWE1MSHR0cFJlcXVlc3RzIiksICJtb25pdG9yaW5nWEhSRW5hYmxl
ZCIpKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0dGluZyhXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlByZXNlcnZlIGxvZyB1cG9uIG5hdmlnYXRpb24iKSwgInByZXNl
cnZlQ29uc29sZUxvZyIpKTsKKworICAgIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKCJFbGVtZW50
cyIpOworICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiV29yZCB3cmFwIiksICJkb21Xb3JkV3JhcCIpKTsKKyAgICBwLmFw
cGVuZENoaWxkKHRoaXMuX2NyZWF0ZVJhZGlvU2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNvbG9yIGZvcm1hdCIpLCBbV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBcyBhdXRob3JlZCIpLCAi
aGV4IiwgInJnYiIsICJoc2wiXSkpOworCisgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oIk5l
dHdvcmsiLCB0cnVlKTsKKyAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNrYm94U2V0
dGluZygoIkVuYWJsZSBiYWNrZ3JvdW5kIGV2ZW50cyBjb2xsZWN0aW9uIikpKTsKKworICAgIHAg
PSB0aGlzLl9hcHBlbmRTZWN0aW9uKCJTY3JpcHRzIiwgdHJ1ZSk7CisgICAgcC5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbmFi
bGUgd29ya2VycyBkZWJ1Z2dpbmciKSkpOworCisgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGFibGUiKTsKKyAgICB0YWJsZS5jbGFzc05hbWUgPSAiaGVscC10YWJsZSI7
CisgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKKyAgICB0ci5hcHBl
bmRDaGlsZCh0aGlzLl9sZWZ0Q29sdW1uRWxlbWVudCk7CisgICAgdHIuYXBwZW5kQ2hpbGQodGhp
cy5fcmlnaHRDb2x1bW5FbGVtZW50KTsKKyAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CisgICAg
dGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0YWJsZSk7Cit9CisKK1dlYkluc3BlY3Rv
ci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CisgICAgX2FwcGVuZFNlY3Rpb246IGZ1bmN0
aW9uKG5hbWUsIHJpZ2h0KQorICAgIHsKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJwIik7CisgICAgICAgIHAuY2xhc3NOYW1lID0gImhlbHAtc2VjdGlvbiI7CisgICAg
ICAgIHZhciB0aXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB0
aXRsZS5jbGFzc05hbWUgPSAiaGVscC1zZWN0aW9uLXRpdGxlIjsKKyAgICAgICAgdGl0bGUudGV4
dENvbnRlbnQgPSBuYW1lOworICAgICAgICBwLmFwcGVuZENoaWxkKHRpdGxlKTsKKyAgICAgICAg
dGhpcy5fY29sdW1uRWxlbWVudChyaWdodCkuYXBwZW5kQ2hpbGQocCk7CisgICAgICAgIHJldHVy
biBwOworICAgIH0sCisKKyAgICBfY29sdW1uRWxlbWVudDogZnVuY3Rpb24ocmlnaHQpCisgICAg
eworICAgICAgICByZXR1cm4gcmlnaHQgPyB0aGlzLl9yaWdodENvbHVtbkVsZW1lbnQgOiB0aGlz
Ll9sZWZ0Q29sdW1uRWxlbWVudDsgCisgICAgfSwKKworICAgIF9jcmVhdGVDaGVja2JveFNldHRp
bmc6IGZ1bmN0aW9uKG5hbWUsIHNldHRpbmdOYW1lKQorICAgIHsKKyAgICAgICAgdmFyIGlucHV0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgaW5wdXQudHlwZSA9
ICJjaGVja2JveCI7CisgICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOworICAgICAgICBpZiAoc2V0
dGluZ05hbWUpIHsKKyAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3Nbc2V0dGluZ05hbWVdLmdldCgpOworICAgICAgICAgICAgZnVuY3Rpb24gbGlzdGVuZXIo
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5nc1tz
ZXR0aW5nTmFtZV0uc2V0KGlucHV0LmNoZWNrZWQpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5lciwgZmFsc2UpOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Cisg
ICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CisgICAg
ICAgIGxhYmVsLmFwcGVuZENoaWxkKGlucHV0KTsKKyAgICAgICAgbGFiZWwuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobmFtZSkpOworICAgICAgICBwLmFwcGVuZENoaWxkKGxh
YmVsKTsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSwKKworICAgIF9jcmVhdGVSYWRpb1NldHRp
bmc6IGZ1bmN0aW9uKG5hbWUsIG9wdGlvbnMpCisgICAgeworICAgICAgICB2YXIgcHAgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CisgICAgICAgIHZhciBmaWVsZHNldEVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpOworICAgICAgICB2YXIgbGVnZW5kRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxlZ2VuZCIpOworICAgICAgICBsZWdlbmRF
bGVtZW50LnRleHRDb250ZW50ID0gbmFtZTsKKyAgICAgICAgZmllbGRzZXRFbGVtZW50LmFwcGVu
ZENoaWxkKGxlZ2VuZEVsZW1lbnQpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0
aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgIHZhciBwID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgicCIpOworICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImxhYmVsIik7CisgICAgICAgICAgcC5hcHBlbmRDaGlsZChsYWJlbCk7CisKKyAgICAgICAgICB2
YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICAgIGlu
cHV0LnR5cGUgPSAicmFkaW8iOworICAgICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOworICAgICAg
ICAgIGxhYmVsLmFwcGVuZENoaWxkKGlucHV0KTsKKyAgICAgICAgICBsYWJlbC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShvcHRpb25zW2ldKSk7CisKKyAgICAgICAgICBmaWVs
ZHNldEVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7CisgICAgICAgIH0KKworICAgICAgICBwcC5hcHBl
bmRDaGlsZChmaWVsZHNldEVsZW1lbnQpOworICAgICAgICByZXR1cm4gcHA7CisgICAgfQorfTsK
KworV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c0hlbHAuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5qcwpzaW1pbGFyaXR5IGluZGV4IDk3
JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0
c0hlbHAuanMKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hv
cnRjdXRzU2NyZWVuLmpzCmluZGV4IGFiMzk1YzhhOTNhM2FhMGRhMThiMTUyNGRmNTRkZjY2MjM3
ZjFkMjguLjAyN2NiMGUyZDkyZjEzOGUxMjdmY2Y0N2ZhNTYxZGU3ODczZjQyMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzSGVscC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c1NjcmVlbi5q
cwpAQCAtMjgsMTIgKzI4LDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rv
ci5TaG9ydGN1dHNIZWxwID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NjcmVl
biA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9zZWN0aW9ucyA9IHt9OwogfQogCi1XZWJJbnNw
ZWN0b3IuU2hvcnRjdXRzSGVscC5wcm90b3R5cGUgPSB7CitXZWJJbnNwZWN0b3IuU2hvcnRjdXRz
U2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICBzZWN0aW9uOiBmdW5jdGlvbihuYW1lKQogICAgIHsK
ICAgICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tuYW1lXTsKQEAgLTg2LDcgKzg2
LDcgQEAgV2ViSW5zcGVjdG9yLlNob3J0Y3V0c0hlbHAucHJvdG90eXBlID0gewogICAgIH0KIH07
CiAKLVdlYkluc3BlY3Rvci5zaG9ydGN1dHNIZWxwID0gbmV3IFdlYkluc3BlY3Rvci5TaG9ydGN1
dHNIZWxwKCk7CitXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuID0gbmV3IFdlYkluc3BlY3Rv
ci5TaG9ydGN1dHNTY3JlZW4oKTsKIAogV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NlY3Rpb24gPSBm
dW5jdGlvbihuYW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXggOWE4ZjU2M2FiNzViYzhjMjQ5OWYy
YzZjYzY2MTFmYjY1Mzc1MjZiOS4uN2ZmZDFmNzFmNGJmYzU0YzQ1NGE5ZjIzNjFjM2QzZjAyMWI1
NGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHls
ZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC02Nyw3ICs2Nyw3IEBAIFdlYkluc3BlY3Rvci5TdHls
ZXNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKGNvbXB1dGVkU3R5bGVQYW5lKQogCiAgICAgdGhpcy5z
ZXR0aW5nc1NlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihl
dmVudCkgeyBldmVudC5zdG9wUHJvcGFnYXRpb24oKSB9LCBmYWxzZSk7CiAgICAgdGhpcy5zZXR0
aW5nc1NlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fY2hhbmdl
U2V0dGluZy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgdmFyIGZvcm1hdCA9IFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5jb2xvckZvcm1hdDsKKyAgICB2YXIgZm9ybWF0ID0gV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLmNvbG9yRm9ybWF0LmdldCgpOwogICAgIGlmIChmb3JtYXQgPT09ICJvcmlnaW5hbCIp
CiAgICAgICAgIHRoaXMuc2V0dGluZ3NTZWxlY3RFbGVtZW50WzBdLnNlbGVjdGVkID0gdHJ1ZTsK
ICAgICBlbHNlIGlmIChmb3JtYXQgPT09ICJoZXgiKQpAQCAtNTU1LDcgKzU1NSw3IEBAIFdlYklu
c3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFNlbGVj
dCB0aGUgY29ycmVjdCBjb2xvciBmb3JtYXQgc2V0dGluZyBhZ2Fpbiwgc2luY2UgaXQgbmVlZHMg
dG8gYmUgc2VsZWN0ZWQuCiAgICAgICAgIHZhciBzZWxlY3RlZEluZGV4ID0gMDsKICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBp
ZiAob3B0aW9uc1tpXS52YWx1ZSA9PT0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbG9yRm9ybWF0
KSB7CisgICAgICAgICAgICBpZiAob3B0aW9uc1tpXS52YWx1ZSA9PT0gV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLmNvbG9yRm9ybWF0LmdldCgpKSB7CiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRl
eCA9IGk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC01NjcsNyAr
NTY3LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAg
ICBfY2hhbmdlQ29sb3JGb3JtYXQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFy
IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnRbdGhpcy5zZXR0aW5n
c1NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleF07Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5jb2xvckZvcm1hdCA9IHNlbGVjdGVkT3B0aW9uLnZhbHVlOworICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuY29sb3JGb3JtYXQuc2V0KHNlbGVjdGVkT3B0aW9uLnZhbHVlKTsKIAog
ICAgICAgICBmb3IgKHZhciBwc2V1ZG9JZCBpbiB0aGlzLnNlY3Rpb25zKSB7CiAgICAgICAgICAg
ICB2YXIgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zW3BzZXVkb0lkXTsKQEAgLTYxMCw3ICs2MTAs
NyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAg
cmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBzZWN0aW9u
ID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c0hlbHAuc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlN0eWxlcyBQYW5lIikpOworICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rvci5z
aG9ydGN1dHNTY3JlZW4uc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlcyBQYW5l
IikpOwogICAgICAgICB2YXIgc2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dDsKICAgICAgICAgdmFyIGtleXMgPSBbCiAgICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRv
U3RyaW5nKHNob3J0Y3V0LktleXMuVGFiKSwKQEAgLTY1MywxNSArNjUzLDE1IEBAIFdlYkluc3Bl
Y3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUgPSBmdW5jdGlvbigpCiAgICAgdmFyIHNob3dJ
bmhlcml0ZWRDaGVja2JveCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2hlY2tib3goV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTaG93IGluaGVyaXRlZCIpLCAic2lkZWJhci1wYW5lLXN1YnRpdGxlIik7CiAg
ICAgdGhpcy50aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc2hvd0luaGVyaXRlZENoZWNrYm94LmVs
ZW1lbnQpOwogCi0gICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93SW5oZXJpdGVkQ29t
cHV0ZWRTdHlsZVByb3BlcnRpZXMpIHsKKyAgICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNo
b3dJbmhlcml0ZWRDb21wdXRlZFN0eWxlUHJvcGVydGllcy5nZXQoKSkgewogICAgICAgICB0aGlz
LmJvZHlFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNob3ctaW5oZXJpdGVkIik7CiAgICAgICAgIHNo
b3dJbmhlcml0ZWRDaGVja2JveC5jaGVja2VkID0gdHJ1ZTsKICAgICB9CiAKICAgICBmdW5jdGlv
biBzaG93SW5oZXJpdGVkVG9nZ2xlRnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0luaGVyaXRlZENvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzID0g
c2hvd0luaGVyaXRlZENoZWNrYm94LmNoZWNrZWQ7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
c2V0dGluZ3Muc2hvd0luaGVyaXRlZENvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzKQorICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0luaGVyaXRlZENvbXB1dGVkU3R5bGVQcm9wZXJ0aWVz
LnNldChzaG93SW5oZXJpdGVkQ2hlY2tib3guY2hlY2tlZCk7CisgICAgICAgIGlmIChXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3Muc2hvd0luaGVyaXRlZENvbXB1dGVkU3R5bGVQcm9wZXJ0aWVzLmdldCgp
KQogICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzaG93LWluaGVy
aXRlZCIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnJlbW92
ZVN0eWxlQ2xhc3MoInNob3ctaW5oZXJpdGVkIik7CkBAIC0xMzgwLDEzICsxMzgwLDEzIEBAIFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHN3YXRjaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBmdW5j
dGlvbihldmVudCkgeyBldmVudC5zdG9wUHJvcGFnYXRpb24oKSB9LCBmYWxzZSk7CiAKICAgICAg
ICAgICAgICAgICB2YXIgZm9ybWF0OwotICAgICAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
c2V0dGluZ3MuY29sb3JGb3JtYXQgPT09ICJvcmlnaW5hbCIpCisgICAgICAgICAgICAgICAgaWYg
KFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jb2xvckZvcm1hdC5nZXQoKSA9PT0gIm9yaWdpbmFsIikK
ICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gIm9yaWdpbmFsIjsKICAgICAgICAgICAgICAg
ICBlbHNlIGlmIChQcmVmZXJlbmNlcy5zaG93Q29sb3JOaWNrbmFtZXMgJiYgY29sb3Iubmlja25h
bWUpCiAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9ICJuaWNrbmFtZSI7Ci0gICAgICAgICAg
ICAgICAgZWxzZSBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbG9yRm9ybWF0ID09PSAicmdi
IikKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY29sb3JG
b3JtYXQuZ2V0KCkgPT09ICJyZ2IiKQogICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSAoY29s
b3Iuc2ltcGxlID8gInJnYiIgOiAicmdiYSIpOwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5jb2xvckZvcm1hdCA9PT0gImhzbCIpCisgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbG9yRm9ybWF0LmdldCgpID09PSAi
aHNsIikKICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID0gKGNvbG9yLnNpbXBsZSA/ICJoc2wi
IDogImhzbGEiKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2xvci5zaW1wbGUpCiAgICAg
ICAgICAgICAgICAgICAgIGZvcm1hdCA9IChjb2xvci5oYXNTaG9ydEhleCgpID8gInNob3J0aGV4
IiA6ICJoZXgiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKaW5kZXggNDk4YWJk
ZTM5N2Y5NzZkYTliOGFmNTYxYzNmNTY0ZjVmNmFiMzhjNi4uOTM1NjgxZTg0MzFhMWExYmI0N2Nk
MzI2N2RmMGRkZmM0ZmViNWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUuanMK
QEAgLTM5LDcgKzM5LDcgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7CiAKLSAgICAgICAgdGhpcy5leHBhbmRlZCA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy53YXRjaEV4cHJlc3Npb25zLmxlbmd0aCA+IDA7CisgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud2F0Y2hFeHByZXNzaW9ucy5nZXQoKS5sZW5ndGggPiAwOwog
ICAgICAgICB0aGlzLnNlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uKCk7CiAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zZWN0
aW9uLmVsZW1lbnQpOwogCkBAIC04Niw3ICs4Niw3IEBAIFdlYkluc3BlY3Rvci5XYXRjaEV4cHJl
c3Npb25zU2VjdGlvbiA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmVtcHR5RWxlbWVudC5jbGFzc05h
bWUgPSAiaW5mbyI7CiAgICAgdGhpcy5lbXB0eUVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIk5vIFdhdGNoIEV4cHJlc3Npb25zIik7CiAKLSAgICB0aGlzLndhdGNo
RXhwcmVzc2lvbnMgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud2F0Y2hFeHByZXNzaW9uczsKKyAg
ICB0aGlzLndhdGNoRXhwcmVzc2lvbnMgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Mud2F0Y2hFeHBy
ZXNzaW9ucy5nZXQoKTsKIAogICAgIHRoaXMuaGVhZGVyRWxlbWVudC5jbGFzc05hbWUgPSAiaGlk
ZGVuIjsKICAgICB0aGlzLmVkaXRhYmxlID0gdHJ1ZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBXZWJJ
bnNwZWN0b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgaWYgKHRoaXMud2F0Y2hFeHByZXNzaW9uc1tpXSkKICAgICAgICAgICAgICAgICB0b1NhdmUu
cHVzaCh0aGlzLndhdGNoRXhwcmVzc2lvbnNbaV0pOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy53YXRjaEV4cHJlc3Npb25zID0gdG9TYXZlOworICAgICAgICBXZWJJbnNwZWN0b3Iu
c2V0dGluZ3Mud2F0Y2hFeHByZXNzaW9ucy5zZXQodG9TYXZlKTsKICAgICAgICAgcmV0dXJuIHRv
U2F2ZS5sZW5ndGg7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjCmluZGV4IGZjN2QyNTI1YzVmZTEzYzk2NGE1OWJjYTcxN2JlNDhmYTlh
MDYwMGQuLmVlZjExODBiMGNlNzliN2ZjNGNmNWFlZjRjZDFjODBmYzQzODFiYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTk5LDcgKzk5
LDggQEAKICAgICA8ZmlsZT5TZWFyY2hDb250cm9sbGVyLmpzPC9maWxlPgogICAgIDxmaWxlPlNl
Y3Rpb24uanM8L2ZpbGU+CiAgICAgPGZpbGU+U2V0dGluZ3MuanM8L2ZpbGU+Ci0gICAgPGZpbGU+
U2hvcnRjdXRzSGVscC5qczwvZmlsZT4KKyAgICA8ZmlsZT5TZXR0aW5nc1NjcmVlbi5qczwvZmls
ZT4KKyAgICA8ZmlsZT5TaG9ydGN1dHNTY3JlZW4uanM8L2ZpbGU+CiAgICAgPGZpbGU+U2hvd01v
cmVEYXRhR3JpZE5vZGUuanM8L2ZpbGU+CiAgICAgPGZpbGU+U2lkZWJhclBhbmUuanM8L2ZpbGU+
CiAgICAgPGZpbGU+U2lkZWJhclRyZWVFbGVtZW50LmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKaW5kZXggODJiOWZiM2U1
M2Q4MDQwMDM4NjU2YzhjN2JlYTJlMzUyODg4ODVmYi4uMzhmZWUxODViODEzNzU3ZDc2MTFmODhh
Yzg4NWY0ZjBkMzZmM2JhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9oZWxwU2NyZWVuLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2hlbHBTY3JlZW4uY3NzCkBAIC0xNiwyOSArMTYsMzEgQEAgYm9keS5hdHRhY2hlZCAu
aGVscC13aW5kb3ctb3V0ZXIgewogCiAuaGVscC13aW5kb3ctbWFpbiB7CiAgICAgbWF4LWhlaWdo
dDogMTAwJTsKLSAgICBvcGFjaXR5OiAwLjg1OwogICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAs
IDAuODUpOwogICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgIC13ZWJraXQtYm94LW9yaWVu
dDogdmVydGljYWw7Ci0gICAgYm9yZGVyOiAyMHB4IGJsYWNrIHNvbGlkOwogICAgIGJvcmRlci10
b3Atd2lkdGg6IDA7Ci0gICAgYm9yZGVyLXJhZGl1czogOHB4OworICAgIGJvcmRlci1yYWRpdXM6
IDE1cHg7CiAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAxMHB4IDEwcHggOHB4IHJnYmEoNDAsIDQw
LCA0MCwgMC40MCk7CiB9CiAKIGJvZHkuYXR0YWNoZWQgLmhlbHAtd2luZG93LW1haW4gewotICAg
IGJvcmRlci13aWR0aDogMTBweDsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgcGFkZGluZzogMTBw
eDsKK30KKworYm9keS5hdHRhY2hlZCAuaGVscC13aW5kb3ctbWFpbiB7CiAgICAgYm9yZGVyLXJh
ZGl1czogMDsKICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwOwogfQogCiAuaGVscC13aW5k
b3ctY2FwdGlvbiB7Ci0gICAgbWFyZ2luOiA4cHg7CisgICAgbWFyZ2luOiA4cHggOHB4IDAgOHB4
OwogfQogCiBib2R5LmF0dGFjaGVkIC5oZWxwLXdpbmRvdy1jYXB0aW9uIHsKLSAgICBkaXNwbGF5
OiBub25lOworICAgIG1hcmdpbjogMDsKIH0KIAogLmhlbHAtd2luZG93LXRpdGxlIHsKQEAgLTUy
LDYgKzU0LDggQEAgYm9keS5hdHRhY2hlZCAuaGVscC13aW5kb3ctY2FwdGlvbiB7CiAgICAgb3Zl
cmZsb3cteDogaGlkZGVuOwogICAgIHNjcm9sbGJhci13aWR0aDogMTFweDsKICAgICAtd2Via2l0
LWJveC1mbGV4OiAxOworICAgIG1hcmdpbjogMTBweDsKKyAgICBmb250LXNpemU6IDEzcHg7CiB9
CiAKIC5oZWxwLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKQEAgLTgyLDcgKzg2LDYgQEAg
Ym9keS5hdHRhY2hlZCAuaGVscC13aW5kb3ctY2FwdGlvbiB7CiAuaGVscC1jbG9zZS1idXR0b24g
ewogICAgIGJvcmRlcjogMDsKICAgICBwYWRkaW5nOiAwOwotICAgIG1hcmdpbjogMHB4IC0yMHB4
IDE1cHggLTIwcHg7CiAgICAgZm9udC1zaXplOiAxNHB4OwogICAgIGNvbG9yOiByZ2IoMjIyLCAy
MjIsIDIyMik7CiAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChyYWRpYWwsIDMwJSAz
MCUsIDEsIDUwJSA1MCUsIDgsIGZyb20ocmdiKDEyOCwgMTI4LCAxMjgpKSwgdG8ocmdiKDgwLCA4
MCwgODApKSk7CkBAIC05MSw2ICs5NCwxNCBAQCBib2R5LmF0dGFjaGVkIC5oZWxwLXdpbmRvdy1j
YXB0aW9uIHsKICAgICB3aWR0aDogMTZweDsKIH0KIAorYm9keS5hdHRhY2hlZCAuaGVscC1jbG9z
ZS1idXR0b24geworICAgIG1hcmdpbjogMDsKK30KKworYm9keS5hdHRhY2hlZCAuaGVscC1jb250
ZW50IHsKKyAgICBtYXJnaW46IDhweCAwIDAgOHB4OworfQorCiAuaGVscC1jbG9zZS1idXR0b246
aG92ZXIgewogICAgIGNvbG9yOiB3aGl0ZTsKIH0KQEAgLTEwNyw3ICsxMTgsNiBAQCBib2R5Om5v
dCgucGxhdGZvcm0tbWFjKSAuaGVscC1jbG9zZS1idXR0b24gewogCiAuaGVscC10YWJsZSB7CiAg
ICAgd2lkdGg6IDEwMCU7Ci0gICAgZm9udC1zaXplOiAxM3B4OwogICAgIC13ZWJraXQtdXNlci1z
ZWxlY3Q6IGF1dG87CiB9CiAKQEAgLTEzMSwxOCArMTQxLDE1IEBAIGJvZHk6bm90KC5wbGF0Zm9y
bS1tYWMpIC5oZWxwLWNsb3NlLWJ1dHRvbiB7CiB9CiAKIGJvZHk6bm90KC5wbGF0Zm9ybS1tYWMp
IC5oZWxwLWtleSB7Ci0gICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgdGV4dC1zaGFkb3c6IGJs
YWNrIDFweCAxcHggN3B4OwogfQogCiBib2R5LnBsYXRmb3JtLW1hYyAuaGVscC1rZXkgewogICAg
IGZvbnQtZmFtaWx5OiBMdWNpZGEgR3JhbmRlLCBzYW5zLXNlcmlmOwotICAgIGZvbnQtc2l6ZTog
MTNweDsKIH0KIAogLmhlbHAtY29tYmluZS1rZXlzIHsKICAgICBjb2xvcjogd2hpdGU7Ci0gICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgbWFyZ2luOiAwIDAuM2VtOwogICAgIGZvbnQtc2l6ZTog
MTJweDsKIH0KQEAgLTE1MSwzICsxNTgsMzMgQEAgYm9keS5wbGF0Zm9ybS1tYWMgLmhlbHAta2V5
IHsKICAgICBjb2xvcjogd2hpdGU7CiAgICAgbWFyZ2luOiAwIDAuNWVtOwogfQorCisuaGVscC1j
b250ZW50IHAgeworICAgIG1hcmdpbjogNXB4IDAgNXB4IDA7Cit9CisKKy5oZWxwLWNvbnRlbnQg
ZmllbGRzZXQgeworICAgIGJvcmRlcjogbm9uZTsKKyAgICBtYXJnaW4tbGVmdDogOXB4OworfQor
CisuaGVscC1jb250ZW50IGZpZWxkc2V0IHAgeworICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQg
cmdiKDEyOCwxMjgsMTI4KTsKKyAgICBtYXJnaW46IDAgMCAwIDZweDsKKyAgICBwYWRkaW5nLWxl
ZnQ6IDNweDsKK30KKworLmhlbHAtY29udGVudCBwLmhlbHAtc2VjdGlvbiB7CisgICAgbWFyZ2lu
LWJvdHRvbTogMTVweDsKK30KKworLmhlbHAtc2VjdGlvbi10aXRsZSB7CisgICAgY29sb3I6IHll
bGxvdzsKK30KKworLmhlbHAtY29udGVudCBpbnB1dFt0eXBlPWNoZWNrYm94XSB7CisgICAgaGVp
Z2h0OiAxM3B4OworICAgIHdpZHRoOiAxM3B4OworICAgIG1hcmdpbi1yaWdodDogMDsKKyAgICBt
YXJnaW4tcmlnaHQ6IDRweDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCA2YWNkY2NhNWVkODU0ZTRlMWViNWJjNDIwZWRmNTc3
OGMyZmMwYzFkLi42YjZmMTA3MzM3MDZjNTk1OWI1ZDI0MjIzYWEwNWQ0MjIyMTFiZjQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBA
IC01NTgsNiArNTU4LDE2IEBAIGJ1dHRvbi5kb2NrLXN0YXR1cy1iYXItaXRlbS5zdGF0dXMtYmFy
LWl0ZW0udG9nZ2xlZC1vbiAuZ2x5cGggewogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwg
MCwgMCwgMC43NSk7CiB9CiAKK2J1dHRvbi5zZXR0aW5ncy1zdGF0dXMtYmFyLWl0ZW0geworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICByaWdodDogMDsKK30KKworLnNldHRpbmdzLXN0YXR1
cy1iYXItaXRlbSAuZ2x5cGggeworICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjogLTE2MHB4IC0y
NHB4OworfQorCisKIGJvZHkucG9ydC1xdCAjZG9jay1zdGF0dXMtYmFyLWl0ZW0gewogICAgIGRp
c3BsYXk6IG5vbmUKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCmluZGV4IDdlYTUzYWYzNGRmYmRkNDk1YWUwMTg0NmUzZWQwMTc5NTVm
YzBkZTguLjhmODJhMzhmNWYzZDJiNGNkNjQ1NmFhOWFjNDc3NWYwNDVhNzBjYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAt
MTYxLDcgKzE2MSw4IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iVGVzdENvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhlbHBTY3JlZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkdvVG9MaW5lRGlhbG9nLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTaG9ydGN1dHNIZWxw
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJT
ZXR0aW5nc1NjcmVlbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iU2hvcnRjdXRzU2NyZWVuLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJIQVJFbnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29va2llUGFyc2VyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUb29sYmFyLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggODBkZmNmOTRhNzFhYzZkOTMzMTA1N2MwY2QwODhiZDkzN2YxNDExZS4uYmNk
Y2VjNThmMTdiODJmMjEzNmE2YjlhNzNjZmE2YzI2OTI4NDIyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTE0NSw3ICsxNDUsNyBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICB9CiAgICAgICAgIGZvciAodmFyIHBhbmVs
TmFtZSBpbiBXZWJJbnNwZWN0b3IucGFuZWxzKSB7CiAgICAgICAgICAgICBpZiAoV2ViSW5zcGVj
dG9yLnBhbmVsc1twYW5lbE5hbWVdID09PSB4KSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnNldHRpbmdzLmxhc3RBY3RpdmVQYW5lbCA9IHBhbmVsTmFtZTsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdEFjdGl2ZVBhbmVsLnNldChwYW5lbE5hbWUpOwog
ICAgICAgICAgICAgICAgIHRoaXMuX3BhbmVsSGlzdG9yeS5zZXRQYW5lbChwYW5lbE5hbWUpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xODAsMTQgKzE4MCwyMCBAQCB2YXIgV2ViSW5z
cGVjdG9yID0gewogICAgIF9jcmVhdGVHbG9iYWxTdGF0dXNCYXJJdGVtczogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3Iu
U3RhdHVzQmFyQnV0dG9uKHRoaXMuX2RvY2tCdXR0b25UaXRsZSgpLCAiZG9jay1zdGF0dXMtYmFy
LWl0ZW0iKTsKLSAgICAgICAgdGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMudG9nZ2xlQXR0YWNoLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICAgICAg
dGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3Rv
Z2dsZUF0dGFjaC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX2RvY2tUb2dnbGVC
dXR0b24udG9nZ2xlZCA9ICF0aGlzLmF0dGFjaGVkOwogCisgICAgICAgIHRoaXMuX3NldHRpbmdz
QnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTZXR0aW5ncyIpLCAic2V0dGluZ3Mtc3RhdHVzLWJhci1pdGVtIik7CisgICAgICAg
IHRoaXMuX3NldHRpbmdzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9n
Z2xlU2V0dGluZ3MuYmluZCh0aGlzKSwgZmFsc2UpOworCiAgICAgICAgIHZhciBhbmNob3JlZFN0
YXR1c0JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmNob3JlZC1zdGF0dXMtYmFyLWl0
ZW1zIik7CiAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuX2RvY2tU
b2dnbGVCdXR0b24uZWxlbWVudCk7CiAgICAgICAgIGFuY2hvcmVkU3RhdHVzQmFyLmFwcGVuZENo
aWxkKHRoaXMuY29uc29sZS50b2dnbGVDb25zb2xlQnV0dG9uLmVsZW1lbnQpOwogICAgICAgICBp
ZiAodGhpcy5wYW5lbHMuZWxlbWVudHMpCiAgICAgICAgICAgICBhbmNob3JlZFN0YXR1c0Jhci5h
cHBlbmRDaGlsZCh0aGlzLnBhbmVscy5lbGVtZW50cy5ub2RlU2VhcmNoQnV0dG9uLmVsZW1lbnQp
OworCisgICAgICAgIC8vIEZJWE1FOiB1bmNvbW1lbnQgb25jZSByZWFkeS4KKyAgICAgICAgLy8g
YW5jaG9yZWRTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5fc2V0dGluZ3NCdXR0b24uZWxlbWVu
dCk7CiAgICAgfSwKIAogICAgIF9kb2NrQnV0dG9uVGl0bGU6IGZ1bmN0aW9uKCkKQEAgLTE5NSw2
ICsyMDEsMzEgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuYXR0
YWNoZWQgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVuZG9jayBpbnRvIHNlcGFyYXRlIHdpbmRv
dy4iKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9jayB0byBtYWluIHdpbmRvdy4iKTsKICAg
ICB9LAogCisgICAgX3RvZ2dsZUF0dGFjaDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9hdHRhY2hlZCkKKyAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5yZXF1
ZXN0QXR0YWNoV2luZG93KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5yZXF1ZXN0RGV0YWNoV2luZG93KCk7CisgICAgfSwKKworICAgIF90b2dnbGVT
ZXR0aW5nczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gb25oaWRlKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9IGZhbHNl
OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24udG9nZ2xlZCA9ICF0
aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkOworICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NC
dXR0b24udG9nZ2xlZCkgeworICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4gPSBuZXcg
V2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuKCk7CisgICAgICAgICAgICB0aGlzLl9zZXR0aW5n
c1NjcmVlbi5zaG93KG9uaGlkZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlz
Ll9zZXR0aW5nc1NjcmVlbikgeworICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uaGlk
ZSgpOworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdzU2NyZWVuOworICAgICAgICB9
CisgICAgfSwKKwogICAgIGdldCBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhp
cy5fYXR0YWNoZWQ7CkBAIC00MzYsOCArNDY3LDggQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9u
ZSA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogCiAgICAgLy8g
c2V0IG9yZGVyIG9mIHNvbWUgc2VjdGlvbnMgZXhwbGljaXRseQotICAgIFdlYkluc3BlY3Rvci5z
aG9ydGN1dHNIZWxwLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25zb2xlIikpOwot
ICAgIFdlYkluc3BlY3Rvci5zaG9ydGN1dHNIZWxwLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJFbGVtZW50cyBQYW5lbCIpKTsKKyAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVu
LnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25zb2xlIikpOworICAgIFdlYkluc3Bl
Y3Rvci5zaG9ydGN1dHNTY3JlZW4uc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVsZW1l
bnRzIFBhbmVsIikpOwogCiAgICAgdGhpcy5kcmF3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdl
cigpOwogICAgIHRoaXMuY29uc29sZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcodGhp
cy5kcmF3ZXIpOwpAQCAtNTAxLDE0ICs1MzIsMTQgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9u
ZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuZXh0ZW5zaW9uU2VydmVyLmluaXRFeHRlbnNpb25z
KCk7CiAKLSAgICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVk
KQorICAgIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQuZ2V0
KCkpCiAgICAgICAgIENvbnNvbGVBZ2VudC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZCh0cnVlKTsK
ICAgICBDb25zb2xlQWdlbnQuZW5hYmxlKHRoaXMuY29uc29sZS5zZXRDb25zb2xlTWVzc2FnZUV4
cGlyZWRDb3VudC5iaW5kKHRoaXMuY29uc29sZSkpOwogCiAgICAgRGF0YWJhc2VBZ2VudC5lbmFi
bGUoKTsKICAgICBET01TdG9yYWdlQWdlbnQuZW5hYmxlKCk7CiAKLSAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0QWN0aXZlUGFuZWwpOworICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxhc3RBY3RpdmVQYW5l
bC5nZXQoKSk7CiAKICAgICBmdW5jdGlvbiBwcm9wZXJ0eU5hbWVzQ2FsbGJhY2soZXJyb3IsIG5h
bWVzKQogICAgIHsKQEAgLTY3Nyw3ICs3MDgsNyBAQCBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNl
ID0gZnVuY3Rpb24ocmVzb3VyY2VVUkwsIGluUmVzb3VyY2VzUGFuZWwpCiBXZWJJbnNwZWN0b3Iu
X3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rpb24oKQogewogICAgIHZhciBzaG9ydGN1dCA9IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwotICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVj
dG9yLnNob3J0Y3V0c0hlbHAuc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFsbCBQYW5l
bHMiKSk7CisgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNl
Y3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBbGwgUGFuZWxzIikpOwogICAgIHZhciBrZXlz
ID0gWwogICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJdIiwgc2hvcnRjdXQuTW9k
aWZpZXJzLkN0cmxPck1ldGEpLAogICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJb
Iiwgc2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpCkBAIC03MDUsNyArNzM2LDcgQEAgV2Vi
SW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50KQogCiAgICAgaWYgKGV2
ZW50LmtleUlkZW50aWZpZXIgPT09ICJGMSIgfHwKICAgICAgICAgKGV2ZW50LmtleUlkZW50aWZp
ZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQuc2hpZnRLZXkgJiYgKCFpc0luRWRpdE1vZGUgJiYgIWlz
SW5wdXRFbGVtZW50IHx8IGV2ZW50Lm1ldGFLZXkpKSkgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
c2hvcnRjdXRzSGVscC5zaG93KCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zaG9ydGN1dHNTY3Jl
ZW4uc2hvdygpOwogICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTI4LDE0ICs5NTksNiBA
QCBXZWJJbnNwZWN0b3IuYW5pbWF0ZVN0eWxlID0gZnVuY3Rpb24oYW5pbWF0aW9ucywgZHVyYXRp
b24sIGNhbGxiYWNrKQogICAgIH07CiB9CiAKLVdlYkluc3BlY3Rvci50b2dnbGVBdHRhY2ggPSBm
dW5jdGlvbigpCi17Ci0gICAgaWYgKCF0aGlzLmF0dGFjaGVkKQotICAgICAgICBJbnNwZWN0b3JG
cm9udGVuZEhvc3QucmVxdWVzdEF0dGFjaFdpbmRvdygpOwotICAgIGVsc2UKLSAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LnJlcXVlc3REZXRhY2hXaW5kb3coKTsKLX0KLQogV2ViSW5zcGVj
dG9yLmVsZW1lbnREcmFnU3RhcnQgPSBmdW5jdGlvbihlbGVtZW50LCBkaXZpZGVyRHJhZywgZWxl
bWVudERyYWdFbmQsIGV2ZW50LCBjdXJzb3IpCiB7CiAgICAgaWYgKHRoaXMuX2VsZW1lbnREcmFn
Z2luZ0V2ZW50TGlzdGVuZXIgfHwgdGhpcy5fZWxlbWVudEVuZERyYWdnaW5nRXZlbnRMaXN0ZW5l
cikKQEAgLTEwMDMsNyArMTAyNiw3IEBAIFdlYkluc3BlY3Rvci5yZXNldCA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLnJlc291cmNlcyA9IHt9OwogICAgIHRoaXMuaGlnaGxpZ2h0RE9NTm9kZSgwKTsK
IAotICAgIGlmICghV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByZXNlcnZlQ29uc29sZUxvZykKKyAg
ICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVMb2cuZ2V0KCkpCiAg
ICAgICAgIHRoaXMuY29uc29sZS5jbGVhck1lc3NhZ2VzKCk7CiAgICAgdGhpcy5leHRlbnNpb25T
ZXJ2ZXIubm90aWZ5SW5zcGVjdG9yUmVzZXQoKTsKICAgICBpZiAodGhpcy53b3JrZXJNYW5hZ2Vy
KQo=
</data>
<flag name="review"
          id="94152"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>