<?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>110219</bug_id>
          
          <creation_ts>2013-02-19 07:03:21 -0800</creation_ts>
          <short_desc>Web Inspector: Move workspace specific code from FileMapping to workspace.</short_desc>
          <delta_ts>2013-02-20 04:08:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836357</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-19 07:03:21 -0800</bug_when>
    <thetext>Extracted WorkspaceMapping from FileMapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836370</commentid>
    <comment_count>1</comment_count>
      <attachid>189084</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-19 07:20:32 -0800</bug_when>
    <thetext>Created attachment 189084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836414</commentid>
    <comment_count>2</comment_count>
      <attachid>189092</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-19 08:23:48 -0800</bug_when>
    <thetext>Created attachment 189092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837325</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-20 04:08:30 -0800</bug_when>
    <thetext>Committed r143448: &lt;http://trac.webkit.org/changeset/143448&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189084</attachid>
            <date>2013-02-19 07:20:32 -0800</date>
            <delta_ts>2013-02-19 08:23:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110219-20130219191653.patch</filename>
            <type>text/plain</type>
            <size>72333</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc0OTdiODZmMjhhM2Yz
NWM5ODRmOTEyNzVkM2RlMjk3Nzc4YTNkYi4uY2Q0MzljY2ExY2QzOTk4YWU5MWVkMTU4ZTQ1YjI4
ZWFhOWNlMDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDczIEBACiAyMDEzLTAyLTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEV4dHJhY3QgV29ya3NwYWNlTWFwcGluZyBmcm9tIEZpbGVNYXBwaW5nIHRvIHRha2UgY2Fy
ZSBvZiB3b3Jrc3BhY2Ugc3BlY2lmaWMgbWFwcGluZyBxdWVyaWVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0cmFjdGVkIFdvcmtzcGFjZU1hcHBp
bmcgZnJvbSBGaWxlTWFwcGluZy4KKyAgICAgICAgV29ya3NwYWNlTWFwcGluZyBpcyBub3cgcGFz
c2VkIHRvIGFsbCBzY3JpcHQvc3R5bGUgbWFwcGluZ3MgYW5kIHByb3ZpZGVycyB0byBwcm92aWRl
IHdvcmtzcGFjZSBzcGVjaWZpYyBtYXBwaW5nIG1ldGhvZHMuCisgICAgICAgIFRoaXMgYWxsb3dz
IHRvIHJlZHVjZSB1c2FnZSBvZiB1cmkgYW5kIGV2ZW50dWFsbHkgbWFrZSBVSVNvdXJjZUNvZGUu
cGF0aCBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rv
ci93b3Jrc3BhY2UtbWFwcGluZy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5yYXdMb2NhdGlvblRv
VUlMb2NhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlw
dE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5n
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcucHJvdG90eXBl
LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db21waWxl
clNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmdldCBhZGRTY3JpcHQuZ2V0IHRoaXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuZ2V0IGFkZFNj
cmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBp
bmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGlu
Zy5wcm90b3R5cGUubWFwcGluZ0VudHJ5Rm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
aWxlTWFwcGluZy5wcm90b3R5cGUubWFwcGluZ0VudHJ5Rm9yUGF0aCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaWxlU3lzdGVtTWFwcGluZy5wcm90b3R5cGUuZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXgp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUu
YWRkRmlsZVN5c3RlbU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1N
YXBwaW5nSW1wbC5wcm90b3R5cGUucmVtb3ZlRmlsZVN5c3RlbU1hcHBpbmcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUuZmlsZVN5c3RlbVBh
dGhGb3JQcmVmaXgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVBy
b2plY3REZWxlZ2F0ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtV29ya3Nw
YWNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQ
cm92aWRlci5wcm90b3R5cGUuX2ZpbGVTeXN0ZW1BZGRlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLl9hZGRGaWxlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3dvcmtzcGFjZVVJU291
cmNlQ29kZUZvclNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVV0aWxzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUuX3JlbG9hZENTUyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlLl9iaW5kVUlTb3VyY2VDb2RlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUucmF3TG9j
YXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
Y2FuU2hvd0FuY2hvckxvY2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Np
bXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNpbXBsZVdv
cmtzcGFjZVByb3ZpZGVyLnBhdGhGb3JTcGxpdHRlZFVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlLl9pbm5lckFkZEZpbGVGb3JVUkwp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nLnByb3RvdHlwZS5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZy5wcm90
b3R5cGUuX3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJj
ZU1hcHBpbmcucHJvdG90eXBlLl9tYWluRnJhbWVDcmVhdGVkT3JOYXZpZ2F0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlN0eWxlQ29udGVudEJpbmRpbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlN0eWxlQ29udGVudEJpbmRpbmcucHJvdG90eXBlLl9pbm5lclN0eWxlU2hlZXRDaGFuZ2Vk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2VNYXBwaW5nLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorCisyMDEzLTAyLTE5ICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERlY291cGxl
IHZhcmlvdXMgZmlsZSBzeXN0ZW0gcHJvamVjdCBpbXBsZW1lbnRhdGlvbiBwYXJ0cyBmb3IgYmV0
dGVyIHRlc3RhYmlsaXR5IGFuZCBjb3ZlciB3aXRoIHRlc3RzLgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjA0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA3ODhmYjM4ZjI5MjdiZDBkMWE0ZjAzOTAyNTAwZjViZGQyMWViMTc1Li43OThjMTdmYWFkMjBj
ZGQ0YmI5OGQyYjAwZWRjNjZhMGQzMzk4OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MzIyLDYg
KzUzMjIsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVmlld3BvcnRDb250
cm9sLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZU1hcHBpbmcuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRheEhpZ2hsaWdodC5jc3MnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzNjMyNGJjYTlhOGI4YjQ0
OGZjNjBhZjYzOGUxMzI0MTMwYzgwYjk4Li4wMzE0MGNiMGYwMmZkNjliMDE0NmViNjg4ZmZhMGU0
MjQwMzI3YjAzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtNzgwNTgsNiArNzgwNTgsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcV29ya3NwYWNl
TWFwcGluZy5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcY21ceG1sLmpzIgogCQkJCQk+CiAJCQkJPC9G
aWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQt
ZW5kLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5Cmlu
ZGV4IDRjNGQ3YWJiMTU2ZjVmZTA2MTQ5NmNlYzQxMDYzMjIxM2NjZjhhNmYuLjJlZjc3ZTYxNzdi
ZjU4Y2I3Yjc0MmFmY2I3NjA1N2MwNDMyOGQzMjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKQEAgLTExNCw2ICsxMTQsNyBAQCBtb2R1bGVzID0g
WwogICAgICAgICAgICAgIlVJU291cmNlQ29kZS5qcyIsCiAgICAgICAgICAgICAiVXNlckFnZW50
U3VwcG9ydC5qcyIsCiAgICAgICAgICAgICAiV29ya3NwYWNlLmpzIiwKKyAgICAgICAgICAgICJX
b3Jrc3BhY2VNYXBwaW5nLmpzIiwKICAgICAgICAgICAgICJwcm90b2NvbC1leHRlcm5zLmpzIiwK
ICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggYTc1NWJhNWYzZjMxNzY1YTJlOTY0M2E3MTc4
MDA3NDA4ZjZiYzAwNy4uMWEzNDdlMmM1OWY3MzBjNzZlNmRmNWQyZmViZjQ0MWQ1OGE2YmJiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1v
ZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVN
b2RlbC5qcwpAQCAtMzIsMTAgKzMyLDEyIEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuT2JqZWN0fQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNl
fSB3b3Jrc3BhY2UKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZU1hcHBpbmd9IHdv
cmtzcGFjZU1hcHBpbmcKICAqLwotV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwgPSBmdW5jdGlv
bih3b3Jrc3BhY2UpCitXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbCA9IGZ1bmN0aW9uKHdvcmtz
cGFjZSwgd29ya3NwYWNlTWFwcGluZykKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3Bh
Y2U7CisgICAgdGhpcy5fd29ya3NwYWNlTWFwcGluZyA9IHdvcmtzcGFjZU1hcHBpbmc7CiAgICAg
dGhpcy5fcGVuZGluZ0NvbW1hbmRzTWFqb3JTdGF0ZSA9IFtdOwogICAgIC8qKiBAdHlwZSB7QXJy
YXkuPFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkxpdmVMb2NhdGlvbj59ICovCiAgICAgdGhp
cy5fbG9jYXRpb25zID0gW107CkBAIC01NzAsOCArNTcyLDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKHVpTG9jYXRpb24pCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHVpTG9jYXRpb247CiAgICAgICAgIH0KLSAgICAgICAgdmFyIHVy
aSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwocmF3TG9jYXRpb24udXJsKTsK
LSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVG
b3JVUkkodXJpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZU1h
cHBpbmcudWlTb3VyY2VDb2RlRm9yVVJMKHJhd0xvY2F0aW9uLnVybCk7CiAgICAgICAgIGlmICgh
dWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlTb3VyY2VDb2RlLCByYXdMb2NhdGlvbi5saW5l
TnVtYmVyLCByYXdMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwpp
bmRleCA3MTIxOWMxN2M4MWNlY2IzNjAxOTQyNTU1ODBjMzI4ZmI5YTQ2OGM4Li4zOGE3NjhiODM4
YjU3YTBkY2M0ODU1YmFlMjMyOTRmZWM3NWM3Y2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwpA
QCAtMzMsMTAgKzMzLDEyIEBACiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNjcmlwdFNv
dXJjZU1hcHBpbmd9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFj
ZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXJ9IG5ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlTWFw
cGluZ30gd29ya3NwYWNlTWFwcGluZwogICovCi1XZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRN
YXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpCitX
ZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlLCBu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIsIHdvcmtzcGFjZU1hcHBpbmcpCiB7CiAgICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOworICAgIHRoaXMuX3dvcmtzcGFjZU1hcHBpbmcgPSB3b3Jr
c3BhY2VNYXBwaW5nOwogICAgIHRoaXMuX3dvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRo
aXMuX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2UsIHRoaXMpOwogICAgIHRoaXMuX25ldHdv
cmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcjsKICAgICAvKiog
QHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuU291cmNlTWFwPn0gKi8KQEAgLTY0
LDggKzY2LDcgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghZW50cnkgfHwgZW50cnkubGVuZ3RoID09PSAyKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHZhciB1cmwgPSBlbnRyeVsyXTsKLSAgICAgICAgdmFy
IHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwodXJsKTsKLSAgICAgICAg
dmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJp
KTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZU1hcHBpbmcudWlT
b3VyY2VDb2RlRm9yVVJMKHVybCk7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlVJTG9j
YXRpb24odWlTb3VyY2VDb2RlLCBlbnRyeVszXSwgZW50cnlbNF0pOwpAQCAtMTA5LDExICsxMTAs
MTAgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHZhciBzb3VyY2VVUkxzID0gc291cmNlTWFwLnNvdXJjZXMoKTsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VVUkxzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2
YXIgc291cmNlVVJMID0gc291cmNlVVJMc1tpXTsKLSAgICAgICAgICAgIHZhciB1cmkgPSBXZWJJ
bnNwZWN0b3IuZmlsZU1hcHBpbmcudXJpRm9yVVJMKHNvdXJjZVVSTCk7CiAgICAgICAgICAgICBp
ZiAodGhpcy5fc291cmNlTWFwRm9yVVJMW3NvdXJjZVVSTF0pCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB0aGlzLl9zb3VyY2VNYXBGb3JVUkxbc291cmNlVVJMXSA9IHNv
dXJjZU1hcDsKLSAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLmhhc01h
cHBpbmdGb3JVUkwoc291cmNlVVJMKSAmJiAhdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZv
clVSSSh1cmkpKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3dvcmtzcGFjZU1hcHBpbmcuaGFz
TWFwcGluZ0ZvclVSTChzb3VyY2VVUkwpICYmICF0aGlzLl93b3Jrc3BhY2VNYXBwaW5nLnVpU291
cmNlQ29kZUZvclVSTChzb3VyY2VVUkwpKSB7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUNv
bnRlbnQgPSBzb3VyY2VNYXAuc291cmNlQ29udGVudChzb3VyY2VVUkwpOwogICAgICAgICAgICAg
ICAgIHZhciBjb250ZW50UHJvdmlkZXI7CiAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUNvbnRl
bnQpCkBAIC0xMjIsOSArMTIyLDkgQEAgV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRQcm92aWRlciA9IG5l
dyBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVyKHNvdXJj
ZVVSTCk7CiAgICAgICAgICAgICAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFk
ZEZpbGVGb3JVUkwoc291cmNlVVJMLCBjb250ZW50UHJvdmlkZXIsIHRydWUpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNv
dXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlz
Ll93b3Jrc3BhY2VNYXBwaW5nLnVpU291cmNlQ29kZUZvclVSTChzb3VyY2VVUkwpOwogICAgICAg
ICAgICAgaWYgKHVpU291cmNlQ29kZSkgewotICAgICAgICAgICAgICAgIHRoaXMuX2JpbmRVSVNv
dXJjZUNvZGUodGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCA9IHNjcmlwdC5pc0NvbnRlbnRT
Y3JpcHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKaW5k
ZXggMTc4ODkzYzg0YjVjN2UzM2YxMTE2Y2E4NTAzM2E2OThiYjgyOWUxOS4uMzU4YzY2YzY4OGFl
N2M0ZDM0ZjgyMzkwMjE2NTUyMmZhZjU4MzJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclNjcmlwdE1hcHBpbmcuanMKQEAg
LTMzLDExICszMywxMSBAQAogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jr
c3BhY2UKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyfSBu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIKICAqLwotV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0
TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKQor
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwg
bmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLCB3b3Jrc3BhY2VNYXBwaW5nKQogewogICAgIHRoaXMu
X2RlZmF1bHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5EZWZhdWx0U2NyaXB0TWFwcGluZyh3
b3Jrc3BhY2UpOwotICAgIHRoaXMuX3Jlc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTY3JpcHRNYXBwaW5nKHdvcmtzcGFjZSk7Ci0gICAgdGhpcy5fY29tcGlsZXJNYXBw
aW5nID0gbmV3IFdlYkluc3BlY3Rvci5Db21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOworICAgIHRoaXMuX3Jlc291cmNlTWFwcGluZyA9IG5l
dyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nKHdvcmtzcGFjZSwgd29ya3NwYWNl
TWFwcGluZyk7CisgICAgdGhpcy5fY29tcGlsZXJNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5D
b21waWxlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIs
IHdvcmtzcGFjZU1hcHBpbmcpOwogICAgIHRoaXMuX3NuaXBwZXRNYXBwaW5nID0gV2ViSW5zcGVj
dG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5zY3JpcHRNYXBwaW5nOwogCiAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCB0aGlzLl9wYXJzZWRTY3JpcHRTb3VyY2UsIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxl
TWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hcHBp
bmcuanMKaW5kZXggZTRmMTcyN2IwYTcyNWNkMWU0MmQ5MTVmNGI4NDQ1ODc1OWNiNTIzNS4uYjUy
NGQ0MGUwN2UwZGRjMjBkMDIwYWQxODdjNDdjN2I0N2JjNzRkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlTWFwcGluZy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzCkBAIC0zMCwxMSArMzAs
OSBAQAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmls
ZVN5c3RlbU1hcHBpbmd9IGZpbGVTeXN0ZW1NYXBwaW5nCiAgKi8KLVdlYkluc3BlY3Rvci5GaWxl
TWFwcGluZyA9IGZ1bmN0aW9uKGZpbGVTeXN0ZW1NYXBwaW5nKQorV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nID0gZnVuY3Rpb24oKQogewotICAgIHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nID0gZmls
ZVN5c3RlbU1hcHBpbmc7CiAgICAgdGhpcy5fbWFwcGluZ0VudHJpZXNTZXR0aW5nID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImZpbGVNYXBwaW5nRW50cmllcyIsIFtdKTsK
ICAgICAvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnk+fSAq
LwogICAgIHRoaXMuX2VudHJpZXMgPSBbXTsKQEAgLTQzLDY5ICs0MSwzMSBAQCBXZWJJbnNwZWN0
b3IuRmlsZU1hcHBpbmcgPSBmdW5jdGlvbihmaWxlU3lzdGVtTWFwcGluZykKIAogV2ViSW5zcGVj
dG9yLkZpbGVNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeX0gZW50cnkKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gdXJsCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKiBAcmV0dXJuIHs/V2ViSW5z
cGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5fQogICAgICAqLwotICAgIF9lbnRyeU1hdGNoZXNVUkw6
IGZ1bmN0aW9uKGVudHJ5LCB1cmwpCi0gICAgewotICAgICAgICByZXR1cm4gdXJsLnN0YXJ0c1dp
dGgoZW50cnkudXJsUHJlZml4KTsKLSAgICB9LAotICAgIAotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5fSBlbnRyeQotICAgICAqIEByZXR1cm4g
ez9zdHJpbmd9Ci0gICAgICovCi0gICAgX2VudHJ5VVJJUHJlZml4OiBmdW5jdGlvbihlbnRyeSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9maWxlU3lzdGVtTWFwcGluZy51cmlQcmVmaXhG
b3JQYXRoUHJlZml4KGVudHJ5LnBhdGhQcmVmaXgpOwotICAgIH0sCi0gICAgCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAg
ICovCi0gICAgaGFzTWFwcGluZ0ZvclVSTDogZnVuY3Rpb24odXJsKQotICAgIHsKLSAgICAgICAg
cmV0dXJuICEhdGhpcy5faW5uZXJVUklGb3JVUkwodXJsKTsKLSAgICB9LAotICAgIAotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQot
ICAgICAqLwotICAgIF9pbm5lclVSSUZvclVSTDogZnVuY3Rpb24odXJsKQorICAgIG1hcHBpbmdF
bnRyeUZvclVSTDogZnVuY3Rpb24odXJsKQogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl9lbnRyaWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgZW50cnkg
PSB0aGlzLl9lbnRyaWVzW2ldOwotICAgICAgICAgICAgdmFyIHVyaVByZWZpeCA9IHRoaXMuX2Vu
dHJ5VVJJUHJlZml4KGVudHJ5KTsKLSAgICAgICAgICAgIGlmICh1cmlQcmVmaXggJiYgdGhpcy5f
ZW50cnlNYXRjaGVzVVJMKGVudHJ5LCB1cmwpKQotICAgICAgICAgICAgICAgIHJldHVybiB1cmlQ
cmVmaXggKyB1cmwuc3Vic3RyaW5nKGVudHJ5LnVybFByZWZpeC5sZW5ndGgpOworICAgICAgICAg
ICAgaWYgKHVybC5zdGFydHNXaXRoKGVudHJ5LnVybFByZWZpeCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGVudHJ5OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0sCi0g
ICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEByZXR1cm4g
e3N0cmluZ30KLSAgICAgKi8KLSAgICB1cmlGb3JVUkw6IGZ1bmN0aW9uKHVybCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9pbm5lclVSSUZvclVSTCh1cmwpIHx8IFdlYkluc3BlY3Rvci5T
aW1wbGVXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwodXJsLCBXZWJJbnNwZWN0b3IucHJvamVj
dFR5cGVzLk5ldHdvcmspOwotICAgIH0sCi0gICAgCisKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gcGF0aAogICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KLSAgICB1cmxG
b3JQYXRoOiBmdW5jdGlvbihwYXRoKQorICAgIG1hcHBpbmdFbnRyeUZvclBhdGg6IGZ1bmN0aW9u
KHBhdGgpCiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2VudHJpZXMu
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX2VudHJpZXNbaV07
CiAgICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGVudHJ5LnBhdGhQcmVmaXgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBlbnRyeS51cmxQcmVmaXggKyBwYXRoLnN1YnN0cmluZyhlbnRy
eS5wYXRoUHJlZml4Lmxlbmd0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwK
IAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9GaWxlU3lzdGVtTWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRmlsZVN5c3RlbU1hcHBpbmcuanMKaW5kZXggOTI4MmRjOGYxOGViMjE3NGIyOGIzNGRiNWNi
MDExODBlZTc4ZDM0Yi4uMTg4OTVjMzE4MDc5ODUzZmI3MTlhNTE4NWEyNzM1ZWQ4YTBiOGRlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVt
TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVT
eXN0ZW1NYXBwaW5nLmpzCkBAIC00MCwxMCArNDAsMTAgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1NYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBmaWxlU3lzdGVtUGF0aHM6IGZ1bmN0aW9uKCkg
eyB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGhQcmVmaXgKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gcHJlZml4CiAgICAgICogQHJldHVybiB7P3N0cmluZ30KICAgICAg
Ki8KLSAgICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OiBmdW5jdGlvbihwYXRoUHJlZml4KSB7IH0s
CisgICAgZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXg6IGZ1bmN0aW9uKHByZWZpeCkgeyB9CiB9CiAK
IC8qKgpAQCAtMTE5LDcgKzExOSw3IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZ0lt
cGwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9maWxlU3lzdGVtTmFtZXNbaWRdID0gbmFt
ZTsKICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbVBhdGhzW2lkXSA9IGZpbGVTeXN0ZW1QYXRoOwog
ICAgICAgICB0aGlzLl9zYXZlVG9TZXR0aW5ncygpOwotICAgICAgICBkZWxldGUgdGhpcy5fY2Fj
aGVkVVJJUHJlZml4ZXM7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9jYWNoZWRGaWxlU3lzdGVtUGF0
aHM7CiAgICAgICAgIHJldHVybiBpZDsKICAgICB9LAogCkBAIC0xMzUsNyArMTM1LDcgQEAgV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRl
bGV0ZSB0aGlzLl9maWxlU3lzdGVtTmFtZXNbaWRdOwogICAgICAgICBkZWxldGUgdGhpcy5fZmls
ZVN5c3RlbVBhdGhzW2lkXTsKICAgICAgICAgdGhpcy5fc2F2ZVRvU2V0dGluZ3MoKTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX2NhY2hlZFVSSVByZWZpeGVzOworICAgICAgICBkZWxldGUgdGhpcy5f
Y2FjaGVkRmlsZVN5c3RlbVBhdGhzOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE0NywyNCArMTQ3
LDI0IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZ0ltcGwucHJvdG90eXBlID0gewog
ICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFByZWZpeAorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXgKICAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQogICAg
ICAqLwotICAgIHVyaVByZWZpeEZvclBhdGhQcmVmaXg6IGZ1bmN0aW9uKHBhdGhQcmVmaXgpCisg
ICAgZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXg6IGZ1bmN0aW9uKHByZWZpeCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX2NhY2hlZFVSSVByZWZpeGVzID0gdGhpcy5fY2FjaGVkVVJJUHJlZml4ZXMgfHwg
e307Ci0gICAgICAgIGlmICh0aGlzLl9jYWNoZWRVUklQcmVmaXhlcy5oYXNPd25Qcm9wZXJ0eShw
YXRoUHJlZml4KSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWNoZWRVUklQcmVmaXhlc1tw
YXRoUHJlZml4XTsKLSAgICAgICAgdmFyIHVyaVByZWZpeCA9IG51bGw7CisgICAgICAgIHRoaXMu
X2NhY2hlZEZpbGVTeXN0ZW1QYXRocyA9IHRoaXMuX2NhY2hlZEZpbGVTeXN0ZW1QYXRocyB8fCB7
fTsKKyAgICAgICAgaWYgKHRoaXMuX2NhY2hlZEZpbGVTeXN0ZW1QYXRocy5oYXNPd25Qcm9wZXJ0
eShwcmVmaXgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhY2hlZEZpbGVTeXN0ZW1QYXRo
c1twcmVmaXhdOworICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICBmb3IgKHZhciBpZCBpbiB0
aGlzLl9maWxlU3lzdGVtUGF0aHMpIHsKICAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtUGF0aCA9
IHRoaXMuX2ZpbGVTeXN0ZW1QYXRoc1tpZF07Ci0gICAgICAgICAgICBpZiAocGF0aFByZWZpeC5z
dGFydHNXaXRoKGZpbGVTeXN0ZW1QYXRoICsgIi8iKSkgewotICAgICAgICAgICAgICAgIHVyaVBy
ZWZpeCA9IGlkICsgcGF0aFByZWZpeC5zdWJzdHIoZmlsZVN5c3RlbVBhdGgubGVuZ3RoKTsKKyAg
ICAgICAgICAgIGlmIChwcmVmaXguc3RhcnRzV2l0aChmaWxlU3lzdGVtUGF0aCArICIvIikpIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBmaWxlU3lzdGVtUGF0aDsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICB0aGlzLl9jYWNoZWRV
UklQcmVmaXhlc1twYXRoUHJlZml4XSA9IHVyaVByZWZpeDsKLSAgICAgICAgcmV0dXJuIHVyaVBy
ZWZpeDsKKyAgICAgICAgdGhpcy5fY2FjaGVkRmlsZVN5c3RlbVBhdGhzW3ByZWZpeF0gPSByZXN1
bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2Vi
SW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qcwpp
bmRleCBiNzA3MzYwZGViMWExYmI1ZTAwNzU2N2Q2M2QyZWI5NGE3YWMyYjI5Li45N2EyMTg0OTIw
NGEwMWY4MDFkNmRkZjEwMmI4N2ZjZDI0NmZmODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtUHJvamVjdERlbGVn
YXRlLmpzCkBAIC0yMDUsMTMgKzIwNSwxMyBAQCBXZWJJbnNwZWN0b3IuZmlsZVN5c3RlbVByb2pl
Y3REZWxlZ2F0ZSA9IG51bGw7CiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlByb2plY3RE
ZWxlZ2F0ZX0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFn
ZXJ9IGlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldv
cmtzcGFjZX0gd29ya3NwYWNlCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZ30g
ZmlsZU1hcHBpbmcKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZU1hcHBpbmd9IHdv
cmtzcGFjZU1hcHBpbmcKICAqLwotV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92
aWRlciA9IGZ1bmN0aW9uKGlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIsIHdvcmtzcGFjZSwgZmls
ZU1hcHBpbmcpCitXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gZnVu
Y3Rpb24oaXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlciwgd29ya3NwYWNlLCB3b3Jrc3BhY2VNYXBw
aW5nKQogewogICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgPSBpc29sYXRlZEZp
bGVTeXN0ZW1NYW5hZ2VyOwogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0
aGlzLl9maWxlTWFwcGluZyA9IGZpbGVNYXBwaW5nOworICAgIHRoaXMuX3dvcmtzcGFjZU1hcHBp
bmcgPSB3b3Jrc3BhY2VNYXBwaW5nOwogICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdl
ci5FdmVudHMuRmlsZVN5c3RlbUFkZGVkLCB0aGlzLl9maWxlU3lzdGVtQWRkZWQsIHRoaXMpOwog
ICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVudHMuRmlsZVN5c3RlbVJlbW92
ZWQsIHRoaXMuX2ZpbGVTeXN0ZW1SZW1vdmVkLCB0aGlzKTsKIH0KQEAgLTIyNCw3ICsyMjQsNyBA
QCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsK
ICAgICB7CiAgICAgICAgIHZhciBmaWxlU3lzdGVtID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3Iu
SXNvbGF0ZWRGaWxlU3lzdGVtfSAqLyAoZXZlbnQuZGF0YSk7CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLl93b3Jrc3BhY2UucHJvamVjdChmaWxlU3lzdGVtLmlkKCkpKTsKLSAgICAgICAg
dmFyIHByb2plY3REZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3RE
ZWxlZ2F0ZShmaWxlU3lzdGVtLCB0aGlzLl9maWxlTWFwcGluZykKKyAgICAgICAgdmFyIHByb2pl
Y3REZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZShm
aWxlU3lzdGVtLCB0aGlzLl93b3Jrc3BhY2VNYXBwaW5nKQogICAgICAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkUHJvamVjdChwcm9qZWN0RGVsZWdhdGUpOwogICAgICAgICBwcm9qZWN0RGVsZWdhdGUu
cG9wdWxhdGUoKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcwppbmRl
eCBjMmQ2YzRlM2NkNDE1OWMxODJkZTNkOWI5ZGQyOTk0NTA5MzlmMTIwLi44ZjgxNTUyMzFjNzNh
ZTExYmFkOWExNmMyZDlhYWYzODQ2ZDc0MTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92
aWRlci5qcwpAQCAtMzEsMTAgKzMxLDEyIEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXJ9IG5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3NwYWNlTWFwcGluZ30gd29y
a3NwYWNlTWFwcGluZwogICovCi1XZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3Zp
ZGVyID0gZnVuY3Rpb24obmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKQorV2ViSW5zcGVjdG9yLk5l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1bmN0aW9uKG5ldHdvcmtXb3Jrc3BhY2VQcm92
aWRlciwgd29ya3NwYWNlTWFwcGluZykKIHsKICAgICB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIgPSBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXI7CisgICAgdGhpcy5fd29ya3NwYWNlTWFw
cGluZyA9IHdvcmtzcGFjZU1hcHBpbmc7CiAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50
VHlwZXMuUmVzb3VyY2VBZGRlZCwgdGhpcy5fcmVzb3VyY2VBZGRlZCwgdGhpcyk7CiAgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuTWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9t
YWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNl
ZFNjcmlwdFNvdXJjZSwgdGhpcy5fcGFyc2VkU2NyaXB0U291cmNlLCB0aGlzKTsKQEAgLTExMiw3
ICsxMTQsNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBfYWRkRmlsZTogZnVuY3Rpb24odXJsLCBjb250ZW50UHJv
dmlkZXIsIGlzQ29udGVudFNjcmlwdCkKICAgICB7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
ZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCh1cmwpKQorICAgICAgICBpZiAodGhpcy5fd29y
a3NwYWNlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJMKHVybCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdmFyIHR5cGUgPSBjb250ZW50UHJvdmlkZXIuY29udGVudFR5cGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3Jp
cHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVNjcmlwdE1hcHBpbmcuanMKaW5kZXggYmM5OGNmOGMzZDRlYzA1ZDQ1NzllNzJmNzc3ODFiMzNk
NzljZjRmOS4uYzAxMjRhMTI0MDUwOGNiM2Q2ZWJjMDliNmRkZGJhZWVkYzQ1OGUzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1h
cHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVNjcmlwdE1hcHBpbmcuanMKQEAgLTMyLDEwICszMiwxMiBAQAogICogQGNvbnN0cnVjdG9yCiAg
KiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNjcmlwdFNvdXJjZU1hcHBpbmd9CiAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQorICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlTWFwcGluZ30gd29ya3NwYWNlTWFwcGluZwogICovCi1XZWJJbnNwZWN0
b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24od29ya3NwYWNlKQorV2ViSW5zcGVj
dG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKHdvcmtzcGFjZSwgd29ya3NwYWNl
TWFwcGluZykKIHsKICAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CisgICAgdGhpcy5f
d29ya3NwYWNlTWFwcGluZyA9IHdvcmtzcGFjZU1hcHBpbmc7CiAgICAgdGhpcy5fd29ya3NwYWNl
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50
cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3VyY2VDb2RlQWRkZWRUb1dvcmtzcGFjZSwg
dGhpcyk7CiAKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5HbG9iYWxPYmplY3RDbGVhcmVkLCB0
aGlzLl9kZWJ1Z2dlclJlc2V0LCB0aGlzKTsKQEAgLTEzOCw4ICsxNDAsNyBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gRklYTUU6
IHdvcmthcm91bmQgZm9yIHNjcmlwdC5pc0R5bmFtaWNTY3JpcHQoKSBiZWluZyB1bnJlbGlhYmxl
LgogICAgICAgICBpZiAoIXNjcmlwdC5pc0lubGluZVNjcmlwdCgpICYmIHRoaXMuX2lubGluZVNj
cmlwdHNGb3JTb3VyY2VVUkxbc2NyaXB0LnNvdXJjZVVSTF0pCiAgICAgICAgICAgICByZXR1cm4g
bnVsbDsKLSAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JV
Ukwoc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudWlT
b3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2VNYXBw
aW5nLnVpU291cmNlQ29kZUZvclVSTChzY3JpcHQuc291cmNlVVJMKTsKICAgICB9LAogCiAgICAg
LyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
VXRpbHMuanMKaW5kZXggZTViYzJiNDk2MzZjM2Y4ZDg3YWM3YTQ3MTgxNzIzYmNlOTQ3OWZkZi4u
OGEwM2Q2NzliYzY4MjJkNmQzOTk2YzRhZDE0YzBiZThiYWJjZDhhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcwpAQCAtNTgs
OCArNTgsNyBAQCBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwgPSBmdW5jdGlvbih1cmwp
CiAgICAgaWYgKHJlc291cmNlKQogICAgICAgICByZXR1cm4gcmVzb3VyY2UuZGlzcGxheU5hbWU7
CiAKLSAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVyaUZvclVSTCh1cmwp
OwotICAgIHZhciB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNl
Q29kZUZvclVSSSh1cmkpOworICAgIHZhciB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iud29y
a3NwYWNlTWFwcGluZy51aVNvdXJjZUNvZGVGb3JVUkwodXJsKTsKICAgICBpZiAodWlTb3VyY2VD
b2RlKQogICAgICAgICByZXR1cm4gdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5kaXNwbGF5TmFtZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291
cmNlTWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1Nv
dXJjZU1hcHBpbmcuanMKaW5kZXggMzY1YWM0NWJjZDJiNjU0ZjJjNzVhODk2MTQ0NTQxNzNjYmM4
ZmIxNy4uNzQ2ZTRmODliYzAzMjg2NzJmNzg4ZmQ3OTczODQ2YThjZjI3NjU1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBw
aW5nLmpzCkBAIC0zNCwxMSArMzQsMTMgQEAKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWx9IGNzc01vZGVsCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2V9IHdv
cmtzcGFjZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXJ9
IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29ya3Nw
YWNlTWFwcGluZ30gd29ya3NwYWNlTWFwcGluZwogICovCi1XZWJJbnNwZWN0b3IuU0FTU1NvdXJj
ZU1hcHBpbmcgPSBmdW5jdGlvbihjc3NNb2RlbCwgd29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNl
UHJvdmlkZXIpCitXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbihjc3NN
b2RlbCwgd29ya3NwYWNlLCBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIsIHdvcmtzcGFjZU1hcHBp
bmcpCiB7CiAgICAgdGhpcy5fY3NzTW9kZWwgPSBjc3NNb2RlbDsKICAgICB0aGlzLl93b3Jrc3Bh
Y2UgPSB3b3Jrc3BhY2U7CisgICAgdGhpcy5fd29ya3NwYWNlTWFwcGluZyA9IHdvcmtzcGFjZU1h
cHBpbmc7CiAgICAgdGhpcy5fbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV0d29ya1dvcmtz
cGFjZVByb3ZpZGVyOwogICAgIHRoaXMuX3NvdXJjZU1hcEJ5VVJMID0ge307CiAgICAgdGhpcy5f
c291cmNlTWFwQnlTdHlsZVNoZWV0VVJMID0ge307CkBAIC0xMTMsOCArMTE1LDcgQEAgV2ViSW5z
cGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZWxvYWRDU1M6
IGZ1bmN0aW9uKHVybCkKICAgICB7Ci0gICAgICAgIHZhciB1cmkgPSBXZWJJbnNwZWN0b3IuZmls
ZU1hcHBpbmcudXJpRm9yVVJMKHVybCk7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlz
Ll93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2VNYXBwaW5nLnVpU291cmNlQ29kZUZvclVSTCh1cmwpOwog
ICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dmFyIG5ld0NvbnRlbnQgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hy
b25vdXNseSh1cmwpOwpAQCAtMjI2LDggKzIyNyw3IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNl
TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBzb3VyY2VzID0gc291cmNlTWFwLnNv
dXJjZXMoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgICAgICB2YXIgdXJsID0gc291cmNlc1tpXTsKLSAgICAgICAgICAgIHZhciB1
cmkgPSBXZWJJbnNwZWN0b3IuZmlsZU1hcHBpbmcudXJpRm9yVVJMKHVybCk7Ci0gICAgICAgICAg
ICBpZiAoIVdlYkluc3BlY3Rvci5maWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJMKHVybCkgJiYg
IXRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKSkgeworICAgICAgICAgICAg
aWYgKCF0aGlzLl93b3Jrc3BhY2VNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwodXJsKSAmJiAhdGhp
cy5fd29ya3NwYWNlTWFwcGluZy51aVNvdXJjZUNvZGVGb3JVUkwodXJsKSkgewogICAgICAgICAg
ICAgICAgIHZhciBjb250ZW50ID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkodXJsKTsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudFByb3ZpZGVyID0g
bmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXMuU3R5bGVzaGVldCwgY29udGVudCwgInRleHQveC1zY3NzIik7CiAgICAgICAgICAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX25ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5h
ZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3ZpZGVyLCB0cnVlKTsKQEAgLTI0NywxNSArMjQ3
LDEzIEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICB2YXIgbG9jYXRpb24gPSAvKiogQHR5cGUgV2ViSW5zcGVjdG9yLkNTU0xvY2F0
aW9uICovIChyYXdMb2NhdGlvbik7CiAgICAgICAgIHZhciBlbnRyeTsKLSAgICAgICAgdmFyIHVp
U291cmNlQ29kZTsKICAgICAgICAgdmFyIHNvdXJjZU1hcCA9IHRoaXMuX3NvdXJjZU1hcEJ5U3R5
bGVTaGVldFVSTFtsb2NhdGlvbi51cmxdOwogICAgICAgICBpZiAoIXNvdXJjZU1hcCkKICAgICAg
ICAgICAgIHJldHVybiBudWxsOwogICAgICAgICBlbnRyeSA9IHNvdXJjZU1hcC5maW5kRW50cnko
bG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICAgICAgaWYg
KCFlbnRyeSB8fCBlbnRyeS5sZW5ndGggPT09IDIpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsK
LSAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwoZW50
cnlbMl0pOwotICAgICAgICB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VD
b2RlRm9yVVJJKHVyaSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3Bh
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUZvclVSTChlbnRyeVsyXSk7CiAgICAgICAgIGlmICghdWlT
b3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlTb3VyY2VDb2RlLCBlbnRyeVszXSwgZW50cnlbNF0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcwppbmRleCA4MGI1MTBhMjZmZTFkMDFmZWQ0NWE5ZThiNzE2YWMwOGUwYTJlZWFhLi4yYzlj
Y2U0YTNjYTljNzU5MGNjNGQ3NDE5MjBhMjA0OTUzMDRmYjhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMzcyLDggKzM3
Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyRW5hYmxlZCgpICYm
IGFuY2hvci51aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
dmFyIHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwoYW5jaG9yLmhyZWYp
OwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29k
ZUZvclVSSSh1cmkpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLndv
cmtzcGFjZU1hcHBpbmcudWlTb3VyY2VDb2RlRm9yVVJMKGFuY2hvci5ocmVmKTsKICAgICAgICAg
aWYgKHVpU291cmNlQ29kZSkgewogICAgICAgICAgICAgYW5jaG9yLnVpU291cmNlQ29kZSA9IHVp
U291cmNlQ29kZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlk
ZXIuanMKaW5kZXggMGZhN2FkZGJkNDdlOWU3NWQ4NDI0NDE1M2Q1ODA5Y2VjNDBlODM0Mi4uMDQ1
NjBlZDhmMDc2NzM3YWZiMjA4OWFkYTcxMDE3Yjg0MzBmYmM5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVBy
b3ZpZGVyLmpzCkBAIC0yMTMsMjUgKzIxMywxMiBAQCBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3Nw
YWNlUHJvdmlkZXIuc3BsaXRVUkwgPSBmdW5jdGlvbih1cmwpCiAgKiBAcGFyYW0ge0FycmF5Ljxz
dHJpbmc+fSBzcGxpdHRlZFVSTAogICogQHJldHVybiB7c3RyaW5nfQogICovCi1XZWJJbnNwZWN0
b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuX3BhdGhGb3JTcGxpdHRlZFVSTCA9IGZ1bmN0aW9u
KHNwbGl0dGVkVVJMKQorV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnBhdGhG
b3JTcGxpdHRlZFVSTCA9IGZ1bmN0aW9uKHNwbGl0dGVkVVJMKQogewogICAgIHNwbGl0dGVkVVJM
LnNoaWZ0KCk7CiAgICAgcmV0dXJuIHNwbGl0dGVkVVJMLmpvaW4oIi8iKTsKIH0KIAotLyoqCi0g
KiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gKiBAcGFyYW0ge3N0cmluZ30gdHlwZQotICogQHJldHVy
biB7c3RyaW5nfQotICovCi1XZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIudXJp
Rm9yVVJMID0gZnVuY3Rpb24odXJsLCB0eXBlKQotewotICAgIHZhciBzcGxpdHRlZFVSTCA9IFdl
Ykluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5zcGxpdFVSTCh1cmwpOwotICAgIHZh
ciBwcm9qZWN0SWQgPSBXZWJJbnNwZWN0b3IuU2ltcGxlUHJvamVjdERlbGVnYXRlLnByb2plY3RJ
ZChzcGxpdHRlZFVSTFswXSwgdHlwZSk7Ci0gICAgdmFyIHBhdGggPSBXZWJJbnNwZWN0b3IuU2lt
cGxlV29ya3NwYWNlUHJvdmlkZXIuX3BhdGhGb3JTcGxpdHRlZFVSTChzcGxpdHRlZFVSTCk7Ci0g
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUudXJpKHByb2plY3RJZCwgcGF0aCk7
Ci0gfQotCiBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0g
ewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9qZWN0TmFtZQpAQCAtMjgzLDcg
KzI3MCw3IEBAIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICB2YXIgc3BsaXR0ZWRVUkwgPSBXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIuc3BsaXRVUkwodXJsKTsKICAgICAgICAgdmFyIHByb2plY3ROYW1l
ID0gc3BsaXR0ZWRVUkxbMF07Ci0gICAgICAgIHZhciBwYXRoID0gV2ViSW5zcGVjdG9yLlNpbXBs
ZVdvcmtzcGFjZVByb3ZpZGVyLl9wYXRoRm9yU3BsaXR0ZWRVUkwoc3BsaXR0ZWRVUkwpOworICAg
ICAgICB2YXIgcGF0aCA9IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5wYXRo
Rm9yU3BsaXR0ZWRVUkwoc3BsaXR0ZWRVUkwpOwogICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJB
ZGRGaWxlKHByb2plY3ROYW1lLCBwYXRoLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgaXNFZGl0YWJs
ZSwgZm9yY2VVbmlxdWUsIGlzQ29udGVudFNjcmlwdCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5n
LmpzCmluZGV4IDcyNjQwNTI1ZDBiODBiMTg4N2EyMTJmNThlM2VkZjg4Yzg5NWFlNjcuLjdlNTRi
NTA5Y2E5ZjFjZjk3ZjBmYmY5NjliZWIxN2VkOWY4NjU3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMK
QEAgLTMzLDExICszMywxMyBAQAogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Tb3VyY2VN
YXBwaW5nfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbH0gY3NzTW9kZWwK
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29ya3NwYWNlCisgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VNYXBwaW5nfSB3b3Jrc3BhY2VNYXBwaW5nCiAgKi8KLVdl
Ykluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oY3NzTW9kZWwsIHdvcmtz
cGFjZSkKK1dlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oY3NzTW9k
ZWwsIHdvcmtzcGFjZSwgd29ya3NwYWNlTWFwcGluZykKIHsKICAgICB0aGlzLl9jc3NNb2RlbCA9
IGNzc01vZGVsOwogICAgIHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZTsKKyAgICB0aGlzLl93
b3Jrc3BhY2VNYXBwaW5nID0gd29ya3NwYWNlTWFwcGluZzsKICAgICB0aGlzLl93b3Jrc3BhY2Uu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuV29ya3NwYWNlLkV2ZW50cy5Qcm9qZWN0V2ls
bFJlc2V0LCB0aGlzLl9wcm9qZWN0V2lsbFJlc2V0LCB0aGlzKTsKICAgICB0aGlzLl93b3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzLl91aVNvdXJjZUNvZGVBZGRlZFRvV29ya3NwYWNl
LCB0aGlzKTsKIApAQCAtNTQsOCArNTYsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0aW9u
KHJhd0xvY2F0aW9uKQogICAgIHsKICAgICAgICAgdmFyIGxvY2F0aW9uID0gLyoqIEB0eXBlIFdl
Ykluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyAocmF3TG9jYXRpb24pOwotICAgICAgICB2YXIgdXJp
ID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVyaUZvclVSTChsb2NhdGlvbi51cmwpOwotICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVS
SSh1cmkpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlTWFwcGlu
Zy51aVNvdXJjZUNvZGVGb3JVUkwobG9jYXRpb24udXJsKTsKICAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGxvY2F0aW9uLmxpbmVOdW1iZXIs
IDApOwogICAgIH0sCiAKQEAgLTc3LDggKzc4LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJj
ZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
IXJlc291cmNlLnVybCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHVyaSA9IFdl
Ykluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwocmVzb3VyY2UudXJsKTsKLSAgICAgICAg
dmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJp
KTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZU1hcHBpbmcudWlT
b3VyY2VDb2RlRm9yVVJMKHJlc291cmNlLnVybCk7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2Rl
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlKHVp
U291cmNlQ29kZSk7CkBAIC0xMjUsOCArMTI1LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJj
ZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIF9tYWluRnJhbWVDcmVhdGVkT3JOYXZpZ2F0ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgZm9yICh2YXIgbWFwcGVkVVJMIGluIHRo
aXMuX21hcHBlZFVSTHMpIHsKLSAgICAgICAgICAgIHZhciB1cmkgPSBXZWJJbnNwZWN0b3IuZmls
ZU1hcHBpbmcudXJpRm9yVVJMKG1hcHBlZFVSTCk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZU1hcHBpbmcudWlTb3VyY2VDb2Rl
Rm9yVVJMKG1hcHBlZFVSTCk7CiAgICAgICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zdHlsZUZpbGUo
KS5kaXNwb3NlKCk7CkBAIC0yMTQsMTQgKzIxMywxNSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVGaWxl
LnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWx9IGNzc01vZGVsCisgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2VNYXBwaW5nfSB3b3Jrc3BhY2VNYXBwaW5nCiAgKi8KLVdlYklu
c3BlY3Rvci5TdHlsZUNvbnRlbnRCaW5kaW5nID0gZnVuY3Rpb24oY3NzTW9kZWwpCitXZWJJbnNw
ZWN0b3IuU3R5bGVDb250ZW50QmluZGluZyA9IGZ1bmN0aW9uKGNzc01vZGVsLCB3b3Jrc3BhY2VN
YXBwaW5nKQogewogICAgIHRoaXMuX2Nzc01vZGVsID0gY3NzTW9kZWw7CisgICAgdGhpcy5fd29y
a3NwYWNlTWFwcGluZyA9IHdvcmtzcGFjZU1hcHBpbmc7CiAgICAgdGhpcy5fY3NzTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVl
dENoYW5nZWQsIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2VkLCB0aGlzKTsKIH0KIApAQCAtMjg4LDgg
KzI4OCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZUNvbnRlbnRCaW5kaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKHR5cGVvZiBzdHlsZVNoZWV0VVJMICE9PSAic3RyaW5nIikKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5n
LnVyaUZvclVSTChzdHlsZVNoZWV0VVJMKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IFdl
Ykluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2VNYXBwaW5nLnVpU291cmNlQ29kZUZvclVS
TChzdHlsZVNoZWV0VVJMKTsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCiAgICAgICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0
LnFyYwppbmRleCAxZGVlZjMxMDdlNGUxZjgyMDQzNThjZWJiOTU0ZjgyODgyODM2YzhmLi4xOWNh
MDhjZTRiOGI3N2RjYjdmZDhmYWJhOGNmZDlkNGM4ZjVjZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0yMzQsNiArMjM0LDcgQEAKICAg
ICA8ZmlsZT5Xb3JrZXJNYW5hZ2VyLmpzPC9maWxlPgogICAgIDxmaWxlPldvcmtlcnNTaWRlYmFy
UGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5Xb3Jrc3BhY2UuanM8L2ZpbGU+CisgICAgPGZpbGU+
V29ya3NwYWNlTWFwcGluZy5qczwvZmlsZT4KICAgICA8ZmlsZT5VZ2xpZnlKUy9wYXJzZS1qcy5q
czwvZmlsZT4KICAgICA8ZmlsZT5hdWRpdHNQYW5lbC5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+YnJl
YWRjcnVtYkxpc3QuY3NzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2VNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2VNYXBwaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2ZWE5OWZkY2Yw
MjEwNWVlOTRhNjRkZjI1MDQ0YmUyMWUwMjgwMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZU1hcHBpbmcuanMKQEAgLTAsMCAr
MSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuV29y
a3NwYWNlfSB3b3Jrc3BhY2UKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nfSBm
aWxlTWFwcGluZworICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBpbmd9IGZp
bGVTeXN0ZW1NYXBwaW5nCisgKi8KK1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VNYXBwaW5nID0gZnVu
Y3Rpb24od29ya3NwYWNlLCBmaWxlTWFwcGluZywgZmlsZVN5c3RlbU1hcHBpbmcpCit7CisgICAg
dGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlOworICAgIHRoaXMuX2ZpbGVNYXBwaW5nID0gZmls
ZU1hcHBpbmc7CisgICAgdGhpcy5fZmlsZVN5c3RlbU1hcHBpbmcgPSBmaWxlU3lzdGVtTWFwcGlu
ZzsKK30KKworV2ViSW5zcGVjdG9yLldvcmtzcGFjZU1hcHBpbmcucHJvdG90eXBlID0geworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQorICAgICAqLworICAgIGhhc01hcHBpbmdGb3JVUkw6IGZ1bmN0aW9uKHVybCkKKyAgICB7Cisg
ICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX2ZpbGVNYXBwaW5nLm1hcHBpbmdFbnRyeUZvclVSTCh1
cmwpOworICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gISF0aGlzLl9maWxlU3lzdGVtUGF0aEZvckVudHJ5KGVudHJ5KTsKKyAgICB9
LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LkVudHJ5fSBlbnRyeQorICAgICAqIEByZXR1cm4gez9XZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcu
RW50cnl9CisgICAgICovCisgICAgX2ZpbGVTeXN0ZW1QYXRoRm9yRW50cnk6IGZ1bmN0aW9uKGVu
dHJ5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nLmZpbGVT
eXN0ZW1QYXRoRm9yUHJlZml4KGVudHJ5LnBhdGhQcmVmaXgpOworICAgIH0sCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGV9CisgICAgICovCisgICAgdWlTb3VyY2VDb2RlRm9yVVJMOiBmdW5jdGlvbih1
cmwpCisgICAgeworICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9maWxlTWFwcGluZy5tYXBwaW5n
RW50cnlGb3JVUkwodXJsKTsKKyAgICAgICAgdmFyIGZpbGVTeXN0ZW1QYXRoID0gZW50cnkgPyB0
aGlzLl9maWxlU3lzdGVtUGF0aEZvckVudHJ5KGVudHJ5KSA6IG51bGw7CisgICAgICAgIGlmICgh
ZmlsZVN5c3RlbVBhdGgpIHsKKyAgICAgICAgICAgIHZhciBzcGxpdHRlZFVSTCA9IFdlYkluc3Bl
Y3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5zcGxpdFVSTCh1cmwpOworICAgICAgICAgICAg
dmFyIHByb2plY3RJZCA9IFdlYkluc3BlY3Rvci5TaW1wbGVQcm9qZWN0RGVsZWdhdGUucHJvamVj
dElkKHNwbGl0dGVkVVJMWzBdLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwor
ICAgICAgICAgICAgdmFyIHBhdGggPSBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlk
ZXIucGF0aEZvclNwbGl0dGVkVVJMKHNwbGl0dGVkVVJMKTsKKyAgICAgICAgICAgIHZhciBwcm9q
ZWN0ID0gdGhpcy5fd29ya3NwYWNlLnByb2plY3QocHJvamVjdElkKTsKKyAgICAgICAgICAgIHJl
dHVybiBwcm9qZWN0ID8gcHJvamVjdC51aVNvdXJjZUNvZGUocGF0aCkgOiBudWxsOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIHByb2plY3RJZCA9IHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nLmZp
bGVTeXN0ZW1JZChmaWxlU3lzdGVtUGF0aCk7CisgICAgICAgIHZhciBwYXRoUHJlZml4ID0gZW50
cnkucGF0aFByZWZpeC5zdWJzdHIoZmlsZVN5c3RlbVBhdGgubGVuZ3RoICsgMSk7CisgICAgICAg
IHZhciBwYXRoID0gcGF0aFByZWZpeCArIHVybC5zdWJzdHIoZW50cnkudXJsUHJlZml4Lmxlbmd0
aCk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5fd29ya3NwYWNlLnByb2plY3QocHJvamVj
dElkKTsKKyAgICAgICAgcmV0dXJuIHByb2plY3QgPyBwcm9qZWN0LnVpU291cmNlQ29kZShwYXRo
KSA6IG51bGw7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRo
CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIHVybEZvclBhdGg6IGZ1bmN0
aW9uKHBhdGgpCisgICAgeworICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9maWxlTWFwcGluZy5t
YXBwaW5nRW50cnlGb3JQYXRoKHBhdGgpOworICAgICAgICBpZiAoIWVudHJ5KQorICAgICAgICAg
ICAgcmV0dXJuICIiOworICAgICAgICByZXR1cm4gZW50cnkudXJsUHJlZml4ICsgcGF0aC5zdWJz
dHJpbmcoZW50cnkucGF0aFByZWZpeC5sZW5ndGgpOworICAgIH0KK30KKworLyoqCisgKiBAdHlw
ZSB7P1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VNYXBwaW5nfQorICovCitXZWJJbnNwZWN0b3Iud29y
a3NwYWNlTWFwcGluZyA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAxOGU5YWIxNTA4M2QxNmIxZjdmMmM4ODNlY2Zm
NzQ3NjI1Yzk0NzdlLi43N2MwOWVlN2JiMTA5MzA3Zjg1N2VjNzRiY2YwZTY1N2RiZjQ0MmRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKQEAgLTE0Niw2ICsxNDYsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Iklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkZpbGVNYXBwaW5nLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJXb3Jrc3Bh
Y2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IldvcmtzcGFjZU1hcHBpbmcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJCcmVha3BvaW50TWFuYWdlci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29u
dGVudFByb3ZpZGVycy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDc0OWVhZDY0NjY3OTQxMDc2YTJjM2RkNWZl
MDZhMzY1ZmQ1MzI2ZTQuLjY4NmM0MGVmN2RiYzg4M2YyMjA4NGVmMDg3YTVjNTY5MjA0MTkyZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CkBAIC00MTYsOCArNDE2LDEyIEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFi
aWxpdGllcyA9IGZ1bmN0aW9uKCkKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVySW5zcGVj
dG9yRGlzcGF0Y2hlcih0aGlzKTsKIAogICAgIHRoaXMud29ya3NwYWNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2UoKTsKKyAgICB0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIoKTsKKyAgICB0aGlzLmlz
b2xhdGVkRmlsZVN5c3RlbURpc3BhdGNoZXIgPSBuZXcgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmls
ZVN5c3RlbURpc3BhdGNoZXIodGhpcy5pc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyKTsKKyAgICB0
aGlzLmZpbGVNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZygpOworICAgIHRo
aXMud29ya3NwYWNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlTWFwcGluZyh0
aGlzLndvcmtzcGFjZSwgdGhpcy5maWxlTWFwcGluZywgdGhpcy5pc29sYXRlZEZpbGVTeXN0ZW1N
YW5hZ2VyLm1hcHBpbmcoKSk7CiAKLSAgICB0aGlzLmNzc01vZGVsID0gbmV3IFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsKHRoaXMud29ya3NwYWNlKTsKKyAgICB0aGlzLmNzc01vZGVsID0gbmV3
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsKHRoaXMud29ya3NwYWNlLCB0aGlzLndvcmtzcGFj
ZU1hcHBpbmcpOwogICAgIHRoaXMudGltZWxpbmVNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZU1hbmFnZXIoKTsKICAgICB0aGlzLnVzZXJBZ2VudFN1cHBvcnQgPSBuZXcgV2ViSW5z
cGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQoKTsKIApAQCAtNDM4LDI0ICs0NDIsMjEgQEAgV2ViSW5z
cGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogCiAgICAg
dGhpcy53b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VDb250
cm9sbGVyKHRoaXMud29ya3NwYWNlKTsKIAotICAgIHRoaXMuaXNvbGF0ZWRGaWxlU3lzdGVtTWFu
YWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlcigpOwotICAg
IHRoaXMuaXNvbGF0ZWRGaWxlU3lzdGVtRGlzcGF0Y2hlciA9IG5ldyBXZWJJbnNwZWN0b3IuSXNv
bGF0ZWRGaWxlU3lzdGVtRGlzcGF0Y2hlcih0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIp
OwotICAgIHRoaXMuZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKHRo
aXMuaXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5tYXBwaW5nKCkpOwotICAgIHRoaXMuZmlsZVN5
c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtV29ya3Nw
YWNlUHJvdmlkZXIodGhpcy5pc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLCB0aGlzLndvcmtzcGFj
ZSwgdGhpcy5maWxlTWFwcGluZyk7CisgICAgdGhpcy5maWxlU3lzdGVtV29ya3NwYWNlUHJvdmlk
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlcih0aGlzLmlz
b2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIsIHRoaXMud29ya3NwYWNlLCB0aGlzLndvcmtzcGFjZU1h
cHBpbmcpOwogCiAgICAgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHRoaXMud29ya3NwYWNlLCBXZWJJbnNwZWN0
b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwotICAgIG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJ
U291cmNlQ29kZVByb3ZpZGVyKHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKKyAgICBu
ZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlcih0aGlzLm5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlciwgdGhpcy53b3Jrc3BhY2VNYXBwaW5nKTsKIAogICAgIHRoaXMuYnJl
YWtwb2ludE1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyKFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50cywgdGhpcy5kZWJ1Z2dlck1vZGVsLCB0aGlzLndv
cmtzcGFjZSk7CiAKICAgICB0aGlzLnNjcmlwdFNuaXBwZXRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0
b3IuU2NyaXB0U25pcHBldE1vZGVsKHRoaXMud29ya3NwYWNlKTsKIAotICAgIG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKHRoaXMud29ya3NwYWNlLCB0aGlzLm5ldHdvcmtX
b3Jrc3BhY2VQcm92aWRlcik7CisgICAgbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1h
cHBpbmcodGhpcy53b3Jrc3BhY2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLCB0aGlz
LndvcmtzcGFjZU1hcHBpbmcpOwogICAgIHRoaXMubGl2ZUVkaXRTdXBwb3J0ID0gbmV3IFdlYklu
c3BlY3Rvci5MaXZlRWRpdFN1cHBvcnQodGhpcy53b3Jrc3BhY2UpOwotICAgIHRoaXMuc3R5bGVD
b250ZW50QmluZGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZyh0aGlz
LmNzc01vZGVsKTsKLSAgICBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcodGhp
cy5jc3NNb2RlbCwgdGhpcy53b3Jrc3BhY2UpOworICAgIHRoaXMuc3R5bGVDb250ZW50QmluZGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZyh0aGlzLmNzc01vZGVsLCB0
aGlzLndvcmtzcGFjZU1hcHBpbmcpOworICAgIG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNl
TWFwcGluZyh0aGlzLmNzc01vZGVsLCB0aGlzLndvcmtzcGFjZSwgdGhpcy53b3Jrc3BhY2VNYXBw
aW5nKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc2Fzcy5pc0Vu
YWJsZWQoKSkKLSAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZyh0aGlz
LmNzc01vZGVsLCB0aGlzLndvcmtzcGFjZSwgdGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIp
OworICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKHRoaXMuY3NzTW9k
ZWwsIHRoaXMud29ya3NwYWNlLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciwgdGhpcy53
b3Jrc3BhY2VNYXBwaW5nKTsKIAogICAgIG5ldyBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29u
c29sZU1lc3NhZ2VIZWxwZXIodGhpcy53b3Jrc3BhY2UpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjFmNDNjMjk1YjEz
NGIwZmFhYzAyNWM3MjhlYjY3YmJjNDI2ZWU5ZS4uYThiMDU1ZTAzZDQ1N2RjZDZiYzEyMzQxMWNj
NzdhYmY2YzQxNWZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEzLTAyLTE5ICBWc2V2b2xv
ZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEV4dHJhY3QgV29ya3NwYWNlTWFwcGluZyBmcm9tIEZpbGVNYXBwaW5nIHRvIHRha2UgY2FyZSBv
ZiB3b3Jrc3BhY2Ugc3BlY2lmaWMgbWFwcGluZyBxdWVyaWVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb21w
aWxlci1zY3JpcHQtbWFwcGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3N0eWxlc2hlZXQtc291cmNlLW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfV29ya3NwYWNl
VGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSk6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL2ZpbGUtbWFwcGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5c3RlbS1t
YXBwaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFw
cGluZy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0Lmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBwaW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBwaW5nLmh0bWw6IEFkZGVkLgor
CisyMDEzLTAyLTE5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERlY291cGxlIHZhcmlvdXMgZmlsZSBzeXN0ZW0gcHJvamVj
dCBpbXBsZW1lbnRhdGlvbiBwYXJ0cyBmb3IgYmV0dGVyIHRlc3RhYmlsaXR5IGFuZCBjb3ZlciB3
aXRoIHRlc3RzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwMjA0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGluZy5odG1sCmluZGV4IDgxOTNkNGE3OTc1MDBh
YmYyYTBlNjE1MThlMzBhMTBjMTRjMjhjMWYuLjYyNzY5Y2MzNmRjZTkwZTc3OTg0MjYzMTQ1ODBm
ZWExYzgzYTgyM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0LW1hcHBpbmcuaHRtbApAQCAtMTQsOCArMTQsOCBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBjcmVhdGVDb21waWxlclNjcmlwdE1hcHBp
bmcoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAg
ICAgICAgdmFyIGNvbXBpbGVyU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcGls
ZXJTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVz
dC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAgICAgICAgcmVzb3VyY2VTY3JpcHRN
YXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcoSW5zcGVjdG9y
VGVzdC50ZXN0V29ya3NwYWNlKTsKKyAgICAgICAgdmFyIGNvbXBpbGVyU2NyaXB0TWFwcGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVz
dFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLCBJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5nKTsKKyAgICAgICAgcmVzb3VyY2VTY3Jp
cHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcoSW5zcGVj
dG9yVGVzdC50ZXN0V29ya3NwYWNlLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5n
KTsKICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlZmF1
bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7CiAgICAgICAgIHJl
dHVybiBjb21waWxlclNjcmlwdE1hcHBpbmc7CiAgICAgfQpAQCAtMjc4LDE0ICsyNzgsMTQgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgInNvdXJjZXNDb250ZW50IjpbIjxzb3Vy
Y2UgY29udGVudD4iXQogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VN
YXBVUkwgPSAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwiICsgYnRvYShKU09OLnN0cmlu
Z2lmeShzb3VyY2VNYXApKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtz
cGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRl
ZEV2ZW50KGNvbXBpbGVkVUlTb3VyY2VDb2RlQWRkZWQpOwogCi0gICAgICAgICAgICBmdW5jdGlv
biBvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGNvbXBpbGVkVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291
cmNlQ29kZUFkZGVkRXZlbnQoY29tcGlsZWRVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVu
dChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgZnVuY3Rpb24gY29tcGlsZWRVSVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpIHsgfQor
ICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNv
ZGUpIHsgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5h
ZGRTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRT
Y3JpcHQoc2NyaXB0KTsKQEAgLTMwOSwxMSArMzA5LDE5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc291cmNlTWFwc0VuYWJs
ZWQuc2V0KHRydWUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuX3Jl
c2V0KCk7Ci0gICAgICAgICAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2UoKTsKLSAgICAgICAgICAgIHZhciBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVj
dG9yLnByb2plY3RUeXBlcy5OZXR3b3JrKTsKLSAgICAgICAgICAgIHZhciBkZWJ1Z2dlclNjcmlw
dE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyh3b3Jrc3Bh
Y2UsIG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNyZWF0ZVdvcmtzcGFjZSgpOworICAgICAgICAgICAgdmFyIGRlYnVnZ2VyU2NyaXB0TWFwcGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3Qu
dGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVy
LCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5nKTsKIAorICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChjb21waWxl
ZFVJU291cmNlQ29kZUFkZGVkKTsKICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIiIpOworCisg
ICAgICAgICAgICBmdW5jdGlvbiBjb21waWxlZFVJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29k
ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JX
b3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBvcmlnaW5hbFVJU291cmNl
Q29kZUFkZGVkKHVpU291cmNlQ29kZSkgeyB9CisKICAgICAgICAgICAgIHNjcmlwdC5zb3VyY2VN
YXBVUkwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvc291cmNl
LW1hcC5qc29uXyI7CiAgICAgICAgICAgICBjb25zb2xlLmVycm9yID0gZnVuY3Rpb24oKSB7fTsg
Ly8gRXJyb3IgbWVzc2FnZSBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuCiAgICAgICAgICAgICBkZWJ1
Z2dlclNjcmlwdE1hcHBpbmcuX3BhcnNlZFNjcmlwdFNvdXJjZSh7ZGF0YTpzY3JpcHR9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxlc2hlZXQtc291
cmNlLW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3N0eWxl
c2hlZXQtc291cmNlLW1hcHBpbmcuaHRtbAppbmRleCAwZGFhNDAzZTg2MmUyYmUzMDVjYmIzMTE0
ZDczYWZiODk0ODJkNDVkLi5mOGRjN2U1NGQ4NjM1NGE1ZDE1M2VkOGQ2NWRlNDViNTgyZjg3ZTQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9zdHlsZXNoZWV0
LXNvdXJjZS1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzaGVldC1zb3VyY2UtbWFwcGluZy5odG1sCkBAIC05LDkgKzksOSBAQAogZnVuY3Rp
b24gdGVzdCgpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICB2
YXIgY3NzTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwoSW5zcGVjdG9yVGVz
dC50ZXN0V29ya3NwYWNlKTsKLSAgICB2YXIgbWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU0FT
U1NvdXJjZU1hcHBpbmcoY3NzTW9kZWwsIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgSW5z
cGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyKTsKLSAgICB2YXIgc3R5bGVz
U291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZyhjc3NN
b2RlbCwgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKKyAgICB2YXIgY3NzTW9kZWwgPSBu
ZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNl
LCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5nKTsKKyAgICB2YXIgbWFwcGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcoY3NzTW9kZWwsIEluc3BlY3RvclRl
c3QudGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5nKTsKKyAgICB2YXIgc3R5bGVz
U291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVzU291cmNlTWFwcGluZyhjc3NN
b2RlbCwgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jr
c3BhY2VNYXBwaW5nKTsKIAogICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291
cmNlQ29kZUFkZGVkRXZlbnQoY3NzVUlTb3VyY2VDb2RlQWRkZWQpOwogICAgIEluc3BlY3RvclRl
c3QuYWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlKCJodHRwOi8vbG9jYWxob3N0OjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy9leGFtcGxlLmNzcyIsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5
cGVzLlN0eWxlc2hlZXQsICIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKaW5kZXggYTUzODU0ZDRkMjhjZDIwNmIyNmVjMDA5MTNh
MWIzMDE2OTkxYzg4ZS4uYTZmYzQzZjExMTYyZDcxMzIxMTRlNjMyZDMxYzY3N2RmMjA1NTA2NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRl
c3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRl
c3QuanMKQEAgLTEsMTIgKzEsMTYgQEAKIHZhciBpbml0aWFsaXplX1dvcmtzcGFjZVRlc3QgPSBm
dW5jdGlvbigpIHsKIAotSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlOwogSW5zcGVjdG9yVGVz
dC5jcmVhdGVXb3Jrc3BhY2UgPSBmdW5jdGlvbigpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC50ZXN0
V29ya3NwYWNlID0gbmV3IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKICAgICBJbnNwZWN0b3JU
ZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNpbXBs
ZVdvcmtzcGFjZVByb3ZpZGVyKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgV2ViSW5zcGVj
dG9yLnByb2plY3RUeXBlcy5OZXR3b3JrKTsKICAgICBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3Bh
Y2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZl
bnRzLlVJU291cmNlQ29kZUFkZGVkLCBJbnNwZWN0b3JUZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2Rl
UHJvdmlkZXJFdmVudEhhbmRsZXIpOwogICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMu
VUlTb3VyY2VDb2RlUmVtb3ZlZCwgSW5zcGVjdG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVBy
b3ZpZGVyRXZlbnRIYW5kbGVyKTsKKworICAgIEluc3BlY3RvclRlc3QudGVzdEZpbGVNYXBwaW5n
ID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZygpOworICAgIEluc3BlY3RvclRlc3QudGVz
dEZpbGVTeXN0ZW1NYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZ0lt
cGwoKTsKKyAgICBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlU3lzdGVtTWFwcGluZy5fZmlsZVN5c3Rl
bU1hcHBpbmdTZXR0aW5nID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1NldHRpbmcoe30pOworICAg
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLldv
cmtzcGFjZU1hcHBpbmcoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBJbnNwZWN0b3JUZXN0
LnRlc3RGaWxlTWFwcGluZywgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcpOwog
fQogCiBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
ID0gZnVuY3Rpb24oY2FsbGJhY2ssIGNvdW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJvdmlkZXIu
aHRtbAppbmRleCA3NTEzYWI4NzA2ZjUwZDBjNzk0MmMyODU4MjQ3ZWI2MDZlM2IwYzc1Li4wYmVh
ZDc3OGMxNzk2ZDgxNDZmZDIxMjI0ZjEzOTU5N2VkYmI2NjlkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJvdmlkZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNv
ZGUtcHJvdmlkZXIuaHRtbApAQCAtNTYsNyArNTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7
CiAgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKCk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0KCk7Ci0g
ICAgICAgIHZhciBuZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9y
Lk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlcihJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIpOworICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIoSW5zcGVjdG9y
VGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jr
c3BhY2VNYXBwaW5nKTsKICAgICAgICAgcmV0dXJuIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRl
cjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwKaW5kZXggMjRiMzExYmY2ODgwNDBlMmY0
Y2Q5N2VmYWExNWFmOWZkNjZjYjlkOC4uZThiMzg0ODBlODkzYTI2MTcyNDNiYTRlZjc5OTkzNmIx
MGFmNDUxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291
cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSgp
OwogICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRGVmYXVs
dFNjcmlwdE1hcHBpbmcoSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKLSAgICAgICAgdmFy
IHJlc291cmNlU2NyaXB0TWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRN
YXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7CisgICAgICAgIHZhciByZXNvdXJj
ZVNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyhJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZU1h
cHBpbmcpOwogICAgICAgICByZXR1cm4gcmVzb3VyY2VTY3JpcHRNYXBwaW5nOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCAwNTA1ZGVlN2IxYjE2YzgyMjhiMzE5OWJjZWQ1NzA1NDFiYjY0YjQ5Li41NDU0ZjI1MWM4ZWFi
Y2UwNGI1MjNiNmVlMjAyZjZjODIxZGVhYjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtMSwxNCArMSwxNSBAQAogVGVzdHMgRmls
ZU1hcHBpbmcKIAotdXJpOi9ob21lL2V4YW1wbGUuY29tCi11cmk6L2hvbWUvZXhhbXBsZS5jb20v
Ci11cmk6L3Zhci93d3cvaW5kZXguaHRtbAotdXJpOi92YXIvd3d3L2Zvby9pbmRleC5odG1sCi1o
dHRwczovL2xvY2FsaG9zdAotaHR0cDovL2V4YW1wbGUuY29tCi1odHRwOi8vd3d3LmV4YW1wbGUu
Y29tCi1odHRwOi8vd3d3LmV4YW1wbGUuY29tLwotaHR0cDovL2xvY2FsaG9zdC9pbmRleC5odG1s
Ci1odHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sCi1BbGwgbWFwcGluZ3Mgd2VyZSBjb3Jy
ZWN0LgorVGVzdCBtYXBwaW5nRW50cnlGb3JVUkwKKyAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29t
IC0+IG51bGwKKyAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29tLyAtPiAvaG9tZS9leGFtcGxlLmNv
bS8KKyAgICBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgLT4gL3Zhci93d3cvCisgICAgaHR0
cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCAtPiAvdmFyL3d3dy8KKyAgICBodHRwczovL2xv
Y2FsaG9zdCAtPiBudWxsCisgICAgaHR0cDovL2V4YW1wbGUuY29tIC0+IG51bGwKK1Rlc3QgbWFw
cGluZ0VudHJ5Rm9yUGF0aAorICAgIC9ob21lL2V4YW1wbGUuY29tIC0+IG51bGwKKyAgICAvaG9t
ZS9leGFtcGxlLmNvbS8gLT4gaHR0cDovL3d3dy5leGFtcGxlLmNvbS8KKyAgICAvdmFyL3d3dy9p
bmRleC5odG1sIC0+IGh0dHA6Ly9sb2NhbGhvc3QvCisgICAgL3Zhci93d3cvZm9vL2luZGV4Lmh0
bWwgLT4gaHR0cDovL2xvY2FsaG9zdC8KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2ZpbGUtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGlu
Zy5odG1sCmluZGV4IGU4ZTk2ZGIzOGZmZjY3ZDQ3Nzg5NmQyMGY1Y2MzYzVhM2QxOTU5N2EuLjJk
NDA3YmFkZGZhNWIzNTdmYzRiM2UzMTA3NTNhNzYyYzkzMGM3ZDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwKQEAgLTQsNDUgKzQsNDQgQEAKIDxzY3JpcHQ+CiBmdW5j
dGlvbiB0ZXN0KCkKIHsKLSAgICBmdW5jdGlvbiBNb2NrRmlsZVN5c3RlbU1hcHBpbmcoKSB7fQot
ICAgIE1vY2tGaWxlU3lzdGVtTWFwcGluZy5wcm90b3R5cGUgPSB7Ci0gICAgICAgIHVyaVByZWZp
eEZvclBhdGhQcmVmaXg6IGZ1bmN0aW9uKHBhdGhQcmVmaXgpIHsKLSAgICAgICAgICAgIHJldHVy
biAidXJpOiIgKyBwYXRoUHJlZml4OwotICAgICAgICB9Ci0gICAgfTsKLQogICAgIC8vIEF0IGZp
cnN0IGZpbGwgZmlsZSBtYXBwaW5nIHdpdGggZW50cmllcy4KLSAgICB2YXIgZmlsZU1hcHBpbmcg
PSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKG5ldyBNb2NrRmlsZVN5c3RlbU1hcHBpbmco
KSk7CisgICAgdmFyIGZpbGVNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZygp
OwogICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFtdOwotICAgIG1hcHBpbmdFbnRyaWVzLnB1c2go
bmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL2xvY2FsaG9zdCIsICIv
dmFyL3d3dyIpKTsKLSAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmls
ZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAiL2hvbWUvZXhhbXBsZS5j
b20iKSk7Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBw
aW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5jb20iLCAiL2Jhci8iKSk7CisgICAgbWFwcGluZ0Vu
dHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9j
YWxob3N0LyIsICIvdmFyL3d3dy8iKSk7CisgICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsICIv
aG9tZS9leGFtcGxlLmNvbS8iKSk7CisgICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5z
cGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5jb20vIiwgIi9iYXIvIikp
OwogICAgIGZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKG1hcHBpbmdFbnRyaWVzKTsKIAog
ICAgIC8vIFRoZW4gY3JlYXRlIGFub3RoZXIgZmlsZSBtYXBwaW5nIHRvIG1ha2Ugc3VyZSBpdCBp
cyBjb3JyZWN0bHkgcmVzdG9yZWQgZnJvbSB0aGUgc2V0dGluZ3MuCi0gICAgZmlsZU1hcHBpbmcg
PSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKG5ldyBNb2NrRmlsZVN5c3RlbU1hcHBpbmco
KSk7CisgICAgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7CiAK
LSAgICAvLyBOb3cgdGVzdCBhbGwgRmlsZU1hcHBpbmcgbWV0aG9kcy4KLSAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUoZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCgiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpLCAiZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCBmYWlsZWQuIik7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKGZpbGVNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwo
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiksICJmaWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJM
IGZhaWxlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoZmlsZU1hcHBpbmcuaGFz
TWFwcGluZ0ZvclVSTCgiaHR0cDovL2xvY2FsaG9zdC9pbmRleC5odG1sIiksICJmaWxlTWFwcGlu
Zy5oYXNNYXBwaW5nRm9yVVJMIGZhaWxlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUoZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCgiaHR0cDovL2xvY2FsaG9zdC9mb28vaW5k
ZXguaHRtbCIpLCAiZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCBmYWlsZWQuIik7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFmaWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJMKCJo
dHRwczovL2xvY2FsaG9zdCIpLCAiZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCBmYWlsZWQu
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFmaWxlTWFwcGluZy5oYXNNYXBwaW5n
Rm9yVVJMKCJodHRwOi8vZXhhbXBsZS5jb20iKSwgImZpbGVNYXBwaW5nLmhhc01hcHBpbmdGb3JV
UkwgZmFpbGVkLiIpOworICAgIGZ1bmN0aW9uIHRlc3RQYXRoUHJlZml4Rm9yVVJMKHVybCkKKyAg
ICB7CisgICAgICAgIHZhciBlbnRyeSA9IGZpbGVNYXBwaW5nLm1hcHBpbmdFbnRyeUZvclVSTCh1
cmwpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyB1cmwgKyAiIC0+
ICIgKyAoZW50cnkgPyBlbnRyeS5wYXRoUHJlZml4IDogbnVsbCkpOworICAgIH0KIAotICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVSTCgiaHR0cDovL3d3dy5l
eGFtcGxlLmNvbSIpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51
cmlGb3JVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIikpOwotICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVSTCgiaHR0cDovL2xvY2FsaG9zdC9pbmRleC5o
dG1sIikpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVS
TCgiaHR0cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpKTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmlGb3JVUkwoImh0dHBzOi8vbG9jYWxob3N0IikpOwot
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVSTCgiaHR0cDov
L2V4YW1wbGUuY29tIikpOworICAgIGZ1bmN0aW9uIHRlc3RVUkxQcmVmaXhGb3JQYXRoKHBhdGgp
CisgICAgeworICAgICAgICB2YXIgZW50cnkgPSBmaWxlTWFwcGluZy5tYXBwaW5nRW50cnlGb3JQ
YXRoKHBhdGgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBwYXRo
ICsgIiAtPiAiICsgKGVudHJ5ID8gZW50cnkudXJsUHJlZml4IDogbnVsbCkpOworICAgIH0KKwor
ICAgIC8vIE5vdyB0ZXN0IGFsbCBGaWxlTWFwcGluZyBtZXRob2RzLgorICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJUZXN0IG1hcHBpbmdFbnRyeUZvclVSTCIpOworICAgIHRlc3RQYXRoUHJl
Zml4Rm9yVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIik7CisgICAgdGVzdFBhdGhQcmVmaXhG
b3JVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIik7CisgICAgdGVzdFBhdGhQcmVmaXhGb3JV
UkwoImh0dHA6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCIpOworICAgIHRlc3RQYXRoUHJlZml4Rm9y
VVJMKCJodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIik7CisgICAgdGVzdFBhdGhQcmVm
aXhGb3JVUkwoImh0dHBzOi8vbG9jYWxob3N0Iik7CisgICAgdGVzdFBhdGhQcmVmaXhGb3JVUkwo
Imh0dHA6Ly9leGFtcGxlLmNvbSIpOwogCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZmls
ZU1hcHBpbmcudXJsRm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20iKSk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoZmlsZU1hcHBpbmcudXJsRm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20v
IikpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVybEZvclBhdGgo
Ii92YXIvd3d3L2luZGV4Lmh0bWwiKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZmls
ZU1hcHBpbmcudXJsRm9yUGF0aCgiL3Zhci93d3cvZm9vL2luZGV4Lmh0bWwiKSk7CisgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgbWFwcGluZ0VudHJ5Rm9yUGF0aCIpOworICAgIHRl
c3RVUkxQcmVmaXhGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbSIpOworICAgIHRlc3RVUkxQcmVm
aXhGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS8iKTsKKyAgICB0ZXN0VVJMUHJlZml4Rm9yUGF0
aCgiL3Zhci93d3cvaW5kZXguaHRtbCIpOworICAgIHRlc3RVUkxQcmVmaXhGb3JQYXRoKCIvdmFy
L3d3dy9mb28vaW5kZXguaHRtbCIpOwogCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFs
bCBtYXBwaW5ncyB3ZXJlIGNvcnJlY3QuIik7CiAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zp
bGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zp
bGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0ZWQudHh0CmluZGV4IGEzMTlmNjk5MWFhNWEwNzBkM2Uy
N2YzZWIzYTg2ZDY2MTE1ZThkM2EuLmVmNTRjZDBiYWFkNDVkYzA0ZDc4ZGMzYjI5MmMzMDNiNWI0
ZWQyNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBw
aW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0t
bWFwcGluZy1leHBlY3RlZC50eHQKQEAgLTIsMjYgKzIsMjYgQEAgVGVzdHMgRmlsZVN5c3RlbU1h
cHBpbmcKIAogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgogICAgIGZpbGUgc3lzdGVtIHBh
dGhzOgotICAgIHVyaVByZWZpeEZvclBhdGhQcmVmaXg6CisgICAgZmlsZVN5c3RlbVBhdGhGb3JQ
cmVmaXg6CiAKIEFkZGluZyBmaWxlIHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28K
IFRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KICAgICBmaWxlIHN5c3RlbSBwYXRoczoKICAg
ICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28oaWQgPSAwQGZvbykKLSAgICB1cmlQcmVm
aXhGb3JQYXRoUHJlZml4OgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4g
MEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAwQGZvby8KKyAg
ICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKKyAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVj
dHMvZm9vID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbworICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCiAKIEFkZGlu
ZyBmaWxlIHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKIFRlc3RpbmcgZmlsZSBz
eXN0ZW0gbWFwcGluZy4KICAgICBmaWxlIHN5c3RlbSBwYXRoczoKICAgICAgLSAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28oaWQgPSAwQGZvbykKICAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9q
ZWN0cy9iYXIoaWQgPSAxQGJhcikKLSAgICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OgotICAgICAg
ICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2JhciA9PiAxQGJhci8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJv
amVjdHMvZm9vID0+IDBAZm9vLwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIg
PT4gMUBiYXIvCisgICAgZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXg6CisgICAgICAgIC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAg
ICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3Rz
L2JhcgorICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5h
bWUvcHJvamVjdHMvZm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKIAogQWRkaW5nIGZpbGUgc3lzdGVtIC93d3cvc2l0
ZTEKIFRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KQEAgLTI5LDEzICsyOSwxMyBAQCBUZXN0
aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcuCiAgICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMv
Zm9vKGlkID0gMEBmb28pCiAgICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyKGlkID0g
MUBiYXIpCiAgICAgIC0gL3d3dy9zaXRlMShpZCA9IDJAc2l0ZTEpCi0gICAgdXJpUHJlZml4Rm9y
UGF0aFByZWZpeDoKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IDBAZm9v
LwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBiYXIvCi0gICAgICAg
IC93d3cvc2l0ZTEgPT4gMkBzaXRlMS8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMv
Zm9vID0+IDBAZm9vLwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBi
YXIvCi0gICAgICAgIC93d3cvc2l0ZTEgPT4gMkBzaXRlMS8KKyAgICBmaWxlU3lzdGVtUGF0aEZv
clByZWZpeDoKKyAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbworICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIg
PT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCisgICAgICAgIC93d3cvc2l0ZTEgPT4gL3d3
dy9zaXRlMQorICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvZm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9
PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKKyAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3
L3NpdGUxCiAKIENyZWF0aW5nIGFub3RoZXIgZmlsZSBzeXN0ZW0gbWFwcGluZy4KIFRlc3Rpbmcg
ZmlsZSBzeXN0ZW0gbWFwcGluZy4KQEAgLTQzLDM2ICs0MywzNiBAQCBUZXN0aW5nIGZpbGUgc3lz
dGVtIG1hcHBpbmcuCiAgICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vKGlkID0gMEBm
b28pCiAgICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyKGlkID0gMUBiYXIpCiAgICAg
IC0gL3d3dy9zaXRlMShpZCA9IDJAc2l0ZTEpCi0gICAgdXJpUHJlZml4Rm9yUGF0aFByZWZpeDoK
LSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IDBAZm9vLwotICAgICAgICAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBiYXIvCi0gICAgICAgIC93d3cvc2l0ZTEg
PT4gMkBzaXRlMS8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IDBAZm9v
LwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBiYXIvCi0gICAgICAg
IC93d3cvc2l0ZTEgPT4gMkBzaXRlMS8KKyAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKKyAg
ICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2ZvbworICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvYmFyCisgICAgICAgIC93d3cvc2l0ZTEgPT4gL3d3dy9zaXRlMQorICAg
ICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVj
dHMvZm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9iYXIKKyAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3NpdGUxCiAKIFJl
bW92aW5nIGZpbGUgc3lzdGVtIC93d3cvc2l0ZTEKIFRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGlu
Zy4KICAgICBmaWxlIHN5c3RlbSBwYXRoczoKICAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0
cy9mb28oaWQgPSAwQGZvbykKICAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIoaWQg
PSAxQGJhcikKLSAgICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhciA9PiAxQGJhci8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+
IDBAZm9vLwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBiYXIvCisg
ICAgZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXg6CisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAgICAgL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgorICAgICAg
ICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMv
Zm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFt
ZS9wcm9qZWN0cy9iYXIKIAogUmVtb3ZpbmcgZmlsZSBzeXN0ZW0gL2hvbWUvdXNlcm5hbWUvcHJv
amVjdHMvZm9vCiBUZXN0aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcuCiAgICAgZmlsZSBzeXN0ZW0g
cGF0aHM6CiAgICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyKGlkID0gMUBiYXIpCi0g
ICAgdXJpUHJlZml4Rm9yUGF0aFByZWZpeDoKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVj
dHMvYmFyID0+IDFAYmFyLwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4g
MUBiYXIvCisgICAgZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXg6CisgICAgICAgIC9ob21lL3VzZXJu
YW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKKyAgICAgICAg
L2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Jh
cgogCiBSZW1vdmluZyBmaWxlIHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKIFRl
c3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KICAgICBmaWxlIHN5c3RlbSBwYXRoczoKLSAgICB1
cmlQcmVmaXhGb3JQYXRoUHJlZml4OgorICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgogCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy5odG1sCmluZGV4
IDNjMDY0ZGQ0MjMzNjI4NDdhOTVmNDVkNmVlZjQxNGEwZWU2MTk4N2MuLjgwOTJjODNiNGE5YTUy
ODYxNjAyYTc5NzdmM2E2N2NlOWFjNWQzNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2ZpbGUtc3lzdGVtLW1hcHBpbmcuaHRtbApAQCAtMzEsMTUgKzMxLDE1IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAgICAgdmFyIGlkID0gZmlsZVN5c3RlbU1hcHBpbmcuZmlsZVN5c3RlbUlk
KGZpbGVTeXN0ZW1QYXRoc1tpXSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgICAtICIgKyBmaWxlU3lzdGVtUGF0aHNbaV0gKyAiKGlkID0gIiArIGlkICsgIikiKTsK
ICAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHVyaVByZWZp
eEZvclBhdGhQcmVmaXg6Iik7Ci0gICAgICAgIC8vIENhbGwgdXJpUHJlZml4Rm9yUGF0aFByZWZp
eCB0d2ljZSBmb3IgZWFjaCBwYXRoIHByZWZpeCB0byBjaGVjayBjYWNoaW5nLgorICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OiIpOwor
ICAgICAgICAvLyBDYWxsIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4IHR3aWNlIGZvciBlYWNoIHBh
dGggcHJlZml4IHRvIGNoZWNrIGNhY2hpbmcuCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjsgKytpKSB7CiAgICAgICAgICAgICBmb3IgKHBhdGhJZCBpbiBwYXRocykgewogICAgICAgICAg
ICAgICAgIHZhciBwYXRoUHJlZml4ID0gcGF0aHNbcGF0aElkXTsKLSAgICAgICAgICAgICAgICB2
YXIgdXJpUHJlZml4ID0gZmlsZVN5c3RlbU1hcHBpbmcudXJpUHJlZml4Rm9yUGF0aFByZWZpeChw
YXRoUHJlZml4ICsgIi8iKTsKLSAgICAgICAgICAgICAgICBpZiAoIXVyaVByZWZpeCkKKyAgICAg
ICAgICAgICAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSBmaWxlU3lzdGVtTWFwcGluZy5maWxlU3lz
dGVtUGF0aEZvclByZWZpeChwYXRoUHJlZml4ICsgIi8iKTsKKyAgICAgICAgICAgICAgICBpZiAo
IWZpbGVTeXN0ZW1QYXRoKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAiICsgcGF0aFByZWZpeCAr
ICIgPT4gIiArIHVyaVByZWZpeCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgICAgICAgIiArIHBhdGhQcmVmaXggKyAiID0+ICIgKyBmaWxlU3lzdGVtUGF0aCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXBy
b2plY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0Lmh0
bWwKaW5kZXggN2IyY2RlZWNkZDhjMTcwNTA3YTQyZTBjMGIzODY5YzNlZmRlYjk1Ni4uMjY3MTIx
ZmFhYmFjMzUwYTg0ZDg4MjMxZjUxNzVjODQ3MWI1YWFhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXByb2plY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sCkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIE1vY2tJc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgYWRkTW9ja0ZpbGVTeXN0ZW06IGZ1bmN0aW9uKHBhdGgsIGZpbGVzKQogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgaWQgPSB0aGlzLmZpbGVTeXN0ZW1NYXBwaW5nLmFkZEZp
bGVTeXN0ZW1NYXBwaW5nKHBhdGgpOworICAgICAgICAgICAgdmFyIGlkID0gSW5zcGVjdG9yVGVz
dC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcuYWRkRmlsZVN5c3RlbU1hcHBpbmcocGF0aCk7CiAgICAg
ICAgICAgICB2YXIgZmlsZVN5c3RlbSA9IG5ldyBNb2NrSXNvbGF0ZWRGaWxlU3lzdGVtKGlkLCBw
YXRoLCBmaWxlcyk7CiAgICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtcyA9IHRoaXMuX2ZpbGVT
eXN0ZW1zIHx8IHt9OwogICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNbcGF0aF0gPSBmaWxl
U3lzdGVtOwpAQCAtNTUsNiArNTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgdmFyIGZpbGVTeXN0ZW0gPSB0aGlzLl9maWxlU3lzdGVtc1twYXRoXTsKICAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9maWxlU3lzdGVtc1twYXRoXTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QudGVzdEZpbGVTeXN0ZW1NYXBwaW5nLnJlbW92ZUZpbGVTeXN0ZW1NYXBwaW5nKHBh
dGgpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuRXZlbnRzLkZpbGVTeXN0ZW1SZW1vdmVkLCBm
aWxlU3lzdGVtKTsKICAgICAgICAgfSwKIApAQCAtNjUsMTEgKzY2LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSgpOwogICAg
ICAgICB2YXIgbWFuYWdlciA9IG5ldyBNb2NrSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlcigpOwot
ICAgICAgICBtYW5hZ2VyLmZpbGVTeXN0ZW1NYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTWFwcGluZ0ltcGwoKTsKLSAgICAgICAgbWFuYWdlci5maWxlU3lzdGVtTWFwcGluZy5f
ZmlsZVN5c3RlbU1hcHBpbmdTZXR0aW5nID0gbmV3IEluc3BlY3RvclRlc3QuTW9ja1NldHRpbmco
e30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0Lk1vY2tTZXR0aW5nCi0gICAgICAgIG1hbmFnZXIu
ZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKG1hbmFnZXIuZmlsZVN5
c3RlbU1hcHBpbmcpOwotICAgICAgICBtYW5hZ2VyLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyKG1hbmFnZXIs
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgbWFuYWdlci5maWxlTWFwcGluZyk7CisgICAg
ICAgIG1hbmFnZXIuZmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIobWFuYWdlciwgSW5zcGVjdG9yVGVzdC50ZXN0
V29ya3NwYWNlLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2VNYXBwaW5nKTsKICAgICAgICAg
cmV0dXJuIG1hbmFnZXI7CiAgICAgfQogCkBAIC05NSw3ICs5Miw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgICAgICAgICAgdmFyIG1hbmFnZXIgPSBjcmVhdGVJc29sYXRlZEZpbGVTeXN0ZW1NYW5h
Z2VyKCk7CiAgICAgICAgICAgICB2YXIgZW50cnkxID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFw
cGluZy5FbnRyeSgiaHR0cDovL2xvY2FsaG9zdC8iLCAiL3Zhci93d3cvbG9jYWxob3N0LyIpOwog
ICAgICAgICAgICAgdmFyIGVudHJ5MiA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50
cnkoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIiwgIi9mb28vYmFyLyIpOwotICAgICAgICAgICAg
bWFuYWdlci5maWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhbZW50cnkxLCBlbnRyeTJdKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGVzdEZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRy
aWVzKFtlbnRyeTEsIGVudHJ5Ml0pOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9y
V29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRlZCwgMyk7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIGZpcnN0IGZpbGUgc3lz
dGVtLiIpOwogICAgICAgICAgICAgbWFuYWdlci5hZGRNb2NrRmlsZVN5c3RlbSgiL3Zhci93d3ci
LCB7Ii9sb2NhbGhvc3QvZm9vLmpzIjogIjxmb28gY29udGVudD4iLCAiL2Jhci5qcyI6ICI8YmFy
IGNvbnRlbnQ+In0pOwpAQCAtMTIzLDcgKzEyMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgICAgICAgICB2YXIgdXJsID0gdWlTb3VyY2VDb2Rlc1tpXS51cmw7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghdXJsKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAgICAgICAgIHZhciB1cmkgPSBtYW5hZ2VyLmZpbGVNYXBwaW5nLnVyaUZvclVS
TCh1cmwpOworICAgICAgICAgICAgICAgICAgICB2YXIgdXJpID0gSW5zcGVjdG9yVGVzdC50ZXN0
V29ya3NwYWNlTWFwcGluZy51aVNvdXJjZUNvZGVGb3JVUkwodXJsKS51cmkoKTsKICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgdXJsICsgIiAtPiAi
ICsgdXJpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZXNDb3VudCA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCku
bGVuZ3RoOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBw
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtbWFwcGlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVmNzhiNzI3NmYyZmZlZDU2YmFiNjhmNTE1YWEw
ODQ2MWNiNGRkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3Jr
c3BhY2UtbWFwcGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgV29ya3Nw
YWNlTWFwcGluZworCisgICAgdXJsIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbCBp
cyBub3QgbWFwcGVkLgorICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgaXMgbWFw
cGVkLgorICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIGlzIG1hcHBlZC4K
KyAgICB1cmwgaHR0cHM6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCBpcyBub3QgbWFwcGVkLgorCisg
ICAgdXJsIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gaHR0
cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sCisgICAgdXJsIGh0dHA6Ly9sb2NhbGhvc3Qv
aW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gMEB3d3cvbG9jYWxob3N0L2luZGV4Lmh0bWwKKyAgICB1
cmwgaHR0cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gbnVsbAorICAg
IHVybCBodHRwczovL2xvY2FsaG9zdC9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwczovL2xv
Y2FsaG9zdC9pbmRleC5odG1sCisKKyAgICBwYXRoIC9ob21lL2V4YW1wbGUuY29tL2Zvby9pbmRl
eC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Zvby9pbmRleC5odG1s
CisgICAgcGF0aCAvaG9tZS9leGFtcGxlLmNvbS9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRw
Oi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWwKKyAgICBwYXRoIC92YXIvd3d3L2xvY2FsaG9z
dC9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKKyAg
ICBwYXRoIC92YXIvd3d3L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gaHR0
cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbAorICAgIHBhdGggL2hvbWUvZm9vL2luZGV4Lmh0
bWwgaXMgbWFwcGVkIHRvIG51bGwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3dvcmtzcGFjZS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNl
LW1hcHBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTgxODlmZGZiMDRjZWY2YmJjNjZiZjc4N2JkMmUw
Y2YzYWNlMmIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtz
cGFjZS1tYXBwaW5nLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdWlT
b3VyY2VDb2RlcyA9IHt9OworCisgICAgZnVuY3Rpb24gY3JlYXRlVUlTb3VyY2VDb2RlKHByb2pl
Y3RJZCwgcGF0aCkKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB7fTsKKyAgICAg
ICAgdWlTb3VyY2VDb2RlLnVyaSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIHBy
b2plY3RJZCArICIvIiArIHBhdGg7CisgICAgICAgIH0KKyAgICAgICAgdWlTb3VyY2VDb2Rlc1t1
aVNvdXJjZUNvZGUudXJpKCldID0gdWlTb3VyY2VDb2RlOworICAgICAgICByZXR1cm4gdWlTb3Vy
Y2VDb2RlOworICAgIH0KKworICAgIGZ1bmN0aW9uIE1vY2tQcm9qZWN0KGlkKQorICAgIHsKKyAg
ICAgICAgdGhpcy5pZCA9IGlkOworICAgIH0KKworICAgIE1vY2tQcm9qZWN0LnByb3RvdHlwZSA9
IHsKKyAgICAgICAgdWlTb3VyY2VDb2RlOiBmdW5jdGlvbihwYXRoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gdWlTb3VyY2VDb2Rlc1t0aGlzLmlkICsgIi8iICsgcGF0aF07CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgZnVuY3Rpb24gTW9ja1dvcmtzcGFjZSgpIHt9CisgICAgTW9ja1dvcmtzcGFj
ZS5wcm90b3R5cGUgPSB7CisgICAgICAgIHByb2plY3Q6IGZ1bmN0aW9uKGlkKSB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IE1vY2tQcm9qZWN0KGlkKTsKKyAgICAgICAgfQorICAgIH07CisKKyAg
ICB2YXIgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7CisgICAg
dmFyIG1hcHBpbmdFbnRyaWVzID0gW107CisgICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9jYWxob3N0LyIsICIvdmFyL3d3
dy9sb2NhbGhvc3QvIikpOworICAgIG1hcHBpbmdFbnRyaWVzLnB1c2gobmV3IFdlYkluc3BlY3Rv
ci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iLCAiL2hvbWUvZXhh
bXBsZS5jb20vIikpOworICAgIG1hcHBpbmdFbnRyaWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5G
aWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL3d3dy5mb28uY29tLyIsICIvYmFyLyIpKTsKKyAgICBm
aWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhtYXBwaW5nRW50cmllcyk7CisKKyAgICB2YXIg
ZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1w
bCgpOworICAgIHZhciBwcm9qZWN0SWQgPSBmaWxlU3lzdGVtTWFwcGluZy5hZGRGaWxlU3lzdGVt
TWFwcGluZygiL3Zhci93d3ciKTsKKworICAgIHZhciB3b3Jrc3BhY2VNYXBwaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5Xb3Jrc3BhY2VNYXBwaW5nKG5ldyBNb2NrV29ya3NwYWNlKCksIGZpbGVNYXBw
aW5nLCBmaWxlU3lzdGVtTWFwcGluZyk7CisKKyAgICBmdW5jdGlvbiBkdW1wSGFzTWFwcGluZ0Zv
clVSTCh1cmwpCisgICAgeworICAgICAgICB2YXIgcmVzdWx0ID0gd29ya3NwYWNlTWFwcGluZy5o
YXNNYXBwaW5nRm9yVVJMKHVybCkKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdXJsICIgKyB1cmwgKyAiIGlzIG1hcHBlZC4iKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICB1
cmwgIiArIHVybCArICIgaXMgbm90IG1hcHBlZC4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBk
dW1wVUlTb3VyY2VDb2RlRm9yVVJMKHVybCkKKyAgICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSB3b3Jrc3BhY2VNYXBwaW5nLnVpU291cmNlQ29kZUZvclVSTCh1cmwpCisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdXJsICIgKyB1cmwgKyAiIGlzIG1hcHBlZCB0byAi
ICsgKHVpU291cmNlQ29kZSA/IHVpU291cmNlQ29kZS51cmkoKSA6IG51bGwpKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBkdW1wVVJMRm9yUGF0aChwYXRoKQorICAgIHsKKyAgICAgICAgdmFyIHVy
bCA9IHdvcmtzcGFjZU1hcHBpbmcudXJsRm9yUGF0aChwYXRoKQorICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICAgIHBhdGggIiArIHBhdGggKyAiIGlzIG1hcHBlZCB0byAiICsgKHVy
bCA/IHVybCA6IG51bGwpKTsKKyAgICB9CisgICAgCisgICAgY3JlYXRlVUlTb3VyY2VDb2RlKHBy
b2plY3RJZCwgImxvY2FsaG9zdC9pbmRleC5odG1sIik7CisKKyAgICBjcmVhdGVVSVNvdXJjZUNv
ZGUoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAiaW5kZXguaHRtbCIpOworICAgIGNyZWF0ZVVJ
U291cmNlQ29kZSgiaHR0cDovL2xvY2FsaG9zdCIsICJpbmRleC5odG1sIik7CisgICAgY3JlYXRl
VUlTb3VyY2VDb2RlKCJodHRwOi8vbG9jYWxob3N0IiwgImZvby9pbmRleC5odG1sIik7CisgICAg
Y3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwczovL2xvY2FsaG9zdCIsICJpbmRleC5odG1sIik7CisK
KyAgICBkdW1wSGFzTWFwcGluZ0ZvclVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbmRleC5o
dG1sIik7CisgICAgZHVtcEhhc01hcHBpbmdGb3JVUkwoImh0dHA6Ly9sb2NhbGhvc3QvaW5kZXgu
aHRtbCIpOworICAgIGR1bXBIYXNNYXBwaW5nRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0L2Zvby9p
bmRleC5odG1sIik7CisgICAgZHVtcEhhc01hcHBpbmdGb3JVUkwoImh0dHBzOi8vbG9jYWxob3N0
L2luZGV4Lmh0bWwiKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CisKKyAgICBk
dW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWwi
KTsKKyAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0
bWwiKTsKKyAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0L2Zvby9p
bmRleC5odG1sIik7CisgICAgZHVtcFVJU291cmNlQ29kZUZvclVSTCgiaHR0cHM6Ly9sb2NhbGhv
c3QvaW5kZXguaHRtbCIpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKworICAg
IGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS9mb28vaW5kZXguaHRtbCIpOworICAg
IGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS9pbmRleC5odG1sIik7CisgICAgZHVt
cFVSTEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9pbmRleC5odG1sIik7CisgICAgZHVtcFVS
TEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpOworICAgIGR1bXBV
UkxGb3JQYXRoKCIvaG9tZS9mb28vaW5kZXguaHRtbCIpOworCisgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+VGVzdHMgV29ya3NwYWNlTWFwcGluZzwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189092</attachid>
            <date>2013-02-19 08:23:48 -0800</date>
            <delta_ts>2013-02-20 01:42:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110219-20130219202009.patch</filename>
            <type>text/plain</type>
            <size>60845</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc0OTdiODZmMjhhM2Yz
NWM5ODRmOTEyNzVkM2RlMjk3Nzc4YTNkYi4uMzcwZTk3ZTQ2NTRiNTk3NTNjYjM0YjMxNTFjOWM2
NjRhYTU5ZWEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDEzLTAyLTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1vdmUgd29ya3NwYWNlIHNwZWNpZmljIGNvZGUgZnJvbSBGaWxlTWFwcGluZyB0byB3b3Jr
c3BhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTAyMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHRyYWN0ZWQgd29ya3NwYWNlIHNwZWNpZmljIGNvZGUgZnJvbSBGaWxlTWFwcGluZyB0byBXb3Jr
c3BhY2UuCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIHJlZHVjZSB1c2FnZSBvZiB1cmkgYW5kIGV2
ZW50dWFsbHkgbWFrZSBVSVNvdXJjZUNvZGUucGF0aCBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRz
LgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci93b3Jrc3BhY2UtbWFwcGluZy5odG1sCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRp
b24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5n
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBp
bGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuZ2V0IGFkZFNjcmlwdC5nZXQgdGhpcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5nZXQgYWRk
U2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GaWxlTWFwcGluZy5wcm90b3R5cGUubWFwcGluZ0VudHJ5Rm9yVVJMKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUubWFwcGluZ0VudHJ5Rm9yUGF0aCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTWFwcGluZy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZy5wcm90b3R5cGUuZmlsZVN5c3RlbVBh
dGhGb3JQcmVmaXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1w
bC5wcm90b3R5cGUuYWRkRmlsZVN5c3RlbU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUucmVtb3ZlRmlsZVN5c3RlbU1hcHBpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUu
ZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtUHJvamVjdERlbGVnYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVt
UHJvamVjdERlbGVnYXRlLnByb3RvdHlwZS5wb3B1bGF0ZS5maWxlc0xvYWRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5wcm90b3R5cGUucG9wdWxh
dGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyLnByb3Rv
dHlwZS5fZmlsZVN5c3RlbUFkZGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0lz
b2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNvbGF0
ZWRGaWxlU3lzdGVtTWFuYWdlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a1VJU291cmNlQ29kZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlT
b3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlLl9hZGRGaWxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl93b3Jrc3BhY2VVSVNvdXJjZUNv
ZGVGb3JTY3JpcHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGls
cy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUuX3JlbG9hZENTUyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlLl9iaW5kVUlTb3Vy
Y2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5
cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuY2FuU2hvd0FuY2hvckxvY2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnBhdGhGb3JTcGxpdHRlZFVSTCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlLl9pbm5lckFkZEZp
bGVGb3JVUkwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFw
cGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VNYXBwaW5nLnByb3Rv
dHlwZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVzU291cmNlTWFwcGluZy5wcm90b3R5cGUuX3Jlc291cmNlQWRkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcucHJvdG90eXBlLl9tYWluRnJhbWVDcmVhdGVk
T3JOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlQ29udGVudEJpbmRpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlQ29udGVudEJpbmRpbmcucHJvdG90eXBlLl9p
bm5lclN0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dv
cmtzcGFjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUuaGFzTWFwcGluZ0ZvclVSTCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS5fZmlsZVN5c3RlbVBhdGhGb3JF
bnRyeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZS51aVNvdXJj
ZUNvZGVGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZS5wcm90b3R5cGUu
dXJsRm9yUGF0aCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6
CisKKzIwMTMtMDItMTkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogRGVjb3VwbGUgdmFyaW91cyBmaWxlIHN5c3RlbSBwcm9q
ZWN0IGltcGxlbWVudGF0aW9uIHBhcnRzIGZvciBiZXR0ZXIgdGVzdGFiaWxpdHkgYW5kIGNvdmVy
IHdpdGggdGVzdHMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTAyMDQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IGE3NTViYTVmM2YzMTc2NWEyZTk2NDNhNzE3ODAwNzQw
OGY2YmMwMDcuLjg3OTkzZmIyMmUwZmUxZWRiYzczNDYzMzA5YmJiYzRkYjZmNjliMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMKQEAgLTU3MCw4ICs1NzAsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBpZiAodWlMb2NhdGlvbikKICAgICAgICAgICAgICAgICByZXR1
cm4gdWlMb2NhdGlvbjsKICAgICAgICAgfQotICAgICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9y
LmZpbGVNYXBwaW5nLnVyaUZvclVSTChyYXdMb2NhdGlvbi51cmwpOwotICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVS
TChyYXdMb2NhdGlvbi51cmwpOwogICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAgICAg
ICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0
aW9uKHVpU291cmNlQ29kZSwgcmF3TG9jYXRpb24ubGluZU51bWJlciwgcmF3TG9jYXRpb24uY29s
dW1uTnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKaW5kZXggNzEyMTljMTdjODFjZWNiMzYw
MTk0MjU1NTgwYzMyOGZiOWE0NjhjOC4uMzFlNzMzMWZmZTVjMmM3OTYwNThlNmZmZDBkMjc4Yzhj
NzRhYTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b21waWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKQEAgLTY0LDggKzY0LDcgQEAgV2ViSW5z
cGVjdG9yLkNvbXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICgh
ZW50cnkgfHwgZW50cnkubGVuZ3RoID09PSAyKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAg
ICAgICAgIHZhciB1cmwgPSBlbnRyeVsyXTsKLSAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rv
ci5maWxlTWFwcGluZy51cmlGb3JVUkwodXJsKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwodXJsKTsKICAg
ICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAg
ICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGVudHJ5
WzNdLCBlbnRyeVs0XSk7CkBAIC0xMDksMTEgKzEwOCwxMCBAQCBXZWJJbnNwZWN0b3IuQ29tcGls
ZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHNvdXJjZVVSTHMgPSBz
b3VyY2VNYXAuc291cmNlcygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJjZVVS
THMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBzb3VyY2VVUkwgPSBzb3VyY2VVUkxz
W2ldOwotICAgICAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlG
b3JVUkwoc291cmNlVVJMKTsKICAgICAgICAgICAgIGlmICh0aGlzLl9zb3VyY2VNYXBGb3JVUkxb
c291cmNlVVJMXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHRoaXMu
X3NvdXJjZU1hcEZvclVSTFtzb3VyY2VVUkxdID0gc291cmNlTWFwOwotICAgICAgICAgICAgaWYg
KCFXZWJJbnNwZWN0b3IuZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTChzb3VyY2VVUkwpICYm
ICF0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSkpIHsKKyAgICAgICAgICAg
IGlmICghdGhpcy5fd29ya3NwYWNlLmhhc01hcHBpbmdGb3JVUkwoc291cmNlVVJMKSAmJiAhdGhp
cy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSTChzb3VyY2VVUkwpKSB7CiAgICAgICAgICAg
ICAgICAgdmFyIHNvdXJjZUNvbnRlbnQgPSBzb3VyY2VNYXAuc291cmNlQ29udGVudChzb3VyY2VV
UkwpOwogICAgICAgICAgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXI7CiAgICAgICAgICAgICAg
ICAgaWYgKHNvdXJjZUNvbnRlbnQpCkBAIC0xMjIsOSArMTIwLDkgQEAgV2ViSW5zcGVjdG9yLkNv
bXBpbGVyU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIGNv
bnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29u
dGVudFByb3ZpZGVyKHNvdXJjZVVSTCk7CiAgICAgICAgICAgICAgICAgdGhpcy5fbmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwoc291cmNlVVJMLCBjb250ZW50UHJvdmlkZXIs
IHRydWUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRo
aXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHNvdXJjZVVS
TCk7CiAgICAgICAgICAgICBpZiAodWlTb3VyY2VDb2RlKSB7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fYmluZFVJU291cmNlQ29kZSh0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVy
aSkpOworICAgICAgICAgICAgICAgIHRoaXMuX2JpbmRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rl
KTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0ID0gc2NyaXB0
LmlzQ29udGVudFNjcmlwdDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlTWFwcGluZy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hcHBpbmcuanMKaW5kZXggZTRmMTcy
N2IwYTcyNWNkMWU0MmQ5MTVmNGI4NDQ1ODc1OWNiNTIzNS4uMDU1ZGI1OWJjMTI3NjViYzYyNjQ4
YjAyNDY0NTAwZTcyZTcwOGY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9GaWxlTWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzCkBAIC0zMCwxMSArMzAsOSBAQAogCiAvKioKICAqIEBj
b25zdHJ1Y3RvcgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBpbmd9IGZp
bGVTeXN0ZW1NYXBwaW5nCiAgKi8KLVdlYkluc3BlY3Rvci5GaWxlTWFwcGluZyA9IGZ1bmN0aW9u
KGZpbGVTeXN0ZW1NYXBwaW5nKQorV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nID0gZnVuY3Rpb24o
KQogewotICAgIHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nID0gZmlsZVN5c3RlbU1hcHBpbmc7CiAg
ICAgdGhpcy5fbWFwcGluZ0VudHJpZXNTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNy
ZWF0ZVNldHRpbmcoImZpbGVNYXBwaW5nRW50cmllcyIsIFtdKTsKICAgICAvKiogQHR5cGUge0Fy
cmF5LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnk+fSAqLwogICAgIHRoaXMuX2VudHJp
ZXMgPSBbXTsKQEAgLTQzLDY5ICs0MSwzMSBAQCBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcgPSBm
dW5jdGlvbihmaWxlU3lzdGVtTWFwcGluZykKIAogV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLnBy
b3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFw
cGluZy5FbnRyeX0gZW50cnkKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gICAgICogQHJl
dHVybiB7Ym9vbGVhbn0KKyAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LkVudHJ5fQogICAgICAqLwotICAgIF9lbnRyeU1hdGNoZXNVUkw6IGZ1bmN0aW9uKGVudHJ5LCB1
cmwpCi0gICAgewotICAgICAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoZW50cnkudXJsUHJlZml4
KTsKLSAgICB9LAotICAgIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZp
bGVNYXBwaW5nLkVudHJ5fSBlbnRyeQotICAgICAqIEByZXR1cm4gez9zdHJpbmd9Ci0gICAgICov
Ci0gICAgX2VudHJ5VVJJUHJlZml4OiBmdW5jdGlvbihlbnRyeSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9maWxlU3lzdGVtTWFwcGluZy51cmlQcmVmaXhGb3JQYXRoUHJlZml4KGVudHJ5
LnBhdGhQcmVmaXgpOwotICAgIH0sCi0gICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJp
bmd9IHVybAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgaGFzTWFwcGlu
Z0ZvclVSTDogZnVuY3Rpb24odXJsKQotICAgIHsKLSAgICAgICAgcmV0dXJuICEhdGhpcy5faW5u
ZXJVUklGb3JVUkwodXJsKTsKLSAgICB9LAotICAgIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7
c3RyaW5nfSB1cmwKLSAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQotICAgICAqLwotICAgIF9pbm5l
clVSSUZvclVSTDogZnVuY3Rpb24odXJsKQorICAgIG1hcHBpbmdFbnRyeUZvclVSTDogZnVuY3Rp
b24odXJsKQogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9lbnRyaWVz
Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgZW50cnkgPSB0aGlzLl9lbnRyaWVzW2ld
OwotICAgICAgICAgICAgdmFyIHVyaVByZWZpeCA9IHRoaXMuX2VudHJ5VVJJUHJlZml4KGVudHJ5
KTsKLSAgICAgICAgICAgIGlmICh1cmlQcmVmaXggJiYgdGhpcy5fZW50cnlNYXRjaGVzVVJMKGVu
dHJ5LCB1cmwpKQotICAgICAgICAgICAgICAgIHJldHVybiB1cmlQcmVmaXggKyB1cmwuc3Vic3Ry
aW5nKGVudHJ5LnVybFByZWZpeC5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHVybC5zdGFydHNX
aXRoKGVudHJ5LnVybFByZWZpeCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0sCi0gICAgCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEByZXR1cm4ge3N0cmluZ30KLSAgICAgKi8K
LSAgICB1cmlGb3JVUkw6IGZ1bmN0aW9uKHVybCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9pbm5lclVSSUZvclVSTCh1cmwpIHx8IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92
aWRlci51cmlGb3JVUkwodXJsLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwot
ICAgIH0sCi0gICAgCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aAotICAg
ICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLkVudHJ5fQogICAgICAqLwotICAgIHVybEZvclBhdGg6IGZ1bmN0aW9uKHBhdGgpCisg
ICAgbWFwcGluZ0VudHJ5Rm9yUGF0aDogZnVuY3Rpb24ocGF0aCkKICAgICB7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZW50cmllcy5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgdmFyIGVudHJ5ID0gdGhpcy5fZW50cmllc1tpXTsKICAgICAgICAgICAgIGlmIChwYXRoLnN0
YXJ0c1dpdGgoZW50cnkucGF0aFByZWZpeCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5
LnVybFByZWZpeCArIHBhdGguc3Vic3RyaW5nKGVudHJ5LnBhdGhQcmVmaXgubGVuZ3RoKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuICIi
OworICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1NYXBwaW5nLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTWFwcGluZy5qcwpp
bmRleCA5MjgyZGM4ZjE4ZWIyMTc0YjI4YjM0ZGI1Y2IwMTE4MGVlNzhkMzRiLi5lOWY5NmY5NTUy
MTA1NWQ1ZTBjYjEzMmU1YWMzMTVmMDg5YjFmZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1NYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1hcHBpbmcuanMKQEAgLTQwLDEw
ICs0MCwxMCBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIGZpbGVTeXN0ZW1QYXRoczogZnVuY3Rpb24oKSB7IH0sCiAKICAgICAvKioKLSAgICAgKiBA
cGFyYW0ge3N0cmluZ30gcGF0aFByZWZpeAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXgK
ICAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQogICAgICAqLwotICAgIHVyaVByZWZpeEZvclBhdGhQ
cmVmaXg6IGZ1bmN0aW9uKHBhdGhQcmVmaXgpIHsgfSwKKyAgICBmaWxlU3lzdGVtUGF0aEZvclBy
ZWZpeDogZnVuY3Rpb24ocHJlZml4KSB7IH0KIH0KIAogLyoqCkBAIC0xMTksNyArMTE5LDcgQEAg
V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2ZpbGVTeXN0ZW1OYW1lc1tpZF0gPSBuYW1lOwogICAgICAgICB0aGlzLl9maWxlU3lz
dGVtUGF0aHNbaWRdID0gZmlsZVN5c3RlbVBhdGg7CiAgICAgICAgIHRoaXMuX3NhdmVUb1NldHRp
bmdzKCk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9jYWNoZWRVUklQcmVmaXhlczsKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX2NhY2hlZEZpbGVTeXN0ZW1QYXRoczsKICAgICAgICAgcmV0dXJuIGlkOwog
ICAgIH0sCiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBp
bmdJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZGVsZXRlIHRoaXMuX2ZpbGVTeXN0ZW1OYW1l
c1tpZF07CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9maWxlU3lzdGVtUGF0aHNbaWRdOwogICAgICAg
ICB0aGlzLl9zYXZlVG9TZXR0aW5ncygpOwotICAgICAgICBkZWxldGUgdGhpcy5fY2FjaGVkVVJJ
UHJlZml4ZXM7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9jYWNoZWRGaWxlU3lzdGVtUGF0aHM7CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtMTQ3LDI0ICsxNDcsMjQgQEAgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1NYXBwaW5nSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBwYXRoUHJlZml4CisgICAgICogQHBhcmFtIHtzdHJpbmd9IHByZWZp
eAogICAgICAqIEByZXR1cm4gez9zdHJpbmd9CiAgICAgICovCi0gICAgdXJpUHJlZml4Rm9yUGF0
aFByZWZpeDogZnVuY3Rpb24ocGF0aFByZWZpeCkKKyAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZp
eDogZnVuY3Rpb24ocHJlZml4KQogICAgIHsKLSAgICAgICAgdGhpcy5fY2FjaGVkVVJJUHJlZml4
ZXMgPSB0aGlzLl9jYWNoZWRVUklQcmVmaXhlcyB8fCB7fTsKLSAgICAgICAgaWYgKHRoaXMuX2Nh
Y2hlZFVSSVByZWZpeGVzLmhhc093blByb3BlcnR5KHBhdGhQcmVmaXgpKQotICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2NhY2hlZFVSSVByZWZpeGVzW3BhdGhQcmVmaXhdOwotICAgICAgICB2YXIg
dXJpUHJlZml4ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fY2FjaGVkRmlsZVN5c3RlbVBhdGhzID0g
dGhpcy5fY2FjaGVkRmlsZVN5c3RlbVBhdGhzIHx8IHt9OworICAgICAgICBpZiAodGhpcy5fY2Fj
aGVkRmlsZVN5c3RlbVBhdGhzLmhhc093blByb3BlcnR5KHByZWZpeCkpCisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fY2FjaGVkRmlsZVN5c3RlbVBhdGhzW3ByZWZpeF07CisgICAgICAgIHZhciBy
ZXN1bHQgPSBudWxsOwogICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9maWxlU3lzdGVtUGF0
aHMpIHsKICAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtUGF0aCA9IHRoaXMuX2ZpbGVTeXN0ZW1Q
YXRoc1tpZF07Ci0gICAgICAgICAgICBpZiAocGF0aFByZWZpeC5zdGFydHNXaXRoKGZpbGVTeXN0
ZW1QYXRoICsgIi8iKSkgewotICAgICAgICAgICAgICAgIHVyaVByZWZpeCA9IGlkICsgcGF0aFBy
ZWZpeC5zdWJzdHIoZmlsZVN5c3RlbVBhdGgubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChwcmVm
aXguc3RhcnRzV2l0aChmaWxlU3lzdGVtUGF0aCArICIvIikpIHsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBmaWxlU3lzdGVtUGF0aDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQotICAgICAgICB0aGlzLl9jYWNoZWRVUklQcmVmaXhlc1twYXRoUHJl
Zml4XSA9IHVyaVByZWZpeDsKLSAgICAgICAgcmV0dXJuIHVyaVByZWZpeDsKKyAgICAgICAgdGhp
cy5fY2FjaGVkRmlsZVN5c3RlbVBhdGhzW3ByZWZpeF0gPSByZXN1bHQ7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZS5qcwppbmRleCBiNzA3MzYwZGViMWEx
YmI1ZTAwNzU2N2Q2M2QyZWI5NGE3YWMyYjI5Li5iM2Q3MTM5MzFhZWY0YTVmNDNlMjJjZTU2MTQ5
MjQ5MGU5MWMwYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0ZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtUHJvamVjdERlbGVnYXRlLmpzCkBAIC0zMywxMiAr
MzMsMTIgQEAKICAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuUHJvamVjdERlbGVnYXRlfQog
ICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Jc29sYXRlZEZpbGVTeXN0ZW19IGlzb2xhdGVkRmlsZVN5c3RlbQotICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuRmlsZU1hcHBpbmd9IGZpbGVNYXBwaW5nCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Xb3Jrc3BhY2V9IHdvcmtzcGFjZQogICovCi1XZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2pl
Y3REZWxlZ2F0ZSA9IGZ1bmN0aW9uKGlzb2xhdGVkRmlsZVN5c3RlbSwgZmlsZU1hcHBpbmcpCitX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZSA9IGZ1bmN0aW9uKGlzb2xhdGVk
RmlsZVN5c3RlbSwgd29ya3NwYWNlKQogewogICAgIHRoaXMuX2ZpbGVTeXN0ZW0gPSBpc29sYXRl
ZEZpbGVTeXN0ZW07Ci0gICAgdGhpcy5fZmlsZU1hcHBpbmcgPSBmaWxlTWFwcGluZzsKKyAgICB0
aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVt
UHJvamVjdERlbGVnYXRlLl9zY3JpcHRFeHRlbnNpb25zID0gWyJqcyIsICJqYXZhIiwgImNjIiwg
ImNwcCIsICJoIiwgImNzIiwgInB5IiwgInBocCJdLmtleVNldCgpOwpAQCAtMTYzLDcgKzE2Myw3
IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUHJvamVjdERlbGVnYXRlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgICAgICB2YXIgZnVsbFBhdGggPSB0aGlzLl9maWxlU3lzdGVtLnBhdGgoKSArIGZp
bGVzW2ldOwogICAgICAgICAgICAgICAgIHZhciBwYXRoID0gZmlsZXNbaV0uc3Vic3RyKDEpOyAK
LSAgICAgICAgICAgICAgICB2YXIgdXJsID0gdGhpcy5fZmlsZU1hcHBpbmcudXJsRm9yUGF0aChm
dWxsUGF0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuX3dvcmtzcGFjZS51cmxG
b3JQYXRoKGZ1bGxQYXRoKTsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudFR5cGUgPSB0aGlz
Ll9jb250ZW50VHlwZUZvclBhdGgocGF0aCk7CiAgICAgICAgICAgICAgICAgdmFyIGZpbGVEZXNj
cmlwdG9yID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlRGVzY3JpcHRvcihwYXRoLCAiZmlsZTovLyIg
KyBmdWxsUGF0aCwgdXJsLCBjb250ZW50VHlwZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgdGhp
cy5fYWRkRmlsZShmaWxlRGVzY3JpcHRvcik7CkBAIC0yMDIsMzUgKzIwMiwzMiBAQCBXZWJJbnNw
ZWN0b3IuZmlsZVN5c3RlbVByb2plY3REZWxlZ2F0ZSA9IG51bGw7CiAKIC8qKgogICogQGNvbnN0
cnVjdG9yCi0gKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlByb2plY3REZWxlZ2F0ZX0KICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXJ9IGlzb2xhdGVk
RmlsZVN5c3RlbU1hbmFnZXIKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLldvcmtzcGFjZX0gd29y
a3NwYWNlCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZ30gZmlsZU1hcHBpbmcK
ICAqLwotV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciA9IGZ1bmN0aW9u
KGlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIsIHdvcmtzcGFjZSwgZmlsZU1hcHBpbmcpCitXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gZnVuY3Rpb24oaXNvbGF0ZWRG
aWxlU3lzdGVtTWFuYWdlciwgd29ya3NwYWNlKQogewogICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5
c3RlbU1hbmFnZXIgPSBpc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyOwogICAgIHRoaXMuX3dvcmtz
cGFjZSA9IHdvcmtzcGFjZTsKLSAgICB0aGlzLl9maWxlTWFwcGluZyA9IGZpbGVNYXBwaW5nOwog
ICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5FdmVudHMuRmlsZVN5c3RlbUFkZGVk
LCB0aGlzLl9maWxlU3lzdGVtQWRkZWQsIHRoaXMpOwogICAgIHRoaXMuX2lzb2xhdGVkRmlsZVN5
c3RlbU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lz
dGVtTWFuYWdlci5FdmVudHMuRmlsZVN5c3RlbVJlbW92ZWQsIHRoaXMuX2ZpbGVTeXN0ZW1SZW1v
dmVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRl
ci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuZXZl
bnR9IGV2ZW50CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CiAgICAg
ICovCiAgICAgX2ZpbGVTeXN0ZW1BZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAg
ICB2YXIgZmlsZVN5c3RlbSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5
c3RlbX0gKi8gKGV2ZW50LmRhdGEpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fd29y
a3NwYWNlLnByb2plY3QoZmlsZVN5c3RlbS5pZCgpKSk7Ci0gICAgICAgIHZhciBwcm9qZWN0RGVs
ZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUoZmlsZVN5
c3RlbSwgdGhpcy5fZmlsZU1hcHBpbmcpCisgICAgICAgIHZhciBwcm9qZWN0RGVsZWdhdGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUoZmlsZVN5c3RlbSwgdGhp
cy5fd29ya3NwYWNlKQogICAgICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkUHJvamVjdChwcm9qZWN0
RGVsZWdhdGUpOwogICAgICAgICBwcm9qZWN0RGVsZWdhdGUucG9wdWxhdGUoKTsKICAgICB9LAog
CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuZXZlbnR9IGV2ZW50CisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CiAgICAgICovCiAgICAgX2ZpbGVT
eXN0ZW1SZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbU1h
bmFnZXIuanMKaW5kZXggYTNkYTg5YzdhOTY0NjkwOWZkNjQ0ODdhNmRjMzVmMDIxMmVmYWUwNS4u
MjRhOTMzNDEzMjU2OGJkNWYxODRkMmExMWNiY2JmYWY2MWQ0YzQxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2Vy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNvbGF0ZWRGaWxl
U3lzdGVtTWFuYWdlci5qcwpAQCAtMzQsNyArMzQsNyBAQAogICovCiBXZWJJbnNwZWN0b3IuSXNv
bGF0ZWRGaWxlU3lzdGVtTWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsKLSAgICAvKiogQHR5cGUgeyFP
YmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIuRmls
ZVN5c3RlbT59ICovCisgICAgLyoqIEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rv
ci5Jc29sYXRlZEZpbGVTeXN0ZW0+fSAqLwogICAgIHRoaXMuX2ZpbGVTeXN0ZW1zID0ge307CiAg
ICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgQXJyYXkuPGZ1bmN0aW9uKERPTUZpbGVTeXN0
ZW0pPj59ICovCiAgICAgdGhpcy5fcGVuZGluZ0ZpbGVTeXN0ZW1SZXF1ZXN0cyA9IHt9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcwppbmRleCBjMmQ2YzRlM2NkNDE1OWMxODJkZTNk
OWI5ZGQyOTk0NTA5MzlmMTIwLi5hY2VkMmI0OTk0MjY2MWJhMWFmNWE0ZmM0YjdlMzg2NzVmNWYx
ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcwpAQCAtMzEsMTAgKzMxLDEy
IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXJ9IG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcgorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuV29ya3NwYWNlfSB3b3Jrc3BhY2UKICAqLwotV2ViSW5zcGVjdG9yLk5ldHdv
cmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IGZ1bmN0aW9uKG5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
cikKK1dlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBmdW5jdGlvbihu
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIsIHdvcmtzcGFjZSkKIHsKICAgICB0aGlzLl9uZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIgPSBuZXR3b3JrV29ya3NwYWNlUHJvdmlkZXI7CisgICAgdGhpcy5f
d29ya3NwYWNlID0gd29ya3NwYWNlOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jlc291cmNlQWRkZWQsIHRoaXMpOwogICAgIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fbWFp
bkZyYW1lTmF2aWdhdGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5QYXJzZWRT
Y3JpcHRTb3VyY2UsIHRoaXMuX3BhcnNlZFNjcmlwdFNvdXJjZSwgdGhpcyk7CkBAIC0xMTIsNyAr
MTE0LDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5wcm90b3R5
cGUgPSB7CiAgICAgICovCiAgICAgX2FkZEZpbGU6IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3Zp
ZGVyLCBpc0NvbnRlbnRTY3JpcHQpCiAgICAgewotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmZp
bGVNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwodXJsKSkKKyAgICAgICAgaWYgKHRoaXMuX3dvcmtz
cGFjZS5oYXNNYXBwaW5nRm9yVVJMKHVybCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgdmFyIHR5cGUgPSBjb250ZW50UHJvdmlkZXIuY29udGVudFR5cGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5n
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1h
cHBpbmcuanMKaW5kZXggYmM5OGNmOGMzZDRlYzA1ZDQ1NzllNzJmNzc3ODFiMzNkNzljZjRmOS4u
MzdjZDE2YTU5YmY0NGYyMGIxY2ExM2E4MTU5NGFhMjU2MDUxOTQyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1h
cHBpbmcuanMKQEAgLTEzOCw4ICsxMzgsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gRklYTUU6IHdvcmthcm91bmQgZm9yIHNj
cmlwdC5pc0R5bmFtaWNTY3JpcHQoKSBiZWluZyB1bnJlbGlhYmxlLgogICAgICAgICBpZiAoIXNj
cmlwdC5pc0lubGluZVNjcmlwdCgpICYmIHRoaXMuX2lubGluZVNjcmlwdHNGb3JTb3VyY2VVUkxb
c2NyaXB0LnNvdXJjZVVSTF0pCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgdmFy
IHVyaSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwoc2NyaXB0LnNvdXJjZVVS
TCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVy
aSk7CisgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKHNj
cmlwdC5zb3VyY2VVUkwpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcwppbmRleCBlNWJjMmI0OTYz
NmMzZjhkODdhYzdhNDcxODE3MjNiY2U5NDc5ZmRmLi5kY2M3ODkxM2VkNjE3ZThlOGEyMDMxMTk1
MTM3MjJmYTQwZGY5MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlVXRpbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCkBAIC01OCw4ICs1OCw3IEBAIFdlYkluc3BlY3Rvci5k
aXNwbGF5TmFtZUZvclVSTCA9IGZ1bmN0aW9uKHVybCkKICAgICBpZiAocmVzb3VyY2UpCiAgICAg
ICAgIHJldHVybiByZXNvdXJjZS5kaXNwbGF5TmFtZTsKIAotICAgIHZhciB1cmkgPSBXZWJJbnNw
ZWN0b3IuZmlsZU1hcHBpbmcudXJpRm9yVVJMKHVybCk7Ci0gICAgdmFyIHVpU291cmNlQ29kZSA9
IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgdmFy
IHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJM
KHVybCk7CiAgICAgaWYgKHVpU291cmNlQ29kZSkKICAgICAgICAgcmV0dXJuIHVpU291cmNlQ29k
ZS5wYXJzZWRVUkwuZGlzcGxheU5hbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzCmluZGV4IDM2NWFjNDViY2Qy
YjY1NGYyYzc1YTg5NjE0NDU0MTczY2JjOGZiMTcuLmVhZGM0MDQ2ODczMTMxYTRkNTZhMDZmOTAy
NWNlN2NhNzNjM2RjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwpAQCAtMTEzLDggKzExMyw3IEBAIFdlYklu
c3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAKICAgICBfcmVsb2FkQ1NT
OiBmdW5jdGlvbih1cmwpCiAgICAgewotICAgICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLmZp
bGVNYXBwaW5nLnVyaUZvclVSTCh1cmwpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhp
cy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSTCh1cmwpOwogICAgICAg
ICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIG5l
d0NvbnRlbnQgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QubG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSh1cmwpOwpAQCAtMjI2LDggKzIyNSw3IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGlu
Zy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBzb3VyY2VzID0gc291cmNlTWFwLnNvdXJjZXMo
KTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICB2YXIgdXJsID0gc291cmNlc1tpXTsKLSAgICAgICAgICAgIHZhciB1cmkgPSBX
ZWJJbnNwZWN0b3IuZmlsZU1hcHBpbmcudXJpRm9yVVJMKHVybCk7Ci0gICAgICAgICAgICBpZiAo
IVdlYkluc3BlY3Rvci5maWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJMKHVybCkgJiYgIXRoaXMu
X3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKSkgeworICAgICAgICAgICAgaWYgKCF0
aGlzLl93b3Jrc3BhY2UuaGFzTWFwcGluZ0ZvclVSTCh1cmwpICYmICF0aGlzLl93b3Jrc3BhY2Uu
dWlTb3VyY2VDb2RlRm9yVVJMKHVybCkpIHsKICAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9
IEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHVybCk7CiAg
ICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQs
IGNvbnRlbnQsICJ0ZXh0L3gtc2NzcyIpOwogICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSB0aGlzLl9uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNv
bnRlbnRQcm92aWRlciwgdHJ1ZSk7CkBAIC0yNDcsMTUgKzI0NSwxMyBAQCBXZWJJbnNwZWN0b3Iu
U0FTU1NvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGxvY2F0
aW9uID0gLyoqIEB0eXBlIFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyAocmF3TG9jYXRpb24p
OwogICAgICAgICB2YXIgZW50cnk7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGU7CiAgICAgICAg
IHZhciBzb3VyY2VNYXAgPSB0aGlzLl9zb3VyY2VNYXBCeVN0eWxlU2hlZXRVUkxbbG9jYXRpb24u
dXJsXTsKICAgICAgICAgaWYgKCFzb3VyY2VNYXApCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsK
ICAgICAgICAgZW50cnkgPSBzb3VyY2VNYXAuZmluZEVudHJ5KGxvY2F0aW9uLmxpbmVOdW1iZXIs
IGxvY2F0aW9uLmNvbHVtbk51bWJlcik7CiAgICAgICAgIGlmICghZW50cnkgfHwgZW50cnkubGVu
Z3RoID09PSAyKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIHZhciB1cmkgPSBX
ZWJJbnNwZWN0b3IuZmlsZU1hcHBpbmcudXJpRm9yVVJMKGVudHJ5WzJdKTsKLSAgICAgICAgdWlT
b3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVS
TChlbnRyeVsyXSk7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlT
b3VyY2VDb2RlLCBlbnRyeVszXSwgZW50cnlbNF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA4MGI1MTBhMjZmZTFkMDFm
ZWQ0NWE5ZThiNzE2YWMwOGUwYTJlZWFhLi44NGRmYzk0YjdjZDI0OTZkNzQ1ODgxMjRlN2UzY2Mw
ZTQwNDM1OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcwpAQCAtMzcyLDggKzM3Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLmRlYnVnZ2VyRW5hYmxlZCgpICYmIGFuY2hvci51aVNvdXJjZUNvZGUpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgdmFyIHVyaSA9IFdlYkluc3BlY3Rvci5maWxl
TWFwcGluZy51cmlGb3JVUkwoYW5jaG9yLmhyZWYpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVSSSh1cmkpOworICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLndvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkwo
YW5jaG9yLmhyZWYpOwogICAgICAgICBpZiAodWlTb3VyY2VDb2RlKSB7CiAgICAgICAgICAgICBh
bmNob3IudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBs
ZVdvcmtzcGFjZVByb3ZpZGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcwppbmRleCAwZmE3YWRkYmQ0N2U5ZTc1ZDg0MjQ0
MTUzZDU4MDljZWM0MGU4MzQyLi4wNDU2MGVkOGYwNzY3MzdhZmIyMDg5YWRhNzEwMTdiODQzMGZi
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBs
ZVdvcmtzcGFjZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMKQEAgLTIxMywyNSArMjEzLDEyIEBAIFdl
Ykluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5zcGxpdFVSTCA9IGZ1bmN0aW9uKHVy
bCkKICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IHNwbGl0dGVkVVJMCiAgKiBAcmV0dXJuIHtz
dHJpbmd9CiAgKi8KLVdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5fcGF0aEZv
clNwbGl0dGVkVVJMID0gZnVuY3Rpb24oc3BsaXR0ZWRVUkwpCitXZWJJbnNwZWN0b3IuU2ltcGxl
V29ya3NwYWNlUHJvdmlkZXIucGF0aEZvclNwbGl0dGVkVVJMID0gZnVuY3Rpb24oc3BsaXR0ZWRV
UkwpCiB7CiAgICAgc3BsaXR0ZWRVUkwuc2hpZnQoKTsKICAgICByZXR1cm4gc3BsaXR0ZWRVUkwu
am9pbigiLyIpOwogfQogCi0vKioKLSAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlCi0gKiBAcmV0dXJuIHtzdHJpbmd9Ci0gKi8KLVdlYkluc3BlY3Rvci5TaW1w
bGVXb3Jrc3BhY2VQcm92aWRlci51cmlGb3JVUkwgPSBmdW5jdGlvbih1cmwsIHR5cGUpCi17Ci0g
ICAgdmFyIHNwbGl0dGVkVVJMID0gV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVy
LnNwbGl0VVJMKHVybCk7Ci0gICAgdmFyIHByb2plY3RJZCA9IFdlYkluc3BlY3Rvci5TaW1wbGVQ
cm9qZWN0RGVsZWdhdGUucHJvamVjdElkKHNwbGl0dGVkVVJMWzBdLCB0eXBlKTsKLSAgICB2YXIg
cGF0aCA9IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5fcGF0aEZvclNwbGl0
dGVkVVJMKHNwbGl0dGVkVVJMKTsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZS51cmkocHJvamVjdElkLCBwYXRoKTsKLSB9Ci0KIFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3Bh
Y2VQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9
IHByb2plY3ROYW1lCkBAIC0yODMsNyArMjcwLDcgQEAgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtz
cGFjZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzcGxpdHRlZFVS
TCA9IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5zcGxpdFVSTCh1cmwpOwog
ICAgICAgICB2YXIgcHJvamVjdE5hbWUgPSBzcGxpdHRlZFVSTFswXTsKLSAgICAgICAgdmFyIHBh
dGggPSBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuX3BhdGhGb3JTcGxpdHRl
ZFVSTChzcGxpdHRlZFVSTCk7CisgICAgICAgIHZhciBwYXRoID0gV2ViSW5zcGVjdG9yLlNpbXBs
ZVdvcmtzcGFjZVByb3ZpZGVyLnBhdGhGb3JTcGxpdHRlZFVSTChzcGxpdHRlZFVSTCk7CiAgICAg
ICAgIHJldHVybiB0aGlzLl9pbm5lckFkZEZpbGUocHJvamVjdE5hbWUsIHBhdGgsIHVybCwgY29u
dGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlLCBmb3JjZVVuaXF1ZSwgaXNDb250ZW50U2NyaXB0KTsK
ICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1N0eWxlc1NvdXJjZU1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKaW5kZXggNzI2NDA1MjVkMGI4MGIxODg3YTIxMmY1
OGUzZWRmODhjODk1YWU2Ny4uNmQ5M2RmOWM1MGZmYzQ4YzQ4NmUwOTc2ZjE0NDNiYmUxOWYyNzU4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNT
b3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzU291cmNlTWFwcGluZy5qcwpAQCAtNTQsOCArNTQsNyBAQCBXZWJJbnNwZWN0b3IuU3R5
bGVzU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRp
b246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uKQogICAgIHsKICAgICAgICAgdmFyIGxvY2F0aW9uID0g
LyoqIEB0eXBlIFdlYkluc3BlY3Rvci5DU1NMb2NhdGlvbiAqLyAocmF3TG9jYXRpb24pOwotICAg
ICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVyaUZvclVSTChsb2NhdGlv
bi51cmwpOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291
cmNlQ29kZUZvclVSSSh1cmkpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29y
a3NwYWNlLnVpU291cmNlQ29kZUZvclVSTChsb2NhdGlvbi51cmwpOwogICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgbG9jYXRpb24ubGluZU51
bWJlciwgMCk7CiAgICAgfSwKIApAQCAtNzcsOCArNzYsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVz
U291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGlmICghcmVzb3VyY2UudXJsKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgdXJp
ID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVyaUZvclVSTChyZXNvdXJjZS51cmwpOwotICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291cmNlQ29kZUZvclVS
SSh1cmkpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fd29ya3NwYWNlLnVpU291
cmNlQ29kZUZvclVSTChyZXNvdXJjZS51cmwpOwogICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5fYmluZFVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGUpOwpAQCAtMTI1LDggKzEyMyw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTb3VyY2VN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICBfbWFpbkZyYW1lQ3JlYXRlZE9yTmF2aWdhdGVkOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGZvciAodmFyIG1hcHBlZFVSTCBpbiB0aGlz
Ll9tYXBwZWRVUkxzKSB7Ci0gICAgICAgICAgICB2YXIgdXJpID0gV2ViSW5zcGVjdG9yLmZpbGVN
YXBwaW5nLnVyaUZvclVSTChtYXBwZWRVUkwpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IHRoaXMuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVGb3JVUkkodXJpKTsKKyAgICAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJMKG1h
cHBlZFVSTCk7CiAgICAgICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zdHlsZUZpbGUoKS5kaXNwb3Nl
KCk7CkBAIC0yMTQsMTQgKzIxMSwxNCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVGaWxlLnByb3RvdHlw
ZSA9IHsKICAgICB9CiB9CiAKLQogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWx9IGNzc01vZGVsCiAgKi8KLVdlYkluc3BlY3Rvci5TdHls
ZUNvbnRlbnRCaW5kaW5nID0gZnVuY3Rpb24oY3NzTW9kZWwpCitXZWJJbnNwZWN0b3IuU3R5bGVD
b250ZW50QmluZGluZyA9IGZ1bmN0aW9uKGNzc01vZGVsLCB3b3Jrc3BhY2UpCiB7CiAgICAgdGhp
cy5fY3NzTW9kZWwgPSBjc3NNb2RlbDsKKyAgICB0aGlzLl93b3Jrc3BhY2UgPSB3b3Jrc3BhY2U7
CiAgICAgdGhpcy5fY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldENoYW5nZWQsIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2Vk
LCB0aGlzKTsKIH0KIApAQCAtMjg4LDggKzI4NSw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZUNvbnRl
bnRCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHR5cGVvZiBzdHlsZVNoZWV0VVJM
ICE9PSAic3RyaW5nIikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgdXJpID0g
V2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnVyaUZvclVSTChzdHlsZVNoZWV0VVJMKTsKLSAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2Rl
Rm9yVVJJKHVyaSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl93b3Jrc3BhY2Uu
dWlTb3VyY2VDb2RlRm9yVVJMKHN0eWxlU2hlZXRVUkwpOwogICAgICAgICBpZiAoIXVpU291cmNl
Q29kZSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5qcwppbmRleCA3Yzk5NjgwYTU4YjNiYzhmZWYyNWEyMzY1
YmU0MzQ3NGFkNGViYWYyLi5hMWEzNDA5Mzk5Zjg1OTkzMzAyNDNjZWYwOTVkNTM5NGY5MmEyZWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFj
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtzcGFjZS5q
cwpAQCAtMzA3LDkgKzMwNywxMyBAQCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzID0gewogICog
QGNvbnN0cnVjdG9yCiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZVBy
b3ZpZGVyfQogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CisgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5GaWxlTWFwcGluZ30gZmlsZU1hcHBpbmcKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLkZpbGVTeXN0ZW1NYXBwaW5nfSBmaWxlU3lzdGVtTWFwcGluZwogICovCi1XZWJJbnNwZWN0
b3IuV29ya3NwYWNlID0gZnVuY3Rpb24oKQorV2ViSW5zcGVjdG9yLldvcmtzcGFjZSA9IGZ1bmN0
aW9uKGZpbGVNYXBwaW5nLCBmaWxlU3lzdGVtTWFwcGluZykKIHsKKyAgICB0aGlzLl9maWxlTWFw
cGluZyA9IGZpbGVNYXBwaW5nOworICAgIHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nID0gZmlsZVN5
c3RlbU1hcHBpbmc7CiAgICAgLyoqIEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rv
ci5Qcm9qZWN0Pn0gKi8KICAgICB0aGlzLl9wcm9qZWN0cyA9IHt9OwogfQpAQCAtNDQzLDYgKzQ0
Nyw2MSBAQCBXZWJJbnNwZWN0b3IuV29ya3NwYWNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHVy
bAorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaGFzTWFwcGluZ0ZvclVS
TDogZnVuY3Rpb24odXJsKQorICAgIHsKKyAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5fZmlsZU1h
cHBpbmcubWFwcGluZ0VudHJ5Rm9yVVJMKHVybCk7CisgICAgICAgIGlmICghZW50cnkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiAhIXRoaXMuX2ZpbGVTeXN0ZW1Q
YXRoRm9yRW50cnkoZW50cnkpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnl9IGVudHJ5CisgICAgICogQHJldHVybiB7
P3N0cmluZ30KKyAgICAgKi8KKyAgICBfZmlsZVN5c3RlbVBhdGhGb3JFbnRyeTogZnVuY3Rpb24o
ZW50cnkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZmlsZVN5c3RlbU1hcHBpbmcuZmls
ZVN5c3RlbVBhdGhGb3JQcmVmaXgoZW50cnkucGF0aFByZWZpeCk7CisgICAgfSwKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0KKyAgICAgKi8KKyAgICB1aVNvdXJjZUNvZGVGb3JVUkw6IGZ1bmN0aW9u
KHVybCkKKyAgICB7CisgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX2ZpbGVNYXBwaW5nLm1hcHBp
bmdFbnRyeUZvclVSTCh1cmwpOworICAgICAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSBlbnRyeSA/
IHRoaXMuX2ZpbGVTeXN0ZW1QYXRoRm9yRW50cnkoZW50cnkpIDogbnVsbDsKKyAgICAgICAgaWYg
KCFmaWxlU3lzdGVtUGF0aCkgeworICAgICAgICAgICAgdmFyIHNwbGl0dGVkVVJMID0gV2ViSW5z
cGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLnNwbGl0VVJMKHVybCk7CisgICAgICAgICAg
ICB2YXIgcHJvamVjdElkID0gV2ViSW5zcGVjdG9yLlNpbXBsZVByb2plY3REZWxlZ2F0ZS5wcm9q
ZWN0SWQoc3BsaXR0ZWRVUkxbMF0sIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7
CisgICAgICAgICAgICB2YXIgcGF0aCA9IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92
aWRlci5wYXRoRm9yU3BsaXR0ZWRVUkwoc3BsaXR0ZWRVUkwpOworICAgICAgICAgICAgdmFyIHBy
b2plY3QgPSB0aGlzLnByb2plY3QocHJvamVjdElkKTsKKyAgICAgICAgICAgIHJldHVybiBwcm9q
ZWN0ID8gcHJvamVjdC51aVNvdXJjZUNvZGUocGF0aCkgOiBudWxsOworICAgICAgICB9CisKKyAg
ICAgICAgdmFyIHByb2plY3RJZCA9IHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nLmZpbGVTeXN0ZW1J
ZChmaWxlU3lzdGVtUGF0aCk7CisgICAgICAgIHZhciBwYXRoUHJlZml4ID0gZW50cnkucGF0aFBy
ZWZpeC5zdWJzdHIoZmlsZVN5c3RlbVBhdGgubGVuZ3RoICsgMSk7CisgICAgICAgIHZhciBwYXRo
ID0gcGF0aFByZWZpeCArIHVybC5zdWJzdHIoZW50cnkudXJsUHJlZml4Lmxlbmd0aCk7CisgICAg
ICAgIHZhciBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0KHByb2plY3RJZCk7CisgICAgICAgIHJldHVy
biBwcm9qZWN0ID8gcHJvamVjdC51aVNvdXJjZUNvZGUocGF0aCkgOiBudWxsOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aAorICAgICAqIEByZXR1cm4ge3N0
cmluZ30KKyAgICAgKi8KKyAgICB1cmxGb3JQYXRoOiBmdW5jdGlvbihwYXRoKQorICAgIHsKKyAg
ICAgICAgdmFyIGVudHJ5ID0gdGhpcy5fZmlsZU1hcHBpbmcubWFwcGluZ0VudHJ5Rm9yUGF0aChw
YXRoKTsKKyAgICAgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICAgcmV0dXJuIGVudHJ5LnVybFByZWZpeCArIHBhdGguc3Vic3RyaW5nKGVudHJ5LnBhdGhQcmVm
aXgubGVuZ3RoKTsKKyAgICB9LAorCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCmluZGV4IDc0OWVhZDY0NjY3OTQxMDc2YTJjM2RkNWZlMDZhMzY1ZmQ1MzI2
ZTQuLjBhNjk5MWNkOWM0YTdhYzIyNWMyNWMxNzRlNTUxMGM4NzgyZDQ2ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MTUsNyAr
NDE1LDEwIEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGllcyA9IGZ1
bmN0aW9uKCkKIAogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJJbnNwZWN0b3JEaXNwYXRj
aGVyKHRoaXMpOwogCi0gICAgdGhpcy53b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtz
cGFjZSgpOworICAgIHRoaXMuaXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlcigpOworICAgIHRoaXMuaXNvbGF0ZWRGaWxl
U3lzdGVtRGlzcGF0Y2hlciA9IG5ldyBXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtRGlz
cGF0Y2hlcih0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIpOworICAgIHRoaXMuZmlsZU1h
cHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7CisgICAgdGhpcy53b3Jrc3Bh
Y2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSh0aGlzLmZpbGVNYXBwaW5nLCB0aGlzLmlz
b2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIubWFwcGluZygpKTsKIAogICAgIHRoaXMuY3NzTW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwodGhpcy53b3Jrc3BhY2UpOwogICAgIHRo
aXMudGltZWxpbmVNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIoKTsK
QEAgLTQzOCwxMyArNDQxLDEwIEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFi
aWxpdGllcyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMud29ya3NwYWNlQ29udHJvbGxlciA9IG5l
dyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlQ29udHJvbGxlcih0aGlzLndvcmtzcGFjZSk7CiAKLSAg
ICB0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLklzb2xh
dGVkRmlsZVN5c3RlbU1hbmFnZXIoKTsKLSAgICB0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbURpc3Bh
dGNoZXIgPSBuZXcgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbURpc3BhdGNoZXIodGhp
cy5pc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyKTsKLSAgICB0aGlzLmZpbGVNYXBwaW5nID0gbmV3
IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZyh0aGlzLmlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIu
bWFwcGluZygpKTsKLSAgICB0aGlzLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyKHRoaXMuaXNvbGF0ZWRGaWxl
U3lzdGVtTWFuYWdlciwgdGhpcy53b3Jrc3BhY2UsIHRoaXMuZmlsZU1hcHBpbmcpOworICAgIHRo
aXMuZmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtV29ya3NwYWNlUHJvdmlkZXIodGhpcy5pc29sYXRlZEZpbGVTeXN0ZW1NYW5hZ2VyLCB0aGlz
LndvcmtzcGFjZSk7CiAKICAgICB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIodGhpcy53b3Jrc3BhY2UsIFdlYklu
c3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7Ci0gICAgbmV3IFdlYkluc3BlY3Rvci5OZXR3
b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIodGhpcy5uZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwor
ICAgIG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKHRoaXMubmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLCB0aGlzLndvcmtzcGFjZSk7CiAKICAgICB0aGlzLmJyZWFr
cG9pbnRNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlcihXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuYnJlYWtwb2ludHMsIHRoaXMuZGVidWdnZXJNb2RlbCwgdGhpcy53b3Jr
c3BhY2UpOwogCkBAIC00NTIsNyArNDUyLDcgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVX
aXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogCiAgICAgbmV3IFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclNjcmlwdE1hcHBpbmcodGhpcy53b3Jrc3BhY2UsIHRoaXMubmV0d29ya1dvcmtzcGFjZVBy
b3ZpZGVyKTsKICAgICB0aGlzLmxpdmVFZGl0U3VwcG9ydCA9IG5ldyBXZWJJbnNwZWN0b3IuTGl2
ZUVkaXRTdXBwb3J0KHRoaXMud29ya3NwYWNlKTsKLSAgICB0aGlzLnN0eWxlQ29udGVudEJpbmRp
bmcgPSBuZXcgV2ViSW5zcGVjdG9yLlN0eWxlQ29udGVudEJpbmRpbmcodGhpcy5jc3NNb2RlbCk7
CisgICAgdGhpcy5zdHlsZUNvbnRlbnRCaW5kaW5nID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZUNv
bnRlbnRCaW5kaW5nKHRoaXMuY3NzTW9kZWwsIHRoaXMud29ya3NwYWNlKTsKICAgICBuZXcgV2Vi
SW5zcGVjdG9yLlN0eWxlc1NvdXJjZU1hcHBpbmcodGhpcy5jc3NNb2RlbCwgdGhpcy53b3Jrc3Bh
Y2UpOwogICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zYXNzLmlzRW5h
YmxlZCgpKQogICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNBU1NTb3VyY2VNYXBwaW5nKHRoaXMu
Y3NzTW9kZWwsIHRoaXMud29ya3NwYWNlLCB0aGlzLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZjFmNDNjMjk1YjEzNGIwZmFhYzAyNWM3MjhlYjY3YmJjNDI2ZWU5ZS4uYjk4NDY3
YTlkZWQ4YzcwOTEyMjY0MjE0NGU4NGZjZWJhOTI2OTFhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBA
CiAyMDEzLTAyLTE5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IE1vdmUgd29ya3NwYWNlIHNwZWNpZmljIGNvZGUgZnJvbSBG
aWxlTWFwcGluZyB0byB3b3Jrc3BhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAyMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1t
YXBwaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRl
c3QuanM6CisgICAgICAgIChpbml0aWFsaXplX1dvcmtzcGFjZVRlc3QuSW5zcGVjdG9yVGVzdC5j
cmVhdGVXb3Jrc3BhY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVp
c291cmNlY29kZS1wcm92aWRlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLW1hcHBp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmcuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci93
b3Jrc3BhY2UtbWFwcGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci93b3Jrc3BhY2UtbWFwcGluZy5odG1sOiBBZGRlZC4KKworMjAxMy0wMi0xOSAgVnNldm9sb2Qg
Vmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
ZWNvdXBsZSB2YXJpb3VzIGZpbGUgc3lzdGVtIHByb2plY3QgaW1wbGVtZW50YXRpb24gcGFydHMg
Zm9yIGJldHRlciB0ZXN0YWJpbGl0eSBhbmQgY292ZXIgd2l0aCB0ZXN0cy4KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDIwNAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGlsZXItc2NyaXB0
LW1hcHBpbmcuaHRtbAppbmRleCA4MTkzZDRhNzk3NTAwYWJmMmEwZTYxNTE4ZTMwYTEwYzE0YzI4
YzFmLi43MmNlOWUzOTg2ZDVmOTFkNTVkZjE1NDllNDNhZTA2ZGY0NDYwOTk1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3JpcHQtbWFwcGlu
Zy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNj
cmlwdC1tYXBwaW5nLmh0bWwKQEAgLTI3OCwxNCArMjc4LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgICAgICJzb3VyY2VzQ29udGVudCI6WyI8c291cmNlIGNvbnRlbnQ+Il0KICAg
ICAgICAgICAgIH07CiAgICAgICAgICAgICBzY3JpcHQuc291cmNlTWFwVVJMID0gImRhdGE6YXBw
bGljYXRpb24vanNvbjtiYXNlNjQsIiArIGJ0b2EoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVB
ZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChjb21waWxlZFVJ
U291cmNlQ29kZUFkZGVkKTsKIAotICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJj
ZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpCisgICAgICAgICAgICBmdW5jdGlvbiBjb21waWxlZFVJ
U291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50
KGNvbXBpbGVkVUlTb3VyY2VDb2RlQWRkZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJj
ZUNvZGVBZGRlZCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNvbXBp
bGVkVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKSB7IH0KKyAgICAgICAgICAgIGZ1bmN0
aW9uIG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKSB7IH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7
CiAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7CkBA
IC0zMDksMTEgKzMwOSwxOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNvdXJjZU1hcHNFbmFibGVkLnNldCh0cnVlKTsKICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAgICAgICAg
ICAgdmFyIHdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgICAg
ICAgICB2YXIgbmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1w
bGVXb3Jrc3BhY2VQcm92aWRlcih3b3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMu
TmV0d29yayk7Ci0gICAgICAgICAgICB2YXIgZGVidWdnZXJTY3JpcHRNYXBwaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNjcmlwdE1hcHBpbmcod29ya3NwYWNlLCBuZXR3b3JrV29ya3Nw
YWNlUHJvdmlkZXIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2Uo
KTsKKyAgICAgICAgICAgIHZhciBkZWJ1Z2dlclNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyU2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIElu
c3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CiAKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQoY29t
cGlsZWRVSVNvdXJjZUNvZGVBZGRlZCk7CiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKCJjb21waWxlZC5qcyIsIDAsIDAsIHRydWUsICIiKTsK
KworICAgICAgICAgICAgZnVuY3Rpb24gY29tcGlsZWRVSVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJj
ZUNvZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0
Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFk
ZGVkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNv
dXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpIHsgfQorCiAgICAgICAgICAgICBzY3JpcHQuc291
cmNlTWFwVVJMID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Nv
dXJjZS1tYXAuanNvbl8iOwogICAgICAgICAgICAgY29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKCkg
e307IC8vIEVycm9yIG1lc3NhZ2UgaXMgcGxhdGZvcm0gZGVwZW5kZW50LgogICAgICAgICAgICAg
ZGVidWdnZXJTY3JpcHRNYXBwaW5nLl9wYXJzZWRTY3JpcHRTb3VyY2Uoe2RhdGE6c2NyaXB0fSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2Ut
dGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0
LmpzCmluZGV4IGE1Mzg1NGQ0ZDI4Y2QyMDZiMjZlYzAwOTEzYTFiMzAxNjk5MWM4OGUuLmFmNzNj
MjYxMjNhYWY5MzQ1NWNhOTU2YzU3YjUxMDM0ZWNkZWRlNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzCkBAIC0xLDkgKzEsMTIg
QEAKIHZhciBpbml0aWFsaXplX1dvcmtzcGFjZVRlc3QgPSBmdW5jdGlvbigpIHsKIAotSW5zcGVj
dG9yVGVzdC50ZXN0V29ya3NwYWNlOwogSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UgPSBm
dW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlID0gbmV3IFdlYklu
c3BlY3Rvci5Xb3Jrc3BhY2UoKTsKKyAgICBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlTWFwcGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcoKTsKKyAgICBJbnNwZWN0b3JUZXN0LnRlc3RG
aWxlU3lzdGVtTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBpbmdJbXBs
KCk7CisgICAgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcuX2ZpbGVTeXN0ZW1N
YXBwaW5nU2V0dGluZyA9IG5ldyBJbnNwZWN0b3JUZXN0Lk1vY2tTZXR0aW5nKHt9KTsKKworICAg
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNl
KEluc3BlY3RvclRlc3QudGVzdEZpbGVNYXBwaW5nLCBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlU3lz
dGVtTWFwcGluZyk7CiAgICAgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dvcmtzcGFjZVByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcihJbnNwZWN0b3JU
ZXN0LnRlc3RXb3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7CiAg
ICAgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgSW5zcGVj
dG9yVGVzdC5fZGVmYXVsdFVJU291cmNlQ29kZVByb3ZpZGVyRXZlbnRIYW5kbGVyKTsKICAgICBJ
bnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJU291cmNlQ29kZVJlbW92ZWQsIEluc3BlY3Rv
clRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUt
cHJvdmlkZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVp
c291cmNlY29kZS1wcm92aWRlci5odG1sCmluZGV4IDc1MTNhYjg3MDZmNTBkMGM3OTQyYzI4NTgy
NDdlYjYwNmUzYjBjNzUuLjg2ZTEzNTA3NjJhYmZkZGYxOWI4OWYwNTVlOTE5Mjc0ZDQyNjlkYzEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291
cmNlY29kZS1wcm92aWRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci5odG1sCkBAIC01Niw3ICs1Niw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3Bh
Y2UoKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsID0gbmV3IFdlYklu
c3BlY3Rvci5PYmplY3QoKTsKLSAgICAgICAgdmFyIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKEluc3BlY3Rv
clRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlcik7CisgICAgICAgIHZhciBuZXR3b3Jr
VUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNvdXJjZUNv
ZGVQcm92aWRlcihJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIsIElu
c3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7CiAgICAgICAgIHJldHVybiBuZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxl
LW1hcHBpbmctZXhwZWN0ZWQudHh0CmluZGV4IDA1MDVkZWU3YjFiMTZjODIyOGIzMTk5YmNlZDU3
MDU0MWJiNjRiNDkuLjU0NTRmMjUxYzhlYWJjZTA0YjUyM2I2ZWUyMDJmNmM4MjFkZWFiN2EgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0CkBA
IC0xLDE0ICsxLDE1IEBACiBUZXN0cyBGaWxlTWFwcGluZwogCi11cmk6L2hvbWUvZXhhbXBsZS5j
b20KLXVyaTovaG9tZS9leGFtcGxlLmNvbS8KLXVyaTovdmFyL3d3dy9pbmRleC5odG1sCi11cmk6
L3Zhci93d3cvZm9vL2luZGV4Lmh0bWwKLWh0dHBzOi8vbG9jYWxob3N0Ci1odHRwOi8vZXhhbXBs
ZS5jb20KLWh0dHA6Ly93d3cuZXhhbXBsZS5jb20KLWh0dHA6Ly93d3cuZXhhbXBsZS5jb20vCi1o
dHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKLWh0dHA6Ly9sb2NhbGhvc3QvZm9vL2luZGV4Lmh0
bWwKLUFsbCBtYXBwaW5ncyB3ZXJlIGNvcnJlY3QuCitUZXN0IG1hcHBpbmdFbnRyeUZvclVSTAor
ICAgIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20gLT4gbnVsbAorICAgIGh0dHA6Ly93d3cuZXhhbXBs
ZS5jb20vIC0+IC9ob21lL2V4YW1wbGUuY29tLworICAgIGh0dHA6Ly9sb2NhbGhvc3QvaW5kZXgu
aHRtbCAtPiAvdmFyL3d3dy8KKyAgICBodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIC0+
IC92YXIvd3d3LworICAgIGh0dHBzOi8vbG9jYWxob3N0IC0+IG51bGwKKyAgICBodHRwOi8vZXhh
bXBsZS5jb20gLT4gbnVsbAorVGVzdCBtYXBwaW5nRW50cnlGb3JQYXRoCisgICAgL2hvbWUvZXhh
bXBsZS5jb20gLT4gbnVsbAorICAgIC9ob21lL2V4YW1wbGUuY29tLyAtPiBodHRwOi8vd3d3LmV4
YW1wbGUuY29tLworICAgIC92YXIvd3d3L2luZGV4Lmh0bWwgLT4gaHR0cDovL2xvY2FsaG9zdC8K
KyAgICAvdmFyL3d3dy9mb28vaW5kZXguaHRtbCAtPiBodHRwOi8vbG9jYWxob3N0LwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwKaW5kZXggZThlOTZkYjM4ZmZmNjdkNDc3
ODk2ZDIwZjVjYzNjNWEzZDE5NTk3YS4uMmQ0MDdiYWRkZmE1YjM1N2ZjNGIzZTMxMDc1M2E3NjJj
OTMwYzdkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbApAQCAtNCw0
NSArNCw0NCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGZ1bmN0aW9uIE1v
Y2tGaWxlU3lzdGVtTWFwcGluZygpIHt9Ci0gICAgTW9ja0ZpbGVTeXN0ZW1NYXBwaW5nLnByb3Rv
dHlwZSA9IHsKLSAgICAgICAgdXJpUHJlZml4Rm9yUGF0aFByZWZpeDogZnVuY3Rpb24ocGF0aFBy
ZWZpeCkgewotICAgICAgICAgICAgcmV0dXJuICJ1cmk6IiArIHBhdGhQcmVmaXg7Ci0gICAgICAg
IH0KLSAgICB9OwotCiAgICAgLy8gQXQgZmlyc3QgZmlsbCBmaWxlIG1hcHBpbmcgd2l0aCBlbnRy
aWVzLgotICAgIHZhciBmaWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmco
bmV3IE1vY2tGaWxlU3lzdGVtTWFwcGluZygpKTsKKyAgICB2YXIgZmlsZU1hcHBpbmcgPSBuZXcg
V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7CiAgICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gW107
Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVu
dHJ5KCJodHRwOi8vbG9jYWxob3N0IiwgIi92YXIvd3d3IikpOwotICAgIG1hcHBpbmdFbnRyaWVz
LnB1c2gobmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbSIsICIvaG9tZS9leGFtcGxlLmNvbSIpKTsKLSAgICBtYXBwaW5nRW50cmllcy5wdXNo
KG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZm9vLmNvbSIs
ICIvYmFyLyIpKTsKKyAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmls
ZU1hcHBpbmcuRW50cnkoImh0dHA6Ly9sb2NhbGhvc3QvIiwgIi92YXIvd3d3LyIpKTsKKyAgICBt
YXBwaW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vIiwgIi9ob21lL2V4YW1wbGUuY29tLyIpKTsKKyAgICBtYXBw
aW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6
Ly93d3cuZm9vLmNvbS8iLCAiL2Jhci8iKSk7CiAgICAgZmlsZU1hcHBpbmcuc2V0TWFwcGluZ0Vu
dHJpZXMobWFwcGluZ0VudHJpZXMpOwogCiAgICAgLy8gVGhlbiBjcmVhdGUgYW5vdGhlciBmaWxl
IG1hcHBpbmcgdG8gbWFrZSBzdXJlIGl0IGlzIGNvcnJlY3RseSByZXN0b3JlZCBmcm9tIHRoZSBz
ZXR0aW5ncy4KLSAgICBmaWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmco
bmV3IE1vY2tGaWxlU3lzdGVtTWFwcGluZygpKTsKKyAgICBmaWxlTWFwcGluZyA9IG5ldyBXZWJJ
bnNwZWN0b3IuRmlsZU1hcHBpbmcoKTsKIAotICAgIC8vIE5vdyB0ZXN0IGFsbCBGaWxlTWFwcGlu
ZyBtZXRob2RzLgotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShmaWxlTWFwcGluZy5oYXNN
YXBwaW5nRm9yVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksICJmaWxlTWFwcGluZy5oYXNN
YXBwaW5nRm9yVVJMIGZhaWxlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoZmls
ZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iKSwgImZp
bGVNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwgZmFpbGVkLiIpOwotICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0VHJ1ZShmaWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0
L2luZGV4Lmh0bWwiKSwgImZpbGVNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwgZmFpbGVkLiIpOwot
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShmaWxlTWFwcGluZy5oYXNNYXBwaW5nRm9yVVJM
KCJodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIiksICJmaWxlTWFwcGluZy5oYXNNYXBw
aW5nRm9yVVJMIGZhaWxlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIWZpbGVN
YXBwaW5nLmhhc01hcHBpbmdGb3JVUkwoImh0dHBzOi8vbG9jYWxob3N0IiksICJmaWxlTWFwcGlu
Zy5oYXNNYXBwaW5nRm9yVVJMIGZhaWxlZC4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUoIWZpbGVNYXBwaW5nLmhhc01hcHBpbmdGb3JVUkwoImh0dHA6Ly9leGFtcGxlLmNvbSIpLCAi
ZmlsZU1hcHBpbmcuaGFzTWFwcGluZ0ZvclVSTCBmYWlsZWQuIik7CisgICAgZnVuY3Rpb24gdGVz
dFBhdGhQcmVmaXhGb3JVUkwodXJsKQorICAgIHsKKyAgICAgICAgdmFyIGVudHJ5ID0gZmlsZU1h
cHBpbmcubWFwcGluZ0VudHJ5Rm9yVVJMKHVybCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIgICAgIiArIHVybCArICIgLT4gIiArIChlbnRyeSA/IGVudHJ5LnBhdGhQcmVmaXgg
OiBudWxsKSk7CisgICAgfQogCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZmlsZU1hcHBp
bmcudXJpRm9yVVJMKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikpOwotICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bS8iKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZmlsZU1hcHBpbmcudXJpRm9yVVJM
KCJodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwiKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoZmlsZU1hcHBpbmcudXJpRm9yVVJMKCJodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5o
dG1sIikpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGZpbGVNYXBwaW5nLnVyaUZvclVS
TCgiaHR0cHM6Ly9sb2NhbGhvc3QiKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZmls
ZU1hcHBpbmcudXJpRm9yVVJMKCJodHRwOi8vZXhhbXBsZS5jb20iKSk7CisgICAgZnVuY3Rpb24g
dGVzdFVSTFByZWZpeEZvclBhdGgocGF0aCkKKyAgICB7CisgICAgICAgIHZhciBlbnRyeSA9IGZp
bGVNYXBwaW5nLm1hcHBpbmdFbnRyeUZvclBhdGgocGF0aCk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIgICAgIiArIHBhdGggKyAiIC0+ICIgKyAoZW50cnkgPyBlbnRyeS51cmxQ
cmVmaXggOiBudWxsKSk7CisgICAgfQorCisgICAgLy8gTm93IHRlc3QgYWxsIEZpbGVNYXBwaW5n
IG1ldGhvZHMuCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgbWFwcGluZ0VudHJ5
Rm9yVVJMIik7CisgICAgdGVzdFBhdGhQcmVmaXhGb3JVUkwoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20iKTsKKyAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8i
KTsKKyAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDovL2xvY2FsaG9zdC9pbmRleC5odG1s
Iik7CisgICAgdGVzdFBhdGhQcmVmaXhGb3JVUkwoImh0dHA6Ly9sb2NhbGhvc3QvZm9vL2luZGV4
Lmh0bWwiKTsKKyAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cHM6Ly9sb2NhbGhvc3QiKTsK
KyAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDovL2V4YW1wbGUuY29tIik7CiAKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxGb3JQYXRoKCIvaG9tZS9leGFt
cGxlLmNvbSIpKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxG
b3JQYXRoKCIvaG9tZS9leGFtcGxlLmNvbS8iKSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoZmlsZU1hcHBpbmcudXJsRm9yUGF0aCgiL3Zhci93d3cvaW5kZXguaHRtbCIpKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChmaWxlTWFwcGluZy51cmxGb3JQYXRoKCIvdmFyL3d3dy9m
b28vaW5kZXguaHRtbCIpKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCBtYXBw
aW5nRW50cnlGb3JQYXRoIik7CisgICAgdGVzdFVSTFByZWZpeEZvclBhdGgoIi9ob21lL2V4YW1w
bGUuY29tIik7CisgICAgdGVzdFVSTFByZWZpeEZvclBhdGgoIi9ob21lL2V4YW1wbGUuY29tLyIp
OworICAgIHRlc3RVUkxQcmVmaXhGb3JQYXRoKCIvdmFyL3d3dy9pbmRleC5odG1sIik7CisgICAg
dGVzdFVSTFByZWZpeEZvclBhdGgoIi92YXIvd3d3L2Zvby9pbmRleC5odG1sIik7CiAKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWxsIG1hcHBpbmdzIHdlcmUgY29ycmVjdC4iKTsKICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy1leHBlY3RlZC50eHQK
aW5kZXggYTMxOWY2OTkxYWE1YTA3MGQzZTI3ZjNlYjNhODZkNjYxMTVlOGQzYS4uZWY1NGNkMGJh
YWQ0NWRjMDRkNzhkYzNiMjkyYzMwM2I1YjRlZDI2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtMiwyNiAr
MiwyNiBAQCBUZXN0cyBGaWxlU3lzdGVtTWFwcGluZwogCiBUZXN0aW5nIGZpbGUgc3lzdGVtIG1h
cHBpbmcuCiAgICAgZmlsZSBzeXN0ZW0gcGF0aHM6Ci0gICAgdXJpUHJlZml4Rm9yUGF0aFByZWZp
eDoKKyAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKIAogQWRkaW5nIGZpbGUgc3lzdGVtIC9o
b21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbwogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgog
ICAgIGZpbGUgc3lzdGVtIHBhdGhzOgogICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Zv
byhpZCA9IDBAZm9vKQotICAgIHVyaVByZWZpeEZvclBhdGhQcmVmaXg6Ci0gICAgICAgIC9ob21l
L3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAwQGZvby8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvZm9vID0+IDBAZm9vLworICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgorICAg
ICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVj
dHMvZm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28KIAogQWRkaW5nIGZpbGUgc3lzdGVtIC9ob21lL3VzZXJuYW1lL3By
b2plY3RzL2JhcgogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgogICAgIGZpbGUgc3lzdGVt
IHBhdGhzOgogICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyhpZCA9IDBAZm9vKQog
ICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcihpZCA9IDFAYmFyKQotICAgIHVyaVBy
ZWZpeEZvclBhdGhQcmVmaXg6Ci0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9
PiAwQGZvby8KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IDFAYmFyLwot
ICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9o
b21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAxQGJhci8KKyAgICBmaWxlU3lzdGVtUGF0aEZv
clByZWZpeDoKKyAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbworICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIg
PT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3By
b2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAgICAgL2hvbWUv
dXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgogCiBB
ZGRpbmcgZmlsZSBzeXN0ZW0gL3d3dy9zaXRlMQogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5n
LgpAQCAtMjksMTMgKzI5LDEzIEBAIFRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KICAgICAg
LSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28oaWQgPSAwQGZvbykKICAgICAgLSAvaG9tZS91
c2VybmFtZS9wcm9qZWN0cy9iYXIoaWQgPSAxQGJhcikKICAgICAgLSAvd3d3L3NpdGUxKGlkID0g
MkBzaXRlMSkKLSAgICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhciA9PiAxQGJhci8KLSAgICAgICAgL3d3dy9zaXRlMSA9PiAyQHNpdGUxLwotICAgICAg
ICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2JhciA9PiAxQGJhci8KLSAgICAgICAgL3d3dy9zaXRlMSA9PiAyQHNp
dGUxLworICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgorICAgICAgICAvaG9tZS91c2VybmFt
ZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCisgICAgICAgIC9o
b21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIK
KyAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3NpdGUxCisgICAgICAgIC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAgICAgL2hv
bWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Jhcgor
ICAgICAgICAvd3d3L3NpdGUxID0+IC93d3cvc2l0ZTEKIAogQ3JlYXRpbmcgYW5vdGhlciBmaWxl
IHN5c3RlbSBtYXBwaW5nLgogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgpAQCAtNDMsMzYg
KzQzLDM2IEBAIFRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KICAgICAgLSAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28oaWQgPSAwQGZvbykKICAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9q
ZWN0cy9iYXIoaWQgPSAxQGJhcikKICAgICAgLSAvd3d3L3NpdGUxKGlkID0gMkBzaXRlMSkKLSAg
ICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0
cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAx
QGJhci8KLSAgICAgICAgL3d3dy9zaXRlMSA9PiAyQHNpdGUxLwotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhciA9PiAxQGJhci8KLSAgICAgICAgL3d3dy9zaXRlMSA9PiAyQHNpdGUxLworICAgIGZp
bGVTeXN0ZW1QYXRoRm9yUHJlZml4OgorICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9m
b28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCisgICAgICAgIC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKKyAgICAgICAgL3d3
dy9zaXRlMSA9PiAvd3d3L3NpdGUxCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Zv
byA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAgICAgL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgorICAgICAgICAvd3d3
L3NpdGUxID0+IC93d3cvc2l0ZTEKIAogUmVtb3ZpbmcgZmlsZSBzeXN0ZW0gL3d3dy9zaXRlMQog
VGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgogICAgIGZpbGUgc3lzdGVtIHBhdGhzOgogICAg
ICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyhpZCA9IDBAZm9vKQogICAgICAtIC9ob21l
L3VzZXJuYW1lL3Byb2plY3RzL2JhcihpZCA9IDFAYmFyKQotICAgIHVyaVByZWZpeEZvclBhdGhQ
cmVmaXg6Ci0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAwQGZvby8KLSAg
ICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IDFAYmFyLwotICAgICAgICAvaG9t
ZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gMEBmb28vCi0gICAgICAgIC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2JhciA9PiAxQGJhci8KKyAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKKyAg
ICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2ZvbworICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvYmFyCisgICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9
PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KKyAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJv
amVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgogCiBSZW1vdmluZyBmaWxl
IHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KIFRlc3RpbmcgZmlsZSBzeXN0ZW0g
bWFwcGluZy4KICAgICBmaWxlIHN5c3RlbSBwYXRoczoKICAgICAgLSAvaG9tZS91c2VybmFtZS9w
cm9qZWN0cy9iYXIoaWQgPSAxQGJhcikKLSAgICB1cmlQcmVmaXhGb3JQYXRoUHJlZml4OgotICAg
ICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gMUBiYXIvCi0gICAgICAgIC9ob21l
L3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAxQGJhci8KKyAgICBmaWxlU3lzdGVtUGF0aEZvclBy
ZWZpeDoKKyAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJu
YW1lL3Byb2plY3RzL2JhcgorICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4g
L2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCiAKIFJlbW92aW5nIGZpbGUgc3lzdGVtIC9ob21l
L3VzZXJuYW1lL3Byb2plY3RzL2JhcgogVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgogICAg
IGZpbGUgc3lzdGVtIHBhdGhzOgotICAgIHVyaVByZWZpeEZvclBhdGhQcmVmaXg6CisgICAgZmls
ZVN5c3RlbVBhdGhGb3JQcmVmaXg6CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxl
LXN5c3RlbS1tYXBwaW5nLmh0bWwKaW5kZXggM2MwNjRkZDQyMzM2Mjg0N2E5NWY0NWQ2ZWVmNDE0
YTBlZTYxOTg3Yy4uODA5MmM4M2I0YTlhNTI4NjE2MDJhNzk3N2YzYTY3Y2U5YWM1ZDM0OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmcuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy5odG1sCkBAIC0z
MSwxNSArMzEsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgaWQgPSBmaWxl
U3lzdGVtTWFwcGluZy5maWxlU3lzdGVtSWQoZmlsZVN5c3RlbVBhdGhzW2ldKTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIC0gIiArIGZpbGVTeXN0ZW1QYXRoc1tp
XSArICIoaWQgPSAiICsgaWQgKyAiKSIpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIgICAgdXJpUHJlZml4Rm9yUGF0aFByZWZpeDoiKTsKLSAgICAgICAgLy8g
Q2FsbCB1cmlQcmVmaXhGb3JQYXRoUHJlZml4IHR3aWNlIGZvciBlYWNoIHBhdGggcHJlZml4IHRv
IGNoZWNrIGNhY2hpbmcuCisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgZmls
ZVN5c3RlbVBhdGhGb3JQcmVmaXg6Iik7CisgICAgICAgIC8vIENhbGwgZmlsZVN5c3RlbVBhdGhG
b3JQcmVmaXggdHdpY2UgZm9yIGVhY2ggcGF0aCBwcmVmaXggdG8gY2hlY2sgY2FjaGluZy4KICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIHsKICAgICAgICAgICAgIGZvciAocGF0
aElkIGluIHBhdGhzKSB7CiAgICAgICAgICAgICAgICAgdmFyIHBhdGhQcmVmaXggPSBwYXRoc1tw
YXRoSWRdOwotICAgICAgICAgICAgICAgIHZhciB1cmlQcmVmaXggPSBmaWxlU3lzdGVtTWFwcGlu
Zy51cmlQcmVmaXhGb3JQYXRoUHJlZml4KHBhdGhQcmVmaXggKyAiLyIpOwotICAgICAgICAgICAg
ICAgIGlmICghdXJpUHJlZml4KQorICAgICAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtUGF0aCA9
IGZpbGVTeXN0ZW1NYXBwaW5nLmZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4KHBhdGhQcmVmaXggKyAi
LyIpOworICAgICAgICAgICAgICAgIGlmICghZmlsZVN5c3RlbVBhdGgpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIgICAgICAgICIgKyBwYXRoUHJlZml4ICsgIiA9PiAiICsgdXJpUHJlZml4KTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAiICsgcGF0aFByZWZpeCAr
ICIgPT4gIiArIGZpbGVTeXN0ZW1QYXRoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2ZpbGUtc3lzdGVtLXByb2plY3QuaHRtbAppbmRleCA3YjJjZGVlY2RkOGMxNzA1MDdhNDJl
MGMwYjM4NjljM2VmZGViOTU2Li45NTViYjU2YzE3Yjc2NWU5YTAzYzA2ZjIxMzA5ZTFmMTFjNjlj
OWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVj
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1wcm9qZWN0Lmh0
bWwKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgTW9ja0lzb2xhdGVkRmls
ZVN5c3RlbU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICBhZGRNb2NrRmlsZVN5c3RlbTog
ZnVuY3Rpb24ocGF0aCwgZmlsZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBpZCA9IHRo
aXMuZmlsZVN5c3RlbU1hcHBpbmcuYWRkRmlsZVN5c3RlbU1hcHBpbmcocGF0aCk7CisgICAgICAg
ICAgICB2YXIgaWQgPSBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlU3lzdGVtTWFwcGluZy5hZGRGaWxl
U3lzdGVtTWFwcGluZyhwYXRoKTsKICAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtID0gbmV3IE1v
Y2tJc29sYXRlZEZpbGVTeXN0ZW0oaWQsIHBhdGgsIGZpbGVzKTsKICAgICAgICAgICAgIHRoaXMu
X2ZpbGVTeXN0ZW1zID0gdGhpcy5fZmlsZVN5c3RlbXMgfHwge307CiAgICAgICAgICAgICB0aGlz
Ll9maWxlU3lzdGVtc1twYXRoXSA9IGZpbGVTeXN0ZW07CkBAIC01NSw2ICs1NSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgZmlsZVN5c3RlbSA9IHRoaXMu
X2ZpbGVTeXN0ZW1zW3BhdGhdOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ZpbGVTeXN0ZW1z
W3BhdGhdOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZVN5c3RlbU1hcHBpbmcu
cmVtb3ZlRmlsZVN5c3RlbU1hcHBpbmcocGF0aCk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTWFuYWdlci5F
dmVudHMuRmlsZVN5c3RlbVJlbW92ZWQsIGZpbGVTeXN0ZW0pOwogICAgICAgICB9LAogCkBAIC02
NSwxMSArNjYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRl
c3QuY3JlYXRlV29ya3NwYWNlKCk7CiAgICAgICAgIHZhciBtYW5hZ2VyID0gbmV3IE1vY2tJc29s
YXRlZEZpbGVTeXN0ZW1NYW5hZ2VyKCk7Ci0gICAgICAgIG1hbmFnZXIuZmlsZVN5c3RlbU1hcHBp
bmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1NYXBwaW5nSW1wbCgpOwotICAgICAgICBt
YW5hZ2VyLmZpbGVTeXN0ZW1NYXBwaW5nLl9maWxlU3lzdGVtTWFwcGluZ1NldHRpbmcgPSBuZXcg
SW5zcGVjdG9yVGVzdC5Nb2NrU2V0dGluZyh7fSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuTW9j
a1NldHRpbmcKLSAgICAgICAgbWFuYWdlci5maWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3Iu
RmlsZU1hcHBpbmcobWFuYWdlci5maWxlU3lzdGVtTWFwcGluZyk7Ci0gICAgICAgIG1hbmFnZXIu
ZmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVt
V29ya3NwYWNlUHJvdmlkZXIobWFuYWdlciwgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLCBt
YW5hZ2VyLmZpbGVNYXBwaW5nKTsKKyAgICAgICAgbWFuYWdlci5maWxlU3lzdGVtV29ya3NwYWNl
UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciht
YW5hZ2VyLCBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UpOwogICAgICAgICByZXR1cm4gbWFu
YWdlcjsKICAgICB9CiAKQEAgLTk1LDcgKzkyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICB2YXIgbWFuYWdlciA9IGNyZWF0ZUlzb2xhdGVkRmlsZVN5c3RlbU1hbmFnZXIoKTsKICAg
ICAgICAgICAgIHZhciBlbnRyeTEgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5
KCJodHRwOi8vbG9jYWxob3N0LyIsICIvdmFyL3d3dy9sb2NhbGhvc3QvIik7CiAgICAgICAgICAg
ICB2YXIgZW50cnkyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8iLCAiL2Zvby9iYXIvIik7Ci0gICAgICAgICAgICBtYW5hZ2VyLmZp
bGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKFtlbnRyeTEsIGVudHJ5Ml0pOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZU1hcHBpbmcuc2V0TWFwcGluZ0VudHJpZXMoW2VudHJ5
MSwgZW50cnkyXSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VV
SVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkLCAzKTsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3QgZmlsZSBzeXN0ZW0uIik7CiAg
ICAgICAgICAgICBtYW5hZ2VyLmFkZE1vY2tGaWxlU3lzdGVtKCIvdmFyL3d3dyIsIHsiL2xvY2Fs
aG9zdC9mb28uanMiOiAiPGZvbyBjb250ZW50PiIsICIvYmFyLmpzIjogIjxiYXIgY29udGVudD4i
fSk7CkBAIC0xMjMsNyArMTIwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAg
ICAgIHZhciB1cmwgPSB1aVNvdXJjZUNvZGVzW2ldLnVybDsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCF1cmwpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICAgICAgdmFyIHVyaSA9IG1hbmFnZXIuZmlsZU1hcHBpbmcudXJpRm9yVVJMKHVybCk7Cisg
ICAgICAgICAgICAgICAgICAgIHZhciB1cmkgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2Uu
dWlTb3VyY2VDb2RlRm9yVVJMKHVybCkudXJpKCk7CiAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHVybCArICIgLT4gIiArIHVyaSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzQ291bnQgPSBJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtbWFwcGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2OTFhZDZhOGUzNDhjOTNiZDA1ODZlMzZiMWNhMDk4ZGNmYjQxMDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHdvcmtzcGFjZSBtYXBwaW5ncworCisg
ICAgdXJsIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbCBpcyBub3QgbWFwcGVkLgor
ICAgIHVybCBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgaXMgbWFwcGVkLgorICAgIHVybCBo
dHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIGlzIG1hcHBlZC4KKyAgICB1cmwgaHR0cHM6
Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCBpcyBub3QgbWFwcGVkLgorCisgICAgdXJsIGh0dHA6Ly93
d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gaHR0cDovL3d3dy5leGFtcGxl
LmNvbS9pbmRleC5odG1sCisgICAgdXJsIGh0dHA6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCBpcyBt
YXBwZWQgdG8gMEB3d3cvbG9jYWxob3N0L2luZGV4Lmh0bWwKKyAgICB1cmwgaHR0cDovL2xvY2Fs
aG9zdC9mb28vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gbnVsbAorICAgIHVybCBodHRwczovL2xv
Y2FsaG9zdC9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwczovL2xvY2FsaG9zdC9pbmRleC5o
dG1sCisKKyAgICBwYXRoIC9ob21lL2V4YW1wbGUuY29tL2Zvby9pbmRleC5odG1sIGlzIG1hcHBl
ZCB0byBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Zvby9pbmRleC5odG1sCisgICAgcGF0aCAvaG9t
ZS9leGFtcGxlLmNvbS9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vd3d3LmV4YW1wbGUu
Y29tL2luZGV4Lmh0bWwKKyAgICBwYXRoIC92YXIvd3d3L2xvY2FsaG9zdC9pbmRleC5odG1sIGlz
IG1hcHBlZCB0byBodHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKKyAgICBwYXRoIC92YXIvd3d3
L2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gaHR0cDovL2xvY2FsaG9zdC9m
b28vaW5kZXguaHRtbAorICAgIHBhdGggL2hvbWUvZm9vL2luZGV4Lmh0bWwgaXMgbWFwcGVkIHRv
IG51bGwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBw
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NzVlNzMxMDJiMjU4MzBjZGIyYmEwYWQ4M2ViNThjNGEyOWY2Yjg3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBwaW5nLmh0
bWwKQEAgLTAsMCArMSwxMDUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdWlTb3VyY2VDb2RlcyA9IHt9
OworICAgIHZhciBwcm9qZWN0RGVsZWdhdGVzID0ge307CisgICAgZnVuY3Rpb24gY3JlYXRlVUlT
b3VyY2VDb2RlKHByb2plY3RJZCwgcGF0aCkKKyAgICB7CisgICAgICAgIHZhciBwcm9qZWN0RGVs
ZWdhdGUgPSBwcm9qZWN0RGVsZWdhdGVzW3Byb2plY3RJZF07CisgICAgICAgIGlmICghcHJvamVj
dERlbGVnYXRlc1twcm9qZWN0SWRdKSB7CisgICAgICAgICAgICBwcm9qZWN0RGVsZWdhdGUgPSBu
ZXcgTW9ja1Byb2plY3REZWxlZ2F0ZShwcm9qZWN0SWQpOworICAgICAgICAgICAgd29ya3NwYWNl
LmFkZFByb2plY3QocHJvamVjdERlbGVnYXRlKTsKKyAgICAgICAgICAgIHByb2plY3REZWxlZ2F0
ZXNbcHJvamVjdElkXSA9IHByb2plY3REZWxlZ2F0ZTsKKyAgICAgICAgfQorCisgICAgICAgIHBy
b2plY3REZWxlZ2F0ZS5hZGRVSVNvdXJjZUNvZGUocGF0aCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gTW9ja1Byb2plY3REZWxlZ2F0ZShpZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2lkID0gaWQ7
CisgICAgfQorCisgICAgTW9ja1Byb2plY3REZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CisgICAgICAg
IGlkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9pZDsKKyAgICAgICAg
fSwKKworICAgICAgICBhZGRVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHBhdGgpIHsKKyAgICAgICAg
ICAgIHZhciBmaWxlRGVzY3JpcHRvciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0b3Io
cGF0aCwgcGF0aCwgcGF0aCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCB0cnVl
LCBmYWxzZSk7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuUHJvamVjdERlbGVnYXRlLkV2ZW50cy5GaWxlQWRkZWQsIGZpbGVEZXNjcmlwdG9y
KTsKKyAgICAgICAgfSwKKworICAgICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlCisgICAgfTsKKworICAgIHZhciBmaWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuRmlsZU1hcHBpbmcoKTsKKyAgICB2YXIgbWFwcGluZ0VudHJpZXMgPSBbXTsKKyAgICBtYXBw
aW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6
Ly9sb2NhbGhvc3QvIiwgIi92YXIvd3d3L2xvY2FsaG9zdC8iKSk7CisgICAgbWFwcGluZ0VudHJp
ZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyIsICIvaG9tZS9leGFtcGxlLmNvbS8iKSk7CisgICAgbWFwcGluZ0VudHJpZXMu
cHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5j
b20vIiwgIi9iYXIvIikpOworICAgIGZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKG1hcHBp
bmdFbnRyaWVzKTsKKworICAgIHZhciBmaWxlU3lzdGVtTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbU1hcHBpbmdJbXBsKCk7CisgICAgdmFyIHByb2plY3RJZCA9IGZpbGVTeXN0
ZW1NYXBwaW5nLmFkZEZpbGVTeXN0ZW1NYXBwaW5nKCIvdmFyL3d3dyIpOworCisgICAgdmFyIHdv
cmtzcGFjZSA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKGZpbGVNYXBwaW5nLCBmaWxlU3lz
dGVtTWFwcGluZyk7CisKKyAgICBmdW5jdGlvbiBkdW1wSGFzTWFwcGluZ0ZvclVSTCh1cmwpCisg
ICAgeworICAgICAgICB2YXIgcmVzdWx0ID0gd29ya3NwYWNlLmhhc01hcHBpbmdGb3JVUkwodXJs
KQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgICB1cmwgIiArIHVybCArICIgaXMgbWFwcGVkLiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHVybCAiICsgdXJsICsgIiBpcyBu
b3QgbWFwcGVkLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBVSVNvdXJjZUNvZGVGb3JV
UkwodXJsKQorICAgIHsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHdvcmtzcGFjZS51aVNv
dXJjZUNvZGVGb3JVUkwodXJsKQorICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAg
IHVybCAiICsgdXJsICsgIiBpcyBtYXBwZWQgdG8gIiArICh1aVNvdXJjZUNvZGUgPyB1aVNvdXJj
ZUNvZGUudXJpKCkgOiBudWxsKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVtcFVSTEZvclBh
dGgocGF0aCkKKyAgICB7CisgICAgICAgIHZhciB1cmwgPSB3b3Jrc3BhY2UudXJsRm9yUGF0aChw
YXRoKQorICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHBhdGggIiArIHBhdGgg
KyAiIGlzIG1hcHBlZCB0byAiICsgKHVybCA/IHVybCA6IG51bGwpKTsKKyAgICB9CisgICAgCisg
ICAgY3JlYXRlVUlTb3VyY2VDb2RlKHByb2plY3RJZCwgImxvY2FsaG9zdC9pbmRleC5odG1sIik7
CisKKyAgICBjcmVhdGVVSVNvdXJjZUNvZGUoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAiaW5k
ZXguaHRtbCIpOworICAgIGNyZWF0ZVVJU291cmNlQ29kZSgiaHR0cDovL2xvY2FsaG9zdCIsICJp
bmRleC5odG1sIik7CisgICAgY3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwOi8vbG9jYWxob3N0Iiwg
ImZvby9pbmRleC5odG1sIik7CisgICAgY3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwczovL2xvY2Fs
aG9zdCIsICJpbmRleC5odG1sIik7CisKKyAgICBkdW1wSGFzTWFwcGluZ0ZvclVSTCgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbS9pbmRleC5odG1sIik7CisgICAgZHVtcEhhc01hcHBpbmdGb3JVUkwo
Imh0dHA6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCIpOworICAgIGR1bXBIYXNNYXBwaW5nRm9yVVJM
KCJodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIik7CisgICAgZHVtcEhhc01hcHBpbmdG
b3JVUkwoImh0dHBzOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiIik7CisKKyAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tL2luZGV4Lmh0bWwiKTsKKyAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKCJo
dHRwOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKKyAgICBkdW1wVUlTb3VyY2VDb2RlRm9yVVJM
KCJodHRwOi8vbG9jYWxob3N0L2Zvby9pbmRleC5odG1sIik7CisgICAgZHVtcFVJU291cmNlQ29k
ZUZvclVSTCgiaHR0cHM6Ly9sb2NhbGhvc3QvaW5kZXguaHRtbCIpOworICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIiKTsKKworICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNv
bS9mb28vaW5kZXguaHRtbCIpOworICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9leGFtcGxlLmNv
bS9pbmRleC5odG1sIik7CisgICAgZHVtcFVSTEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9p
bmRleC5odG1sIik7CisgICAgZHVtcFVSTEZvclBhdGgoIi92YXIvd3d3L2xvY2FsaG9zdC9mb28v
aW5kZXguaHRtbCIpOworICAgIGR1bXBVUkxGb3JQYXRoKCIvaG9tZS9mb28vaW5kZXguaHRtbCIp
OworCisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgd29ya3NwYWNlIG1hcHBp
bmdzPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="209394"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>