<?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>86097</bug_id>
          
          <creation_ts>2012-05-10 07:20:25 -0700</creation_ts>
          <short_desc>Web Inspector: load heap snapshot implementation.</short_desc>
          <delta_ts>2012-05-11 06:52:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620565</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-10 07:20:25 -0700</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620574</commentid>
    <comment_count>1</comment_count>
      <attachid>141168</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-10 07:38:15 -0700</bug_when>
    <thetext>Created attachment 141168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621442</commentid>
    <comment_count>2</comment_count>
      <attachid>141168</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-11 02:52:56 -0700</bug_when>
    <thetext>Comment on attachment 141168
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Please provide a brief description of the change.

&gt; Source/WebCore/inspector/front-end/CSSSelectorProfileView.js:361
&gt; +        if (title === undefined)

if (!title) ?

&gt; Source/WebCore/inspector/front-end/HeapSnapshotView.js:693
&gt; +            if (profile.uid &lt; 0)

Let&apos;s make the profile data source explicit and skip here profiles which have been loaded from file.

&gt; Source/WebCore/inspector/front-end/HeapSnapshotView.js:845
&gt; +            this.sidebarElement.subtitle = WebInspector.UIString(&quot;Saving\u2026 %d\%&quot;, Math.floor(this._savedChunksCount * 10000 / this._totalNumberOfChunks) / 100);

Can we use Number.toFixed(2) instead to get desired formatting?

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:248
&gt; +        if (!file.name.endsWith(&quot;.whs&quot;)) {

probably just .heapsnapshot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621495</commentid>
    <comment_count>3</comment_count>
      <attachid>141380</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-11 04:59:36 -0700</bug_when>
    <thetext>Created attachment 141380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621496</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-11 05:00:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 141168 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141168&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; Please provide a brief description of the change.

done

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/CSSSelectorProfileView.js:361
&gt; &gt; +        if (title === undefined)
&gt; 
&gt; if (!title) ?

done

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/HeapSnapshotView.js:693
&gt; &gt; +            if (profile.uid &lt; 0)

done

&gt; 
&gt; Let&apos;s make the profile data source explicit and skip here profiles which have been loaded from file.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/HeapSnapshotView.js:845
&gt; &gt; +            this.sidebarElement.subtitle = WebInspector.UIString(&quot;Saving\u2026 %d\%&quot;, Math.floor(this._savedChunksCount * 10000 / this._totalNumberOfChunks) / 100);
&gt; 
&gt; Can we use Number.toFixed(2) instead to get desired formatting?

done

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:248
&gt; &gt; +        if (!file.name.endsWith(&quot;.whs&quot;)) {
&gt; 
&gt; probably just .heapsnapshot?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621553</commentid>
    <comment_count>5</comment_count>
      <attachid>141380</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-11 06:12:07 -0700</bug_when>
    <thetext>Comment on attachment 141380
Patch

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

&gt; Source/WebCore/inspector/front-end/HeapSnapshotView.js:691
&gt; +        if (this.profile._fromFile)

Can you make _fromFile public and put it on the base profile header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621599</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-11 06:52:47 -0700</bug_when>
    <thetext>Committed r116764: &lt;http://trac.webkit.org/changeset/116764&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141168</attachid>
            <date>2012-05-10 07:38:15 -0700</date>
            <delta_ts>2012-05-11 04:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86097-20120510183813.patch</filename>
            <type>text/plain</type>
            <size>17927</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIwNTFkNjQ1ZDdkOTYy
MDQ4MmU4Njc2MmQxMmY0YzgxYmRiYTFiNC4uNDkzYTE1NDg1MzU0ODg0NTY4NGRkZmNmMzRlNDRh
Y2NlZTUyNTQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA1LTEwICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBsb2FkIGhlYXAgc25hcHNob3QgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTU2VsZWN0b3JQcm9m
aWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBl
LnByb3RvdHlwZS5jcmVhdGVUZW1wb3JhcnlQcm9maWxlKTogY3VzdG9tIHRpdGxlIGZvciB0ZW1w
b3JhcnkgcHJvZmlsZXMgd2FzIHN1cHBvcnRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90Vmlldy5wcm90b3R5cGUuX3VwZGF0ZUZpbHRlck9wdGlvbnMpOiBmaWx0ZXIgb3V0IHByb2Zp
bGVzIHRoYXQgd2VyZSBsb2FkZWQgZnJvbSBmaWxlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZS5jcmVhdGVUZW1wb3JhcnlQcm9maWxlKTog
Y3VzdG9tIHRpdGxlIGZvciB0ZW1wb3JhcnkgcHJvZmlsZXMgd2FzIHN1cHBvcnRlZC4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRl
UHJvZmlsZSk6IHN0eWxlIGNoYW5nZXMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2Zp
bGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3Rv
dHlwZS5fc2V0dXBXb3JrZXIpOiB3YXMgZXh0cmFjdGVkIGZyb20gbG9hZCBtZXRob2QuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLl9zYXZlU3RhdHVz
VXBkYXRlKTogc2xpZ2h0bHkgbW9kaWZpZWQgc3VidGl0bGUuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6IHN0eWxl
IGNoYW5nZXMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90
eXBlLmNhblNhdmVUb0ZpbGUpOiB3YXMgcmVuYW1lZCBmcm9tIGNhblNhdmUuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOiB3YXMg
cmVuYW1lZCBmcm9tIHNhdmUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFk
ZXIucHJvdG90eXBlLmNhbkxvYWRGcm9tRmlsZSk6IG5ldyBtZXRob2QuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLmxvYWRGcm9tRmlsZSk6IG5ldyBt
ZXRob2QuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBl
LmxvYWRGcm9tRmlsZS5vbkxvYWRTdGFydCk6IG5ldyBtZXRob2QuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLmxvYWRGcm9tRmlsZS5vbkVycm9yKTog
bmV3IG1ldGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlwZS5jcmVhdGVU
ZW1wb3JhcnlQcm9maWxlKTogY3VzdG9tIHRpdGxlIGZvciB0ZW1wb3JhcnkgcHJvZmlsZXMgd2Fz
IHN1cHBvcnRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRl
bXBvcmFyeVByb2ZpbGUpOiBjdXN0b20gdGl0bGUgZm9yIHRlbXBvcmFyeSBwcm9maWxlcyB3YXMg
c3VwcG9ydGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXIucHJvdG90eXBl
LmNhblNhdmVUb0ZpbGUpOiB3YXMgcmVuYW1lZCBmcm9tIGNhblNhdmUuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGUuc2F2ZVRvRmlsZSk6IHdhcyByZW5hbWVk
IGZyb20gc2F2ZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlw
ZS5jYW5Mb2FkRnJvbUZpbGUpOiBuZXcgbWV0aG9kLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlLmxvYWRGcm9tRmlsZSk6IG5ldyBtZXRob2QuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZUZpbGVTZWxlY3Rv
ckVsZW1lbnQpOiBuZXcgbWV0aG9kLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlLl9sb2FkRnJvbUZpbGUpOiBuZXcgbWV0aG9kLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlByb2ZpbGVTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlLmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBsb2FkIG1lbnUgaXRlbSB3YXMgYWRkZWQuCisKIDIwMTItMDUtMTAgIEFsZXhp
cyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBB
dm9pZCBzdHJpbmcgY29udmVyc2lvbnMgdG8gY29uc3RydWN0IGEgUVVybCB3aGVuIHVzaW5nIFF0
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cwppbmRleCA2MmM0NGVkNTJmYjkyODQxMDY5N2M3MWZiNTZjN2Q5MjU5ODA5MzU3Li43NmE3MzFi
N2ExMTVlYTk0YTc4Yzc0MTllNDEzZTYxOTExN2MyOTRkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNo
CmRlbHRhIDY1OQp6Y21hRlQkbEI3dytPVVEzaU5vWCFNaXE4e2hDR0hHaFJWdEpjZ1pGZUdia3tt
RiUmVzZHdnRDPG5Md0ZUMjlSaHUKekxuY0VCTGs1dFElMXtBaHIyPSZvMUk2LXp2O3U9VmdDMDt0
MjJleUQkVitCTzFkQXBDUlZlXlgkT3JPTWZiMHxvCnp5fitDPCNWMEA3Ql42SSZuPGpyVyhEd3pv
TExLTjxnY31xWDNjJFdnMUcqZ0tHbXlWQno8eUJ4eClTOFNSRz5Wagp6cyFXRkI+SEhGbXFMWGlJ
PEQwRGFtQ2NqTiM9aDk3SChofDhrJUplLWREQ1V0Nz9zaDRCSDArdCswX3xUS3x3dVAKeiZ8TWpj
RWpoaTlpJXxuNkZrTyg3UTVWaT48WWU+fmhIMy0pNTlDV3dFRWk0dyRSbXRSZTdkNEFxdjcta1k+
WnJKCnRfNSs8SEllaF51aEIoTXcpQWBzaiM2ZXpBSz1CbnIzX35lezVyWThgbj12UmNTVGtAajAw
MXdKaFNMQjUKCmRlbHRhIDExClNjbVpxYVZTVW9iK09VUTNpMzAhfmQ8NUE1CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTZWxlY3RvclByb2ZpbGVW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTZWxlY3RvclBy
b2ZpbGVWaWV3LmpzCmluZGV4IGE2OTNjZDVlNmE0ZmI5ZWRkMDQxOTdkNWMwNzc3NmJkMzhiYzFj
M2EuLmQ0YWI0ZjY3MGU5N2I4MTBmN2YwMGM4MDU4N2VjNzg4YmUzMDU3NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU2VsZWN0b3JQcm9maWxlVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1NlbGVjdG9y
UHJvZmlsZVZpZXcuanMKQEAgLTM1MywxMSArMzUzLDE0IEBAIFdlYkluc3BlY3Rvci5DU1NTZWxl
Y3RvclByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlk
ZQorICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gdGl0bGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNw
ZWN0b3IuUHJvZmlsZUhlYWRlcn0KICAgICAgKi8KLSAgICBjcmVhdGVUZW1wb3JhcnlQcm9maWxl
OiBmdW5jdGlvbigpCisgICAgY3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24odGl0bGUp
CiAgICAgewotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyKFdl
Ykluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlLlR5cGVJZCwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZWNvcmRpbmdcdTIwMjYiKSk7CisgICAgICAgIGlmICh0aXRsZSA9PT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZGlu
Z1x1MjAyNiIpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVy
KFdlYkluc3BlY3Rvci5DU1NTZWxlY3RvclByb2ZpbGVUeXBlLlR5cGVJZCwgdGl0bGUpOwogICAg
IH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcwppbmRleCA2YzUxNDgwZmMxYWNkY2MwZmE5MTUyYzBk
ODRiMTBmYzk0MjYyYTFjLi5jYmVjYzhlMGU2M2ZhOWJlZTg2MTc3Mzk4MWFlNTc0MGNmNGJhMzY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFw
c2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFw
U25hcHNob3RWaWV3LmpzCkBAIC02ODksNiArNjg5LDkgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgZm9yICh2YXIgaSA9
IHRoaXMuZmlsdGVyU2VsZWN0RWxlbWVudC5sZW5ndGggLSAxLCBuID0gbGlzdC5sZW5ndGg7IGkg
PCBuOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBwcm9maWxlID0gbGlzdFtpXTsKKyAgICAgICAg
ICAgIGlmIChwcm9maWxlLnVpZCA8IDApCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB2YXIgZmlsdGVyT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9u
Iik7CiAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlOwogICAgICAgICAgICAg
aWYgKCF0aXRsZS5pbmRleE9mKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSkpIHsKQEAgLTc1MSwx
MSArNzU0LDE0IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5
cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Zz19IHRpdGxlCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAg
ICAgICovCi0gICAgY3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24oKQorICAgIGNyZWF0
ZVRlbXBvcmFyeVByb2ZpbGU6IGZ1bmN0aW9uKHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcihXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
UHJvZmlsZVR5cGUuVHlwZUlkLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNuYXBzaG90dGluZ1x1
MjAyNiIpKTsKKyAgICAgICAgaWYgKHRpdGxlID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3R0aW5nXHUyMDI2Iik7CisgICAg
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyKHRpdGxlKTsKICAg
ICB9LAogCiAgICAgLyoqCkBAIC03NjUsNyArNzcxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBjcmVhdGVQcm9maWxl
OiBmdW5jdGlvbihwcm9maWxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuSGVhcFByb2ZpbGVIZWFkZXIocHJvZmlsZS50eXBlSWQsIHByb2ZpbGUudGl0bGUsIHByb2Zp
bGUudWlkLCBwcm9maWxlLm1heEpTT2JqZWN0SWQgfHwgMCk7CisgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyKHByb2ZpbGUudGl0bGUsIHByb2ZpbGUudWlk
LCBwcm9maWxlLm1heEpTT2JqZWN0SWQgfHwgMCk7CiAgICAgfQogfQogCkBAIC03NzQsMTYgKzc4
MCwxNiBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Qcm9maWxlVAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KLSAqIEBwYXJhbSB7c3RyaW5n
fSBwcm9maWxlVHlwZQogICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCi0gKiBAcGFyYW0ge251bWJl
cn0gdWlkCi0gKiBAcGFyYW0ge251bWJlcn0gbWF4SlNPYmplY3RJZAorICogQHBhcmFtIHtudW1i
ZXI9fSB1aWQKKyAqIEBwYXJhbSB7bnVtYmVyPX0gbWF4SlNPYmplY3RJZAogICovCi1XZWJJbnNw
ZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIgPSBmdW5jdGlvbihwcm9maWxlVHlwZSwgdGl0bGUsIHVp
ZCwgbWF4SlNPYmplY3RJZCkKK1dlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlciA9IGZ1bmN0
aW9uKHRpdGxlLCB1aWQsIG1heEpTT2JqZWN0SWQpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVIZWFkZXIuY2FsbCh0aGlzLCBwcm9maWxlVHlwZSwgdGl0bGUsIHVpZCk7CisgICAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVIZWFkZXIuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
UHJvZmlsZVR5cGUuVHlwZUlkLCB0aXRsZSwgdWlkKTsKICAgICB0aGlzLm1heEpTT2JqZWN0SWQg
PSBtYXhKU09iamVjdElkOwogICAgIHRoaXMuX2xvYWRlZCA9IGZhbHNlOworICAgIHRoaXMuX2Zy
b21GaWxlID0gZmFsc2U7CiAgICAgdGhpcy5fdG90YWxOdW1iZXJPZkNodW5rcyA9IDA7CiB9CiAK
QEAgLTc5OSwxNCArODA1LDggQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
dGhpcy5fcHJveHkpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIHNldFByb2ZpbGVXYWl0KGV2ZW50
KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC53YWl0ID0gZXZlbnQuZGF0
YTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdFdvcmtlcigpOwotICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlz
dGVuZXIoIndhaXQiLCBzZXRQcm9maWxlV2FpdCwgdGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9w
cm94eSA9IHdvcmtlci5jcmVhdGVPYmplY3QoIldlYkluc3BlY3Rvci5IZWFwU25hcHNob3RMb2Fk
ZXIiKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIXRoaXMuX3Byb3h5KQorICAgICAgICAgICAg
dGhpcy5fc2V0dXBXb3JrZXIoKTsKIAogICAgICAgICBpZiAodGhpcy5fcHJveHkuc3RhcnRMb2Fk
aW5nKGNhbGxiYWNrKSkgewogICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZ1x1MjAyNiIpOwpAQCAtODE5LDYgKzgx
OSwxNiBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAgICAgfSwKIAorICAgIF9zZXR1cFdvcmtlcjogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgZnVuY3Rpb24gc2V0UHJvZmlsZVdhaXQoZXZlbnQpIHsKKyAgICAgICAgICAgIHRoaXMu
c2lkZWJhckVsZW1lbnQud2FpdCA9IGV2ZW50LmRhdGE7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IHdvcmtlciA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyKCk7CisgICAgICAg
IHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJ3YWl0Iiwgc2V0UHJvZmlsZVdhaXQsIHRoaXMpOwor
ICAgICAgICB0aGlzLl9wcm94eSA9IHdvcmtlci5jcmVhdGVPYmplY3QoIldlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RMb2FkZXIiKTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CiAgICAgICovCkBAIC04MzIsNyArODQyLDcgQEAgV2Vi
SW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRo
aXMuX3NhdmVkQ2h1bmtzQ291bnQgPSAwOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVN
YW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50
VHlwZXMuQXBwZW5kZWRUb1VSTCwgdGhpcy5fc2F2ZVN0YXR1c1VwZGF0ZSwgdGhpcyk7CiAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU2F2aW5nXHUyMDI2ICVkXCUiLCBNYXRoLmZsb29yKHRoaXMu
X3NhdmVkQ2h1bmtzQ291bnQgKiAxMDAgLyB0aGlzLl90b3RhbE51bWJlck9mQ2h1bmtzKSk7Cisg
ICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTYXZpbmdcdTIwMjYgJWRcJSIsIE1hdGguZmxvb3IodGhpcy5fc2F2ZWRDaHVua3ND
b3VudCAqIDEwMDAwIC8gdGhpcy5fdG90YWxOdW1iZXJPZkNodW5rcykgLyAxMDApOwogICAgIH0s
CiAKICAgICAvKioKQEAgLTg1Nyw2ICs4NjcsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVI
ZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0
aXRsZSA9IE51bWJlci5ieXRlc1RvU3RyaW5nKHNuYXBzaG90UHJveHkudG90YWxTaXplKTsKICAg
ICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9IGZhbHNlOwogICAgICAgICAgICAg
dmFyIHdvcmtlciA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFdvcmtlcn0g
Ki8gc25hcHNob3RQcm94eS53b3JrZXI7CisgICAgICAgICAgICB0aGlzLmlzVGVtcG9yYXJ5ID0g
ZmFsc2U7CiAgICAgICAgICAgICB3b3JrZXIuc3RhcnRDaGVja2luZ0ZvckxvbmdSdW5uaW5nQ2Fs
bHMoKTsKICAgICAgICAgfQogICAgICAgICBpZiAodGhpcy5fcHJveHkuZmluaXNoTG9hZGluZyhw
YXJzZWQuYmluZCh0aGlzKSkpCkBAIC04NjcsMzQgKzg3OCw4NiBAQCBXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAqIEBvdmVycmlkZQogICAgICAqIEBy
ZXR1cm4ge2Jvb2xlYW59CiAgICAgICovCi0gICAgY2FuU2F2ZTogZnVuY3Rpb24oKQorICAgIGNh
blNhdmVUb0ZpbGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9sb2Fk
ZWQgJiYgIXRoaXMuX3NhdmVkQ2h1bmtzQ291bnQgJiYgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2Vy
LmNhbkFwcGVuZCgpOworICAgICAgICByZXR1cm4gIXRoaXMuX2Zyb21GaWxlICYmIHRoaXMuX2xv
YWRlZCAmJiAhdGhpcy5fc2F2ZWRDaHVua3NDb3VudCAmJiBXZWJJbnNwZWN0b3IuZmlsZU1hbmFn
ZXIuY2FuQXBwZW5kKCk7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQogICAg
ICAqLwotICAgIHNhdmU6IGZ1bmN0aW9uKCkKKyAgICBzYXZlVG9GaWxlOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICAvKioKICAgICAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9
IGV2ZW50CiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiBzdGFydFdyaXRpbmdTbmFwc2hv
dChldmVudCkKKyAgICAgICAgZnVuY3Rpb24gc3RhcnRTYXZpbmdTbmFwc2hvdChldmVudCkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IHRoaXMuX2ZpbGVOYW1lKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQu
d2FpdCA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZpbmdcdTIwMjYgJWRcJSIsIDApOwogICAgICAgICAg
ICAgdGhpcy5fc2F2ZWRDaHVua3NDb3VudCA9IDA7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZmlsZU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRmlsZU1hbmFnZXIu
RXZlbnRUeXBlcy5TYXZlZFVSTCwgc3RhcnRXcml0aW5nU25hcHNob3QsIHRoaXMpOworICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMuU2F2ZWRVUkwsIHN0YXJ0U2F2aW5nU25hcHNo
b3QsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMuQXBwZW5kZWRUb1VS
TCwgdGhpcy5fc2F2ZVN0YXR1c1VwZGF0ZSwgdGhpcyk7CiAgICAgICAgICAgICBQcm9maWxlckFn
ZW50LmdldFByb2ZpbGUodGhpcy50eXBlSWQsIHRoaXMudWlkKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHRoaXMuX2ZpbGVOYW1lID0gdGhpcy5fZmlsZU5hbWUgfHwgIkhlYXAtIiArIG5ldyBEYXRl
KCkudG9JU084NjAxQ29tcGFjdCgpICsgIi5qc29uIjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmZp
bGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50
VHlwZXMuU2F2ZWRVUkwsIHN0YXJ0V3JpdGluZ1NuYXBzaG90LCB0aGlzKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVN
YW5hZ2VyLkV2ZW50VHlwZXMuU2F2ZWRVUkwsIHN0YXJ0U2F2aW5nU25hcHNob3QsIHRoaXMpOwog
ICAgICAgICBXZWJJbnNwZWN0b3IuZmlsZU1hbmFnZXIuc2F2ZSh0aGlzLl9maWxlTmFtZSwgIiIs
IHRydWUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAg
ICAqLworICAgIGNhbkxvYWRGcm9tRmlsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0sCisKKyAgICBsb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGZpbGUpCisg
ICAgeworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuc3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxvYWRpbmdcdTIwMjYiKTsKKyAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9
IHRydWU7CisgICAgICAgICAgICB0aGlzLl9wcm94eS5wdXNoSlNPTkNodW5rKGV2ZW50LnRhcmdl
dC5yZXN1bHQpOworICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
IHRoaXMuZmluaXNoSGVhcFNuYXBzaG90KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBvbkxvYWRTdGFydChldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5zaWRlYmFy
RWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZ1x1MjAyNiIp
OworICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC53YWl0ID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHRoaXMuX3NldHVwV29ya2VyKCk7CisgICAgICAgICAgICB0aGlzLl9wcm94eS5zdGFydExv
YWRpbmcoZnVuY3Rpb24oKSB7IH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25F
cnJvcihlKQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2goZS50YXJnZXQuZXJyb3IuY29k
ZSkgeworICAgICAgICAgICAgY2FzZSBlLnRhcmdldC5lcnJvci5OT1RfRk9VTkRfRVJSOgorICAg
ICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuc3VidGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIiclcycgbm90IGZvdW5kLiIsIGZpbGUubmFtZSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgZS50YXJnZXQuZXJyb3IuTk9UX1JFQURBQkxFX0VSUjoKKyAg
ICAgICAgICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCInJXMnIGlzIG5vdCByZWFkYWJsZSIsIGZpbGUubmFtZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZS50YXJnZXQuZXJyb3IuQUJPUlRfRVJSOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICB0aGlzLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIn
JXMnIGVycm9yICVkIiwgZmlsZS5uYW1lLCBlLnRhcmdldC5lcnJvci5jb2RlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMudGl0bGUgPSBmaWxlLm5hbWU7CisgICAg
ICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICByZWFkZXIub25sb2Fk
ID0gb25Mb2FkLmJpbmQodGhpcyk7CisgICAgICAgIHJlYWRlci5vbmxvYWRzdGFydCA9IG9uTG9h
ZFN0YXJ0LmJpbmQodGhpcyk7CisgICAgICAgIHJlYWRlci5vbmVycm9yID0gb25FcnJvcjsKKyAg
ICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7CisgICAgICAgIHRoaXMuX2Zyb21GaWxlID0g
dHJ1ZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGE5ZTEyMDg2ODUzZmE4NDgwOGVkZmNiMzI4NWY0N2E5
MjZiMGZjNmIuLjYxZWEwNDgxMzFiYTEwODdmNTMzMGQwNDAwMmEwYWFkZTcxZDU0YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcwpA
QCAtNjIwLDExICs2MjAsMTQgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLnByb3RvdHlw
ZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJhbSB7c3RyaW5n
PX0gdGl0bGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KICAg
ICAgKi8KLSAgICBjcmVhdGVUZW1wb3JhcnlQcm9maWxlOiBmdW5jdGlvbigpCisgICAgY3JlYXRl
VGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24odGl0bGUpCiAgICAgewotICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlw
ZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjb3JkaW5nXHUyMDI2IikpOworICAg
ICAgICBpZiAodGl0bGUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJSZWNvcmRpbmdcdTIwMjYiKTsKKyAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcihXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlw
ZUlkLCB0aXRsZSk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGE4MjFjOTI4OTM4YWMy
MjYzYWFiY2NkNTQ2ODRiYmQ2ZmViZjU1N2EuLmViMDRjMmY0YzUxZjE1NDdkZTBhNDJkMTRmZjUw
MmNkN2YxODIwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTkxLDkgKzkxLDEwIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKICAgICAvLyBNdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1
YmNsYXNzZXMuCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSB0aXRsZQogICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfQogICAgICAqLwotICAgIGNyZWF0
ZVRlbXBvcmFyeVByb2ZpbGU6IGZ1bmN0aW9uKCkKKyAgICBjcmVhdGVUZW1wb3JhcnlQcm9maWxl
OiBmdW5jdGlvbih0aXRsZSkKICAgICB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTmVlZHMg
aW1wbGVtZW50ZWQuIik7CiAgICAgfSwKQEAgLTE0NSw5ICsxNDYsMTYgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEByZXR1cm4ge2Jv
b2xlYW59CiAgICAgICovCi0gICAgY2FuU2F2ZTogZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsg
fSwKKyAgICBjYW5TYXZlVG9GaWxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9LAogCi0g
ICAgc2F2ZTogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcigiTmVlZHMgaW1wbGVtZW50ZWQi
KTsgfQorICAgIHNhdmVUb0ZpbGU6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoIk5lZWRz
IGltcGxlbWVudGVkIik7IH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQor
ICAgICAqLworICAgIGNhbkxvYWRGcm9tRmlsZTogZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsg
fSwKKworICAgIGxvYWRGcm9tRmlsZTogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcigiTmVl
ZHMgaW1wbGVtZW50ZWQiKTsgfQogfQogCiAvKioKQEAgLTIxMCw2ICsyMTgsOCBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIGlmICghQ2FwYWJpbGl0aWVz
LnByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiB8fCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJv
ZmlsZXJFbmFibGVkLmdldCgpKQogICAgICAgICBQcm9maWxlckFnZW50LmVuYWJsZSh0aGlzLl9w
cm9maWxlcldhc0VuYWJsZWQuYmluZCh0aGlzKSk7CisKKyAgICB0aGlzLl9jcmVhdGVGaWxlU2Vs
ZWN0b3JFbGVtZW50KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2ZW50VHlw
ZXMgPSB7CkBAIC0yMTgsNiArMjI4LDQxIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLkV2
ZW50VHlwZXMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9
IHsKKyAgICBfY3JlYXRlRmlsZVNlbGVjdG9yRWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAgICAgICAgICB0aGlzLmVs
ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCk7CisKKyAgICAgICAg
dmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIp
OworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5cGUgPSAiZmlsZSI7CisgICAgICAgIGZp
bGVTZWxlY3RvckVsZW1lbnQuc3R5bGUuekluZGV4ID0gLTE7CisgICAgICAgIGZpbGVTZWxlY3Rv
ckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOworICAgICAgICBmaWxlU2VsZWN0
b3JFbGVtZW50Lm9uY2hhbmdlID0gdGhpcy5fbG9hZEZyb21GaWxlLmJpbmQodGhpcyk7CisgICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChmaWxlU2VsZWN0b3JFbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCA9IGZpbGVTZWxlY3RvckVsZW1lbnQ7CisgICAg
fSwKKworICAgIF9sb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAg
dmFyIGZpbGUgPSB0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50LmZpbGVzWzBdOworICAgICAgICBp
ZiAoIWZpbGUubmFtZS5lbmRzV2l0aCgiLndocyIpKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IubG9nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZXIubG9hZEZyb21GaWxlOiBPbmx5
IGhlYXAgc25hcHNob3RzIGZyb20gZmlsZXMgd2l0aCBleHRlbnNpb24gJy53aHMnIGNhbiBiZSBs
b2FkZWQuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCEhdGhpcy5maW5kVGVtcG9yYXJ5UHJvZmlsZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJv
ZmlsZVR5cGUuVHlwZUlkKSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmxvZyhXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGVyLmxvYWRGcm9tRmlsZTogQ2FuJ3QgbG9hZCBwcm9maWxl
IHdoZW4gb3RoZXIgcHJvZmlsZSBpcyByZWNvcmRpbmcuIikpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHByb2ZpbGVUeXBlID0gdGhpcy5nZXRQcm9maWxl
VHlwZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKTsKKyAgICAg
ICAgdmFyIHRlbXBvcmFyeVByb2ZpbGUgPSBwcm9maWxlVHlwZS5jcmVhdGVUZW1wb3JhcnlQcm9m
aWxlKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSArICIuIiArIGZpbGUubmFtZSk7CisgICAgICAg
IHRoaXMuYWRkUHJvZmlsZUhlYWRlcih0ZW1wb3JhcnlQcm9maWxlKTsKKworICAgICAgICB0ZW1w
b3JhcnlQcm9maWxlLmxvYWRGcm9tRmlsZShmaWxlKTsKKyAgICAgICAgdGhpcy5fY3JlYXRlRmls
ZVNlbGVjdG9yRWxlbWVudCgpOworICAgIH0sCisKICAgICBnZXQgdG9vbGJhckl0ZW1MYWJlbCgp
CiAgICAgewogICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlcyIp
OwpAQCAtMTEwOSwxMCArMTE1NCwxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgaGFuZGxlQ29udGV4dE1lbnVFdmVudDogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcHJvZmlsZSA9IHRoaXMucHJvZmlsZTsKLSAg
ICAgICAgaWYgKCFwcm9maWxlLmNhblNhdmUoKSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOwotICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2ZSBw
cm9maWxlIiksIHByb2ZpbGUuc2F2ZS5iaW5kKHByb2ZpbGUpKTsKKyAgICAgICAgaWYgKHByb2Zp
bGUuY2FuU2F2ZVRvRmlsZSgpKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNhdmUgcHJvZmlsZVx1MjAyNiIpLCBwcm9maWxlLnNhdmVU
b0ZpbGUuYmluZChwcm9maWxlKSk7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkIHByb2ZpbGVcdTIwMjYiKSwgV2ViSW5zcGVjdG9yLnBh
bmVscy5wcm9maWxlcy5fZmlsZVNlbGVjdG9yRWxlbWVudC5jbGljay5iaW5kKFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpKTsKICAgICAgICAgY29udGV4
dE1lbnUuc2hvdyhldmVudCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141380</attachid>
            <date>2012-05-11 04:59:36 -0700</date>
            <delta_ts>2012-05-11 06:12:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86097-20120511155933.patch</filename>
            <type>text/plain</type>
            <size>19219</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgwZTc5YjllNzRjNmU1
NTJjY2RhMWJkMTgzODVmMTA0NTY2NWQ1ZC4uZmYzZTcwMDEwYjg3NTZjMmE1YWFmZDc2MGI0ODMx
ZTM2Yzg3NTM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTExICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBsb2FkIGhlYXAgc25hcHNob3QgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5NworCisgICAgICAgIFRoZSBpZGVh
IGlzIHRvIGhhdmUgYSBoaWRkZW4gZmlsZSBzZWxlY3RvciBjb250cm9sLgorICAgICAgICBXaGVu
IHRoZSB1c2VyIHNlbGVjdCBhIGNvbnRleHQgbWVudSBpdGVtIG9yIGNsaWNrIGEgYnV0dG9uCisg
ICAgICAgIHdlIHJlZGlyZWN0IHRoaXMgdXNlci1hY3Rpb24gdG8gZmlsZSBzZWxlY3Rvci4KKyAg
ICAgICAgQXMgcmVzdWx0IHdlIHNlZSB0aGUgc3RhbmRhcmQgZmlsZSBzZWxlY3RvciBkaWFsb2cu
CisgICAgICAgIFdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGZpbGUgd2UgbG9hZCBpdCdzIGNodW5r
cyBhbmQgcHVzaCB0aGUgY2h1bmtzIHRvIHRoZSB3b3JrZXIuCisgICAgICAgIFRoZSBsb2FkZWQg
c25hcHNob3QgY2FuIGJlIGNvbXBsZXRlbHkgdW5yZWxhdGVkIHRvIHRoZSBjdXJyZW50IHBhZ2Uu
CisgICAgICAgIFRoYXRzIHdoeSB3ZSBoYXZlIHRvIHNraXAgcmFuZ2Ugc2VsZWN0aW9uIG9wdGlv
bnMgaW4gU3VtbWFyeSB0YWIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yUHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRl
bXBvcmFyeVByb2ZpbGUpOiBub3cgaXQgYWNjZXB0cyBhIGN1c3RvbSB0aXRsZS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90Vmlldy5wcm90b3R5cGUuX3VwZGF0ZUZpbHRlck9wdGlvbnMp
OiB3ZSBoYXZlIHRvIHNraXAgdGhlIHByb2ZpbGVzIGxvYWRlZCBmcm9tIGZpbGUgYmVjYXVzZSB0
aGVyZSBpcyBubyBndWFyYW50eSB0CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
UHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRlbXBvcmFyeVByb2ZpbGUpOiBub3cgaXQgYWNj
ZXB0cyBhIGN1c3RvbSB0aXRsZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQ
cm9maWxlVHlwZS5wcm90b3R5cGUuY3JlYXRlUHJvZmlsZSk6IGNvc21ldGljIGNoYW5nZXMuCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5fc2V0dXBXb3JrZXIpOiBhIGNvbW1v
biBwYXJ0IHdhcyBleHRyYWN0ZWQgZnJvbSBsb2FkIG1ldGhvZCBhbmQgcmV1c2VkIGluIGxvYWRG
cm9tRmlsZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5
cGUuX3NhdmVTdGF0dXNVcGRhdGUpOiBjb3NtZXRpYyBjaGFuZ2VzLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5maW5pc2hIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5jYW5TYXZl
VG9GaWxlKTogY29zbWV0aWMgcmVuYW1lIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCAnbG9h
ZCcgcGFydC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5
cGUuc2F2ZVRvRmlsZSk6IGNvc21ldGljIHJlbmFtZSBmb3IgYmV0dGVyIGNvbnNpc3RlbmN5IHdp
dGggJ2xvYWQnIHBhcnQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIu
cHJvdG90eXBlLmNhbkxvYWRGcm9tRmlsZSk6IGNvc21ldGljIHJlbmFtZSBmb3IgYmV0dGVyIGNv
bnNpc3RlbmN5IHdpdGggJ2xvYWQnIHBhcnQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlLmxvYWRGcm9tRmlsZSk6IGNodW5rIGJhc2VkIGZpbGUgbG9h
ZGVyLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5s
b2FkRnJvbUZpbGUubG9hZE5leHRDaHVuayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlLmxvYWRGcm9tRmlsZS5vbkxvYWQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1BVUHJvZmlsZVR5cGUucHJvdG90eXBlLmNyZWF0ZVRlbXBvcmFyeVByb2ZpbGUpOiBub3cgaXQg
YWNjZXB0cyBhIGN1c3RvbSB0aXRsZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVR5cGUucHJvdG90
eXBlLmNyZWF0ZVRlbXBvcmFyeVByb2ZpbGUpOiBub3cgaXQgYWNjZXB0cyBhIGN1c3RvbSB0aXRs
ZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZS5jYW5TYXZl
VG9GaWxlKTogY29zbWV0aWMgcmVuYW1lIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCAnbG9h
ZCcgcGFydC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZS5z
YXZlVG9GaWxlKTogY29zbWV0aWMgcmVuYW1lIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCAn
bG9hZCcgcGFydC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlw
ZS5jYW5Mb2FkRnJvbUZpbGUpOiBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciAnbG9hZCcgcGFy
dC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyLnByb3RvdHlwZS5sb2FkRnJv
bUZpbGUpOiBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciAnbG9hZCcgcGFydC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fY3JlYXRlRmlsZVNlbGVjdG9y
RWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X2xvYWRGcm9tRmlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVl
RWxlbWVudC5wcm90b3R5cGUuaGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisKIDIwMTItMDUtMTEg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTY3MjcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9Fbmds
aXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjJjNDRlZDUyZmI5Mjg0MTA2OTdj
NzFmYjU2YzdkOTI1OTgwOTM1Ny4uNzZhNzMxYjdhMTE1ZWE5NGE3OGM3NDE5ZTQxM2U2MTkxMTdj
Mjk0ZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA2NTkKemNtYUZUJGxCN3crT1VRM2lO
b1ghTWlxOHtoQ0dIR2hSVnRKY2daRmVHYmt7bUYlJlc2R3Z0QzxuTHdGVDI5Umh1CnpMbmNFQkxr
NXRRJTF7QWhyMj0mbzFJNi16djt1PVZnQzA7dDIyZXlEJFYrQk8xZEFwQ1JWZV5YJE9yT01mYjB8
bwp6eX4rQzwjVjBAN0JeNkkmbjxqclcoRHd6b0xMS048Z2N9cVgzYyRXZzFHKmdLR215VkJ6PHlC
eHgpUzhTUkc+VmoKenMhV0ZCPkhIRm1xTFhpSTxEMERhbUNjak4jPWg5N0goaHw4ayVKZS1kRENV
dDc/c2g0QkgwK3QrMF98VEt8d3VQCnomfE1qY0VqaGk5aSV8bjZGa08oN1E1Vmk+PFllPn5oSDMt
KTU5Q1d3RUVpNHckUm10UmU3ZDRBcXY3LWtZPlpySgp0XzUrPEhJZWhedWhCKE13KUFgc2ojNmV6
QUs9Qm5yM19+ZXs1clk4YG49dlJjU1RrQGowMDF3SmhTTEI1CgpkZWx0YSAxMQpTY21acWFWU1Vv
YitPVVEzaTMwIX5kPDVBNQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ1NTU2VsZWN0b3JQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU2VsZWN0b3JQcm9maWxlVmlldy5qcwppbmRleCBhNjkzY2Q1ZTZh
NGZiOWVkZDA0MTk3ZDVjMDc3NzZiZDM4YmMxYzNhLi4zYzYwOGQxZWJjOGE1ZmYyY2RmMTM1NGVi
N2JiZWZhMWNmNTZkNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1NlbGVjdG9yUHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9DU1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzCkBAIC0zNTMsMTEgKzM1
MywxMyBAQCBXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7
CiAKICAgICAvKioKICAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19IHRp
dGxlCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAgICAgICov
Ci0gICAgY3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24oKQorICAgIGNyZWF0ZVRlbXBv
cmFyeVByb2ZpbGU6IGZ1bmN0aW9uKHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBX
ZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcihXZWJJbnNwZWN0b3IuQ1NTU2VsZWN0b3JQcm9maWxl
VHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjb3JkaW5nXHUyMDI2IikpOwor
ICAgICAgICB0aXRsZSA9IHRpdGxlIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjb3JkaW5n
XHUyMDI2Iik7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXIo
V2ViSW5zcGVjdG9yLkNTU1NlbGVjdG9yUHJvZmlsZVR5cGUuVHlwZUlkLCB0aXRsZSk7CiAgICAg
fSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IDliZWNhYjNhZTRiYTM4N2I0YWE4MGQ5ZmNk
ZGJjMTI4MTlkOTVlNjAuLjhhYTdiZTA1ODc4MjViNmY0ZmZlMDNlYjZlNjQ1ZDg3MGJiMzhhOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdFZpZXcuanMKQEAgLTY4OCw3ICs2ODgsMTAgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdFZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5maWx0ZXJTZWxlY3RFbGVt
ZW50LmFwcGVuZENoaWxkKGZpbHRlck9wdGlvbik7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAo
dGhpcy5wcm9maWxlLl9mcm9tRmlsZSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZm9y
ICh2YXIgaSA9IHRoaXMuZmlsdGVyU2VsZWN0RWxlbWVudC5sZW5ndGggLSAxLCBuID0gbGlzdC5s
ZW5ndGg7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBwcm9maWxlID0gbGlzdFtpXTsK
ICAgICAgICAgICAgIHZhciBmaWx0ZXJPcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJv
cHRpb24iKTsKICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7CiAgICAgICAg
ICAgICBpZiAoIXRpdGxlLmluZGV4T2YoVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lKSkgewpAQCAt
NzUxLDExICs3NTQsMTMgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLnBy
b3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJhbSB7
c3RyaW5nPX0gdGl0bGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRl
cn0KICAgICAgKi8KLSAgICBjcmVhdGVUZW1wb3JhcnlQcm9maWxlOiBmdW5jdGlvbigpCisgICAg
Y3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24odGl0bGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyKFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3RQcm9maWxlVHlwZS5UeXBlSWQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3R0
aW5nXHUyMDI2IikpOworICAgICAgICB0aXRsZSA9IHRpdGxlIHx8IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU25hcHNob3R0aW5nXHUyMDI2Iik7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVj
dG9yLkhlYXBQcm9maWxlSGVhZGVyKHRpdGxlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC03NjUs
NyArNzcwLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIocHJv
ZmlsZS50eXBlSWQsIHByb2ZpbGUudGl0bGUsIHByb2ZpbGUudWlkLCBwcm9maWxlLm1heEpTT2Jq
ZWN0SWQgfHwgMCk7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxl
SGVhZGVyKHByb2ZpbGUudGl0bGUsIHByb2ZpbGUudWlkLCBwcm9maWxlLm1heEpTT2JqZWN0SWQg
fHwgMCk7CiAgICAgfQogfQogCkBAIC03NzQsMTYgKzc3OSwxNiBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Q
cm9maWxlVAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3Iu
UHJvZmlsZUhlYWRlcn0KLSAqIEBwYXJhbSB7c3RyaW5nfSBwcm9maWxlVHlwZQogICogQHBhcmFt
IHtzdHJpbmd9IHRpdGxlCi0gKiBAcGFyYW0ge251bWJlcn0gdWlkCi0gKiBAcGFyYW0ge251bWJl
cn0gbWF4SlNPYmplY3RJZAorICogQHBhcmFtIHtudW1iZXI9fSB1aWQKKyAqIEBwYXJhbSB7bnVt
YmVyPX0gbWF4SlNPYmplY3RJZAogICovCi1XZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIg
PSBmdW5jdGlvbihwcm9maWxlVHlwZSwgdGl0bGUsIHVpZCwgbWF4SlNPYmplY3RJZCkKK1dlYklu
c3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlciA9IGZ1bmN0aW9uKHRpdGxlLCB1aWQsIG1heEpTT2Jq
ZWN0SWQpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXIuY2FsbCh0aGlzLCBwcm9m
aWxlVHlwZSwgdGl0bGUsIHVpZCk7CisgICAgV2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXIuY2Fs
bCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkLCB0aXRs
ZSwgdWlkKTsKICAgICB0aGlzLm1heEpTT2JqZWN0SWQgPSBtYXhKU09iamVjdElkOwogICAgIHRo
aXMuX2xvYWRlZCA9IGZhbHNlOworICAgIHRoaXMuX2Zyb21GaWxlID0gZmFsc2U7CiAgICAgdGhp
cy5fdG90YWxOdW1iZXJPZkNodW5rcyA9IDA7CiB9CiAKQEAgLTc5OSwxNCArODA0LDggQEAgV2Vi
SW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghdGhpcy5fcHJveHkpIHsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHNldFByb2ZpbGVXYWl0KGV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgdGhp
cy5zaWRlYmFyRWxlbWVudC53YWl0ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFdvcmtlcigp
OwotICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIndhaXQiLCBzZXRQcm9maWxl
V2FpdCwgdGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9wcm94eSA9IHdvcmtlci5jcmVhdGVPYmpl
Y3QoIldlYkluc3BlY3Rvci5IZWFwU25hcHNob3RMb2FkZXIiKTsKLSAgICAgICAgfQorICAgICAg
ICBpZiAoIXRoaXMuX3Byb3h5KQorICAgICAgICAgICAgdGhpcy5fc2V0dXBXb3JrZXIoKTsKIAog
ICAgICAgICBpZiAodGhpcy5fcHJveHkuc3RhcnRMb2FkaW5nKGNhbGxiYWNrKSkgewogICAgICAg
ICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiTG9hZGluZ1x1MjAyNiIpOwpAQCAtODE5LDYgKzgxOCwxNiBAQCBXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9z
ZXR1cFdvcmtlcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gc2V0UHJvZmls
ZVdhaXQoZXZlbnQpIHsKKyAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9IGV2
ZW50LmRhdGE7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90V29ya2VyKCk7CisgICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVy
KCJ3YWl0Iiwgc2V0UHJvZmlsZVdhaXQsIHRoaXMpOworICAgICAgICB0aGlzLl9wcm94eSA9IHdv
cmtlci5jcmVhdGVPYmplY3QoIldlYkluc3BlY3Rvci5IZWFwU25hcHNob3RMb2FkZXIiKTsKKyAg
ICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50
CiAgICAgICovCkBAIC04MzIsNyArODQxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVh
ZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2h1bmtzQ291bnQgPSAw
OwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMuQXBwZW5kZWRUb1VSTCwgdGhp
cy5fc2F2ZVN0YXR1c1VwZGF0ZSwgdGhpcyk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
dGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2
aW5nXHUyMDI2ICVkXCUiLCBNYXRoLmZsb29yKHRoaXMuX3NhdmVkQ2h1bmtzQ291bnQgKiAxMDAg
LyB0aGlzLl90b3RhbE51bWJlck9mQ2h1bmtzKSk7CisgICAgICAgICAgICB0aGlzLnNpZGViYXJF
bGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZpbmdcdTIwMjYgJWRc
JSIsICh0aGlzLl9zYXZlZENodW5rc0NvdW50ICogMTAwIC8gdGhpcy5fdG90YWxOdW1iZXJPZkNo
dW5rcykudG9GaXhlZCgyKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtODU3LDYgKzg2Niw3IEBA
IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcoc25h
cHNob3RQcm94eS50b3RhbFNpemUpOwogICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC53
YWl0ID0gZmFsc2U7CiAgICAgICAgICAgICB2YXIgd29ya2VyID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyfSAqLyBzbmFwc2hvdFByb3h5LndvcmtlcjsKKyAgICAg
ICAgICAgIHRoaXMuaXNUZW1wb3JhcnkgPSBmYWxzZTsKICAgICAgICAgICAgIHdvcmtlci5zdGFy
dENoZWNraW5nRm9yTG9uZ1J1bm5pbmdDYWxscygpOwogICAgICAgICB9CiAgICAgICAgIGlmICh0
aGlzLl9wcm94eS5maW5pc2hMb2FkaW5nKHBhcnNlZC5iaW5kKHRoaXMpKSkKQEAgLTg2NywzNCAr
ODc3LDEwNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewog
ICAgICAqIEBvdmVycmlkZQogICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgICovCi0gICAg
Y2FuU2F2ZTogZnVuY3Rpb24oKQorICAgIGNhblNhdmVUb0ZpbGU6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWQgJiYgIXRoaXMuX3NhdmVkQ2h1bmtzQ291bnQg
JiYgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmNhbkFwcGVuZCgpOworICAgICAgICByZXR1cm4g
IXRoaXMuX2Zyb21GaWxlICYmIHRoaXMuX2xvYWRlZCAmJiAhdGhpcy5fc2F2ZWRDaHVua3NDb3Vu
dCAmJiBXZWJJbnNwZWN0b3IuZmlsZU1hbmFnZXIuY2FuQXBwZW5kKCk7CiAgICAgfSwKIAogICAg
IC8qKgogICAgICAqIEBvdmVycmlkZQogICAgICAqLwotICAgIHNhdmU6IGZ1bmN0aW9uKCkKKyAg
ICBzYXZlVG9GaWxlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICAvKioKICAgICAgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CiAgICAgICAgICAqLwotICAgICAgICBm
dW5jdGlvbiBzdGFydFdyaXRpbmdTbmFwc2hvdChldmVudCkKKyAgICAgICAgZnVuY3Rpb24gc3Rh
cnRTYXZpbmdTbmFwc2hvdChldmVudCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEgIT09IHRoaXMuX2ZpbGVOYW1lKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9IHRydWU7CiAgICAgICAgICAgICB0aGlz
LnNpZGViYXJFbGVtZW50LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZpbmdc
dTIwMjYgJWRcJSIsIDApOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRDaHVua3NDb3VudCA9IDA7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZmlsZU1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRmlsZU1hbmFnZXIuRXZlbnRUeXBlcy5TYXZlZFVSTCwgc3RhcnRXcml0
aW5nU25hcHNob3QsIHRoaXMpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2Vy
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMu
U2F2ZWRVUkwsIHN0YXJ0U2F2aW5nU25hcHNob3QsIHRoaXMpOwogICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmZpbGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5h
Z2VyLkV2ZW50VHlwZXMuQXBwZW5kZWRUb1VSTCwgdGhpcy5fc2F2ZVN0YXR1c1VwZGF0ZSwgdGhp
cyk7CiAgICAgICAgICAgICBQcm9maWxlckFnZW50LmdldFByb2ZpbGUodGhpcy50eXBlSWQsIHRo
aXMudWlkKTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX2ZpbGVOYW1lID0gdGhpcy5fZmls
ZU5hbWUgfHwgIkhlYXAtIiArIG5ldyBEYXRlKCkudG9JU084NjAxQ29tcGFjdCgpICsgIi5qc29u
IjsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMuU2F2ZWRVUkwsIHN0YXJ0V3JpdGluZ1Nu
YXBzaG90LCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkZpbGVNYW5hZ2VyLkV2ZW50VHlwZXMuU2F2ZWRVUkwsIHN0
YXJ0U2F2aW5nU25hcHNob3QsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IuZmlsZU1hbmFn
ZXIuc2F2ZSh0aGlzLl9maWxlTmFtZSwgIiIsIHRydWUpOworICAgIH0sCisKKyAgICAvKioKKyAg
ICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGNhbkxvYWRGcm9tRmlsZTogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGUKKyAgICAgKi8KKyAg
ICBsb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGZpbGUpCisgICAgeworICAgICAgICBmdW5jdGlvbiBv
bkVycm9yKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaChlLnRhcmdldC5lcnJvci5j
b2RlKSB7CisgICAgICAgICAgICBjYXNlIGUudGFyZ2V0LmVycm9yLk5PVF9GT1VORF9FUlI6Cisg
ICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiJyVzJyBub3QgZm91bmQuIiwgZmlsZS5uYW1lKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBlLnRhcmdldC5lcnJvci5OT1RfUkVBREFCTEVfRVJSOgor
ICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuc3VidGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIiclcycgaXMgbm90IHJlYWRhYmxlIiwgZmlsZS5uYW1lKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlLnRhcmdldC5lcnJvci5BQk9SVF9FUlI6Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuc3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IiclcycgZXJyb3IgJWQiLCBmaWxlLm5hbWUsIGUudGFyZ2V0LmVycm9yLmNvZGUpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fZnJvbUZpbGUgPSB0cnVlOworICAg
ICAgICB0aGlzLnRpdGxlID0gZmlsZS5uYW1lOworICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50
LnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkaW5nXHUyMDI2Iik7CisgICAg
ICAgIHRoaXMuc2lkZWJhckVsZW1lbnQud2FpdCA9IHRydWU7CisgICAgICAgIHRoaXMuX3NldHVw
V29ya2VyKCk7CisgICAgICAgIHRoaXMuX3Byb3h5LnN0YXJ0TG9hZGluZyhmdW5jdGlvbigpIHsg
fSk7CisKKyAgICAgICAgZnVuY3Rpb24gbG9hZE5leHRDaHVuayhmaWxlLCByZWFkZXIsIGxvYWRl
ZFNpemUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDAwMDAwMDsK
KyAgICAgICAgICAgIHZhciBzaXplID0gZmlsZS5zaXplIDwgbG9hZGVkU2l6ZSArIGNodW5rU2l6
ZSA/IGZpbGUuc2l6ZSAtIGxvYWRlZFNpemUgOiBjaHVua1NpemU7CisgICAgICAgICAgICB2YXIg
bmV4dFBhcnQgPSBmaWxlLndlYmtpdFNsaWNlKGxvYWRlZFNpemUsIGxvYWRlZFNpemUgKyBzaXpl
KTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KG5leHRQYXJ0KTsKKyAgICAgICAgfQor
CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAorICAgICAgICAg
Ki8KKyAgICAgICAgZnVuY3Rpb24gb25Mb2FkKGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgIT09IEZpbGVSZWFkZXIuRE9ORSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRoaXMuX2xvYWRlZFNpemUgKz0gZXZl
bnQudGFyZ2V0LnJlc3VsdC5sZW5ndGg7CisgICAgICAgICAgICB0aGlzLl9wcm94eS5wdXNoSlNP
TkNodW5rKGV2ZW50LnRhcmdldC5yZXN1bHQpOworICAgICAgICAgICAgdGhpcy5zaWRlYmFyRWxl
bWVudC5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZ1x1MjAyNiAlZCUi
LCAodGhpcy5fbG9hZGVkU2l6ZSAqIDEwMCAvIGZpbGUuc2l6ZSkudG9GaXhlZCgyKSk7CisKKyAg
ICAgICAgICAgIGlmICh0aGlzLl9sb2FkZWRTaXplID09PSBmaWxlLnNpemUpIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9sb2FkZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRoaXMuZmluaXNo
SGVhcFNuYXBzaG90KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBsb2FkTmV4dENodW5rKGZpbGUsIHJlYWRlciwgdGhpcy5fbG9hZGVkU2l6
ZSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsK
KyAgICAgICAgcmVhZGVyLm9ubG9hZCA9IG9uTG9hZC5iaW5kKHRoaXMpOworICAgICAgICByZWFk
ZXIub25lcnJvciA9IG9uRXJyb3I7CisgICAgICAgIHRoaXMuX2xvYWRlZFNpemUgPSAwOworICAg
ICAgICBsb2FkTmV4dENodW5rKGZpbGUsIHJlYWRlciwgdGhpcy5fbG9hZGVkU2l6ZSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
Vmlldy5qcwppbmRleCBhOWUxMjA4Njg1M2ZhODQ4MDhlZGZjYjMyODVmNDdhOTI2YjBmYzZiLi45
MGU0YTZmN2NhNzg1YjlhM2JmZjU5OGZjZDhjYzQ5MDVkNjhhMzkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKQEAgLTYyMCwxMSAr
NjIwLDEzIEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKICAg
ICAvKioKICAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19IHRpdGxlCiAg
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAgICAgICovCi0gICAg
Y3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24oKQorICAgIGNyZWF0ZVRlbXBvcmFyeVBy
b2ZpbGU6IGZ1bmN0aW9uKHRpdGxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuUHJvZmlsZUhlYWRlcihXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlwZUlkLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZGluZ1x1MjAyNiIpKTsKKyAgICAgICAgdGl0bGUg
PSB0aXRsZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZGluZ1x1MjAyNiIpOworICAg
ICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyKFdlYkluc3BlY3Rvci5D
UFVQcm9maWxlVHlwZS5UeXBlSWQsIHRpdGxlKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5k
ZXggYTgyMWM5Mjg5MzhhYzIyNjNhYWJjY2Q1NDY4NGJiZDZmZWJmNTU3YS4uOTFkYmQ2OTM5ODBl
MjgxNDRkMDNmZjk5YjM0MDNjNzQzMjFmZWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtOTEsOSArOTEsMTAgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIC8vIE11c3QgYmUg
aW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Zz19IHRpdGxlCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAg
ICAgICovCi0gICAgY3JlYXRlVGVtcG9yYXJ5UHJvZmlsZTogZnVuY3Rpb24oKQorICAgIGNyZWF0
ZVRlbXBvcmFyeVByb2ZpbGU6IGZ1bmN0aW9uKHRpdGxlKQogICAgIHsKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJOZWVkcyBpbXBsZW1lbnRlZC4iKTsKICAgICB9LApAQCAtMTQ1LDkgKzE0Niwx
OSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAg
ICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAgKi8KLSAgICBjYW5TYXZlOiBmdW5jdGlvbigp
IHsgcmV0dXJuIGZhbHNlOyB9LAorICAgIGNhblNhdmVUb0ZpbGU6IGZ1bmN0aW9uKCkgeyByZXR1
cm4gZmFsc2U7IH0sCiAKLSAgICBzYXZlOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJO
ZWVkcyBpbXBsZW1lbnRlZCIpOyB9CisgICAgc2F2ZVRvRmlsZTogZnVuY3Rpb24oKSB7IHRocm93
IG5ldyBFcnJvcigiTmVlZHMgaW1wbGVtZW50ZWQiKTsgfSwKKworICAgIC8qKgorICAgICAqIEBy
ZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgY2FuTG9hZEZyb21GaWxlOiBmdW5jdGlvbigp
IHsgcmV0dXJuIGZhbHNlOyB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtGaWxlfSBmaWxl
CisgICAgICovCisgICAgbG9hZEZyb21GaWxlOiBmdW5jdGlvbihmaWxlKSB7IHRocm93IG5ldyBF
cnJvcigiTmVlZHMgaW1wbGVtZW50ZWQiKTsgfQogfQogCiAvKioKQEAgLTIxMCw2ICsyMjEsOCBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIGlmICghQ2Fw
YWJpbGl0aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiB8fCBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MucHJvZmlsZXJFbmFibGVkLmdldCgpKQogICAgICAgICBQcm9maWxlckFnZW50LmVuYWJs
ZSh0aGlzLl9wcm9maWxlcldhc0VuYWJsZWQuYmluZCh0aGlzKSk7CisKKyAgICB0aGlzLl9jcmVh
dGVGaWxlU2VsZWN0b3JFbGVtZW50KCk7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LkV2ZW50VHlwZXMgPSB7CkBAIC0yMTgsNiArMjMxLDQxIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLkV2ZW50VHlwZXMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKKyAgICBfY3JlYXRlRmlsZVNlbGVjdG9yRWxlbWVudDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpCisgICAgICAgICAg
ICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCk7CisK
KyAgICAgICAgdmFyIGZpbGVTZWxlY3RvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOworICAgICAgICBmaWxlU2VsZWN0b3JFbGVtZW50LnR5cGUgPSAiZmlsZSI7Cisg
ICAgICAgIGZpbGVTZWxlY3RvckVsZW1lbnQuc3R5bGUuekluZGV4ID0gLTE7CisgICAgICAgIGZp
bGVTZWxlY3RvckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOworICAgICAgICBm
aWxlU2VsZWN0b3JFbGVtZW50Lm9uY2hhbmdlID0gdGhpcy5fbG9hZEZyb21GaWxlLmJpbmQodGhp
cyk7CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChmaWxlU2VsZWN0b3JFbGVtZW50
KTsKKyAgICAgICAgdGhpcy5fZmlsZVNlbGVjdG9yRWxlbWVudCA9IGZpbGVTZWxlY3RvckVsZW1l
bnQ7CisgICAgfSwKKworICAgIF9sb2FkRnJvbUZpbGU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsK
KyAgICAgICAgdmFyIGZpbGUgPSB0aGlzLl9maWxlU2VsZWN0b3JFbGVtZW50LmZpbGVzWzBdOwor
ICAgICAgICBpZiAoIWZpbGUubmFtZS5lbmRzV2l0aCgiLmhlYXBzbmFwc2hvdCIpKSB7CisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IubG9nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiT25seSBoZWFw
IHNuYXBzaG90cyBmcm9tIGZpbGVzIHdpdGggZXh0ZW5zaW9uICcuaGVhcHNuYXBzaG90JyBjYW4g
YmUgbG9hZGVkLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICghIXRoaXMuZmluZFRlbXBvcmFyeVByb2ZpbGUoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dFByb2ZpbGVUeXBlLlR5cGVJZCkpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2coV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJDYW4ndCBsb2FkIHByb2ZpbGUgd2hlbiBvdGhlciBwcm9maWxl
IGlzIHJlY29yZGluZy4iKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQpOworICAgICAgICB2YXIgdGVtcG9yYXJ5UHJv
ZmlsZSA9IHByb2ZpbGVUeXBlLmNyZWF0ZVRlbXBvcmFyeVByb2ZpbGUoVXNlckluaXRpYXRlZFBy
b2ZpbGVOYW1lICsgIi4iICsgZmlsZS5uYW1lKTsKKyAgICAgICAgdGhpcy5hZGRQcm9maWxlSGVh
ZGVyKHRlbXBvcmFyeVByb2ZpbGUpOworCisgICAgICAgIHRlbXBvcmFyeVByb2ZpbGUubG9hZEZy
b21GaWxlKGZpbGUpOworICAgICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3JFbGVtZW50KCk7
CisgICAgfSwKKwogICAgIGdldCB0b29sYmFySXRlbUxhYmVsKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGVzIik7CkBAIC0xMTA5LDEwICsxMTU3
LDEwIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICBoYW5kbGVDb250ZXh0TWVudUV2ZW50OiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIHZhciBwcm9maWxlID0gdGhpcy5wcm9maWxlOwotICAgICAgICBpZiAoIXByb2ZpbGUu
Y2FuU2F2ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgY29udGV4dE1lbnUg
PSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51KCk7Ci0gICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIHByb2ZpbGUiKSwgcHJvZmlsZS5z
YXZlLmJpbmQocHJvZmlsZSkpOworICAgICAgICBpZiAocHJvZmlsZS5jYW5TYXZlVG9GaWxlKCkp
CisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU2F2ZSBwcm9maWxlXHUyMDI2IiksIHByb2ZpbGUuc2F2ZVRvRmlsZS5iaW5kKHByb2ZpbGUp
KTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxvYWQgcHJvZmlsZVx1MjAyNiIpLCBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9maWxl
U2VsZWN0b3JFbGVtZW50LmNsaWNrLmJpbmQoV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5f
ZmlsZVNlbGVjdG9yRWxlbWVudCkpOwogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsK
ICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="147498"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>