<?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>86604</bug_id>
          
          <creation_ts>2012-05-16 03:07:00 -0700</creation_ts>
          <short_desc>Web Inspector: Move edit/save script source logic to JavaScriptSource.</short_desc>
          <delta_ts>2012-05-16 05:40:42 -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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</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>625211</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-05-16 03:07:00 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625271</commentid>
    <comment_count>1</comment_count>
      <attachid>142223</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-05-16 04:40:58 -0700</bug_when>
    <thetext>Created attachment 142223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625286</commentid>
    <comment_count>2</comment_count>
      <attachid>142223</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-16 05:05:48 -0700</bug_when>
    <thetext>Comment on attachment 142223
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerResourceBinding.js:47
&gt;  WebInspector.DebuggerResourceBinding.canEditScriptSource = function(uiSourceCode)

Thsi method should no longer exist.

&gt; Source/WebCore/inspector/front-end/JavaScriptSource.js:172
&gt; +        return WebInspector.DebuggerResourceBinding.canEditScriptSource(this) &amp;&amp; this._isEditable;

just inline it.

&gt; Source/WebCore/inspector/front-end/NavigatorView.js:59
&gt; +    this._boundUISourceCodeWorkingCopyChanged = this._uiSourceCodeWorkingCopyChanged.bind(this);

You don&apos;t have to bind methods for removing them, just use the &quot;listener, this)&quot; notation.

&gt; Source/WebCore/inspector/front-end/TabbedEditorContainer.js:67
&gt; +    this._boundUISourceCodeWorkingCopyChanged = this._uiSourceCodeWorkingCopyChanged.bind(this);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625315</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-05-16 05:40:42 -0700</bug_when>
    <thetext>Committed r117269: &lt;http://trac.webkit.org/changeset/117269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142223</attachid>
            <date>2012-05-16 04:40:58 -0700</date>
            <delta_ts>2012-05-16 05:05:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86604-20120516154056.patch</filename>
            <type>text/plain</type>
            <size>28046</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGU4NmJhYTI5MDcyYjcy
ZDJlYTYwYzczMWY5OWI1YzY0YTg1OThlNC4uMjVlNDdhZDdmZmQyNDAxYmJkZWE0Yzg3ODE2Yjcy
YjU2NmFhMmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEyLTA1LTE2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1vdmUgZWRpdC9zYXZlIHNjcmlwdCBzb3VyY2UgbG9naWMgdG8gSmF2YVNjcmlwdFNvdXJj
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NjA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
d29ya2luZyBjb3B5IG5vdGlvbiB0byBVSVNvdXJjZUNvZGUuCisgICAgICAgIE1vdmVkIERlYnVn
Z2VyUmVzb3VyY2VCaW5kaW5nIGNvbnRlbnQgZWRpdCBjYWxscyB0byBKYXZhU2NyaXB0U291cmNl
LgorICAgICAgICBBZGRlZCBXb3JraW5nQ29weUNoYW5nZWQgZXZlbnQgdG8gVUlTb3VyY2VDb2Rl
LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcu
anM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclJlc291cmNlQmluZGlu
Zy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclJlc291cmNlQmluZGluZy5jYW5F
ZGl0U2NyaXB0U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUuYnJlYWtwb2lu
dFN0b3JhZ2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90
b3R5cGUuaXNFZGl0YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJj
ZS5wcm90b3R5cGUuY29tbWl0V29ya2luZ0NvcHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLndh
c1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlLmNhbkVkaXRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2VGcmFtZS5wcm90b3R5cGUuY29tbWl0RWRpdGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5hZnRlclRleHRDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9y
ZVRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlLl9kaWRFZGl0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2
YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fb25Nb3VzZURvd24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnBy
b3RvdHlwZS5fdWlTb3VyY2VDb2RlV29ya2luZ0NvcHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQ29udGVudENoYW5n
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl91cGRh
dGVTY3JpcHRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90
b3R5cGUuX3JlbW92ZVVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yVmlldy5wcm90b3R5cGUuX2FkZFVJU291cmNlQ29kZUxpc3RlbmVycyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX3JlbW92ZVVJU291cmNlQ29kZUxp
c3RlbmVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUu
cmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlVUlT
b3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRN
b2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90
eXBlLl9hZGRTY3JpcHRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlw
cGV0TW9kZWwucHJvdG90eXBlLl9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9yQ29udGFpbmVyLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuX3RpdGxlRm9yRmlsZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fYXBw
ZW5kRmlsZVRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVy
LnByb3RvdHlwZS5fdGFiQ2xvc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIucHJvdG90eXBlLl91cGRhdGVGaWxlVGl0bGUuZ2V0IGlmKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl91cGRhdGVGaWxl
VGl0bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90
b3R5cGUuX3VpU291cmNlQ29kZVdvcmtpbmdDb3B5Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQ29udGVu
dENoYW5nZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5jb250ZW50Q2hhbmdlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5pc0VkaXRhYmxlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLndvcmtpbmdDb3B5KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnNldFdvcmtpbmdDb3B5KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLmlzRGlydHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuY29tbWl0V29ya2lu
Z0NvcHkpOgorCiAyMDEyLTA1LTE2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBEZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsIHRvIERlYnVnZ2VyU2NyaXB0TWFwcGluZywgbWFrZSBpdCBwcml2YXRlIHRvIFNjcmlw
dHNQYW5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29tcGlsZXJTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKaW5kZXggMmQwMTRjNTVkMzEyNmM1NTNhNWE2
OGM1M2YyZDc2NDM1NGE0NzIwMC4uYzkzOWJmMjczYWExODhkNWJjODI0Njc1NTYxYjk5OTQzMTZm
ZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21w
aWxlclNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMKQEAgLTExNiw5ICsxMTYsOCBAQCBXZWJJbnNw
ZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRl
cigidGV4dC9qYXZhc2NyaXB0Iiwgc291cmNlQ29udGVudCk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgY29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5Db21waWxl
clNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIoc291cmNlVVJMKTsKLSAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uoc291cmNl
VVJMLCBjb250ZW50UHJvdmlkZXIsIHRoaXMpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzb3VyY2VVUkwsIGNvbnRlbnRQ
cm92aWRlciwgdGhpcywgZmFsc2UpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29udGVu
dFNjcmlwdCA9IHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQ7Ci0gICAgICAgICAgICB1aVNvdXJjZUNv
ZGUuaXNFZGl0YWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlQnlV
Ukxbc291cmNlVVJMXSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1h
cEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzb3VyY2VNYXApOwogICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlTGlzdC5wdXNoKHVpU291cmNlQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclJlc291cmNlQmlu
ZGluZy5qcwppbmRleCA5M2YyN2Y0ZWE1MmM1ZTk4ZjU5MjU4Y2EyN2IyYmI1ODc3MTEwOGIyLi43
YjQ1MTM0ZTY2M2U0MDg0OTBmY2YzOTRhMzcxNWMzODU2NzRmMjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJSZXNvdXJj
ZUJpbmRpbmcuanMKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUmVzb3Vy
Y2VCaW5kaW5nID0gZnVuY3Rpb24odWlTb3VyY2VDb2RlUHJvamVjdCkKICAqLwogV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUmVzb3VyY2VCaW5kaW5nLmNhbkVkaXRTY3JpcHRTb3VyY2UgPSBmdW5jdGlv
bih1aVNvdXJjZUNvZGUpCiB7Ci0gICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LmNhblNldFNjcmlwdFNvdXJjZSgpICYmIHVpU291cmNlQ29kZS5pc0VkaXRhYmxlOworICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYW5TZXRTY3JpcHRTb3VyY2UoKTsKIH0K
IAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2UuanMKaW5kZXggZmRkN2QzZGViZDA3YTcwNDg2NzZjMTk0YTc5MzRjNGNh
MWJmMjVjZC4uN2Q2OWFmOWM5MWYyNWVkOGZmNDc3ZTYxY2Y2YWFhMzAzNzg4NDIyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNv
dXJjZS5qcwpAQCAtMzUsOSArMzUsMTAgQEAKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRl
bnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Tb3Vy
Y2VNYXBwaW5nfSBzb3VyY2VNYXBwaW5nCiAgKi8KLVdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291
cmNlID0gZnVuY3Rpb24odXJsLCBjb250ZW50UHJvdmlkZXIsIHNvdXJjZU1hcHBpbmcpCitXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVy
LCBzb3VyY2VNYXBwaW5nLCBpc0VkaXRhYmxlKQogewogICAgIFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGUuY2FsbCh0aGlzLCB1cmwsIGNvbnRlbnRQcm92aWRlciwgc291cmNlTWFwcGluZyk7Cisg
ICAgdGhpcy5faXNFZGl0YWJsZSA9IGlzRWRpdGFibGU7CiAKICAgICB0aGlzLl9mb3JtYXR0ZXJN
YXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5JZGVudGl0eUZvcm1hdHRlclNvdXJjZU1hcHBpbmco
KTsKICAgICAvLyBGSVhNRTogcG9zdHBvbmUgYnJlYWtwb2ludHMgcmVzdG9yZSB0byBhZnRlciB0
aGUgbWFwcGluZyBoYXMgYmVlbiBlc3RhYmxpc2hlZC4KQEAgLTE2MSw2ICsxNjIsMjAgQEAgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgIGJyZWFrcG9pbnRT
dG9yYWdlSWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0
ZWQgPyAiZGVvYmZ1c2NhdGVkOiIgKyB0aGlzLnVybCA6IHRoaXMudXJsOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGlzRWRpdGFibGU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuRGVidWdnZXJS
ZXNvdXJjZUJpbmRpbmcuY2FuRWRpdFNjcmlwdFNvdXJjZSh0aGlzKSAmJiB0aGlzLl9pc0VkaXRh
YmxlOworICAgIH0sCisKKyAgICBjb21taXRXb3JraW5nQ29weTogZnVuY3Rpb24oY2FsbGJhY2sp
CisgICAgeyAgCisgICAgICAgIGlmICh0aGlzLmlzRGlydHkoKSkKKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclJlc291cmNlQmluZGluZy5zZXRTY3JpcHRTb3VyY2UodGhpcywgdGhp
cy53b3JraW5nQ29weSgpLCBjYWxsYmFjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LmpzCmluZGV4IDNjOTJiNDZhNGRiNDdmYzZlMzI2ZDFlYzU1OTMwYmI5OTg1NTZkNzcuLjBiMjA3
N2M1MTAwYmU1MTJkNDk1NjE1MzE0YjQzMGE4ZGZjM2ZmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LmpzCkBAIC03MSw3ICs3MSw2IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLndhc1Nob3duLmNhbGwodGhpcyk7Ci0g
ICAgICAgIHRoaXMuX3NldFNjcmlwdFNvdXJjZUlzRGlydHkodGhpcy5faXNEaXJ0eSk7CiAgICAg
fSwKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCkBAIC0xMDMsNyArMTAyLDcgQEAgV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAg
Y2FuRWRpdFNvdXJjZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclJlc291cmNlQmluZGluZy5jYW5FZGl0U2NyaXB0U291cmNlKHRoaXMuX3Vp
U291cmNlQ29kZSk7CisgICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGUuaXNFZGl0YWJs
ZSgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTExMiw3ICsxMTEsNyBAQCBXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICBjb21taXRFZGl0aW5nOiBm
dW5jdGlvbih0ZXh0KQogICAgIHsKICAgICAgICAgdGhpcy5fZWRpdGluZ0NvbnRlbnQgPSB0cnVl
OwotICAgICAgICBXZWJJbnNwZWN0b3IuRGVidWdnZXJSZXNvdXJjZUJpbmRpbmcuc2V0U2NyaXB0
U291cmNlKHRoaXMuX3VpU291cmNlQ29kZSwgdGV4dCwgdGhpcy5fZGlkRWRpdENvbnRlbnQuYmlu
ZCh0aGlzLCB0ZXh0KSk7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZS5jb21taXRXb3JraW5n
Q29weSh0aGlzLl9kaWRFZGl0Q29udGVudC5iaW5kKHRoaXMsIHRleHQpKTsKICAgICB9LAogCiAg
ICAgLyoqCkBAIC0xNzAsMjIgKzE2OSwxNCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgIGFmdGVyVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKG9s
ZFJhbmdlLCBuZXdSYW5nZSkKICAgICB7Ci0gICAgICAgIHZhciBpc0RpcnR5ID0gdGhpcy50ZXh0
TW9kZWwudGV4dCAhPT0gdGhpcy5fb3JpZ2luYWxDb250ZW50OwotICAgICAgICBpZiAoaXNEaXJ0
eSkKLSAgICAgICAgICAgIHRoaXMuX3NldFNjcmlwdFNvdXJjZUlzRGlydHkodHJ1ZSk7Ci0gICAg
ICAgIGVsc2UKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KHRoaXMu
dGV4dE1vZGVsLnRleHQpOworICAgICAgICBpZiAoIXRoaXMuX3VpU291cmNlQ29kZS5pc0RpcnR5
KCkpCiAgICAgICAgICAgICB0aGlzLl9kaWRFZGl0Q29udGVudCh0aGlzLl9vcmlnaW5hbENvbnRl
bnQsIG51bGwpOwogICAgIH0sCiAKLSAgICBfc2V0U2NyaXB0U291cmNlSXNEaXJ0eTogZnVuY3Rp
b24oaXNEaXJ0eSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NjcmlwdHNQYW5lbC5zZXRTY3JpcHRT
b3VyY2VJc0RpcnR5KHRoaXMuX3VpU291cmNlQ29kZSwgaXNEaXJ0eSk7Ci0gICAgICAgIHRoaXMu
X2lzRGlydHkgPSBpc0RpcnR5OwotICAgIH0sCi0KICAgICBiZWZvcmVUZXh0Q2hhbmdlZDogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pc0RpcnR5KSB7CisgICAgICAgIGlm
ICghdGhpcy5fdWlTb3VyY2VDb2RlLmlzRGlydHkoKSkgewogICAgICAgICAgICAgLy8gRGlzYWJs
ZSBhbGwgYnJlYWtwb2ludHMgaW4gdGhlIG1vZGVsLCBzdG9yZSB0aGVtIGFzIG11dGVkIGJyZWFr
cG9pbnRzLgogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMgPSB0aGlzLl9icmVh
a3BvaW50TWFuYWdlci5icmVha3BvaW50TG9jYXRpb25zRm9yVUlTb3VyY2VDb2RlKHRoaXMuX3Vp
U291cmNlQ29kZSk7CiAgICAgICAgICAgICB2YXIgbGluZU51bWJlcnMgPSB7fTsKQEAgLTE5Nyw3
ICsxODgsNiBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2lzRGlydHkgPSB0
cnVlOwogICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmJlZm9yZVRl
eHRDaGFuZ2VkLmNhbGwodGhpcyk7CiAgICAgfSwKIApAQCAtMjExLDcgKzIwMSw2IEBAIFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB9CiAK
ICAgICAgICAgdGhpcy5fb3JpZ2luYWxDb250ZW50ID0gY29udGVudDsKLSAgICAgICAgdGhpcy5f
aXNEaXJ0eSA9IGZhbHNlOwogCiAgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVkIGJyZWFrcG9p
bnRzLgogICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IHRoaXMu
dGV4dE1vZGVsLmxpbmVzQ291bnQ7ICsrbGluZU51bWJlcikgewpAQCAtMjIzLDcgKzIxMiw2IEBA
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnQobGluZU51bWJlciwgYnJlYWtwb2ludERlY29y
YXRpb24uY29uZGl0aW9uLCBicmVha3BvaW50RGVjb3JhdGlvbi5lbmFibGVkKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQotICAgICAgICB0aGlzLl9zZXRTY3JpcHRTb3VyY2VJc0RpcnR5KGZh
bHNlKTsKICAgICB9LAogCiAgICAgX2dldFBvcG92ZXJBbmNob3I6IGZ1bmN0aW9uKGVsZW1lbnQs
IGV2ZW50KQpAQCAtMzgyLDcgKzM3MCw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlID0gewogCiAgICAgX29uTW91c2VEb3duOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pc0RpcnR5KQorICAgICAgICBpZiAodGhpcy5fdWlT
b3VyY2VDb2RlLmlzRGlydHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAo
ZXZlbnQuYnV0dG9uICE9IDAgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZl
bnQubWV0YUtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmF2aWdhdG9yVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmF2aWdhdG9yVmlldy5qcwppbmRleCBjMGYyZjFjMmMyZWJiYmZlODI5NTViNDlkZTQ3MmY2M2Vk
NmM2YmQzLi45NTdmNTE2ODJlMDA4MTE0MzU2NTgzYTJlYzdiZTVhNzU3NTcwYTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3Lmpz
CkBAIC01Niw2ICs1Niw4IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3ID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuX3NjcmlwdFRyZWVFbGVtZW50c0J5VUlTb3VyY2VDb2RlID0gbmV3IE1hcCgp
OwogCiAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dTY3JpcHRGb2xkZXJzLmFkZENoYW5n
ZUxpc3RlbmVyKHRoaXMuX3Nob3dTY3JpcHRGb2xkZXJzU2V0dGluZ0NoYW5nZWQuYmluZCh0aGlz
KSk7CisgICAgdGhpcy5fYm91bmRVSVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQgPSB0aGlz
Ll91aVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQuYmluZCh0aGlzKTsKKyAgICB0aGlzLl9i
b3VuZFVJU291cmNlQ29kZUNvbnRlbnRDaGFuZ2VkID0gdGhpcy5fdWlTb3VyY2VDb2RlQ29udGVu
dENoYW5nZWQuYmluZCh0aGlzKTsKIH0KIAogCkBAIC03NSwxMSArNzcsMjQgQEAgV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc2NyaXB0VHJlZUVs
ZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclNjcmlwdFRyZWVFbGVtZW50KHRoaXMs
IHVpU291cmNlQ29kZSwgIiIpOwogICAgICAgICB0aGlzLl9zY3JpcHRUcmVlRWxlbWVudHNCeVVJ
U291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzY3JpcHRUcmVlRWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX3VwZGF0ZVNjcmlwdFRpdGxlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuX2Fk
ZFVJU291cmNlQ29kZUxpc3RlbmVycyh1aVNvdXJjZUNvZGUpOwogCiAgICAgICAgIHZhciBmb2xk
ZXJUcmVlRWxlbWVudCA9IHRoaXMuZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudCh1aVNvdXJj
ZUNvZGUpOwogICAgICAgICBmb2xkZXJUcmVlRWxlbWVudC5hcHBlbmRDaGlsZChzY3JpcHRUcmVl
RWxlbWVudCk7CiAgICAgfSwKIAorICAgIF91aVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQ6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gZXZlbnQudGFyZ2V0OworICAgICAg
ICB0aGlzLl91cGRhdGVTY3JpcHRUaXRsZSh1aVNvdXJjZUNvZGUpCisgICAgfSwKKyAgICAKKyAg
ICBfdWlTb3VyY2VDb2RlQ29udGVudENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0gKi8gZXZlbnQudGFyZ2V0OworICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRUaXRsZSh1
aVNvdXJjZUNvZGUpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwpAQCAtOTgsNiArMTEzLDgg
QEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGl0bGVUZXh0ID0gdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC51cmw7CiAgICAgICAgIGlmICghdGl0
bGVUZXh0KQogICAgICAgICAgICAgdGl0bGVUZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIo
cHJvZ3JhbSkiKTsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc0RpcnR5KCkpCisgICAgICAg
ICAgICB0aXRsZVRleHQgPSAiKiIgKyB0aXRsZVRleHQ7CiAgICAgICAgIHNjcmlwdFRyZWVFbGVt
ZW50LnRpdGxlVGV4dCA9IHRpdGxlVGV4dDsKICAgICB9LAogCkBAIC0xODMsNiArMjAwLDI1IEBA
IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRy
ZWVFbGVtZW50ID0gcGFyZW50OwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NjcmlwdFRyZWVF
bGVtZW50c0J5VUlTb3VyY2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlz
Ll9yZW1vdmVVSVNvdXJjZUNvZGVMaXN0ZW5lcnModWlTb3VyY2VDb2RlKTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJj
ZUNvZGUKKyAgICAgKi8KKyAgICBfYWRkVUlTb3VyY2VDb2RlTGlzdGVuZXJzOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICB1aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29weUNoYW5nZWQsIHRo
aXMuX2JvdW5kVUlTb3VyY2VDb2RlV29ya2luZ0NvcHlDaGFuZ2VkKTsKKyAgICAgICAgdWlTb3Vy
Y2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMu
Q29udGVudENoYW5nZWQsIHRoaXMuX2JvdW5kVUlTb3VyY2VDb2RlQ29udGVudENoYW5nZWQpOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGV9IHVpU291cmNlQ29kZQorICAgICAqLworICAgIF9yZW1vdmVVSVNvdXJjZUNvZGVMaXN0ZW5l
cnM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHVpU291cmNlQ29kZS5y
ZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLldvcmtp
bmdDb3B5Q2hhbmdlZCwgdGhpcy5fYm91bmRVSVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQp
OworICAgICAgICB1aVNvdXJjZUNvZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLkV2ZW50cy5Db250ZW50Q2hhbmdlZCwgdGhpcy5fYm91bmRVSVNvdXJjZUNv
ZGVDb250ZW50Q2hhbmdlZCk7CiAgICAgfSwKIAogICAgIF9zaG93U2NyaXB0Rm9sZGVyc1NldHRp
bmdDaGFuZ2VkOiBmdW5jdGlvbigpCkBAIC0yMzcsMTIgKzI3MywxNyBAQCBXZWJJbnNwZWN0b3Iu
TmF2aWdhdG9yVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgZWRp
dGluZ0NvbmZpZyA9IG5ldyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZyhjb21taXRIYW5kbGVy
LmJpbmQodGhpcyksIGNhbmNlbEhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNjcmlwdFRpdGxlKHVpU291cmNlQ29kZSwgdHJ1ZSk7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5zdGFydEVkaXRpbmcoc2NyaXB0VHJlZUVsZW1lbnQudGl0bGVFbGVtZW50LCBlZGl0aW5nQ29u
ZmlnKTsKICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoc2Ny
aXB0VHJlZUVsZW1lbnQudGl0bGVFbGVtZW50LCAwLCBzY3JpcHRUcmVlRWxlbWVudC50aXRsZUVs
ZW1lbnQsIDEpOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAg
ICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl9zY3JpcHRzVHJlZS5zY3JpcHRUcmVlRWxlbWVu
dHM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIHRoaXMuX3JlbW92ZVVJU291cmNlQ29kZUxpc3RlbmVycyh1aVNvdXJj
ZUNvZGVzW2ldKTsKKwogICAgICAgICB0aGlzLl9zY3JpcHRzVHJlZS5zdG9wU2VhcmNoKCk7CiAg
ICAgICAgIHRoaXMuX3NjcmlwdHNUcmVlLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMu
X2ZvbGRlclRyZWVFbGVtZW50cyA9IHt9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCmluZGV4IDI1ZDlkNjI3M2EyZTcwZmEyOTQ1
OWI5OTUxNjRkOGEzYmQxMWY4ZDguLjQzOGM3ODE2MTk1MjRjNzdkYTkyYWVjNTRjMjUzZWVmODI3
OTBhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3
U291cmNlQ29kZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jh
d1NvdXJjZUNvZGUuanMKQEAgLTEwMCw5ICsxMDAsOCBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNl
Q29kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNvbnRlbnRQcm92
aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRl
cih0aGlzLl9zY3JpcHRzKTsKIAotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHRoaXMudXJsLCBjb250ZW50UHJvdmlkZXIsIHRoaXMu
X3NvdXJjZU1hcHBpbmcpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlKHRoaXMudXJsLCBjb250ZW50UHJvdmlkZXIsIHRoaXMuX3Nv
dXJjZU1hcHBpbmcsIGlzU3RhbmRhbG9uZVNjcmlwdCk7CiAgICAgICAgIHVpU291cmNlQ29kZS5p
c0NvbnRlbnRTY3JpcHQgPSB0aGlzLmlzQ29udGVudFNjcmlwdDsKLSAgICAgICAgdWlTb3VyY2VD
b2RlLmlzRWRpdGFibGUgPSBpc1N0YW5kYWxvbmVTY3JpcHQ7CiAgICAgICAgIHJldHVybiB1aVNv
dXJjZUNvZGU7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qcwppbmRleCAyOTRmNzhlY2FmMGYwNzY4
ODUzMTIzNmNkMDBkMGVkNWQ4M2FiNDYzLi4yMzVjODc0NmFjMTIwY2I3ODljYjc1NDNmY2M2MDBk
YzQ0YWVmNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdFNuaXBwZXRNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdFNuaXBwZXRNb2RlbC5qcwpAQCAtNzYsOSArNzYsOCBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfYWRkU2NyaXB0U25pcHBl
dDogZnVuY3Rpb24oc25pcHBldCkKICAgICB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVVUkwg
PSAiIjsgLy8gRklYTUU6IHRvIGJlIGltcGxlbWVudGVkLgotICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVpU291cmNlQ29kZVVSTCwg
bmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVyKHNuaXBwZXQpLCB0aGlzLl9z
bmlwcGV0U2NyaXB0TWFwcGluZyk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodWlTb3VyY2VDb2RlVVJMLCBuZXcgV2ViSW5zcGVj
dG9yLlNuaXBwZXRDb250ZW50UHJvdmlkZXIoc25pcHBldCksIHRoaXMuX3NuaXBwZXRTY3JpcHRN
YXBwaW5nLCB0cnVlKTsKICAgICAgICAgdWlTb3VyY2VDb2RlLmlzU25pcHBldCA9IHRydWU7Ci0g
ICAgICAgIHVpU291cmNlQ29kZS5pc0VkaXRhYmxlID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlRm9yU25pcHBldC5wdXQoc25pcHBldCwgdWlTb3VyY2VDb2RlKTsKICAgICAgICAg
dGhpcy5fc25pcHBldEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzbmlwcGV0KTsK
ICAgICAgICAgdGhpcy5fc25pcHBldFNjcmlwdE1hcHBpbmcuX3VpU291cmNlQ29kZXNBZGRlZChb
dWlTb3VyY2VDb2RlXSk7CkBAIC0yMTUsNyArMjE0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNu
aXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2NyZWF0ZVVJU291cmNlQ29k
ZUZvclNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNlVVJM
LCBzY3JpcHQsIHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsKKyAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNl
VVJMLCBzY3JpcHQsIHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nLCBmYWxzZSk7CiAgICAgICAg
IHVpU291cmNlQ29kZS5pc1NuaXBwZXRFdmFsdWF0aW9uID0gdHJ1ZTsKICAgICAgICAgdGhpcy5f
dWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHVpU291cmNlQ29kZTsK
ICAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUsIHNj
cmlwdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCmluZGV4IDEzODhlMTcxYWQwYzI1YWI2Yjc0ZjY4MDlhOWRjYzdlN2IzMjNmYzku
LmY3MDQ1ZmU2NjM4MmNmZDhmYWQ0OGM2ODJjNzUxMThiNGRhMzMzMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yNjQs
MTYgKzI2NCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNl
Q29kZQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXJ0eQotICAgICAqLwotICAgIHNldFNj
cmlwdFNvdXJjZUlzRGlydHk6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgaXNEaXJ0eSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX25hdmlnYXRvci5zZXRTY3JpcHRTb3VyY2VJc0RpcnR5KHVpU291cmNl
Q29kZSwgaXNEaXJ0eSk7Ci0gICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5zZXRGaWxlSXNE
aXJ0eSh1aVNvdXJjZUNvZGUsIGlzRGlydHkpOwotICAgIH0sCi0KICAgICBfY29uc29sZUNvbW1h
bmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAg
ICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnNjb3BlY2hhaW4udXBkYXRlKFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwpp
bmRleCA1N2U2OTZiYmUzZDVjYTA5ZGU5YTgwYTZmZWQ4ZmMyZTlhYWIwNmYwLi45OTk4ZjUwZmNl
MTVkMWNmOTI3N2UxZGRmZTBkNGMyNWIzOTFmNTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwpA
QCAtNDcsNiArNDcsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyRGVsZWdh
dGUucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVy
ID0gZnVuY3Rpb24oZGVsZWdhdGUsIHNldHRpbmdOYW1lKQogeworICAgIFdlYkluc3BlY3Rvci5P
YmplY3QuY2FsbCh0aGlzKTsKICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwogCiAgICAg
dGhpcy5fdGFiYmVkUGFuZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZSgpOwpAQCAtNjIs
NiArNjMsOSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24o
ZGVsZWdhdGUsIHNldHRpbmdOYW1lKQogCiAgICAgdGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVz
U2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKHNldHRpbmdOYW1l
LCBbXSk7CiAgICAgdGhpcy5faGlzdG9yeSA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9y
Q29udGFpbmVyLkhpc3RvcnkodGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGluZy5nZXQo
KSk7CisKKyAgICB0aGlzLl9ib3VuZFVJU291cmNlQ29kZVdvcmtpbmdDb3B5Q2hhbmdlZCA9IHRo
aXMuX3VpU291cmNlQ29kZVdvcmtpbmdDb3B5Q2hhbmdlZC5iaW5kKHRoaXMpOworICAgIHRoaXMu
X2JvdW5kVUlTb3VyY2VDb2RlQ29udGVudENoYW5nZWQgPSB0aGlzLl91aVNvdXJjZUNvZGVDb250
ZW50Q2hhbmdlZC5iaW5kKHRoaXMpOwogfQogCiAKQEAgLTEzNSwxNSArMTM5LDIxIEBAIFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICBjb25z
dCBtYXhEaXNwbGF5TmFtZUxlbmd0aCA9IDMwOwogICAgICAgICBjb25zdCBtaW5EaXNwbGF5UXVl
cnlQYXJhbUxlbmd0aCA9IDU7CiAKKyAgICAgICAgdmFyIHRpdGxlOwogICAgICAgICB2YXIgcGFy
c2VkVVJMID0gdWlTb3VyY2VDb2RlLnBhcnNlZFVSTDsKICAgICAgICAgaWYgKCFwYXJzZWRVUkwu
aXNWYWxpZCkKLSAgICAgICAgICAgIHJldHVybiBwYXJzZWRVUkwudXJsID8gcGFyc2VkVVJMLnVy
bC50cmltTWlkZGxlKG1heERpc3BsYXlOYW1lTGVuZ3RoKSA6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiKHByb2dyYW0pIik7Ci0KLSAgICAgICAgdmFyIG1heERpc3BsYXlRdWVyeVBhcmFtTGVuZ3Ro
ID0gTWF0aC5tYXgobWluRGlzcGxheVF1ZXJ5UGFyYW1MZW5ndGgsIG1heERpc3BsYXlOYW1lTGVu
Z3RoIC0gcGFyc2VkVVJMLmxhc3RQYXRoQ29tcG9uZW50Lmxlbmd0aCk7Ci0gICAgICAgIHZhciBk
aXNwbGF5UXVlcnlQYXJhbXMgPSBwYXJzZWRVUkwucXVlcnlQYXJhbXMgPyAiPyIgKyBwYXJzZWRV
UkwucXVlcnlQYXJhbXMudHJpbUVuZChtYXhEaXNwbGF5UXVlcnlQYXJhbUxlbmd0aCAtIDEpIDog
IiI7Ci0gICAgICAgIHZhciBkaXNwbGF5TGFzdFBhdGhDb21wb25lbnQgPSBwYXJzZWRVUkwubGFz
dFBhdGhDb21wb25lbnQudHJpbU1pZGRsZShtYXhEaXNwbGF5TmFtZUxlbmd0aCAtIGRpc3BsYXlR
dWVyeVBhcmFtcy5sZW5ndGgpOwotICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSBkaXNwbGF5TGFz
dFBhdGhDb21wb25lbnQgKyBkaXNwbGF5UXVlcnlQYXJhbXM7Ci0gICAgICAgIHJldHVybiBkaXNw
bGF5TmFtZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOworICAgICAgICAg
ICAgdGl0bGUgPSBwYXJzZWRVUkwudXJsID8gcGFyc2VkVVJMLnVybC50cmltTWlkZGxlKG1heERp
c3BsYXlOYW1lTGVuZ3RoKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dyYW0pIik7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFyIG1heERpc3BsYXlRdWVyeVBhcmFtTGVuZ3Ro
ID0gTWF0aC5tYXgobWluRGlzcGxheVF1ZXJ5UGFyYW1MZW5ndGgsIG1heERpc3BsYXlOYW1lTGVu
Z3RoIC0gcGFyc2VkVVJMLmxhc3RQYXRoQ29tcG9uZW50Lmxlbmd0aCk7CisgICAgICAgICAgICB2
YXIgZGlzcGxheVF1ZXJ5UGFyYW1zID0gcGFyc2VkVVJMLnF1ZXJ5UGFyYW1zID8gIj8iICsgcGFy
c2VkVVJMLnF1ZXJ5UGFyYW1zLnRyaW1FbmQobWF4RGlzcGxheVF1ZXJ5UGFyYW1MZW5ndGggLSAx
KSA6ICIiOworICAgICAgICAgICAgdmFyIGRpc3BsYXlMYXN0UGF0aENvbXBvbmVudCA9IHBhcnNl
ZFVSTC5sYXN0UGF0aENvbXBvbmVudC50cmltTWlkZGxlKG1heERpc3BsYXlOYW1lTGVuZ3RoIC0g
ZGlzcGxheVF1ZXJ5UGFyYW1zLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUg
PSBkaXNwbGF5TGFzdFBhdGhDb21wb25lbnQgKyBkaXNwbGF5UXVlcnlQYXJhbXM7CisgICAgICAg
ICAgICB0aXRsZSA9IGRpc3BsYXlOYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dy
YW0pIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXNE
aXJ0eSgpKQorICAgICAgICAgICAgdGl0bGUgKz0gIioiOworICAgICAgICByZXR1cm4gdGl0bGU7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjE5LDYgKzIyOSw4IEBAIFdlYkluc3BlY3Rvci5UYWJi
ZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9maWxlc1t0YWJJ
ZF0gPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIAogICAgICAgICB0aGlzLl90YWJiZWRQYW5lLmFw
cGVuZFRhYih0YWJJZCwgdGl0bGUsIHZpZXcsIHRvb2x0aXAsIHVzZXJHZXN0dXJlKTsKKyAgICAg
ICAgdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZS5FdmVudHMuV29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlzLl9ib3VuZFVJU291cmNlQ29kZVdvcmtp
bmdDb3B5Q2hhbmdlZCk7CisgICAgICAgIHVpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnRlbnRDaGFuZ2VkLCB0aGlzLl9ib3Vu
ZFVJU291cmNlQ29kZUNvbnRlbnRDaGFuZ2VkKTsKICAgICAgICAgcmV0dXJuIHRhYklkOwogICAg
IH0sCiAKQEAgLTI0NSw2ICsyNTcsOCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdGFiSWRzLnJlbW92ZSh1aVNvdXJjZUNv
ZGUpOwogICAgICAgICBkZWxldGUgdGhpcy5fZmlsZXNbdGFiSWRdOwogICAgICAgICBkZWxldGUg
dGhpcy5fY3VycmVudEZpbGU7CisgICAgICAgIHVpU291cmNlQ29kZS5yZW1vdmVFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLldvcmtpbmdDb3B5Q2hhbmdlZCwg
dGhpcy5fYm91bmRVSVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQpOworICAgICAgICB1aVNv
dXJjZUNvZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2
ZW50cy5Db250ZW50Q2hhbmdlZCwgdGhpcy5fYm91bmRVSVNvdXJjZUNvZGVDb250ZW50Q2hhbmdl
ZCk7CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LlRhYmJlZEVkaXRvckNvbnRhaW5lci5FdmVudHMuRWRpdG9yQ2xvc2VkLCB1aVNvdXJjZUNvZGUp
OwogCkBAIC0zMTAsMTggKzMyNCwyNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLnByb3RvdHlwZSA9IHsKICAgICAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNEaXJ0eQogICAgICAqLwotICAgIHNldEZpbGVJc0RpcnR5OiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGUsIGlzRGlydHkpCisgICAgX3VwZGF0ZUZpbGVUaXRsZTogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
KQogICAgIHsKICAgICAgICAgdmFyIHRhYklkID0gdGhpcy5fdGFiSWRzLmdldCh1aVNvdXJjZUNv
ZGUpOwogICAgICAgICBpZiAodGFiSWQpIHsKICAgICAgICAgICAgIHZhciB0aXRsZSA9IHRoaXMu
X3RpdGxlRm9yRmlsZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgaWYgKGlzRGlydHkpCi0g
ICAgICAgICAgICAgICAgdGl0bGUgKz0gIioiOwogICAgICAgICAgICAgdGhpcy5fdGFiYmVkUGFu
ZS5jaGFuZ2VUYWJUaXRsZSh0YWJJZCwgdGl0bGUpOwogICAgICAgICB9CiAgICAgfSwKKyAgICAK
KyAgICBfdWlTb3VyY2VDb2RlV29ya2luZ0NvcHlDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKKyAg
ICB7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGV9ICovIGV2ZW50LnRhcmdldDsKKyAgICAgICAgdGhpcy5fdXBkYXRlRmlsZVRp
dGxlKHVpU291cmNlQ29kZSk7CisgICAgfSwKKworICAgIF91aVNvdXJjZUNvZGVDb250ZW50Q2hh
bmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
LyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVudC50YXJnZXQ7Cisg
ICAgICAgIHRoaXMuX3VwZGF0ZUZpbGVUaXRsZSh1aVNvdXJjZUNvZGUpOworICAgIH0sCiAKICAg
ICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggZDBkYWEyYjMwMDQyNjhmZGNhZmRk
NWZiMDUzZjliOTZhZjRlNmZiOC4uZDA2NmFhN2RmZDBmZGMxNmUwYzMwNDJjMWQ3OTFhYWRlYWZh
Yjc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNv
dXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNv
dXJjZUNvZGUuanMKQEAgLTQzLDcgKzQzLDYgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSA9
IGZ1bmN0aW9uKHVybCwgY29udGVudFByb3ZpZGVyLCBzb3VyY2VNYXBwaW5nKQogICAgIHRoaXMu
X2NvbnRlbnRQcm92aWRlciA9IGNvbnRlbnRQcm92aWRlcjsKICAgICB0aGlzLl9zb3VyY2VNYXBw
aW5nID0gc291cmNlTWFwcGluZzsKICAgICB0aGlzLmlzQ29udGVudFNjcmlwdCA9IGZhbHNlOwot
ICAgIHRoaXMuaXNFZGl0YWJsZSA9IGZhbHNlOwogICAgIC8qKgogICAgICAqIEB0eXBlIEFycmF5
LjxmdW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKT4KICAgICAgKi8KQEAgLTU3LDYgKzU2
LDcgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVybCwgY29udGVudFBy
b3ZpZGVyLCBzb3VyY2VNYXBwaW5nKQogCiBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50
cyA9IHsKICAgICBDb250ZW50Q2hhbmdlZDogIkNvbnRlbnRDaGFuZ2VkIiwKKyAgICBXb3JraW5n
Q29weUNoYW5nZWQ6ICJXb3JraW5nQ29weUNoYW5nZWQiLAogICAgIENvbnNvbGVNZXNzYWdlQWRk
ZWQ6ICJDb25zb2xlTWVzc2FnZUFkZGVkIiwKICAgICBDb25zb2xlTWVzc2FnZVJlbW92ZWQ6ICJD
b25zb2xlTWVzc2FnZVJlbW92ZWQiLAogICAgIENvbnNvbGVNZXNzYWdlc0NsZWFyZWQ6ICJDb25z
b2xlTWVzc2FnZXNDbGVhcmVkIgpAQCAtMTAxLDEwICsxMDEsNTUgQEAgV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2Nv
bnRlbnRMb2FkZWQpOwogICAgICAgICB2YXIgb2xkQ29udGVudCA9IHRoaXMuX2NvbnRlbnQ7CiAg
ICAgICAgIHRoaXMuX2NvbnRlbnQgPSBuZXdDb250ZW50OworICAgICAgICBkZWxldGUgdGhpcy5f
d29ya2luZ0NvcHk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnRlbnRDaGFuZ2VkLCB7b2xkQ29udGVudDog
b2xkQ29udGVudCwgY29udGVudDogbmV3Q29udGVudH0pOwogICAgIH0sCiAKICAgICAvKioKKyAg
ICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIGlzRWRpdGFibGU6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIHdvcmtpbmdDb3B5OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jb250ZW50TG9hZGVkKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3dvcmtpbmdDb3B5OworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gbmV3V29ya2luZ0NvcHkKKyAgICAgKi8KKyAgICBzZXRXb3JraW5n
Q29weTogZnVuY3Rpb24obmV3V29ya2luZ0NvcHkpCisgICAgeworICAgICAgICBjb25zb2xlLmFz
c2VydCh0aGlzLl9jb250ZW50TG9hZGVkKTsKKyAgICAgICAgdmFyIG9sZFdvcmtpbmdDb3B5ID0g
dGhpcy5fd29ya2luZ0NvcHk7CisgICAgICAgIGlmICh0aGlzLl9jb250ZW50ID09PSBuZXdXb3Jr
aW5nQ29weSkKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl93b3JraW5nQ29weTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGhpcy5fd29ya2luZ0NvcHkgPSBuZXdXb3JraW5nQ29weTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5FdmVudHMuV29ya2luZ0NvcHlDaGFuZ2VkLCB7b2xkV29ya2luZ0NvcHk6IG9sZFdvcmtp
bmdDb3B5LCB3b3JraW5nQ29weTogbmV3V29ya2luZ0NvcHl9KTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBpc0RpcnR5OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudExvYWRlZCAmJiB0eXBlb2Yg
dGhpcy5fd29ya2luZ0NvcHkgIT09ICJ1bmRlZmluZWQiICYmIHRoaXMuX3dvcmtpbmdDb3B5ICE9
PSB0aGlzLl9jb250ZW50OworICAgIH0sCisKKyAgICBjb21taXRXb3JraW5nQ29weTogZnVuY3Rp
b24oY2FsbGJhY2spCisgICAgeworICAgICAgICAvLyBPdmVycmlkZW4uCisgICAgfSwKKworICAg
IC8qKgogICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KICAgICBtaW1lVHlwZTogZnVu
Y3Rpb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDQ5NzIzYzcyMmUxNzAyZjVmZDI5NGIzY2Y1MTM2ZjIwYzQ0MWM4OGIu
LjZmYzZkMmQyNmQ2MDM4N2FlYzc4ZDE4NmY4NzYyMzg1ZWFmZTkxZmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wNS0xNiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBNb3ZlIGVkaXQvc2F2ZSBzY3JpcHQgc291cmNl
IGxvZ2ljIHRvIEphdmFTY3JpcHRTb3VyY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NjYwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6
CisKIDIwMTItMDUtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXSBUZXN0cyB0aGF0IHJlcXVpcmUgREFTSEJPQVJEX1NVUFBP
UlQgc2hvdWxkIGJlIG1vdmVkIHRvIHRlc3QgZXhwZWN0YXRpb25zCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKaW5kZXgg
NjVmNjExYjM0Nzc4MTdhZWI0MDg5NGQ5NzhhZGVkMzhmMDg4YWQ4OC4uMjY2YWJkMTliOWRkOWM4
MDZhZjAxODJlNjI0MGRkMGY4NjVkZGMwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbApAQCAtMTM2LDcgKzEzNiw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIuX2Rl
YnVnZ2VyTW9kZWwuX2FkZFNjcmlwdCh1cmwsIHVybCk7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgIEFkZGluZyBVSVNvdXJjZUNvZGU6ICIgKyB1cmwgKyAiKSIpOwotICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVy
bCwgbnVsbCwgZGVmYXVsdE1hcHBpbmcpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVybCwgbnVsbCwgZGVmYXVsdE1hcHBpbmcs
IGZhbHNlKTsKICAgICAgICAgdWlTb3VyY2VDb2Rlc1t1cmxdID0gdWlTb3VyY2VDb2RlOwogICAg
ICAgICBicmVha3BvaW50TWFuYWdlci5yZXN0b3JlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsK
ICAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IDc3NDliNmQ1N2IyYjNkNDU2OTY3
NzFhMmI2YWY1ZTgyYzVhNzNlMjkuLjBmZjg4MDc4ODVjMDVkM2QxNmI2ZGYwMWY5Zjg1ZjQ5Mjdm
ZDlhODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRz
LXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMt
cGFuZWwuaHRtbApAQCAtNDksNyArNDksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9CiAgICAg
ZnVuY3Rpb24gY3JlYXRlVUlTb3VjZUNvZGUodXJsKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIG51bGwsIG51
bGwpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlKHVybCwgbnVsbCwgbnVsbCwgZmFsc2UpOwogICAgICAgICB1aVNvdXJjZUNvZGUu
cmVxdWVzdENvbnRlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICAgICAgewogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNvdXJjZSByZXF1ZXN0ZWQgZm9yICIgKyB1cmwp
Owo=
</data>
<flag name="review"
          id="148492"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>