<?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>107452</bug_id>
          
          <creation_ts>2013-01-21 08:00:59 -0800</creation_ts>
          <short_desc>Web Inspector: reuse JS heap profiler UI for native heap graph representaion</short_desc>
          <delta_ts>2013-01-22 00:11:46 -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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812155</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-21 08:00:59 -0800</bug_when>
    <thetext>We can view native heap graph using the same UI as we employ for JS heap snapshots. Assuming the memory instrumentation provides enough named entries it may be quite useful for analyzing WebKit native memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812160</commentid>
    <comment_count>1</comment_count>
      <attachid>183786</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-21 08:08:11 -0800</bug_when>
    <thetext>Created attachment 183786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812163</commentid>
    <comment_count>2</comment_count>
      <attachid>183787</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-21 08:09:20 -0800</bug_when>
    <thetext>Created attachment 183787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812170</commentid>
    <comment_count>3</comment_count>
      <attachid>183788</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-01-21 08:11:50 -0800</bug_when>
    <thetext>Created attachment 183788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812177</commentid>
    <comment_count>4</comment_count>
      <attachid>183788</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-01-21 08:17:59 -0800</bug_when>
    <thetext>Comment on attachment 183788
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812686</commentid>
    <comment_count>5</comment_count>
      <attachid>183788</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 00:11:42 -0800</bug_when>
    <thetext>Comment on attachment 183788
Patch

Clearing flags on attachment: 183788

Committed r140390: &lt;http://trac.webkit.org/changeset/140390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812687</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 00:11:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183786</attachid>
            <date>2013-01-21 08:08:11 -0800</date>
            <delta_ts>2013-01-21 08:09:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107452-20130121200506.patch</filename>
            <type>text/plain</type>
            <size>28293</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk4ZjMwOWI1NTZmZTBh
NDZkMDNmYWE1NWMwOGFhODZjYTYxMjExYy4uZGZhMGIxM2QxYzgxYTNkYzM3MWE4MWQwM2RhMmMz
Y2UzY2RhNTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAxLTIxICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJldXNlIEpTIGhlYXAgcHJvZmlsZXIgVUkgZm9yIG5hdGl2ZSBoZWFwIGdyYXBoIHJlcHJl
c2VudGFpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5hdGl2ZUhlYXBTbmFwc2hvdCBpcyBpbnRyb2R1Y2VkIHRvIGxldmVyYWdlIEpTIGhlYXAgc25h
cHNob3QgcHJvY2Vzc2luZyBhbGdvcml0aG1zCisgICAgICAgIGZvciBuYXRpdmUgaGVhcCBncmFw
aC4gTmV3IHNuYXBzaG90IHR5cGUgKCJOYXRpdmUgSGVhcCBTbmFwc2hvdCIpIGlzIGFkZGVkIHRv
IHRoZQorICAgICAgICBwcm9maWxlcyBwYW5lbC4gSXQgd2lsbCByZXByZXNlbnQgbmF0aXZlIGhl
YXAgc25hcHNob3RzIHVzaW5nIHRoZSBzYW1lIFVJIGFzIHdlIHVzZQorICAgICAgICBmb3IgSlMg
aGVhcCBzbmFwc2hvdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUt
ZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5faW5pdCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQcm94eS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRl
ci5wcm90b3R5cGUubG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob1RyYW5zZmVyKTogZXh0cmFjdGVkIGEgZmV3IG1ldGhv
ZHMKKyAgICAgICAgdG8gc3VwcG9ydCBvdmVycmlkZXMgZm9yIG5hdGl2ZSBoZWFwIHNuYXBzaG90
cy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUuc25h
cHNob3RDb25zdHJ1Y3Rvck5hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxl
SGVhZGVyLnByb3RvdHlwZS5fc2V0dXBXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvTmF0aXZlSGVhcFNuYXBzaG90LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVIZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBT
bmFwc2hvdC5wcm90b3R5cGUuY3JlYXRlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVFZGdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVIZWFwU25hcHNob3QucHJvdG90eXBlLmNyZWF0ZVJldGFpbmluZ0VkZ2UpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdC5wcm90b3R5cGUuX21hcmtJ
bnZpc2libGVFZGdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
LnByb3RvdHlwZS5fY2FsY3VsYXRlRmxhZ3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2
ZUhlYXBTbmFwc2hvdC5wcm90b3R5cGUuY2FuSGF2ZURpc3RhbmNlT25lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3QucHJvdG90eXBlLnVzZXJPYmplY3RzTWFwQW5k
RmxhZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuY2Fu
QmVRdWVyaWVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2Rl
LnByb3RvdHlwZS5pc1VzZXJPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmNsYXNzTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuY2xhc3NJbmRleCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuaWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLm5hbWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBl
LmlzSGlkZGVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2Rl
LnByb3RvdHlwZS5pc1N5bnRoZXRpYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVh
cFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuaXNXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmlzRGV0YWNoZWRET01UcmVlc1Jvb3Qp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBl
LmlzRGV0YWNoZWRET01UcmVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25h
cHNob3RFZGdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdl
LnByb3RvdHlwZS5jbG9uZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBz
aG90RWRnZS5wcm90b3R5cGUuaGFzU3RyaW5nTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNFbGVtZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3RvdHlwZS5pc0hpZGRlbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNX
ZWFrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3Rv
dHlwZS5pc0ludGVybmFsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNo
b3RFZGdlLnByb3RvdHlwZS5pc0ludmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNTaG9ydGN1dCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUubmFtZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUudG9TdHJpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBl
Ll9uYW1lT3JJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
UmV0YWluZXJFZGdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RS
ZXRhaW5lckVkZ2UucHJvdG90eXBlLmNsb25lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlLmlzRWxlbWVudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZS5p
c0hpZGRlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWlu
ZXJFZGdlLnByb3RvdHlwZS5pc0ludGVybmFsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlLmlzSW52aXNpYmxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBl
LmlzU2hvcnRjdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFJl
dGFpbmVyRWRnZS5wcm90b3R5cGUuaXNXZWFrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVT
bmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgYnV0dG9uVG9vbHRpcCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9u
Q2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmdl
dCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFBy
b2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRlbXBvcmFyeVBy
b2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUu
cHJvdG90eXBlLmNyZWF0ZVByb2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNu
YXBzaG90UHJvZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNo
b3RQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5jcmVhdGVWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob1Ry
YW5zZmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLnNuYXBzaG90Q29uc3RydWN0b3JOYW1lKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLl90YWtlTmF0aXZlU25h
cHNob3QpOiBidWlsZCBhIGRhdGFzdHJ1Y3R1cmUKKyAgICAgICAgcmVzZW1ibGluZyBvbmUgdXNl
ZCBmb3IgSlMgaGVhcCBzbmFwc2hvdHMgYnV0IHBvcHVsYXRlZCB3aXRoIHRoZSBkYXRhIGZyb20g
dGhlIG5hdGl2ZSBzbmFwaG90LgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFw
c2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFZpZXcu
cHJvdG90eXBlLmdldCBwcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmls
ZVR5cGUucHJvdG90eXBlLmdldCBidXR0b25Ub29sdGlwKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorCiAy
MDEzLTAxLTIxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW1JFR1JFU1NJT05dIEZvcmNlZCA6dmlzaXRlZCBwc2V1ZG9j
bGFzcyBoYXMgbm8gZWZmZWN0IG9uIEEgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhNzAw
ZGQ2NTdhODRmYTMzYjg4YjMwODM1NjQyMGViZjM1YWU1MzM5Li4wODg5OTA0NTk0ZjVhY2QxN2Q5
YzA3MDBkOGU3YTI4MzAyNmI3YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MzgzLDYgKzUzODMs
NyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90V29ya2Vy
RGlzcGF0Y2hlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KU0hlYXBT
bmFwc2hvdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVIZWFw
R3JhcGguanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlSGVhcFNu
YXBzaG90LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9y
eVNuYXBzaG90Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlRGF0YUdyaWRUcmVlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCAyY2U4NTZiNDhhZDRlNTZiMDhhOGFkYThmNGI5MTQ2ZmNhYzU2MzBlLi41
NTRhMzc4NWY2MmFlOTE0Y2UwMWRkNmFhMmNlNDJhMDcxNjVkOWFlIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzcyNjEsNiArNzcyNjEsMTAg
QEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcTmF0aXZlSGVhcFNuYXBzaG90LmpzIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250
LWVuZFxuYXRpdmVNZW1vcnlQcm9maWxlci5jc3MiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKaW5kZXggM2RkNzIy
OTZmM2UzZjA2YThjMDJmZmIzMmFmYzQ5Y2RmNjY4MTE2ZS4uOTM0ZjMwYjMwNzQyMjdjN2RmYjc0
OGM5YmZhNjllYzAxM2EwNTg1NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weQpAQCAtMzM5LDYgKzMzOSw3IEBAIG1vZHVsZXMgPSBbCiAgICAgICAg
ICAgICAiSGVhcFNuYXBzaG90V29ya2VyRGlzcGF0Y2hlci5qcyIsCiAgICAgICAgICAgICAiSlNI
ZWFwU25hcHNob3QuanMiLAogICAgICAgICAgICAgIk5hdGl2ZUhlYXBHcmFwaC5qcyIsCisgICAg
ICAgICAgICAiTmF0aXZlSGVhcFNuYXBzaG90LmpzIiwKICAgICAgICAgICAgICJOYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcuanMiLAogICAgICAgICAgICAgIlByb2ZpbGVEYXRhR3JpZFRyZWUuanMi
LAogICAgICAgICAgICAgIlByb2ZpbGVzUGFuZWwuanMiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdC5qcwppbmRleCAyNDg3ZDhmYjA4YjFm
ZWYyNGIxZGFjYzc3YTU2M2YwNGM0NzJhM2UwLi43NTNlYzVmNDkzMzcxMjYxNGRmNzJmNGMxNWMz
ZWFiNTE2OTA4MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdC5qcwpAQCAtNDkzLDYgKzQ5MywxMCBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLl9tZXRhTm9kZSA9IHByb2Zp
bGUuc25hcHNob3QubWV0YTsKICAgICB0aGlzLl9zdHJpbmdzID0gcHJvZmlsZS5zdHJpbmdzOwog
CisgICAgdGhpcy5fcm9vdE5vZGVJbmRleCA9IDA7CisgICAgaWYgKHByb2ZpbGUuc25hcHNob3Qu
cm9vdF9pbmRleCkKKyAgICAgICAgdGhpcy5fcm9vdE5vZGVJbmRleCA9IHByb2ZpbGUuc25hcHNo
b3Qucm9vdF9pbmRleDsKKwogICAgIHRoaXMuX3NuYXBzaG90RGlmZnMgPSB7fTsKICAgICB0aGlz
Ll9hZ2dyZWdhdGVzRm9yRGlmZiA9IG51bGw7CiAKQEAgLTUzMiw3ICs1MzYsNiBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICBfaW5pdDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdmFyIG1ldGEgPSB0aGlzLl9tZXRhTm9kZTsKLSAgICAgICAgdGhpcy5f
cm9vdE5vZGVJbmRleCA9IDA7CiAKICAgICAgICAgdGhpcy5fbm9kZVR5cGVPZmZzZXQgPSBtZXRh
Lm5vZGVfZmllbGRzLmluZGV4T2YoInR5cGUiKTsKICAgICAgICAgdGhpcy5fbm9kZU5hbWVPZmZz
ZXQgPSBtZXRhLm5vZGVfZmllbGRzLmluZGV4T2YoIm5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90UHJveHkuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5LmpzCmluZGV4
IGM4YjQ5OWFlMTA0NTU5YzlmODE1ZDQ3MGYxNDEyN2YxODAxNTE2NDYuLjA1NzY5N2RlZWU5MmVk
YmFjMjkwYzdkZmY4NDU3NzdiYmJjNTNiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90UHJveHkuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQcm94eS5qcwpAQCAtMTgzLDcgKzE4
Myw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RXb3JrZXIgPSBmdW5jdGlvbigpCiAgICAg
dGhpcy5fY2FsbGJhY2tzID0gW107CiAgICAgdGhpcy5fcHJldmlvdXNDYWxsYmFja3MgPSBbXTsK
ICAgICAvLyBUaGVyZSBpcyBubyBzdXBwb3J0IGZvciB3b3JrZXJzIGluIENocm9taXVtIERSVC4K
LSAgICB0aGlzLl93b3JrZXIgPSB0eXBlb2YgSW5zcGVjdG9yVGVzdCA9PT0gInVuZGVmaW5lZCIg
PyBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJlYWxXb3JrZXIoKSA6IG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90RmFrZVdvcmtlcigpOworICAgIHRoaXMuX3dvcmtlciA9IC8qdHlw
ZW9mIEluc3BlY3RvclRlc3QgPT09ICJ1bmRlZmluZWQiID8gbmV3IFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RSZWFsV29ya2VyKCkgOiAqL25ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RmFr
ZVdvcmtlcigpOwogICAgIHRoaXMuX3dvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
dGhpcy5fbWVzc2FnZVJlY2VpdmVkLCB0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IDdjNzI5
NTYzNDBkNjYxODMzOWNkNjI2ODhhOWVkNGVmOTE2MjgyMWIuLjRhNzkzZTNkZjA2MWE2M2Y3ZDkw
NzU4ZTY2ZDg3NzczODEzMTk4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTg1OSwxMiArODU5LDIyIEBA
IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLl9zZXR1cFdvcmtlcigpOwogICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5z
dWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZ1x1MjAyNiIpOwogICAgICAg
ICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC53YWl0ID0gdHJ1ZTsKLSAgICAgICAgICAgIFByb2Zp
bGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgICAgIHRoaXMuc3Rh
cnRTbmFwc2hvVHJhbnNmZXIoKTsKICAgICAgICAgfQogICAgICAgICB2YXIgbG9hZGVyUHJveHkg
PSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RMb2FkZXJQcm94eX0gKi8gKHRo
aXMuX3JlY2VpdmVyKTsKICAgICAgICAgbG9hZGVyUHJveHkuYWRkQ29uc3VtZXIoY2FsbGJhY2sp
OwogICAgIH0sCiAKKyAgICBzdGFydFNuYXBzaG9UcmFuc2ZlcjogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QodGhpcy51aWQpOworICAgIH0s
CisKKyAgICBzbmFwc2hvdENvbnN0cnVjdG9yTmFtZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuICJKU0hlYXBTbmFwc2hvdCI7CisgICAgfSwKKwogICAgIF9zZXR1cFdvcmtlcjog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gc2V0UHJvZmlsZVdhaXQoZXZlbnQp
CkBAIC04NzMsNyArODgzLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RXb3JrZXIoKTsKICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
IndhaXQiLCBzZXRQcm9maWxlV2FpdCwgdGhpcyk7Ci0gICAgICAgIHZhciBsb2FkZXJQcm94eSA9
IHdvcmtlci5jcmVhdGVMb2FkZXIoIkpTSGVhcFNuYXBzaG90Iik7CisgICAgICAgIHZhciBsb2Fk
ZXJQcm94eSA9IHdvcmtlci5jcmVhdGVMb2FkZXIodGhpcy5zbmFwc2hvdENvbnN0cnVjdG9yTmFt
ZSgpKTsKICAgICAgICAgbG9hZGVyUHJveHkuYWRkQ29uc3VtZXIodGhpcy5fc25hcHNob3RSZWNl
aXZlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgdGhpcy5fcmVjZWl2ZXIgPSBsb2FkZXJQcm94eTsK
ICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9I
ZWFwU25hcHNob3RXb3JrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0hlYXBTbmFwc2hvdFdvcmtlci5qcwppbmRleCAxODhlYjE1NThiMTY0YjUxM2RiY2ZiYzc1YTVk
MDViZTdhMzNkODBhLi5jMjlkMjY2NmI0ODkwNzgyMGRhOTg4YjIwYmM0ZjIyNWYwNDVhOGZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hv
dFdvcmtlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdFdvcmtlci5qcwpAQCAtMzUsNiArMzUsNyBAQCBpbXBvcnRTY3JpcHRzKCJIZWFwU25h
cHNob3QuanMiKTsKIGltcG9ydFNjcmlwdHMoIkhlYXBTbmFwc2hvdExvYWRlci5qcyIpOwogaW1w
b3J0U2NyaXB0cygiSGVhcFNuYXBzaG90V29ya2VyRGlzcGF0Y2hlci5qcyIpOwogaW1wb3J0U2Ny
aXB0cygiSlNIZWFwU25hcHNob3QuanMiKTsKK2ltcG9ydFNjcmlwdHMoIk5hdGl2ZUhlYXBTbmFw
c2hvdC5qcyIpOwogaW1wb3J0U2NyaXB0cygiRmlsZVV0aWxzLmpzIik7CiBpbXBvcnRTY3JpcHRz
KCJ1dGlsaXRpZXMuanMiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OYXRpdmVIZWFwU25hcHNob3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05hdGl2ZUhlYXBTbmFwc2hvdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDgzZjgyN2Uw
OGYwYTY4ZGVhMzZiNzViZjgzNmFiYThmNWFkZmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVIZWFwU25hcHNob3QuanMKQEAgLTAs
MCArMSwyNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3R9CisgKi8KK1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3QgPSBm
dW5jdGlvbihwcm9maWxlKQoreworICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QuY2FsbCh0
aGlzLCBwcm9maWxlKTsKK30KKworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdC5wcm90
b3R5cGUgPSB7CisgICAgY3JlYXRlTm9kZTogZnVuY3Rpb24obm9kZUluZGV4KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZSh0aGlz
LCBub2RlSW5kZXgpOworICAgIH0sCisKKyAgICBjcmVhdGVFZGdlOiBmdW5jdGlvbihlZGdlcywg
ZWRnZUluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZl
SGVhcFNuYXBzaG90RWRnZSh0aGlzLCBlZGdlcywgZWRnZUluZGV4KTsKKyAgICB9LAorCisgICAg
Y3JlYXRlUmV0YWluaW5nRWRnZTogZnVuY3Rpb24ocmV0YWluZWROb2RlSW5kZXgsIHJldGFpbmVy
SW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVIZWFw
U25hcHNob3RSZXRhaW5lckVkZ2UodGhpcywgcmV0YWluZWROb2RlSW5kZXgsIHJldGFpbmVySW5k
ZXgpOworICAgIH0sCisKKyAgICBfbWFya0ludmlzaWJsZUVkZ2VzOiBmdW5jdGlvbigpCisgICAg
eworICAgIH0sCisKKyAgICBfY2FsY3VsYXRlRmxhZ3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
fSwKKworICAgIGNhbkhhdmVEaXN0YW5jZU9uZTogZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICB1c2VyT2JqZWN0c01hcEFuZEZsYWc6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlCit9OworCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2Rl
fQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90fSBzbmFwc2hvdAor
ICogQHBhcmFtIHtudW1iZXI9fSBub2RlSW5kZXgKKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdE5vZGUgPSBmdW5jdGlvbihzbmFwc2hvdCwgbm9kZUluZGV4KQoreworICAgIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlLmNhbGwodGhpcywgc25hcHNob3QsIG5vZGVJbmRl
eCkKK30KKworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlID0g
eworICAgIGNhbkJlUXVlcmllZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0sCisKKyAgICBpc1VzZXJPYmplY3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBjbGFzc05hbWU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdC5fc3RyaW5nc1t0aGlzLmNsYXNzSW5k
ZXgoKV07CisgICAgfSwKKworICAgIGNsYXNzSW5kZXg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHZhciBzbmFwc2hvdCA9IHRoaXMuX3NuYXBzaG90OworICAgICAgICByZXR1cm4gc25hcHNo
b3QuX25vZGVzW3RoaXMubm9kZUluZGV4ICsgc25hcHNob3QuX25vZGVOYW1lT2Zmc2V0XTsKKyAg
ICB9LAorCisgICAgaWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLm5v
ZGVJbmRleDsKKyAgICB9LAorCisgICAgbmFtZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dmFyIG5hbWUgPSB0aGlzLl9zbmFwc2hvdC5fc3RyaW5nc1t0aGlzLl9zbmFwc2hvdC5fbm9kZXNb
dGhpcy5ub2RlSW5kZXggKyAyXV07CisgICAgICAgIHJldHVybiB0aGlzLmNsYXNzTmFtZSgpICsg
IjogIiArIG5hbWU7CisgICAgfSwKKworICAgIGlzSGlkZGVuOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzU3ludGhldGljOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzV2luZG93
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAg
IGlzRGV0YWNoZWRET01UcmVlc1Jvb3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9LAorCisgICAgaXNEZXRhY2hlZERPTVRyZWU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUKK307CisKKy8qKgorICogQGNvbnN0
cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEVkZ2V9CisgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3R9IHNuYXBzaG90CisgKiBAcGFy
YW0ge0FycmF5LjxudW1iZXI+fSBlZGdlcworICogQHBhcmFtIHtudW1iZXI9fSBlZGdlSW5kZXgK
KyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UgPSBmdW5jdGlvbihzbmFw
c2hvdCwgZWRnZXMsIGVkZ2VJbmRleCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
RWRnZS5jYWxsKHRoaXMsIHNuYXBzaG90LCBlZGdlcywgZWRnZUluZGV4KTsKK30KKworV2ViSW5z
cGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlID0geworICAgIGNsb25lOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVI
ZWFwU25hcHNob3RFZGdlKHRoaXMuX3NuYXBzaG90LCB0aGlzLl9lZGdlcywgdGhpcy5lZGdlSW5k
ZXgpOworICAgIH0sCisKKyAgICBoYXNTdHJpbmdOYW1lOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgaXNFbGVtZW50OiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzSGlkZGVuOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzV2Vh
azogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAg
ICBpc0ludGVybmFsOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfSwKKworICAgIGlzSW52aXNpYmxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzU2hvcnRjdXQ6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgbmFtZTogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBzaG90Ll9zdHJpbmdzW3RoaXMuX25hbWVPcklu
ZGV4KCldOworICAgIH0sCisKKyAgICB0b1N0cmluZzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuICAiTmF0aXZlSGVhcFNuYXBzaG90RWRnZTogIiArIHRoaXMubmFtZSgpOworICAg
IH0sCisKKyAgICBfbmFtZU9ySW5kZXg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9lZGdlcy5pdGVtKHRoaXMuZWRnZUluZGV4ICsgdGhpcy5fc25hcHNob3QuX2VkZ2VO
YW1lT2Zmc2V0KTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90RWRnZS5wcm90b3R5cGUKK307CisKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlfQorICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90fSBzbmFwc2hvdAorICovCitXZWJJbnNw
ZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlID0gZnVuY3Rpb24oc25hcHNob3Qs
IHJldGFpbmVkTm9kZUluZGV4LCByZXRhaW5lckluZGV4KQoreworICAgIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RSZXRhaW5lckVkZ2UuY2FsbCh0aGlzLCBzbmFwc2hvdCwgcmV0YWluZWROb2Rl
SW5kZXgsIHJldGFpbmVySW5kZXgpOworfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBz
aG90UmV0YWluZXJFZGdlLnByb3RvdHlwZSA9IHsKKyAgICBjbG9uZTogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0
YWluZXJFZGdlKHRoaXMuX3NuYXBzaG90LCB0aGlzLl9yZXRhaW5lZE5vZGVJbmRleCwgdGhpcy5y
ZXRhaW5lckluZGV4KCkpOworICAgIH0sCisKKyAgICBpc0VsZW1lbnQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lZGdlKCkuaXNFbGVtZW50KCk7CisgICAgfSwKKwor
ICAgIGlzSGlkZGVuOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWRn
ZSgpLmlzSGlkZGVuKCk7CisgICAgfSwKKworICAgIGlzSW50ZXJuYWw6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lZGdlKCkuaXNJbnRlcm5hbCgpOworICAgIH0sCisK
KyAgICBpc0ludmlzaWJsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2VkZ2UoKS5pc0ludmlzaWJsZSgpOworICAgIH0sCisKKyAgICBpc1Nob3J0Y3V0OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWRnZSgpLmlzU2hvcnRjdXQoKTsKKyAg
ICB9LAorCisgICAgaXNXZWFrOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fZWRnZSgpLmlzV2VhaygpOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlCit9CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcuanMKaW5kZXggZDZmYzg5ZWUyZjAwYTczYWQyZjYyMjgwNGUzN2M0ZTE3MjAxZDBl
ZC4uOWZhZjQ1ZGU3NWQ1NWU1OGU1NTc3NDFlZmE3MjA0NDJkMWY0ODEyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcuanMKQEAgLTQwNSwyMiArNDA1LDIzNiBAQCBXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcEdyYXBoRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKIH0KIAogCisKKworLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGV9Cisg
Ki8KK1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlID0gZnVuY3Rpb24oKQor
eworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5O
YXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJU
YWtlIE5hdGl2ZSBIZWFwIFNuYXBzaG90IikpOworICAgIHRoaXMuX25leHRQcm9maWxlVWlkID0g
MTsKK30KKworV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkID0g
Ik5BVElWRV9TTkFQU0hPVCI7CisKK1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVU
eXBlLnByb3RvdHlwZSA9IHsKKyAgICBnZXQgYnV0dG9uVG9vbHRpcCgpCisgICAgeworICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYXB0dXJlIG5hdGl2ZSBoZWFwIGdyYXBo
LiIpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCisgICAgICogQHJldHVy
biB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBidXR0b25DbGlja2VkOiBmdW5jdGlvbihwcm9maWxl
c1BhbmVsKQorICAgIHsKKyAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlcih0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNuYXBzaG90ICVkIiwgdGhpcy5fbmV4dFByb2ZpbGVVaWQpLCB0aGlzLl9uZXh0UHJvZmls
ZVVpZCk7CisgICAgICAgICsrdGhpcy5fbmV4dFByb2ZpbGVVaWQ7CisgICAgICAgIHByb2ZpbGVI
ZWFkZXIuaXNUZW1wb3JhcnkgPSB0cnVlOworICAgICAgICBwcm9maWxlc1BhbmVsLmFkZFByb2Zp
bGVIZWFkZXIocHJvZmlsZUhlYWRlcik7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0g
ez9zdHJpbmd9IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7P01lbW9yeUFnZW50Lk1lbW9yeUJs
b2NrfSBtZW1vcnlCbG9jaworICAgICAgICAgKiBAcGFyYW0gez9PYmplY3Q9fSBncmFwaAorICAg
ICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KGVycm9y
LCBtZW1vcnlCbG9jaywgZ3JhcGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFk
ZXIuX2dyYXBoID0gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwR3JhcGgoZ3JhcGgpOworICAg
ICAgICAgICAgcHJvZmlsZUhlYWRlci5pc1RlbXBvcmFyeSA9IGZhbHNlOworICAgICAgICAgICAg
cHJvZmlsZUhlYWRlci5zaWRlYmFyRWxlbWVudC5zdWJ0aXRsZSA9IE51bWJlci5ieXRlc1RvU3Ry
aW5nKC8qKiBAdHlwZXtudW1iZXJ9ICovKG1lbW9yeUJsb2NrLnNpemUpKTsKKyAgICAgICAgfQor
ICAgICAgICBNZW1vcnlBZ2VudC5nZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uKHRydWUsIGRp
ZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0sCisKKyAgICBnZXQgdHJlZUl0ZW1UaXRsZSgpCisgICAgeworICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOQVRJVkUgU05BUFNIT1QiKTsKKyAgICB9LAorCisg
ICAgZ2V0IGRlc2NyaXB0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIk5hdGl2ZSBtZW1vcnkgc25hcHNob3QgcHJvZmlsZXMgc2hvdyBuYXRpdmUgaGVh
cCBncmFwaC4iKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICog
QHBhcmFtIHtzdHJpbmc9fSB0aXRsZQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9m
aWxlSGVhZGVyfQorICAgICAqLworICAgIGNyZWF0ZVRlbXBvcmFyeVByb2ZpbGU6IGZ1bmN0aW9u
KHRpdGxlKQorICAgIHsKKyAgICAgICAgdGl0bGUgPSB0aXRsZSB8fCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNuYXBzaG90dGluZ1x1MjAyNiIpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIodGhpcywgdGl0bGUpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQu
UHJvZmlsZUhlYWRlcn0gcHJvZmlsZQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9m
aWxlSGVhZGVyfQorICAgICAqLworICAgIGNyZWF0ZVByb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUp
CisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFBy
b2ZpbGVIZWFkZXIodGhpcywgcHJvZmlsZS50aXRsZSwgLTEpOworICAgIH0sCisKKyAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5wcm90b3R5cGUKK30KKworCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRl
cn0KKyAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlfSB0
eXBlCisgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKKyAqIEBwYXJhbSB7bnVtYmVyPX0gdWlkCisg
Ki8KK1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIgPSBmdW5jdGlvbih0
eXBlLCB0aXRsZSwgdWlkKQoreworICAgIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5j
YWxsKHRoaXMsIHR5cGUsIHRpdGxlLCB1aWQsIDApOworfQorCitXZWJJbnNwZWN0b3IuTmF0aXZl
U25hcHNob3RQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAb3Zl
cnJpZGUKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9maWxl
c1BhbmVsCisgICAgICovCisgICAgY3JlYXRlVmlldzogZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkK
KyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hv
dFZpZXcocHJvZmlsZXNQYW5lbCwgdGhpcyk7CisgICAgfSwKKworICAgIHN0YXJ0U25hcHNob1Ry
YW5zZmVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX3Rha2VO
YXRpdmVTbmFwc2hvdC5iaW5kKHRoaXMpLCAwKTsKKyAgICB9LAorCisgICAgc25hcHNob3RDb25z
dHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiTmF0aXZlSGVh
cFNuYXBzaG90IjsKKyAgICB9LAorCisgICAgX3Rha2VOYXRpdmVTbmFwc2hvdDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gZXJyb3IK
KyAgICAgICAgICogQHBhcmFtIHs/TWVtb3J5QWdlbnQuTWVtb3J5QmxvY2t9IG1lbW9yeUJsb2Nr
CisgICAgICAgICAqIEBwYXJhbSB7P09iamVjdD19IGdyYXBoCisgICAgICAgICAqLworICAgICAg
ICBmdW5jdGlvbiBkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QoZXJyb3IsIG1lbW9yeUJsb2NrLCBn
cmFwaCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1ldGEgPSB7CisgICAgICAgICAgICAg
ICJub2RlX2ZpZWxkcyI6IFsKKyAgICAgICAgICAgICAgICAidHlwZSIsCisgICAgICAgICAgICAg
ICAgIm5hbWUiLAorICAgICAgICAgICAgICAgICJpZCIsCisgICAgICAgICAgICAgICAgInNlbGZf
c2l6ZSIsCisgICAgICAgICAgICAgICAgImVkZ2VfY291bnQiCisgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICJub2RlX3R5cGVzIjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAg
ICAgICAgICAgICJoaWRkZW4iLAorICAgICAgICAgICAgICAgICAgImFycmF5IiwKKyAgICAgICAg
ICAgICAgICAgICJzdHJpbmciLAorICAgICAgICAgICAgICAgICAgIm9iamVjdCIsCisgICAgICAg
ICAgICAgICAgICAiY29kZSIsCisgICAgICAgICAgICAgICAgICAiY2xvc3VyZSIsCisgICAgICAg
ICAgICAgICAgICAicmVnZXhwIiwKKyAgICAgICAgICAgICAgICAgICJudW1iZXIiLAorICAgICAg
ICAgICAgICAgICAgIm5hdGl2ZSIsCisgICAgICAgICAgICAgICAgICAic3ludGhldGljIgorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInN0cmluZyIsCisgICAgICAgICAgICAg
ICAgIm51bWJlciIsCisgICAgICAgICAgICAgICAgIm51bWJlciIsCisgICAgICAgICAgICAgICAg
Im51bWJlciIsCisgICAgICAgICAgICAgICAgIm51bWJlciIsCisgICAgICAgICAgICAgICAgIm51
bWJlciIKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgImVkZ2VfZmllbGRzIjogWwor
ICAgICAgICAgICAgICAgICJ0eXBlIiwKKyAgICAgICAgICAgICAgICAibmFtZV9vcl9pbmRleCIs
CisgICAgICAgICAgICAgICAgInRvX25vZGUiCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICJlZGdlX3R5cGVzIjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAg
ICJjb250ZXh0IiwKKyAgICAgICAgICAgICAgICAgICJlbGVtZW50IiwKKyAgICAgICAgICAgICAg
ICAgICJwcm9wZXJ0eSIsCisgICAgICAgICAgICAgICAgICAiaW50ZXJuYWwiLAorICAgICAgICAg
ICAgICAgICAgImhpZGRlbiIsCisgICAgICAgICAgICAgICAgICAic2hvcnRjdXQiLAorICAgICAg
ICAgICAgICAgICAgIndlYWsiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAi
c3RyaW5nX29yX251bWJlciIsCisgICAgICAgICAgICAgICAgIm5vZGUiCisgICAgICAgICAgICAg
IF0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB2YXIgaGVhcFNuYXBzaG90ID0geworICAg
ICAgICAgICAgICAgICJzbmFwc2hvdCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIm1ldGEiOiBt
ZXRhLAorICAgICAgICAgICAgICAgICAgICBub2RlX2NvdW50OiBncmFwaC5ub2Rlcy5sZW5ndGgg
LyA1LAorICAgICAgICAgICAgICAgICAgICBlZGdlX2NvdW50OiBncmFwaC5lZGdlcy5sZW5ndGgg
LyAzLAorICAgICAgICAgICAgICAgICAgICByb290X2luZGV4OiBncmFwaC5ub2Rlcy5sZW5ndGgg
LSA1CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBub2RlczogZ3JhcGgubm9k
ZXMsCisgICAgICAgICAgICAgICAgZWRnZXM6IGdyYXBoLmVkZ2VzLAorICAgICAgICAgICAgICAg
IHN0cmluZ3M6IGdyYXBoLnN0cmluZ3MKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHZh
ciBjaHVuayA9IEpTT04uc3RyaW5naWZ5KGhlYXBTbmFwc2hvdCk7CisgICAgICAgICAgICB0aGlz
LnRyYW5zZmVyQ2h1bmsoY2h1bmspOworICAgICAgICAgICAgdGhpcy5maW5pc2hIZWFwU25hcHNo
b3QoKTsKKyAgICAgICAgfQorICAgICAgICBNZW1vcnlBZ2VudC5nZXRQcm9jZXNzTWVtb3J5RGlz
dHJpYnV0aW9uKHRydWUsIGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRoaXMpKTsKKwor
ICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5w
cm90b3R5cGUKK30KKworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RWaWV3fQorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNu
YXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmlsZSkKK3sKKyAgICB0aGlzLl9wcm9m
aWxlID0gcHJvZmlsZTsKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Vmlldy5jYWxsKHRo
aXMsIHBhcmVudCwgcHJvZmlsZSk7Cit9CisKKworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFw
c2hvdFZpZXcucHJvdG90eXBlID0geworICAgIGdldCBwcm9maWxlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9wcm9maWxlOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZQorfTsKKworCiAvKioKICAqIEBjb25zdHJ1
Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Qcm9maWxlVHlwZX0KICAqLwogV2ViSW5z
cGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlID0gZnVuY3Rpb24oKQogewotICAgIFdlYklu
c3BlY3Rvci5Qcm9maWxlVHlwZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
cm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGFrZSBOYXRpdmUgTWVt
b3J5IFNuYXBzaG90IikpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5jYWxsKHRoaXMs
IFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ2FwdHVyZSBOYXRpdmUgTWVtb3J5IERpc3RyaWJ1dGlvbiIpKTsKICAgICB0
aGlzLl9uZXh0UHJvZmlsZVVpZCA9IDE7CiB9CiAKLVdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQ
cm9maWxlVHlwZS5UeXBlSWQgPSAiTkFUSVZFX01FTU9SWSI7CitXZWJJbnNwZWN0b3IuTmF0aXZl
TWVtb3J5UHJvZmlsZVR5cGUuVHlwZUlkID0gIk5BVElWRV9NRU1PUllfRElTVFJJQlVUSU9OIjsK
IAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKICAg
ICBnZXQgYnV0dG9uVG9vbHRpcCgpCiAgICAgewotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJUYWtlIG5hdGl2ZSBtZW1vcnkgc25hcHNob3QuIik7CisgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhcHR1cmUgbmF0aXZlIG1lbW9yeSBkaXN0cmlidXRp
b24uIik7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGY1NDM2NmEzNjdlMzdkNGUzZTcw
YzliYWFhNmVkNjY4OWRlZGIxZGUuLmQ3MzRlMjVmY2YzYTExMTQxMTZmM2UwNmVlODNiZDYzNGE2
MjcyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanMKQEAgLTI2MSw4ICsyNjEsMTAgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWwgPSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3
IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOwogICAgIGlmIChDYXBhYmls
aXRpZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkKICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxl
VHlwZShuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOwotICAgIGlm
IChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5uYXRpdmVNZW1vcnlTbmFwc2hvdHMu
aXNFbmFibGVkKCkpCisgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLm5h
dGl2ZU1lbW9yeVNuYXBzaG90cy5pc0VuYWJsZWQoKSkgewogICAgICAgICB0aGlzLl9yZWdpc3Rl
clByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUoKSk7
CisgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5OYXRp
dmVTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOworICAgIH0KICAgICBpZiAoV2ViSW5zcGVjdG9yLmV4
cGVyaW1lbnRzU2V0dGluZ3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkKICAgICAgICAg
dGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVU
eXBlKCkpOwogCkBAIC0xMzgyLDYgKzEzODQsNyBAQCBpbXBvcnRTY3JpcHQoIkhlYXBTbmFwc2hv
dFZpZXcuanMiKTsKIGltcG9ydFNjcmlwdCgiSGVhcFNuYXBzaG90V29ya2VyRGlzcGF0Y2hlci5q
cyIpOwogaW1wb3J0U2NyaXB0KCJKU0hlYXBTbmFwc2hvdC5qcyIpOwogaW1wb3J0U2NyaXB0KCJO
YXRpdmVIZWFwR3JhcGguanMiKTsKK2ltcG9ydFNjcmlwdCgiTmF0aXZlSGVhcFNuYXBzaG90Lmpz
Iik7CiBpbXBvcnRTY3JpcHQoIk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcyIpOwogaW1wb3J0
U2NyaXB0KCJQcm9maWxlTGF1bmNoZXJWaWV3LmpzIik7CiBpbXBvcnRTY3JpcHQoIlRvcERvd25Q
cm9maWxlRGF0YUdyaWRUcmVlLmpzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmMKaW5kZXggZTFiNjJjYjUxN2NiNzRkODVkMDZiODMwNTJhNjhkNGIw
NmNiZjZmOC4uZTFiMGIzMDE5MGFlNzM4YWFlNzAyYmFhYzU5YTcwZTYxNzMyY2Q2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTE0LDYg
KzExNCw3IEBACiAgICAgPGZpbGU+TWV0cmljc1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxm
aWxlPk5hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmF0
aXZlSGVhcEdyYXBoLmpzPC9maWxlPgorICAgIDxmaWxlPk5hdGl2ZUhlYXBTbmFwc2hvdC5qczwv
ZmlsZT4KICAgICA8ZmlsZT5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM8L2ZpbGU+CiAgICAg
PGZpbGU+TmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+TmF2
aWdhdG9yVmlldy5qczwvZmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183787</attachid>
            <date>2013-01-21 08:09:20 -0800</date>
            <delta_ts>2013-01-21 08:11:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107452-20130121200614.patch</filename>
            <type>text/plain</type>
            <size>27385</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk4ZjMwOWI1NTZmZTBh
NDZkMDNmYWE1NWMwOGFhODZjYTYxMjExYy4uZGZhMGIxM2QxYzgxYTNkYzM3MWE4MWQwM2RhMmMz
Y2UzY2RhNTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAxLTIxICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJldXNlIEpTIGhlYXAgcHJvZmlsZXIgVUkgZm9yIG5hdGl2ZSBoZWFwIGdyYXBoIHJlcHJl
c2VudGFpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5hdGl2ZUhlYXBTbmFwc2hvdCBpcyBpbnRyb2R1Y2VkIHRvIGxldmVyYWdlIEpTIGhlYXAgc25h
cHNob3QgcHJvY2Vzc2luZyBhbGdvcml0aG1zCisgICAgICAgIGZvciBuYXRpdmUgaGVhcCBncmFw
aC4gTmV3IHNuYXBzaG90IHR5cGUgKCJOYXRpdmUgSGVhcCBTbmFwc2hvdCIpIGlzIGFkZGVkIHRv
IHRoZQorICAgICAgICBwcm9maWxlcyBwYW5lbC4gSXQgd2lsbCByZXByZXNlbnQgbmF0aXZlIGhl
YXAgc25hcHNob3RzIHVzaW5nIHRoZSBzYW1lIFVJIGFzIHdlIHVzZQorICAgICAgICBmb3IgSlMg
aGVhcCBzbmFwc2hvdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUt
ZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5faW5pdCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQcm94eS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRl
ci5wcm90b3R5cGUubG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob1RyYW5zZmVyKTogZXh0cmFjdGVkIGEgZmV3IG1ldGhv
ZHMKKyAgICAgICAgdG8gc3VwcG9ydCBvdmVycmlkZXMgZm9yIG5hdGl2ZSBoZWFwIHNuYXBzaG90
cy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUuc25h
cHNob3RDb25zdHJ1Y3Rvck5hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxl
SGVhZGVyLnByb3RvdHlwZS5fc2V0dXBXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvTmF0aXZlSGVhcFNuYXBzaG90LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVIZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBT
bmFwc2hvdC5wcm90b3R5cGUuY3JlYXRlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVFZGdlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVIZWFwU25hcHNob3QucHJvdG90eXBlLmNyZWF0ZVJldGFpbmluZ0VkZ2UpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdC5wcm90b3R5cGUuX21hcmtJ
bnZpc2libGVFZGdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
LnByb3RvdHlwZS5fY2FsY3VsYXRlRmxhZ3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2
ZUhlYXBTbmFwc2hvdC5wcm90b3R5cGUuY2FuSGF2ZURpc3RhbmNlT25lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3QucHJvdG90eXBlLnVzZXJPYmplY3RzTWFwQW5k
RmxhZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuY2Fu
QmVRdWVyaWVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2Rl
LnByb3RvdHlwZS5pc1VzZXJPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmNsYXNzTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuY2xhc3NJbmRleCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuaWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLm5hbWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBl
LmlzSGlkZGVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2Rl
LnByb3RvdHlwZS5pc1N5bnRoZXRpYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVh
cFNuYXBzaG90Tm9kZS5wcm90b3R5cGUuaXNXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmlzRGV0YWNoZWRET01UcmVlc1Jvb3Qp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBl
LmlzRGV0YWNoZWRET01UcmVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25h
cHNob3RFZGdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdl
LnByb3RvdHlwZS5jbG9uZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBz
aG90RWRnZS5wcm90b3R5cGUuaGFzU3RyaW5nTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNFbGVtZW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3RvdHlwZS5pc0hpZGRlbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNX
ZWFrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3Rv
dHlwZS5pc0ludGVybmFsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNo
b3RFZGdlLnByb3RvdHlwZS5pc0ludmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNTaG9ydGN1dCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUubmFtZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUudG9TdHJpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBl
Ll9uYW1lT3JJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
UmV0YWluZXJFZGdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RS
ZXRhaW5lckVkZ2UucHJvdG90eXBlLmNsb25lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlLmlzRWxlbWVudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZS5p
c0hpZGRlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWlu
ZXJFZGdlLnByb3RvdHlwZS5pc0ludGVybmFsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlLmlzSW52aXNpYmxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBl
LmlzU2hvcnRjdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFJl
dGFpbmVyRWRnZS5wcm90b3R5cGUuaXNXZWFrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVT
bmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgYnV0dG9uVG9vbHRpcCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuYnV0dG9u
Q2xpY2tlZC5kaWRSZWNlaXZlTWVtb3J5U25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmdl
dCB0cmVlSXRlbVRpdGxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFBy
b2ZpbGVUeXBlLnByb3RvdHlwZS5nZXQgZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRlbXBvcmFyeVBy
b2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUu
cHJvdG90eXBlLmNyZWF0ZVByb2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNu
YXBzaG90UHJvZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNo
b3RQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5jcmVhdGVWaWV3KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob1Ry
YW5zZmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLnNuYXBzaG90Q29uc3RydWN0b3JOYW1lKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLl90YWtlTmF0aXZlU25h
cHNob3QpOiBidWlsZCBhIGRhdGFzdHJ1Y3R1cmUKKyAgICAgICAgcmVzZW1ibGluZyBvbmUgdXNl
ZCBmb3IgSlMgaGVhcCBzbmFwc2hvdHMgYnV0IHBvcHVsYXRlZCB3aXRoIHRoZSBkYXRhIGZyb20g
dGhlIG5hdGl2ZSBzbmFwaG90LgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFw
c2hvdFZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFZpZXcu
cHJvdG90eXBlLmdldCBwcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1v
cnlQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmls
ZVR5cGUucHJvdG90eXBlLmdldCBidXR0b25Ub29sdGlwKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorCiAy
MDEzLTAxLTIxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW1JFR1JFU1NJT05dIEZvcmNlZCA6dmlzaXRlZCBwc2V1ZG9j
bGFzcyBoYXMgbm8gZWZmZWN0IG9uIEEgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhNzAw
ZGQ2NTdhODRmYTMzYjg4YjMwODM1NjQyMGViZjM1YWU1MzM5Li4wODg5OTA0NTk0ZjVhY2QxN2Q5
YzA3MDBkOGU3YTI4MzAyNmI3YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MzgzLDYgKzUzODMs
NyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90V29ya2Vy
RGlzcGF0Y2hlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KU0hlYXBT
bmFwc2hvdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVIZWFw
R3JhcGguanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlSGVhcFNu
YXBzaG90LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9y
eVNuYXBzaG90Vmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlRGF0YUdyaWRUcmVlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCAyY2U4NTZiNDhhZDRlNTZiMDhhOGFkYThmNGI5MTQ2ZmNhYzU2MzBlLi41
NTRhMzc4NWY2MmFlOTE0Y2UwMWRkNmFhMmNlNDJhMDcxNjVkOWFlIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzcyNjEsNiArNzcyNjEsMTAg
QEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcTmF0aXZlSGVhcFNuYXBzaG90LmpzIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250
LWVuZFxuYXRpdmVNZW1vcnlQcm9maWxlci5jc3MiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKaW5kZXggM2RkNzIy
OTZmM2UzZjA2YThjMDJmZmIzMmFmYzQ5Y2RmNjY4MTE2ZS4uOTM0ZjMwYjMwNzQyMjdjN2RmYjc0
OGM5YmZhNjllYzAxM2EwNTg1NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weQpAQCAtMzM5LDYgKzMzOSw3IEBAIG1vZHVsZXMgPSBbCiAgICAgICAg
ICAgICAiSGVhcFNuYXBzaG90V29ya2VyRGlzcGF0Y2hlci5qcyIsCiAgICAgICAgICAgICAiSlNI
ZWFwU25hcHNob3QuanMiLAogICAgICAgICAgICAgIk5hdGl2ZUhlYXBHcmFwaC5qcyIsCisgICAg
ICAgICAgICAiTmF0aXZlSGVhcFNuYXBzaG90LmpzIiwKICAgICAgICAgICAgICJOYXRpdmVNZW1v
cnlTbmFwc2hvdFZpZXcuanMiLAogICAgICAgICAgICAgIlByb2ZpbGVEYXRhR3JpZFRyZWUuanMi
LAogICAgICAgICAgICAgIlByb2ZpbGVzUGFuZWwuanMiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdC5qcwppbmRleCAyNDg3ZDhmYjA4YjFm
ZWYyNGIxZGFjYzc3YTU2M2YwNGM0NzJhM2UwLi43NTNlYzVmNDkzMzcxMjYxNGRmNzJmNGMxNWMz
ZWFiNTE2OTA4MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdC5qcwpAQCAtNDkzLDYgKzQ5MywxMCBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLl9tZXRhTm9kZSA9IHByb2Zp
bGUuc25hcHNob3QubWV0YTsKICAgICB0aGlzLl9zdHJpbmdzID0gcHJvZmlsZS5zdHJpbmdzOwog
CisgICAgdGhpcy5fcm9vdE5vZGVJbmRleCA9IDA7CisgICAgaWYgKHByb2ZpbGUuc25hcHNob3Qu
cm9vdF9pbmRleCkKKyAgICAgICAgdGhpcy5fcm9vdE5vZGVJbmRleCA9IHByb2ZpbGUuc25hcHNo
b3Qucm9vdF9pbmRleDsKKwogICAgIHRoaXMuX3NuYXBzaG90RGlmZnMgPSB7fTsKICAgICB0aGlz
Ll9hZ2dyZWdhdGVzRm9yRGlmZiA9IG51bGw7CiAKQEAgLTUzMiw3ICs1MzYsNiBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9IHsKICAgICBfaW5pdDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdmFyIG1ldGEgPSB0aGlzLl9tZXRhTm9kZTsKLSAgICAgICAgdGhpcy5f
cm9vdE5vZGVJbmRleCA9IDA7CiAKICAgICAgICAgdGhpcy5fbm9kZVR5cGVPZmZzZXQgPSBtZXRh
Lm5vZGVfZmllbGRzLmluZGV4T2YoInR5cGUiKTsKICAgICAgICAgdGhpcy5fbm9kZU5hbWVPZmZz
ZXQgPSBtZXRhLm5vZGVfZmllbGRzLmluZGV4T2YoIm5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcwppbmRleCA3
YzcyOTU2MzQwZDY2MTgzMzljZDYyNjg4YTllZDRlZjkxNjI4MjFiLi40YTc5M2UzZGYwNjFhNjNm
N2Q5MDc1OGU2NmQ4Nzc3MzgxMzE5ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCkBAIC04NTksMTIgKzg1OSwy
MiBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5fc2V0dXBXb3JrZXIoKTsKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1l
bnQuc3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmdcdTIwMjYiKTsKICAg
ICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9IHRydWU7Ci0gICAgICAgICAgICBQ
cm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7CisgICAgICAgICAgICB0aGlz
LnN0YXJ0U25hcHNob1RyYW5zZmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdmFyIGxvYWRlclBy
b3h5ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyUHJveHl9ICov
ICh0aGlzLl9yZWNlaXZlcik7CiAgICAgICAgIGxvYWRlclByb3h5LmFkZENvbnN1bWVyKGNhbGxi
YWNrKTsKICAgICB9LAogCisgICAgc3RhcnRTbmFwc2hvVHJhbnNmZXI6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAg
ICB9LAorCisgICAgc25hcHNob3RDb25zdHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiSlNIZWFwU25hcHNob3QiOworICAgIH0sCisKICAgICBfc2V0dXBXb3Jr
ZXI6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIHNldFByb2ZpbGVXYWl0KGV2
ZW50KQpAQCAtODczLDcgKzg4Myw3IEBAIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyKCk7CiAgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCJ3YWl0Iiwgc2V0UHJvZmlsZVdhaXQsIHRoaXMpOwotICAgICAgICB2YXIgbG9hZGVyUHJv
eHkgPSB3b3JrZXIuY3JlYXRlTG9hZGVyKCJKU0hlYXBTbmFwc2hvdCIpOworICAgICAgICB2YXIg
bG9hZGVyUHJveHkgPSB3b3JrZXIuY3JlYXRlTG9hZGVyKHRoaXMuc25hcHNob3RDb25zdHJ1Y3Rv
ck5hbWUoKSk7CiAgICAgICAgIGxvYWRlclByb3h5LmFkZENvbnN1bWVyKHRoaXMuX3NuYXBzaG90
UmVjZWl2ZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIHRoaXMuX3JlY2VpdmVyID0gbG9hZGVyUHJv
eHk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90V29ya2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3RXb3JrZXIuanMKaW5kZXggMTg4ZWIxNTU4YjE2NGI1MTNkYmNmYmM3
NWE1ZDA1YmU3YTMzZDgwYS4uYzI5ZDI2NjZiNDg5MDc4MjBkYTk4OGIyMGJjNGYyMjVmMDQ1YThm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25h
cHNob3RXb3JrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9I
ZWFwU25hcHNob3RXb3JrZXIuanMKQEAgLTM1LDYgKzM1LDcgQEAgaW1wb3J0U2NyaXB0cygiSGVh
cFNuYXBzaG90LmpzIik7CiBpbXBvcnRTY3JpcHRzKCJIZWFwU25hcHNob3RMb2FkZXIuanMiKTsK
IGltcG9ydFNjcmlwdHMoIkhlYXBTbmFwc2hvdFdvcmtlckRpc3BhdGNoZXIuanMiKTsKIGltcG9y
dFNjcmlwdHMoIkpTSGVhcFNuYXBzaG90LmpzIik7CitpbXBvcnRTY3JpcHRzKCJOYXRpdmVIZWFw
U25hcHNob3QuanMiKTsKIGltcG9ydFNjcmlwdHMoIkZpbGVVdGlscy5qcyIpOwogaW1wb3J0U2Ny
aXB0cygidXRpbGl0aWVzLmpzIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmF0aXZlSGVhcFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OYXRpdmVIZWFwU25hcHNob3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA4M2Y4
MjdlMDhmMGE2OGRlYTM2Yjc1YmY4MzZhYmE4ZjVhZGZmNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlSGVhcFNuYXBzaG90LmpzCkBA
IC0wLDAgKzEsMjY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90fQorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
ID0gZnVuY3Rpb24ocHJvZmlsZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LmNh
bGwodGhpcywgcHJvZmlsZSk7Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3Qu
cHJvdG90eXBlID0geworICAgIGNyZWF0ZU5vZGU6IGZ1bmN0aW9uKG5vZGVJbmRleCkKKyAgICB7
CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUo
dGhpcywgbm9kZUluZGV4KTsKKyAgICB9LAorCisgICAgY3JlYXRlRWRnZTogZnVuY3Rpb24oZWRn
ZXMsIGVkZ2VJbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5h
dGl2ZUhlYXBTbmFwc2hvdEVkZ2UodGhpcywgZWRnZXMsIGVkZ2VJbmRleCk7CisgICAgfSwKKwor
ICAgIGNyZWF0ZVJldGFpbmluZ0VkZ2U6IGZ1bmN0aW9uKHJldGFpbmVkTm9kZUluZGV4LCByZXRh
aW5lckluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZl
SGVhcFNuYXBzaG90UmV0YWluZXJFZGdlKHRoaXMsIHJldGFpbmVkTm9kZUluZGV4LCByZXRhaW5l
ckluZGV4KTsKKyAgICB9LAorCisgICAgX21hcmtJbnZpc2libGVFZGdlczogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICB9LAorCisgICAgX2NhbGN1bGF0ZUZsYWdzOiBmdW5jdGlvbigpCisgICAgewor
ICAgIH0sCisKKyAgICBjYW5IYXZlRGlzdGFuY2VPbmU6IGZ1bmN0aW9uKG5vZGUpCisgICAgewor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgdXNlck9iamVjdHNNYXBBbmRGbGFn
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9LAorCisgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZQorfTsKKworLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
Tm9kZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdH0gc25hcHNo
b3QKKyAqIEBwYXJhbSB7bnVtYmVyPX0gbm9kZUluZGV4CisgKi8KK1dlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3ROb2RlID0gZnVuY3Rpb24oc25hcHNob3QsIG5vZGVJbmRleCkKK3sKKyAg
ICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZS5jYWxsKHRoaXMsIHNuYXBzaG90LCBub2Rl
SW5kZXgpCit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2RlLnByb3RvdHlw
ZSA9IHsKKyAgICBjYW5CZVF1ZXJpZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9LAorCisgICAgaXNVc2VyT2JqZWN0OiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgY2xhc3NOYW1lOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc25hcHNob3QuX3N0cmluZ3NbdGhpcy5jbGFz
c0luZGV4KCldOworICAgIH0sCisKKyAgICBjbGFzc0luZGV4OiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB2YXIgc25hcHNob3QgPSB0aGlzLl9zbmFwc2hvdDsKKyAgICAgICAgcmV0dXJuIHNu
YXBzaG90Ll9ub2Rlc1t0aGlzLm5vZGVJbmRleCArIHNuYXBzaG90Ll9ub2RlTmFtZU9mZnNldF07
CisgICAgfSwKKworICAgIGlkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5ub2RlSW5kZXg7CisgICAgfSwKKworICAgIG5hbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHZhciBuYW1lID0gdGhpcy5fc25hcHNob3QuX3N0cmluZ3NbdGhpcy5fc25hcHNob3QuX25v
ZGVzW3RoaXMubm9kZUluZGV4ICsgMl1dOworICAgICAgICByZXR1cm4gdGhpcy5jbGFzc05hbWUo
KSArICI6ICIgKyBuYW1lOworICAgIH0sCisKKyAgICBpc0hpZGRlbjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBpc1N5bnRoZXRpYzogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBpc1dp
bmRvdzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisK
KyAgICBpc0RldGFjaGVkRE9NVHJlZXNSb290OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzRGV0YWNoZWRET01UcmVlOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzog
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlCit9OworCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RFZGdlfQor
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90fSBzbmFwc2hvdAorICog
QHBhcmFtIHtBcnJheS48bnVtYmVyPn0gZWRnZXMKKyAqIEBwYXJhbSB7bnVtYmVyPX0gZWRnZUlu
ZGV4CisgKi8KK1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlID0gZnVuY3Rpb24o
c25hcHNob3QsIGVkZ2VzLCBlZGdlSW5kZXgpCit7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdEVkZ2UuY2FsbCh0aGlzLCBzbmFwc2hvdCwgZWRnZXMsIGVkZ2VJbmRleCk7Cit9CisKK1dl
Ykluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3RvdHlwZSA9IHsKKyAgICBjbG9u
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90RWRnZSh0aGlzLl9zbmFwc2hvdCwgdGhpcy5fZWRnZXMsIHRoaXMuZWRn
ZUluZGV4KTsKKyAgICB9LAorCisgICAgaGFzU3RyaW5nTmFtZTogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGlzRWxlbWVudDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBpc0hpZGRlbjog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBp
c1dlYWs6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAor
CisgICAgaXNJbnRlcm5hbDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0sCisKKyAgICBpc0ludmlzaWJsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBpc1Nob3J0Y3V0OiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIG5hbWU6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdC5fc3RyaW5nc1t0aGlzLl9uYW1l
T3JJbmRleCgpXTsKKyAgICB9LAorCisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAgIk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2U6ICIgKyB0aGlzLm5hbWUoKTsK
KyAgICB9LAorCisgICAgX25hbWVPckluZGV4OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fZWRnZXMuaXRlbSh0aGlzLmVkZ2VJbmRleCArIHRoaXMuX3NuYXBzaG90Ll9l
ZGdlTmFtZU9mZnNldCk7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlCit9OworCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZX0KKyAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdH0gc25hcHNob3QKKyAqLworV2Vi
SW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZSA9IGZ1bmN0aW9uKHNuYXBz
aG90LCByZXRhaW5lZE5vZGVJbmRleCwgcmV0YWluZXJJbmRleCkKK3sKKyAgICBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLmNhbGwodGhpcywgc25hcHNob3QsIHJldGFpbmVk
Tm9kZUluZGV4LCByZXRhaW5lckluZGV4KTsKK30KKworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBT
bmFwc2hvdFJldGFpbmVyRWRnZS5wcm90b3R5cGUgPSB7CisgICAgY2xvbmU6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hv
dFJldGFpbmVyRWRnZSh0aGlzLl9zbmFwc2hvdCwgdGhpcy5fcmV0YWluZWROb2RlSW5kZXgsIHRo
aXMucmV0YWluZXJJbmRleCgpKTsKKyAgICB9LAorCisgICAgaXNFbGVtZW50OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWRnZSgpLmlzRWxlbWVudCgpOworICAgIH0s
CisKKyAgICBpc0hpZGRlbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2VkZ2UoKS5pc0hpZGRlbigpOworICAgIH0sCisKKyAgICBpc0ludGVybmFsOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWRnZSgpLmlzSW50ZXJuYWwoKTsKKyAgICB9
LAorCisgICAgaXNJbnZpc2libGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9lZGdlKCkuaXNJbnZpc2libGUoKTsKKyAgICB9LAorCisgICAgaXNTaG9ydGN1dDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VkZ2UoKS5pc1Nob3J0Y3V0KCk7
CisgICAgfSwKKworICAgIGlzV2VhazogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX2VkZ2UoKS5pc1dlYWsoKTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZQorfQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNuYXBzaG90
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5
U25hcHNob3RWaWV3LmpzCmluZGV4IGQ2ZmM4OWVlMmYwMGE3M2FkMmY2MjI4MDRlMzdjNGUxNzIw
MWQwZWQuLjlmYWY0NWRlNzVkNTVlNThlNTU3NzQxZWZhNzIwNDQyZDFmNDgxMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNo
b3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZl
TWVtb3J5U25hcHNob3RWaWV3LmpzCkBAIC00MDUsMjIgKzQwNSwyMzYgQEAgV2ViSW5zcGVjdG9y
Lk5hdGl2ZUhlYXBHcmFwaERhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiB9CiAKIAorCisKKy8q
KgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBl
fQorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZSA9IGZ1bmN0aW9u
KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0
b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiVGFrZSBOYXRpdmUgSGVhcCBTbmFwc2hvdCIpKTsKKyAgICB0aGlzLl9uZXh0UHJvZmlsZVVp
ZCA9IDE7Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJ
ZCA9ICJOQVRJVkVfU05BUFNIT1QiOworCitXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9m
aWxlVHlwZS5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGJ1dHRvblRvb2x0aXAoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FwdHVyZSBuYXRpdmUgaGVhcCBn
cmFwaC4iKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICAgICAqIEBy
ZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgYnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24ocHJv
ZmlsZXNQYW5lbCkKKyAgICB7CisgICAgICAgIHZhciBwcm9maWxlSGVhZGVyID0gbmV3IFdlYklu
c3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIodGhpcywgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTbmFwc2hvdCAlZCIsIHRoaXMuX25leHRQcm9maWxlVWlkKSwgdGhpcy5fbmV4dFBy
b2ZpbGVVaWQpOworICAgICAgICArK3RoaXMuX25leHRQcm9maWxlVWlkOworICAgICAgICBwcm9m
aWxlSGVhZGVyLmlzVGVtcG9yYXJ5ID0gdHJ1ZTsKKyAgICAgICAgcHJvZmlsZXNQYW5lbC5hZGRQ
cm9maWxlSGVhZGVyKHByb2ZpbGVIZWFkZXIpOworICAgICAgICAvKioKKyAgICAgICAgICogQHBh
cmFtIHs/c3RyaW5nfSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0gez9NZW1vcnlBZ2VudC5NZW1v
cnlCbG9ja30gbWVtb3J5QmxvY2sKKyAgICAgICAgICogQHBhcmFtIHs/T2JqZWN0PX0gZ3JhcGgK
KyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdChl
cnJvciwgbWVtb3J5QmxvY2ssIGdyYXBoKQorICAgICAgICB7CisgICAgICAgICAgICBwcm9maWxl
SGVhZGVyLl9ncmFwaCA9IG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcEdyYXBoKGdyYXBoKTsK
KyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXIuaXNUZW1wb3JhcnkgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHByb2ZpbGVIZWFkZXIuc2lkZWJhckVsZW1lbnQuc3VidGl0bGUgPSBOdW1iZXIuYnl0ZXNU
b1N0cmluZygvKiogQHR5cGV7bnVtYmVyfSAqLyhtZW1vcnlCbG9jay5zaXplKSk7CisgICAgICAg
IH0KKyAgICAgICAgTWVtb3J5QWdlbnQuZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbih0cnVl
LCBkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QuYmluZCh0aGlzKSk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9LAorCisgICAgZ2V0IHRyZWVJdGVtVGl0bGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTkFUSVZFIFNOQVBTSE9UIik7CisgICAgfSwK
KworICAgIGdldCBkZXNjcmlwdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJOYXRpdmUgbWVtb3J5IHNuYXBzaG90IHByb2ZpbGVzIHNob3cgbmF0aXZl
IGhlYXAgZ3JhcGguIik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAg
ICAqIEBwYXJhbSB7c3RyaW5nPX0gdGl0bGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3Iu
UHJvZmlsZUhlYWRlcn0KKyAgICAgKi8KKyAgICBjcmVhdGVUZW1wb3JhcnlQcm9maWxlOiBmdW5j
dGlvbih0aXRsZSkKKyAgICB7CisgICAgICAgIHRpdGxlID0gdGl0bGUgfHwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTbmFwc2hvdHRpbmdcdTIwMjYiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlSGVhZGVyKHRoaXMsIHRpdGxlKTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtQcm9maWxlckFn
ZW50LlByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3Iu
UHJvZmlsZUhlYWRlcn0KKyAgICAgKi8KKyAgICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9m
aWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNo
b3RQcm9maWxlSGVhZGVyKHRoaXMsIHByb2ZpbGUudGl0bGUsIC0xKTsKKyAgICB9LAorCisgICAg
X19wcm90b19fOiBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlCit9CisKKworLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVI
ZWFkZXJ9CisgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlw
ZX0gdHlwZQorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgKiBAcGFyYW0ge251bWJlcj19IHVp
ZAorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlSGVhZGVyID0gZnVuY3Rp
b24odHlwZSwgdGl0bGUsIHVpZCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIuY2FsbCh0aGlzLCB0eXBlLCB0aXRsZSwgdWlkLCAwKTsKK30KKworV2ViSW5zcGVjdG9yLk5h
dGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICog
QG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJv
ZmlsZXNQYW5lbAorICAgICAqLworICAgIGNyZWF0ZVZpZXc6IGZ1bmN0aW9uKHByb2ZpbGVzUGFu
ZWwpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25h
cHNob3RWaWV3KHByb2ZpbGVzUGFuZWwsIHRoaXMpOworICAgIH0sCisKKyAgICBzdGFydFNuYXBz
aG9UcmFuc2ZlcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgc2V0VGltZW91dCh0aGlzLl90
YWtlTmF0aXZlU25hcHNob3QuYmluZCh0aGlzKSwgMCk7CisgICAgfSwKKworICAgIHNuYXBzaG90
Q29uc3RydWN0b3JOYW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gIk5hdGl2
ZUhlYXBTbmFwc2hvdCI7CisgICAgfSwKKworICAgIF90YWtlTmF0aXZlU25hcHNob3Q6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGVy
cm9yCisgICAgICAgICAqIEBwYXJhbSB7P01lbW9yeUFnZW50Lk1lbW9yeUJsb2NrfSBtZW1vcnlC
bG9jaworICAgICAgICAgKiBAcGFyYW0gez9PYmplY3Q9fSBncmFwaAorICAgICAgICAgKi8KKyAg
ICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KGVycm9yLCBtZW1vcnlCbG9j
aywgZ3JhcGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBtZXRhID0geworICAgICAgICAg
ICAgICAibm9kZV9maWVsZHMiOiBbCisgICAgICAgICAgICAgICAgInR5cGUiLAorICAgICAgICAg
ICAgICAgICJuYW1lIiwKKyAgICAgICAgICAgICAgICAiaWQiLAorICAgICAgICAgICAgICAgICJz
ZWxmX3NpemUiLAorICAgICAgICAgICAgICAgICJlZGdlX2NvdW50IgorICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAibm9kZV90eXBlcyI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgICAgICAiaGlkZGVuIiwKKyAgICAgICAgICAgICAgICAgICJhcnJheSIsCisgICAg
ICAgICAgICAgICAgICAic3RyaW5nIiwKKyAgICAgICAgICAgICAgICAgICJvYmplY3QiLAorICAg
ICAgICAgICAgICAgICAgImNvZGUiLAorICAgICAgICAgICAgICAgICAgImNsb3N1cmUiLAorICAg
ICAgICAgICAgICAgICAgInJlZ2V4cCIsCisgICAgICAgICAgICAgICAgICAibnVtYmVyIiwKKyAg
ICAgICAgICAgICAgICAgICJuYXRpdmUiLAorICAgICAgICAgICAgICAgICAgInN5bnRoZXRpYyIK
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJzdHJpbmciLAorICAgICAgICAg
ICAgICAgICJudW1iZXIiLAorICAgICAgICAgICAgICAgICJudW1iZXIiLAorICAgICAgICAgICAg
ICAgICJudW1iZXIiLAorICAgICAgICAgICAgICAgICJudW1iZXIiLAorICAgICAgICAgICAgICAg
ICJudW1iZXIiCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICJlZGdlX2ZpZWxkcyI6
IFsKKyAgICAgICAgICAgICAgICAidHlwZSIsCisgICAgICAgICAgICAgICAgIm5hbWVfb3JfaW5k
ZXgiLAorICAgICAgICAgICAgICAgICJ0b19ub2RlIgorICAgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgICAiZWRnZV90eXBlcyI6IFsKKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAg
ICAgICAiY29udGV4dCIsCisgICAgICAgICAgICAgICAgICAiZWxlbWVudCIsCisgICAgICAgICAg
ICAgICAgICAicHJvcGVydHkiLAorICAgICAgICAgICAgICAgICAgImludGVybmFsIiwKKyAgICAg
ICAgICAgICAgICAgICJoaWRkZW4iLAorICAgICAgICAgICAgICAgICAgInNob3J0Y3V0IiwKKyAg
ICAgICAgICAgICAgICAgICJ3ZWFrIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAg
ICAgInN0cmluZ19vcl9udW1iZXIiLAorICAgICAgICAgICAgICAgICJub2RlIgorICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICB9OworICAgICAgICAgICAgdmFyIGhlYXBTbmFwc2hvdCA9IHsK
KyAgICAgICAgICAgICAgICAic25hcHNob3QiOiB7CisgICAgICAgICAgICAgICAgICAgICJtZXRh
IjogbWV0YSwKKyAgICAgICAgICAgICAgICAgICAgbm9kZV9jb3VudDogZ3JhcGgubm9kZXMubGVu
Z3RoIC8gNSwKKyAgICAgICAgICAgICAgICAgICAgZWRnZV9jb3VudDogZ3JhcGguZWRnZXMubGVu
Z3RoIC8gMywKKyAgICAgICAgICAgICAgICAgICAgcm9vdF9pbmRleDogZ3JhcGgubm9kZXMubGVu
Z3RoIC0gNQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgbm9kZXM6IGdyYXBo
Lm5vZGVzLAorICAgICAgICAgICAgICAgIGVkZ2VzOiBncmFwaC5lZGdlcywKKyAgICAgICAgICAg
ICAgICBzdHJpbmdzOiBncmFwaC5zdHJpbmdzCisgICAgICAgICAgICB9OworCisgICAgICAgICAg
ICB2YXIgY2h1bmsgPSBKU09OLnN0cmluZ2lmeShoZWFwU25hcHNob3QpOworICAgICAgICAgICAg
dGhpcy50cmFuc2ZlckNodW5rKGNodW5rKTsKKyAgICAgICAgICAgIHRoaXMuZmluaXNoSGVhcFNu
YXBzaG90KCk7CisgICAgICAgIH0KKyAgICAgICAgTWVtb3J5QWdlbnQuZ2V0UHJvY2Vzc01lbW9y
eURpc3RyaWJ1dGlvbih0cnVlLCBkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QuYmluZCh0aGlzKSk7
CisKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlCit9CisKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Vmlld30KKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdFZpZXcgPSBmdW5jdGlvbihwYXJlbnQsIHByb2ZpbGUpCit7CisgICAgdGhpcy5f
cHJvZmlsZSA9IHByb2ZpbGU7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFZpZXcuY2Fs
bCh0aGlzLCBwYXJlbnQsIHByb2ZpbGUpOworfQorCisKK1dlYkluc3BlY3Rvci5OYXRpdmVIZWFw
U25hcHNob3RWaWV3LnByb3RvdHlwZSA9IHsKKyAgICBnZXQgcHJvZmlsZSgpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fcHJvZmlsZTsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90Vmlldy5wcm90b3R5cGUKK307CisKKwogLyoqCiAgKiBAY29u
c3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGV9CiAgKi8KIFdl
Ykluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZSA9IGZ1bmN0aW9uKCkKIHsKLSAgICBX
ZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRha2UgTmF0aXZl
IE1lbW9yeSBTbmFwc2hvdCIpKTsKKyAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUuY2FsbCh0
aGlzLCBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkNhcHR1cmUgTmF0aXZlIE1lbW9yeSBEaXN0cmlidXRpb24iKSk7CiAg
ICAgdGhpcy5fbmV4dFByb2ZpbGVVaWQgPSAxOwogfQogCi1XZWJJbnNwZWN0b3IuTmF0aXZlTWVt
b3J5UHJvZmlsZVR5cGUuVHlwZUlkID0gIk5BVElWRV9NRU1PUlkiOworV2ViSW5zcGVjdG9yLk5h
dGl2ZU1lbW9yeVByb2ZpbGVUeXBlLlR5cGVJZCA9ICJOQVRJVkVfTUVNT1JZX0RJU1RSSUJVVElP
TiI7CiAKIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7
CiAgICAgZ2V0IGJ1dHRvblRvb2x0aXAoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiVGFrZSBuYXRpdmUgbWVtb3J5IHNuYXBzaG90LiIpOworICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYXB0dXJlIG5hdGl2ZSBtZW1vcnkgZGlzdHJp
YnV0aW9uLiIpOwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCBmNTQzNjZhMzY3ZTM3ZDRl
M2U3MGM5YmFhYTZlZDY2ODlkZWRiMWRlLi5kNzM0ZTI1ZmNmM2ExMTE0MTE2ZjNlMDZlZTgzYmQ2
MzRhNjI3MjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0yNjEsOCArMjYxLDEwIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBl
KG5ldyBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlVHlwZSgpKTsKICAgICBpZiAoQ2Fw
YWJpbGl0aWVzLmhlYXBQcm9maWxlclByZXNlbnQpCiAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJv
ZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZSgpKTsKLSAg
ICBpZiAoV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MubmF0aXZlTWVtb3J5U25hcHNo
b3RzLmlzRW5hYmxlZCgpKQorICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5n
cy5uYXRpdmVNZW1vcnlTbmFwc2hvdHMuaXNFbmFibGVkKCkpIHsKICAgICAgICAgdGhpcy5fcmVn
aXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBl
KCkpOworICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3Iu
TmF0aXZlU25hcHNob3RQcm9maWxlVHlwZSgpKTsKKyAgICB9CiAgICAgaWYgKFdlYkluc3BlY3Rv
ci5leHBlcmltZW50c1NldHRpbmdzLmNhbnZhc0luc3BlY3Rpb24uaXNFbmFibGVkKCkpCiAgICAg
ICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9m
aWxlVHlwZSgpKTsKIApAQCAtMTM4Miw2ICsxMzg0LDcgQEAgaW1wb3J0U2NyaXB0KCJIZWFwU25h
cHNob3RWaWV3LmpzIik7CiBpbXBvcnRTY3JpcHQoIkhlYXBTbmFwc2hvdFdvcmtlckRpc3BhdGNo
ZXIuanMiKTsKIGltcG9ydFNjcmlwdCgiSlNIZWFwU25hcHNob3QuanMiKTsKIGltcG9ydFNjcmlw
dCgiTmF0aXZlSGVhcEdyYXBoLmpzIik7CitpbXBvcnRTY3JpcHQoIk5hdGl2ZUhlYXBTbmFwc2hv
dC5qcyIpOwogaW1wb3J0U2NyaXB0KCJOYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMiKTsKIGlt
cG9ydFNjcmlwdCgiUHJvZmlsZUxhdW5jaGVyVmlldy5qcyIpOwogaW1wb3J0U2NyaXB0KCJUb3BE
b3duUHJvZmlsZURhdGFHcmlkVHJlZS5qcyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IGUxYjYyY2I1MTdjYjc0ZDg1ZDA2YjgzMDUyYTY4
ZDRiMDZjYmY2ZjguLmUxYjBiMzAxOTBhZTczOGFhZTcwMmJhYWM1OWE3MGU2MTczMmNkNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEx
NCw2ICsxMTQsNyBAQAogICAgIDxmaWxlPk1ldHJpY3NTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAg
ICA8ZmlsZT5OYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxl
Pk5hdGl2ZUhlYXBHcmFwaC5qczwvZmlsZT4KKyAgICA8ZmlsZT5OYXRpdmVIZWFwU25hcHNob3Qu
anM8L2ZpbGU+CiAgICAgPGZpbGU+TmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzPC9maWxlPgog
ICAgIDxmaWxlPk5hdmlnYXRvck92ZXJsYXlDb250cm9sbGVyLmpzPC9maWxlPgogICAgIDxmaWxl
Pk5hdmlnYXRvclZpZXcuanM8L2ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183788</attachid>
            <date>2013-01-21 08:11:50 -0800</date>
            <delta_ts>2013-01-22 00:11:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107452-20130121200845.patch</filename>
            <type>text/plain</type>
            <size>27390</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk4ZjMwOWI1NTZmZTBh
NDZkMDNmYWE1NWMwOGFhODZjYTYxMjExYy4uOWVkNjc1YzY5YzIzZDIxMzY5MGEwYThiMzQ5ODU1
NWY1NDYwYWUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAxLTIxICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJldXNlIEpTIGhlYXAgcHJvZmlsZXIgVUkgZm9yIG5hdGl2ZSBoZWFwIGdyYXBoIHJlcHJl
c2VudGFpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5hdGl2ZUhlYXBTbmFwc2hvdCBpcyBpbnRyb2R1Y2VkIHRvIGxldmVyYWdlIEpTIGhlYXAgc25h
cHNob3QgcHJvY2Vzc2luZyBhbGdvcml0aG1zCisgICAgICAgIGZvciBuYXRpdmUgaGVhcCBncmFw
aC4gTmV3IHNuYXBzaG90IHR5cGUgKCJOYXRpdmUgSGVhcCBTbmFwc2hvdCIpIGlzIGFkZGVkIHRv
IHRoZQorICAgICAgICBwcm9maWxlcyBwYW5lbC4gSXQgd2lsbCByZXByZXNlbnQgbmF0aXZlIGhl
YXAgc25hcHNob3RzIHVzaW5nIHRoZSBzYW1lIFVJIGFzIHdlIHVzZQorICAgICAgICBmb3IgSlMg
aGVhcCBzbmFwc2hvdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUt
ZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZS5faW5pdCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQcm94eS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RXb3JrZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRl
ci5wcm90b3R5cGUubG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob3RUcmFuc2Zlcik6IGV4dHJhY3RlZCBhIGZldyBtZXRo
b2RzCisgICAgICAgIHRvIHN1cHBvcnQgb3ZlcnJpZGVzIGZvciBuYXRpdmUgaGVhcCBzbmFwc2hv
dHMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNu
YXBzaG90Q29uc3RydWN0b3JOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmls
ZUhlYWRlci5wcm90b3R5cGUuX3NldHVwV29ya2VyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL05hdGl2ZUhlYXBTbmFwc2hvdC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmF0aXZlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFw
U25hcHNob3QucHJvdG90eXBlLmNyZWF0ZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dGl2ZUhlYXBTbmFwc2hvdC5wcm90b3R5cGUuY3JlYXRlRWRnZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVSZXRhaW5pbmdFZGdlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3QucHJvdG90eXBlLl9tYXJr
SW52aXNpYmxlRWRnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hv
dC5wcm90b3R5cGUuX2NhbGN1bGF0ZUZsYWdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRp
dmVIZWFwU25hcHNob3QucHJvdG90eXBlLmNhbkhhdmVEaXN0YW5jZU9uZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90LnByb3RvdHlwZS51c2VyT2JqZWN0c01hcEFu
ZEZsYWcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmNh
bkJlUXVlcmllZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9k
ZS5wcm90b3R5cGUuaXNVc2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVI
ZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZS5jbGFzc05hbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmNsYXNzSW5kZXgpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmlkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZS5uYW1l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2RlLnByb3RvdHlw
ZS5pc0hpZGRlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9k
ZS5wcm90b3R5cGUuaXNTeW50aGV0aWMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhl
YXBTbmFwc2hvdE5vZGUucHJvdG90eXBlLmlzV2luZG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVIZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZS5pc0RldGFjaGVkRE9NVHJlZXNSb290
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3ROb2RlLnByb3RvdHlw
ZS5pc0RldGFjaGVkRE9NVHJlZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNu
YXBzaG90RWRnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRn
ZS5wcm90b3R5cGUuY2xvbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFw
c2hvdEVkZ2UucHJvdG90eXBlLmhhc1N0cmluZ05hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlLmlzRWxlbWVudCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUuaXNIaWRkZW4pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlLmlz
V2Vhayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90
b3R5cGUuaXNJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBz
aG90RWRnZS5wcm90b3R5cGUuaXNJbnZpc2libGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlLmlzU2hvcnRjdXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlLm5hbWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UucHJvdG90eXBlLnRvU3RyaW5n
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RFZGdlLnByb3RvdHlw
ZS5fbmFtZU9ySW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hv
dFJldGFpbmVyRWRnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90
UmV0YWluZXJFZGdlLnByb3RvdHlwZS5jbG9uZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZS5pc0VsZW1lbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZS5wcm90b3R5cGUu
aXNIaWRkZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdFJldGFp
bmVyRWRnZS5wcm90b3R5cGUuaXNJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlwZS5pc0ludmlzaWJsZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90UmV0YWluZXJFZGdlLnByb3RvdHlw
ZS5pc1Nob3J0Y3V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RS
ZXRhaW5lckVkZ2UucHJvdG90eXBlLmlzV2Vhayk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF0aXZlU25hcHNob3RQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZl
U25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGJ1dHRvblRvb2x0aXApOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLmJ1dHRv
bkNsaWNrZWQuZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5idXR0b25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5n
ZXQgdHJlZUl0ZW1UaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQ
cm9maWxlVHlwZS5wcm90b3R5cGUuZ2V0IGRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5jcmVhdGVUZW1wb3JhcnlQ
cm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBl
LnByb3RvdHlwZS5jcmVhdGVQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVT
bmFwc2hvdFByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBz
aG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUuY3JlYXRlVmlldyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNuYXBzaG90
VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhl
YWRlci5wcm90b3R5cGUuc25hcHNob3RDb25zdHJ1Y3Rvck5hbWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlci5wcm90b3R5cGUuX3Rha2VOYXRpdmVT
bmFwc2hvdCk6IGJ1aWxkIGEgZGF0YXN0cnVjdHVyZQorICAgICAgICByZXNlbWJsaW5nIG9uZSB1
c2VkIGZvciBKUyBoZWFwIHNuYXBzaG90cyBidXQgcG9wdWxhdGVkIHdpdGggdGhlIGRhdGEgZnJv
bSB0aGUgbmF0aXZlIHNuYXBob3QuCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNu
YXBzaG90Vmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Vmll
dy5wcm90b3R5cGUuZ2V0IHByb2ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdGl2ZU1l
bW9yeVByb2ZpbGVUeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9m
aWxlVHlwZS5wcm90b3R5cGUuZ2V0IGJ1dHRvblRvb2x0aXApOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisK
IDIwMTMtMDEtMjEgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUkVHUkVTU0lPTl0gRm9yY2VkIDp2aXNpdGVkIHBzZXVk
b2NsYXNzIGhhcyBubyBlZmZlY3Qgb24gQSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGE3
MDBkZDY1N2E4NGZhMzNiODhiMzA4MzU2NDIwZWJmMzVhZTUzMzkuLjA4ODk5MDQ1OTRmNWFjZDE3
ZDljMDcwMGQ4ZTdhMjgzMDI2YjdjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUzODMsNiArNTM4
Myw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RXb3Jr
ZXJEaXNwYXRjaGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0pTSGVh
cFNuYXBzaG90LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZUhl
YXBHcmFwaC5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVIZWFw
U25hcHNob3QuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVt
b3J5U25hcHNob3RWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVEYXRhR3JpZFRyZWUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZmlsZXNQYW5lbC5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDJjZTg1NmI0OGFkNGU1NmIwOGE4YWRhOGY0YjkxNDZmY2FjNTYzMGUu
LjU1NGEzNzg1ZjYyYWU5MTRjZTAxZGQ2YWEyY2U0MmEwNzE2NWQ5YWUgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NzI2MSw2ICs3NzI2MSwx
MCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXGZyb250LWVuZFxOYXRpdmVIZWFwU25hcHNob3QuanMiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJv
bnQtZW5kXG5hdGl2ZU1lbW9yeVByb2ZpbGVyLmNzcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCAzZGQ3
MjI5NmYzZTNmMDZhOGMwMmZmYjMyYWZjNDljZGY2NjgxMTZlLi45MzRmMzBiMzA3NDIyN2M3ZGZi
NzQ4YzliZmE2OWVjMDEzYTA1ODU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Nv
bXBpbGUtZnJvbnQtZW5kLnB5CkBAIC0zMzksNiArMzM5LDcgQEAgbW9kdWxlcyA9IFsKICAgICAg
ICAgICAgICJIZWFwU25hcHNob3RXb3JrZXJEaXNwYXRjaGVyLmpzIiwKICAgICAgICAgICAgICJK
U0hlYXBTbmFwc2hvdC5qcyIsCiAgICAgICAgICAgICAiTmF0aXZlSGVhcEdyYXBoLmpzIiwKKyAg
ICAgICAgICAgICJOYXRpdmVIZWFwU25hcHNob3QuanMiLAogICAgICAgICAgICAgIk5hdGl2ZU1l
bW9yeVNuYXBzaG90Vmlldy5qcyIsCiAgICAgICAgICAgICAiUHJvZmlsZURhdGFHcmlkVHJlZS5q
cyIsCiAgICAgICAgICAgICAiUHJvZmlsZXNQYW5lbC5qcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzCmluZGV4IDI0ODdkOGZiMDhi
MWZlZjI0YjFkYWNjNzdhNTYzZjA0YzQ3MmEzZTAuLjc1M2VjNWY0OTMzNzEyNjE0ZGY3MmY0YzE1
YzNlYWI1MTY5MDgyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVhcFNuYXBzaG90LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVhcFNuYXBzaG90LmpzCkBAIC00OTMsNiArNDkzLDEwIEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3QgPSBmdW5jdGlvbihwcm9maWxlKQogICAgIHRoaXMuX21ldGFOb2RlID0gcHJv
ZmlsZS5zbmFwc2hvdC5tZXRhOwogICAgIHRoaXMuX3N0cmluZ3MgPSBwcm9maWxlLnN0cmluZ3M7
CiAKKyAgICB0aGlzLl9yb290Tm9kZUluZGV4ID0gMDsKKyAgICBpZiAocHJvZmlsZS5zbmFwc2hv
dC5yb290X2luZGV4KQorICAgICAgICB0aGlzLl9yb290Tm9kZUluZGV4ID0gcHJvZmlsZS5zbmFw
c2hvdC5yb290X2luZGV4OworCiAgICAgdGhpcy5fc25hcHNob3REaWZmcyA9IHt9OwogICAgIHRo
aXMuX2FnZ3JlZ2F0ZXNGb3JEaWZmID0gbnVsbDsKIApAQCAtNTMyLDcgKzUzNiw2IEBAIFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3QucHJvdG90eXBlID0gewogICAgIF9pbml0OiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB2YXIgbWV0YSA9IHRoaXMuX21ldGFOb2RlOwotICAgICAgICB0aGlz
Ll9yb290Tm9kZUluZGV4ID0gMDsKIAogICAgICAgICB0aGlzLl9ub2RlVHlwZU9mZnNldCA9IG1l
dGEubm9kZV9maWVsZHMuaW5kZXhPZigidHlwZSIpOwogICAgICAgICB0aGlzLl9ub2RlTmFtZU9m
ZnNldCA9IG1ldGEubm9kZV9maWVsZHMuaW5kZXhPZigibmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4
IDdjNzI5NTYzNDBkNjYxODMzOWNkNjI2ODhhOWVkNGVmOTE2MjgyMWIuLmMzMzBhZmExNjZlZTE3
ZWMxNzg3MzAwZDdhYWYxM2Q2YzY2NDczNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTg1OSwxMiArODU5
LDIyIEBAIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB0aGlzLl9zZXR1cFdvcmtlcigpOwogICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxl
bWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZ1x1MjAyNiIpOwog
ICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC53YWl0ID0gdHJ1ZTsKLSAgICAgICAgICAg
IFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgICAgIHRo
aXMuc3RhcnRTbmFwc2hvdFRyYW5zZmVyKCk7CiAgICAgICAgIH0KICAgICAgICAgdmFyIGxvYWRl
clByb3h5ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyUHJveHl9
ICovICh0aGlzLl9yZWNlaXZlcik7CiAgICAgICAgIGxvYWRlclByb3h5LmFkZENvbnN1bWVyKGNh
bGxiYWNrKTsKICAgICB9LAogCisgICAgc3RhcnRTbmFwc2hvdFRyYW5zZmVyOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7
CisgICAgfSwKKworICAgIHNuYXBzaG90Q29uc3RydWN0b3JOYW1lOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gIkpTSGVhcFNuYXBzaG90IjsKKyAgICB9LAorCiAgICAgX3NldHVw
V29ya2VyOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBzZXRQcm9maWxlV2Fp
dChldmVudCkKQEAgLTg3Myw3ICs4ODMsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFdvcmtlcigpOwogICAgICAgICB3b3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcigid2FpdCIsIHNldFByb2ZpbGVXYWl0LCB0aGlzKTsKLSAgICAgICAgdmFyIGxvYWRl
clByb3h5ID0gd29ya2VyLmNyZWF0ZUxvYWRlcigiSlNIZWFwU25hcHNob3QiKTsKKyAgICAgICAg
dmFyIGxvYWRlclByb3h5ID0gd29ya2VyLmNyZWF0ZUxvYWRlcih0aGlzLnNuYXBzaG90Q29uc3Ry
dWN0b3JOYW1lKCkpOwogICAgICAgICBsb2FkZXJQcm94eS5hZGRDb25zdW1lcih0aGlzLl9zbmFw
c2hvdFJlY2VpdmVkLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9yZWNlaXZlciA9IGxvYWRl
clByb3h5OwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlYXBTbmFwc2hvdFdvcmtlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90V29ya2VyLmpzCmluZGV4IDE4OGViMTU1OGIxNjRiNTEzZGJj
ZmJjNzVhNWQwNWJlN2EzM2Q4MGEuLmMyOWQyNjY2YjQ4OTA3ODIwZGE5ODhiMjBiYzRmMjI1ZjA0
NWE4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90V29ya2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90V29ya2VyLmpzCkBAIC0zNSw2ICszNSw3IEBAIGltcG9ydFNjcmlwdHMo
IkhlYXBTbmFwc2hvdC5qcyIpOwogaW1wb3J0U2NyaXB0cygiSGVhcFNuYXBzaG90TG9hZGVyLmpz
Iik7CiBpbXBvcnRTY3JpcHRzKCJIZWFwU25hcHNob3RXb3JrZXJEaXNwYXRjaGVyLmpzIik7CiBp
bXBvcnRTY3JpcHRzKCJKU0hlYXBTbmFwc2hvdC5qcyIpOworaW1wb3J0U2NyaXB0cygiTmF0aXZl
SGVhcFNuYXBzaG90LmpzIik7CiBpbXBvcnRTY3JpcHRzKCJGaWxlVXRpbHMuanMiKTsKIGltcG9y
dFNjcmlwdHMoInV0aWxpdGllcy5qcyIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZUhlYXBTbmFwc2hvdC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlSGVhcFNuYXBzaG90LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgw
ODNmODI3ZTA4ZjBhNjhkZWEzNmI3NWJmODM2YWJhOGY1YWRmZjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZUhlYXBTbmFwc2hvdC5q
cwpAQCAtMCwwICsxLDI2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdH0KKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFw
c2hvdCA9IGZ1bmN0aW9uKHByb2ZpbGUpCit7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dC5jYWxsKHRoaXMsIHByb2ZpbGUpOworfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBz
aG90LnByb3RvdHlwZSA9IHsKKyAgICBjcmVhdGVOb2RlOiBmdW5jdGlvbihub2RlSW5kZXgpCisg
ICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RO
b2RlKHRoaXMsIG5vZGVJbmRleCk7CisgICAgfSwKKworICAgIGNyZWF0ZUVkZ2U6IGZ1bmN0aW9u
KGVkZ2VzLCBlZGdlSW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5OYXRpdmVIZWFwU25hcHNob3RFZGdlKHRoaXMsIGVkZ2VzLCBlZGdlSW5kZXgpOworICAgIH0s
CisKKyAgICBjcmVhdGVSZXRhaW5pbmdFZGdlOiBmdW5jdGlvbihyZXRhaW5lZE5vZGVJbmRleCwg
cmV0YWluZXJJbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5h
dGl2ZUhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZSh0aGlzLCByZXRhaW5lZE5vZGVJbmRleCwgcmV0
YWluZXJJbmRleCk7CisgICAgfSwKKworICAgIF9tYXJrSW52aXNpYmxlRWRnZXM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgfSwKKworICAgIF9jYWxjdWxhdGVGbGFnczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICB9LAorCisgICAgY2FuSGF2ZURpc3RhbmNlT25lOiBmdW5jdGlvbihub2RlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIHVzZXJPYmplY3RzTWFwQW5k
RmxhZzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSwKKwor
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdC5wcm90b3R5cGUKK307CisK
Ky8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdE5vZGV9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3R9IHNu
YXBzaG90CisgKiBAcGFyYW0ge251bWJlcj19IG5vZGVJbmRleAorICovCitXZWJJbnNwZWN0b3Iu
TmF0aXZlSGVhcFNuYXBzaG90Tm9kZSA9IGZ1bmN0aW9uKHNuYXBzaG90LCBub2RlSW5kZXgpCit7
CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGUuY2FsbCh0aGlzLCBzbmFwc2hvdCwg
bm9kZUluZGV4KQorfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90Tm9kZS5wcm90
b3R5cGUgPSB7CisgICAgY2FuQmVRdWVyaWVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfSwKKworICAgIGlzVXNlck9iamVjdDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGNsYXNzTmFtZTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBzaG90Ll9zdHJpbmdzW3RoaXMu
Y2xhc3NJbmRleCgpXTsKKyAgICB9LAorCisgICAgY2xhc3NJbmRleDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHNuYXBzaG90ID0gdGhpcy5fc25hcHNob3Q7CisgICAgICAgIHJldHVy
biBzbmFwc2hvdC5fbm9kZXNbdGhpcy5ub2RlSW5kZXggKyBzbmFwc2hvdC5fbm9kZU5hbWVPZmZz
ZXRdOworICAgIH0sCisKKyAgICBpZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMubm9kZUluZGV4OworICAgIH0sCisKKyAgICBuYW1lOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB2YXIgbmFtZSA9IHRoaXMuX3NuYXBzaG90Ll9zdHJpbmdzW3RoaXMuX3NuYXBzaG90
Ll9ub2Rlc1t0aGlzLm5vZGVJbmRleCArIDJdXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuY2xhc3NO
YW1lKCkgKyAiOiAiICsgbmFtZTsKKyAgICB9LAorCisgICAgaXNIaWRkZW46IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgaXNTeW50aGV0aWM6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAg
aXNXaW5kb3c6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
LAorCisgICAgaXNEZXRhY2hlZERPTVRyZWVzUm9vdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBpc0RldGFjaGVkRE9NVHJlZTogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBfX3Byb3Rv
X186IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3ROb2RlLnByb3RvdHlwZQorfTsKKworLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RWRn
ZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBTbmFwc2hvdH0gc25hcHNob3QK
KyAqIEBwYXJhbSB7QXJyYXkuPG51bWJlcj59IGVkZ2VzCisgKiBAcGFyYW0ge251bWJlcj19IGVk
Z2VJbmRleAorICovCitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZSA9IGZ1bmN0
aW9uKHNuYXBzaG90LCBlZGdlcywgZWRnZUluZGV4KQoreworICAgIFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RFZGdlLmNhbGwodGhpcywgc25hcHNob3QsIGVkZ2VzLCBlZGdlSW5kZXgpOworfQor
CitXZWJJbnNwZWN0b3IuTmF0aXZlSGVhcFNuYXBzaG90RWRnZS5wcm90b3R5cGUgPSB7CisgICAg
Y2xvbmU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
Lk5hdGl2ZUhlYXBTbmFwc2hvdEVkZ2UodGhpcy5fc25hcHNob3QsIHRoaXMuX2VkZ2VzLCB0aGlz
LmVkZ2VJbmRleCk7CisgICAgfSwKKworICAgIGhhc1N0cmluZ05hbWU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBpc0VsZW1lbnQ6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgaXNIaWRk
ZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisg
ICAgaXNXZWFrOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fSwKKworICAgIGlzSW50ZXJuYWw6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9LAorCisgICAgaXNJbnZpc2libGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgaXNTaG9ydGN1dDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBuYW1lOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc25hcHNob3QuX3N0cmluZ3NbdGhpcy5f
bmFtZU9ySW5kZXgoKV07CisgICAgfSwKKworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gICJOYXRpdmVIZWFwU25hcHNob3RFZGdlOiAiICsgdGhpcy5uYW1l
KCk7CisgICAgfSwKKworICAgIF9uYW1lT3JJbmRleDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2VkZ2VzLml0ZW0odGhpcy5lZGdlSW5kZXggKyB0aGlzLl9zbmFwc2hv
dC5fZWRnZU5hbWVPZmZzZXQpOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RFZGdlLnByb3RvdHlwZQorfTsKKworCisvKioKKyAqIEBjb25zdHJ1Y3Rv
cgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5lckVkZ2V9Cisg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3R9IHNuYXBzaG90CisgKi8K
K1dlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25hcHNob3RSZXRhaW5lckVkZ2UgPSBmdW5jdGlvbihz
bmFwc2hvdCwgcmV0YWluZWROb2RlSW5kZXgsIHJldGFpbmVySW5kZXgpCit7CisgICAgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZS5jYWxsKHRoaXMsIHNuYXBzaG90LCByZXRh
aW5lZE5vZGVJbmRleCwgcmV0YWluZXJJbmRleCk7Cit9CisKK1dlYkluc3BlY3Rvci5OYXRpdmVI
ZWFwU25hcHNob3RSZXRhaW5lckVkZ2UucHJvdG90eXBlID0geworICAgIGNsb25lOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5OYXRpdmVIZWFwU25h
cHNob3RSZXRhaW5lckVkZ2UodGhpcy5fc25hcHNob3QsIHRoaXMuX3JldGFpbmVkTm9kZUluZGV4
LCB0aGlzLnJldGFpbmVySW5kZXgoKSk7CisgICAgfSwKKworICAgIGlzRWxlbWVudDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VkZ2UoKS5pc0VsZW1lbnQoKTsKKyAg
ICB9LAorCisgICAgaXNIaWRkZW46IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9lZGdlKCkuaXNIaWRkZW4oKTsKKyAgICB9LAorCisgICAgaXNJbnRlcm5hbDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VkZ2UoKS5pc0ludGVybmFsKCk7Cisg
ICAgfSwKKworICAgIGlzSW52aXNpYmxlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fZWRnZSgpLmlzSW52aXNpYmxlKCk7CisgICAgfSwKKworICAgIGlzU2hvcnRjdXQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lZGdlKCkuaXNTaG9ydGN1
dCgpOworICAgIH0sCisKKyAgICBpc1dlYWs6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9lZGdlKCkuaXNXZWFrKCk7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzogV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFJldGFpbmVyRWRnZS5wcm90b3R5cGUKK30KKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlTbmFw
c2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1l
bW9yeVNuYXBzaG90Vmlldy5qcwppbmRleCBkNmZjODllZTJmMDBhNzNhZDJmNjIyODA0ZTM3YzRl
MTcyMDFkMGVkLi4wMTg1ZGJlODY5YjExMGRiNmUwNTk2ZGRiNWRlOTM0YzMzZDJhYzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdGl2ZU1lbW9yeVNu
YXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05h
dGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcwpAQCAtNDA1LDIyICs0MDUsMjM2IEBAIFdlYkluc3Bl
Y3Rvci5OYXRpdmVIZWFwR3JhcGhEYXRhR3JpZE5vZGUucHJvdG90eXBlID0gewogfQogCiAKKwor
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Qcm9maWxl
VHlwZX0KKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUgPSBmdW5j
dGlvbigpCit7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLmNhbGwodGhpcywgV2ViSW5z
cGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlRha2UgTmF0aXZlIEhlYXAgU25hcHNob3QiKSk7CisgICAgdGhpcy5fbmV4dFByb2Zp
bGVVaWQgPSAxOworfQorCitXZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlVHlwZS5U
eXBlSWQgPSAiTkFUSVZFX1NOQVBTSE9UIjsKKworV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90
UHJvZmlsZVR5cGUucHJvdG90eXBlID0geworICAgIGdldCBidXR0b25Ub29sdGlwKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhcHR1cmUgbmF0aXZlIGhl
YXAgZ3JhcGguIik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAgICAg
KiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9u
KHByb2ZpbGVzUGFuZWwpCisgICAgeworICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuTmF0aXZlU25hcHNob3RQcm9maWxlSGVhZGVyKHRoaXMsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU25hcHNob3QgJWQiLCB0aGlzLl9uZXh0UHJvZmlsZVVpZCksIHRoaXMuX25l
eHRQcm9maWxlVWlkKTsKKyAgICAgICAgKyt0aGlzLl9uZXh0UHJvZmlsZVVpZDsKKyAgICAgICAg
cHJvZmlsZUhlYWRlci5pc1RlbXBvcmFyeSA9IHRydWU7CisgICAgICAgIHByb2ZpbGVzUGFuZWwu
YWRkUHJvZmlsZUhlYWRlcihwcm9maWxlSGVhZGVyKTsKKyAgICAgICAgLyoqCisgICAgICAgICAq
IEBwYXJhbSB7P3N0cmluZ30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHs/TWVtb3J5QWdlbnQu
TWVtb3J5QmxvY2t9IG1lbW9yeUJsb2NrCisgICAgICAgICAqIEBwYXJhbSB7P09iamVjdD19IGdy
YXBoCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBkaWRSZWNlaXZlTWVtb3J5U25hcHNo
b3QoZXJyb3IsIG1lbW9yeUJsb2NrLCBncmFwaCkKKyAgICAgICAgeworICAgICAgICAgICAgcHJv
ZmlsZUhlYWRlci5fZ3JhcGggPSBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZUhlYXBHcmFwaChncmFw
aCk7CisgICAgICAgICAgICBwcm9maWxlSGVhZGVyLmlzVGVtcG9yYXJ5ID0gZmFsc2U7CisgICAg
ICAgICAgICBwcm9maWxlSGVhZGVyLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gTnVtYmVyLmJ5
dGVzVG9TdHJpbmcoLyoqIEB0eXBle251bWJlcn0gKi8obWVtb3J5QmxvY2suc2l6ZSkpOworICAg
ICAgICB9CisgICAgICAgIE1lbW9yeUFnZW50LmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24o
dHJ1ZSwgZGlkUmVjZWl2ZU1lbW9yeVNuYXBzaG90LmJpbmQodGhpcykpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfSwKKworICAgIGdldCB0cmVlSXRlbVRpdGxlKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5BVElWRSBTTkFQU0hPVCIpOworICAg
IH0sCisKKyAgICBnZXQgZGVzY3JpcHRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiTmF0aXZlIG1lbW9yeSBzbmFwc2hvdCBwcm9maWxlcyBzaG93IG5h
dGl2ZSBoZWFwIGdyYXBoLiIpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUK
KyAgICAgKiBAcGFyYW0ge3N0cmluZz19IHRpdGxlCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlByb2ZpbGVIZWFkZXJ9CisgICAgICovCisgICAgY3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTog
ZnVuY3Rpb24odGl0bGUpCisgICAgeworICAgICAgICB0aXRsZSA9IHRpdGxlIHx8IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU25hcHNob3R0aW5nXHUyMDI2Iik7CisgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlcih0aGlzLCB0aXRsZSk7Cisg
ICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJhbSB7UHJvZmls
ZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlByb2ZpbGVIZWFkZXJ9CisgICAgICovCisgICAgY3JlYXRlUHJvZmlsZTogZnVuY3Rpb24o
cHJvZmlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLk5hdGl2ZVNu
YXBzaG90UHJvZmlsZUhlYWRlcih0aGlzLCBwcm9maWxlLnRpdGxlLCAtMSk7CisgICAgfSwKKwor
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZQorfQorCisK
Ky8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkhlYXBQcm9m
aWxlSGVhZGVyfQorICogQHBhcmFtIHshV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmls
ZVR5cGV9IHR5cGUKKyAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICogQHBhcmFtIHtudW1iZXI9
fSB1aWQKKyAqLworV2ViSW5zcGVjdG9yLk5hdGl2ZVNuYXBzaG90UHJvZmlsZUhlYWRlciA9IGZ1
bmN0aW9uKHR5cGUsIHRpdGxlLCB1aWQpCit7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxl
SGVhZGVyLmNhbGwodGhpcywgdHlwZSwgdGl0bGUsIHVpZCwgMCk7Cit9CisKK1dlYkluc3BlY3Rv
ci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAg
ICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9
IHByb2ZpbGVzUGFuZWwKKyAgICAgKi8KKyAgICBjcmVhdGVWaWV3OiBmdW5jdGlvbihwcm9maWxl
c1BhbmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlSGVh
cFNuYXBzaG90Vmlldyhwcm9maWxlc1BhbmVsLCB0aGlzKTsKKyAgICB9LAorCisgICAgc3RhcnRT
bmFwc2hvdFRyYW5zZmVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBzZXRUaW1lb3V0KHRo
aXMuX3Rha2VOYXRpdmVTbmFwc2hvdC5iaW5kKHRoaXMpLCAwKTsKKyAgICB9LAorCisgICAgc25h
cHNob3RDb25zdHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAi
TmF0aXZlSGVhcFNuYXBzaG90IjsKKyAgICB9LAorCisgICAgX3Rha2VOYXRpdmVTbmFwc2hvdDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmlu
Z30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHs/TWVtb3J5QWdlbnQuTWVtb3J5QmxvY2t9IG1l
bW9yeUJsb2NrCisgICAgICAgICAqIEBwYXJhbSB7P09iamVjdD19IGdyYXBoCisgICAgICAgICAq
LworICAgICAgICBmdW5jdGlvbiBkaWRSZWNlaXZlTWVtb3J5U25hcHNob3QoZXJyb3IsIG1lbW9y
eUJsb2NrLCBncmFwaCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1ldGEgPSB7CisgICAg
ICAgICAgICAgICJub2RlX2ZpZWxkcyI6IFsKKyAgICAgICAgICAgICAgICAidHlwZSIsCisgICAg
ICAgICAgICAgICAgIm5hbWUiLAorICAgICAgICAgICAgICAgICJpZCIsCisgICAgICAgICAgICAg
ICAgInNlbGZfc2l6ZSIsCisgICAgICAgICAgICAgICAgImVkZ2VfY291bnQiCisgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICJub2RlX3R5cGVzIjogWworICAgICAgICAgICAgICAgIFsK
KyAgICAgICAgICAgICAgICAgICJoaWRkZW4iLAorICAgICAgICAgICAgICAgICAgImFycmF5IiwK
KyAgICAgICAgICAgICAgICAgICJzdHJpbmciLAorICAgICAgICAgICAgICAgICAgIm9iamVjdCIs
CisgICAgICAgICAgICAgICAgICAiY29kZSIsCisgICAgICAgICAgICAgICAgICAiY2xvc3VyZSIs
CisgICAgICAgICAgICAgICAgICAicmVnZXhwIiwKKyAgICAgICAgICAgICAgICAgICJudW1iZXIi
LAorICAgICAgICAgICAgICAgICAgIm5hdGl2ZSIsCisgICAgICAgICAgICAgICAgICAic3ludGhl
dGljIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInN0cmluZyIsCisgICAg
ICAgICAgICAgICAgIm51bWJlciIsCisgICAgICAgICAgICAgICAgIm51bWJlciIsCisgICAgICAg
ICAgICAgICAgIm51bWJlciIsCisgICAgICAgICAgICAgICAgIm51bWJlciIsCisgICAgICAgICAg
ICAgICAgIm51bWJlciIKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgImVkZ2VfZmll
bGRzIjogWworICAgICAgICAgICAgICAgICJ0eXBlIiwKKyAgICAgICAgICAgICAgICAibmFtZV9v
cl9pbmRleCIsCisgICAgICAgICAgICAgICAgInRvX25vZGUiCisgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICJlZGdlX3R5cGVzIjogWworICAgICAgICAgICAgICAgIFsKKyAgICAgICAg
ICAgICAgICAgICJjb250ZXh0IiwKKyAgICAgICAgICAgICAgICAgICJlbGVtZW50IiwKKyAgICAg
ICAgICAgICAgICAgICJwcm9wZXJ0eSIsCisgICAgICAgICAgICAgICAgICAiaW50ZXJuYWwiLAor
ICAgICAgICAgICAgICAgICAgImhpZGRlbiIsCisgICAgICAgICAgICAgICAgICAic2hvcnRjdXQi
LAorICAgICAgICAgICAgICAgICAgIndlYWsiCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAic3RyaW5nX29yX251bWJlciIsCisgICAgICAgICAgICAgICAgIm5vZGUiCisgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB2YXIgaGVhcFNuYXBzaG90
ID0geworICAgICAgICAgICAgICAgICJzbmFwc2hvdCI6IHsKKyAgICAgICAgICAgICAgICAgICAg
Im1ldGEiOiBtZXRhLAorICAgICAgICAgICAgICAgICAgICBub2RlX2NvdW50OiBncmFwaC5ub2Rl
cy5sZW5ndGggLyA1LAorICAgICAgICAgICAgICAgICAgICBlZGdlX2NvdW50OiBncmFwaC5lZGdl
cy5sZW5ndGggLyAzLAorICAgICAgICAgICAgICAgICAgICByb290X2luZGV4OiBncmFwaC5ub2Rl
cy5sZW5ndGggLSA1CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBub2Rlczog
Z3JhcGgubm9kZXMsCisgICAgICAgICAgICAgICAgZWRnZXM6IGdyYXBoLmVkZ2VzLAorICAgICAg
ICAgICAgICAgIHN0cmluZ3M6IGdyYXBoLnN0cmluZ3MKKyAgICAgICAgICAgIH07CisKKyAgICAg
ICAgICAgIHZhciBjaHVuayA9IEpTT04uc3RyaW5naWZ5KGhlYXBTbmFwc2hvdCk7CisgICAgICAg
ICAgICB0aGlzLnRyYW5zZmVyQ2h1bmsoY2h1bmspOworICAgICAgICAgICAgdGhpcy5maW5pc2hI
ZWFwU25hcHNob3QoKTsKKyAgICAgICAgfQorICAgICAgICBNZW1vcnlBZ2VudC5nZXRQcm9jZXNz
TWVtb3J5RGlzdHJpYnV0aW9uKHRydWUsIGRpZFJlY2VpdmVNZW1vcnlTbmFwc2hvdC5iaW5kKHRo
aXMpKTsKKworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5IZWFwUHJvZmls
ZUhlYWRlci5wcm90b3R5cGUKK30KKworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3fQorICovCitXZWJJbnNwZWN0b3IuTmF0
aXZlSGVhcFNuYXBzaG90VmlldyA9IGZ1bmN0aW9uKHBhcmVudCwgcHJvZmlsZSkKK3sKKyAgICB0
aGlzLl9wcm9maWxlID0gcHJvZmlsZTsKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Vmll
dy5jYWxsKHRoaXMsIHBhcmVudCwgcHJvZmlsZSk7Cit9CisKKworV2ViSW5zcGVjdG9yLk5hdGl2
ZUhlYXBTbmFwc2hvdFZpZXcucHJvdG90eXBlID0geworICAgIGdldCBwcm9maWxlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9maWxlOworICAgIH0sCisKKyAgICBfX3Byb3RvX186
IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RWaWV3LnByb3RvdHlwZQorfTsKKworCiAvKioKICAq
IEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Qcm9maWxlVHlwZX0KICAq
LwogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlID0gZnVuY3Rpb24oKQogewot
ICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5OYXRp
dmVNZW1vcnlQcm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGFrZSBO
YXRpdmUgTWVtb3J5IFNuYXBzaG90IikpOworICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5OYXRpdmVNZW1vcnlQcm9maWxlVHlwZS5UeXBlSWQsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQ2FwdHVyZSBOYXRpdmUgTWVtb3J5IERpc3RyaWJ1dGlvbiIp
KTsKICAgICB0aGlzLl9uZXh0UHJvZmlsZVVpZCA9IDE7CiB9CiAKLVdlYkluc3BlY3Rvci5OYXRp
dmVNZW1vcnlQcm9maWxlVHlwZS5UeXBlSWQgPSAiTkFUSVZFX01FTU9SWSI7CitXZWJJbnNwZWN0
b3IuTmF0aXZlTWVtb3J5UHJvZmlsZVR5cGUuVHlwZUlkID0gIk5BVElWRV9NRU1PUllfRElTVFJJ
QlVUSU9OIjsKIAogV2ViSW5zcGVjdG9yLk5hdGl2ZU1lbW9yeVByb2ZpbGVUeXBlLnByb3RvdHlw
ZSA9IHsKICAgICBnZXQgYnV0dG9uVG9vbHRpcCgpCiAgICAgewotICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJUYWtlIG5hdGl2ZSBtZW1vcnkgc25hcHNob3QuIik7CisgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhcHR1cmUgbmF0aXZlIG1lbW9yeSBk
aXN0cmlidXRpb24uIik7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGY1NDM2NmEzNjdl
MzdkNGUzZTcwYzliYWFhNmVkNjY4OWRlZGIxZGUuLmQ3MzRlMjVmY2YzYTExMTQxMTZmM2UwNmVl
ODNiZDYzNGE2MjcyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTI2MSw4ICsyNjEsMTAgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmls
ZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlKCkpOwogICAgIGlm
IChDYXBhYmlsaXRpZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkKICAgICAgICAgdGhpcy5fcmVnaXN0
ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlKCkp
OwotICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5uYXRpdmVNZW1vcnlT
bmFwc2hvdHMuaXNFbmFibGVkKCkpCisgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmltZW50c1Nl
dHRpbmdzLm5hdGl2ZU1lbW9yeVNuYXBzaG90cy5pc0VuYWJsZWQoKSkgewogICAgICAgICB0aGlz
Ll9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5UHJvZmls
ZVR5cGUoKSk7CisgICAgICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3Bl
Y3Rvci5OYXRpdmVTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOworICAgIH0KICAgICBpZiAoV2ViSW5z
cGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuY2FudmFzSW5zcGVjdGlvbi5pc0VuYWJsZWQoKSkK
ICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNhbnZh
c1Byb2ZpbGVUeXBlKCkpOwogCkBAIC0xMzgyLDYgKzEzODQsNyBAQCBpbXBvcnRTY3JpcHQoIkhl
YXBTbmFwc2hvdFZpZXcuanMiKTsKIGltcG9ydFNjcmlwdCgiSGVhcFNuYXBzaG90V29ya2VyRGlz
cGF0Y2hlci5qcyIpOwogaW1wb3J0U2NyaXB0KCJKU0hlYXBTbmFwc2hvdC5qcyIpOwogaW1wb3J0
U2NyaXB0KCJOYXRpdmVIZWFwR3JhcGguanMiKTsKK2ltcG9ydFNjcmlwdCgiTmF0aXZlSGVhcFNu
YXBzaG90LmpzIik7CiBpbXBvcnRTY3JpcHQoIk5hdGl2ZU1lbW9yeVNuYXBzaG90Vmlldy5qcyIp
OwogaW1wb3J0U2NyaXB0KCJQcm9maWxlTGF1bmNoZXJWaWV3LmpzIik7CiBpbXBvcnRTY3JpcHQo
IlRvcERvd25Qcm9maWxlRGF0YUdyaWRUcmVlLmpzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggZTFiNjJjYjUxN2NiNzRkODVkMDZiODMw
NTJhNjhkNGIwNmNiZjZmOC4uZTFiMGIzMDE5MGFlNzM4YWFlNzAyYmFhYzU5YTcwZTYxNzMyY2Q2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpA
QCAtMTE0LDYgKzExNCw3IEBACiAgICAgPGZpbGU+TWV0cmljc1NpZGViYXJQYW5lLmpzPC9maWxl
PgogICAgIDxmaWxlPk5hdGl2ZUJyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM8L2ZpbGU+CiAgICAg
PGZpbGU+TmF0aXZlSGVhcEdyYXBoLmpzPC9maWxlPgorICAgIDxmaWxlPk5hdGl2ZUhlYXBTbmFw
c2hvdC5qczwvZmlsZT4KICAgICA8ZmlsZT5OYXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanM8L2Zp
bGU+CiAgICAgPGZpbGU+TmF2aWdhdG9yT3ZlcmxheUNvbnRyb2xsZXIuanM8L2ZpbGU+CiAgICAg
PGZpbGU+TmF2aWdhdG9yVmlldy5qczwvZmlsZT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>