<?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>71114</bug_id>
          
          <creation_ts>2011-10-28 06:34:54 -0700</creation_ts>
          <short_desc>Web Inspector: do not map scripts generated with document.write to the document resources.</short_desc>
          <delta_ts>2011-11-04 09:50:41 -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>
          <dependson>71268</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492415</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 06:34:54 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492476</commentid>
    <comment_count>1</comment_count>
      <attachid>112871</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 08:55:15 -0700</bug_when>
    <thetext>Created attachment 112871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493213</commentid>
    <comment_count>2</comment_count>
      <attachid>112871</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-31 02:05:21 -0700</bug_when>
    <thetext>Comment on attachment 112871
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:116
&gt; +        if (script.sourceURL &amp;&amp; script.lineOffset !== 0 &amp;&amp; script.columnOffset !== 0) {

Can we extract &quot;script.lineOffset !== 0 &amp;&amp; script.columnOffset !== 0&quot; into script.isInlineScript() or something? It is used quite often in that sense.

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:146
&gt; +        this._rawSourceCode[script.scriptId] = rawSourceCode;

_rawSourceCode -&gt; _rawSourceCodeForScriptId?

&gt; Source/WebCore/inspector/front-end/Script.js:35
&gt; +  */

Revert this.

&gt; Source/WebCore/inspector/front-end/Script.js:47
&gt; +WebInspector.Script._lastScriptId = 0;

Remove this?

&gt; LayoutTests/inspector/debugger/bind-script-to-resource.html:55
&gt; +Tests that only inline scripts are bound to the resource, while the ones generated with document.write are not. Bug 71099&lt;/a&gt;

It is not clear at first glance what the correct result is which means that this test can be erroneously rebaselined should it start failing. Can you add an explicit check for the error condition and print FAIL in that case or describe here which result should be considered correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493230</commentid>
    <comment_count>3</comment_count>
      <attachid>113030</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-31 03:21:43 -0700</bug_when>
    <thetext>Created attachment 113030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493256</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-31 04:56:18 -0700</bug_when>
    <thetext>Committed r98847: &lt;http://trac.webkit.org/changeset/98847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493701</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-31 18:24:01 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r98847: &lt;http://trac.webkit.org/changeset/98847&gt;

It broke 3 inspector tests on Snow Leopard and on Qt bot:
inspector/debugger/bind-script-to-resource.html
inspector/debugger/linkifier.html
inspector/debugger/source-frame-count.html

Could you fix it please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494551</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-02 04:39:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Committed r98847: &lt;http://trac.webkit.org/changeset/98847&gt;

It was rolled out by http://trac.webkit.org/changeset/98940</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495529</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-03 09:28:46 -0700</bug_when>
    <thetext>Committed r99203: &lt;http://trac.webkit.org/changeset/99203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496242</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-04 09:50:41 -0700</bug_when>
    <thetext>It appears that this patch broke inspector/debugger/script-formatter.html

http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20(Tests)/builds/34424</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112871</attachid>
            <date>2011-10-28 08:55:15 -0700</date>
            <delta_ts>2011-10-31 03:21:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71114-20111028195513.patch</filename>
            <type>text/plain</type>
            <size>13855</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNGM0ODQ0MDExNWZiNTFk
MWNhZDM1YmQwODYyY2ExYTQxMzFlMTZhLi45ZGZjZGYzZGI5MGYwYTI5YWYzM2UyMWM5Y2FlZDVm
OTNlYmJmZTYxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjggQEAKIDIwMTEtMTAtMjggIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGRvIG5vdCBtYXAgc2NyaXB0cyBnZW5lcmF0ZWQgd2l0aCBkb2N1bWVudC53cml0ZSB0byB0aGUg
ZG9jdW1lbnQgcmVzb3VyY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzExMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvZGVidWdnZXIvYmluZC1zY3JpcHQtdG8tcmVzb3Vy
Y2UuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9hZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9iaW5kU2NyaXB0VG9SYXdTb3VyY2VDb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
cmF3U291cmNlQ29kZUZvclNjcmlwdFdpdGhVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5fc2NyaXB0Rm9yUmF3U291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2RlYnVnZ2VyUmVzZXQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlU291cmNlTWFwcGluZy5kaWRS
ZXF1ZXN0Q29udGVudC5kaWRGb3JtYXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlU291cmNlTWFwcGluZy5kaWRSZXF1ZXN0Q29u
dGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX2Ny
ZWF0ZVNvdXJjZU1hcHBpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
LmpzOgorCisyMDExLTEwLTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4K
KwogICAgICAgICBSZXNldCBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdHMgZ2VuZXJhdGVkIHdpdGgg
ZG9jdW1lbnQud3JpdGUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTA5OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggMDc0ZDdj
MjE4ODNkOTU2ZGIwMzA5MmYzMTUzOGJiMGEzZDE4ZGE1Zi4uMzEwZWVlZTNkNjA4MmJjNDUwMjI4
Y2UzN2I4OGU2ZmU3MDQ2YTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAt
MzcsNiArMzcsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1
bmN0aW9uKCkKICAgICAvLyBGSVhNRTogYXBwbHkgZm9ybWF0dGVyIGZyb20gb3V0c2lkZSBhcyBh
IGdlbmVyaWMgbWFwcGluZy4KICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlNjcmlwdEZvcm1hdHRlcigpOwogICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGUgPSB7fTsKKyAgICB0
aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJMID0ge307CisgICAgdGhpcy5fcmF3U291cmNlQ29kZUZv
ckRvY3VtZW50VVJMID0ge307CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtd
OwogCiAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5icmVha3BvaW50cywgdGhpcy5fYnJl
YWtwb2ludEFkZGVkLmJpbmQodGhpcyksIHRoaXMuX2JyZWFrcG9pbnRSZW1vdmVkLmJpbmQodGhp
cyksIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsKTsKQEAgLTEwOSwyNCArMTExLDQzIEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
Ki8KICAgICBfYWRkU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQpCiAgICAgewotICAgICAgICB2YXIg
cmF3U291cmNlQ29kZUlkID0gdGhpcy5fY3JlYXRlUmF3U291cmNlQ29kZUlkKHNjcmlwdCk7Ci0g
ICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291cmNlQ29kZVtyYXdTb3VyY2VD
b2RlSWRdOwotICAgICAgICBpZiAocmF3U291cmNlQ29kZSkgewotICAgICAgICAgICAgcmF3U291
cmNlQ29kZS5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCiAgICAgICAgIHZhciByZXNvdXJjZTsKLSAgICAgICAgaWYgKHNjcmlwdC5zb3VyY2VVUkwp
CisgICAgICAgIHZhciBpc0lubGluZVNjcmlwdCA9IGZhbHNlOworICAgICAgICBpZiAoc2NyaXB0
LnNvdXJjZVVSTCAmJiBzY3JpcHQubGluZU9mZnNldCAhPT0gMCAmJiBzY3JpcHQuY29sdW1uT2Zm
c2V0ICE9PSAwKSB7CiAgICAgICAgICAgICByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5uZXR3b3Jr
TWFuYWdlci5pbmZsaWdodFJlc291cmNlRm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpIHx8IFdlYklu
c3BlY3Rvci5yZXNvdXJjZUZvclVSTChzY3JpcHQuc291cmNlVVJMKTsKLSAgICAgICAgcmF3U291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZShyYXdTb3VyY2VDb2RlSWQs
IHNjcmlwdCwgcmVzb3VyY2UsIHRoaXMuX2Zvcm1hdHRlciwgdGhpcy5fZm9ybWF0U291cmNlKTsK
LSAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZVtyYXdTb3VyY2VDb2RlSWRdID0gcmF3U291cmNl
Q29kZTsKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS50eXBlID09PSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5Eb2N1bWVudCkgeworICAgICAgICAgICAgICAgIGlzSW5s
aW5lU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IHRo
aXMuX3Jhd1NvdXJjZUNvZGVGb3JEb2N1bWVudFVSTFtzY3JpcHQuc291cmNlVVJMXTsKKyAgICAg
ICAgICAgICAgICBpZiAocmF3U291cmNlQ29kZSkgeworICAgICAgICAgICAgICAgICAgICByYXdT
b3VyY2VDb2RlLmFkZFNjcmlwdChzY3JpcHQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9i
aW5kU2NyaXB0VG9SYXdTb3VyY2VDb2RlKHNjcmlwdCwgcmF3U291cmNlQ29kZSk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICByYXdTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlKHNjcmlwdC5zY3JpcHRJZCwgc2NyaXB0LCByZXNvdXJjZSwgdGhpcy5fZm9ybWF0
dGVyLCB0aGlzLl9mb3JtYXRTb3VyY2UpOworICAgICAgICB0aGlzLl9iaW5kU2NyaXB0VG9SYXdT
b3VyY2VDb2RlKHNjcmlwdCwgcmF3U291cmNlQ29kZSk7CisKKyAgICAgICAgaWYgKGlzSW5saW5l
U2NyaXB0KQorICAgICAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvckRvY3VtZW50VVJMW3Nj
cmlwdC5zb3VyY2VVUkxdID0gcmF3U291cmNlQ29kZTsKKwogICAgICAgICBpZiAocmF3U291cmNl
Q29kZS5zb3VyY2VNYXBwaW5nKQogICAgICAgICAgICAgdGhpcy5fdXBkYXRlU291cmNlTWFwcGlu
ZyhyYXdTb3VyY2VDb2RlLCBudWxsKTsKICAgICAgICAgcmF3U291cmNlQ29kZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBk
YXRlZCwgdGhpcy5fc291cmNlTWFwcGluZ1VwZGF0ZWQsIHRoaXMpOwogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGV9IHJhd1NvdXJjZUNvZGUKKyAgICAgKi8K
KyAgICBfYmluZFNjcmlwdFRvUmF3U291cmNlQ29kZTogZnVuY3Rpb24oc2NyaXB0LCByYXdTb3Vy
Y2VDb2RlKQorICAgIHsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZVtzY3JpcHQuc2NyaXB0
SWRdID0gcmF3U291cmNlQ29kZTsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVSTFtz
Y3JpcHQuc291cmNlVVJMXSA9IHJhd1NvdXJjZUNvZGU7IAorICAgIH0sCisKKyAgICAvKioKICAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAgKi8KICAgICBfc291
cmNlTWFwcGluZ1VwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNTgwLDcgKzYwMSw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
Ki8KICAgICBfcmF3U291cmNlQ29kZUZvclNjcmlwdFdpdGhVUkw6IGZ1bmN0aW9uKHNvdXJjZVVS
TCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9yYXdTb3VyY2VDb2RlW3NvdXJjZVVSTF07
CisgICAgICAgIHJldHVybiB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJMW3NvdXJjZVVSTF07CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtNTg4LDcgKzYwOSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfcmF3U291cmNl
Q29kZUZvclNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX3Jhd1NvdXJjZUNvZGVbdGhpcy5fY3JlYXRlUmF3U291cmNlQ29kZUlkKHNjcmlwdCldOwor
ICAgICAgICByZXR1cm4gdGhpcy5fcmF3U291cmNlQ29kZVtzY3JpcHQuc2NyaXB0SWRdOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTYwMywxOSArNjI0LDExIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICovCiAgICAgICAgIGZ1
bmN0aW9uIGZpbHRlcihzY3JpcHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9jcmVhdGVSYXdTb3VyY2VDb2RlSWQoc2NyaXB0KSA9PT0gcmF3U291cmNlQ29kZS5pZDsKKyAg
ICAgICAgICAgIHJldHVybiBzY3JpcHQuc2NyaXB0SWQgPT09IHJhd1NvdXJjZUNvZGUuaWQ7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnF1ZXJ5
U2NyaXB0cyhmaWx0ZXIuYmluZCh0aGlzKSlbMF07CiAgICAgfSwKIAotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdH0gc2NyaXB0Ci0gICAgICovCi0gICAgX2NyZWF0
ZVJhd1NvdXJjZUNvZGVJZDogZnVuY3Rpb24oc2NyaXB0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHNjcmlwdC5zb3VyY2VVUkwgfHwgc2NyaXB0LnNjcmlwdElkOwotICAgIH0sCi0KICAgICBfZGVi
dWdnZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhp
cy5fcmF3U291cmNlQ29kZSkgewpAQCAtNjI4LDYgKzY0MSw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJhd1NvdXJj
ZUNvZGUucmVtb3ZlQWxsTGlzdGVuZXJzKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fcmF3
U291cmNlQ29kZSA9IHt9OworICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJMID0ge307
CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JEb2N1bWVudFVSTCA9IHt9OwogICAgICAg
ICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzID0gW107CiAgICAgICAgIHRoaXMuX3NlbGVj
dGVkQ2FsbEZyYW1lID0gbnVsbDsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuZGVi
dWdnZXJSZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SYXdTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SYXdTb3VyY2VDb2RlLmpzCmluZGV4IGU5MWQ5YTk2OGU5ZGFiM2E2NzhmMDBmNzNjNjU0N2I5
MzFlZDZiNzIuLjAyZTVkZjAxZGVmMDRhYjcwYTZlNDFjYWRlMDMwODYwMzgzZWVkZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUu
anMKQEAgLTIxMSw3ICsyMTEsNyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5
cGUgPSB7CiAKICAgICAgICAgdmFyIG9yaWdpbmFsQ29udGVudFByb3ZpZGVyID0gdGhpcy5fY3Jl
YXRlQ29udGVudFByb3ZpZGVyKCk7CiAgICAgICAgIGlmICghdGhpcy5fZm9ybWF0dGVkKSB7Ci0g
ICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUodGhpcy5pZCwgdGhpcy51cmwsIHRoaXMuaXNDb250ZW50U2NyaXB0LCB0aGlzLCBvcmlnaW5h
bENvbnRlbnRQcm92aWRlcik7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUodGhpcy51cmwsIHRoaXMudXJsLCB0aGlzLmlzQ29udGVu
dFNjcmlwdCwgdGhpcywgb3JpZ2luYWxDb250ZW50UHJvdmlkZXIpOwogICAgICAgICAgICAgdmFy
IHNvdXJjZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuUGxhaW5Tb3Vy
Y2VNYXBwaW5nKHRoaXMsIHVpU291cmNlQ29kZSk7CiAgICAgICAgICAgICBjYWxsYmFjayhzb3Vy
Y2VNYXBwaW5nKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIzMiw3ICsyMzIsNyBAQCBXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBmdW5jdGlv
biBkaWRGb3JtYXRDb250ZW50KGZvcm1hdHRlZENvbnRlbnQsIG1hcHBpbmcpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0
b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKG1pbWVUeXBlLCBmb3JtYXR0ZWRDb250ZW50KQotICAg
ICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZSgiZGVvYmZ1c2NhdGVkOiIgKyB0aGlzLmlkLCB0aGlzLnVybCwgdGhpcy5pc0NvbnRlbnRT
Y3JpcHQsIHRoaXMsIGNvbnRlbnRQcm92aWRlcik7CisgICAgICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKCJkZW9iZnVzY2F0ZWQ6IiAr
IHRoaXMudXJsLCB0aGlzLnVybCwgdGhpcy5pc0NvbnRlbnRTY3JpcHQsIHRoaXMsIGNvbnRlbnRQ
cm92aWRlcik7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBuZXcgV2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGUuRm9ybWF0dGVkU291cmNlTWFwcGluZyh0aGlzLCB1aVNvdXJj
ZUNvZGUsIG1hcHBpbmcpOwogICAgICAgICAgICAgICAgIGNhbGxiYWNrKHNvdXJjZU1hcHBpbmcp
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdC5qcwppbmRleCAwYjI3Y2IyODU0YjE4NDUxZGZlMTk4YTI4Y2VmNGRhMThiMWQ5MWZkLi44
NDI5YWFjZjY4ZjNmMWViNTVmODE2OWIxMzc1NjVhNGQ2ZDFhMDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwpAQCAtMzIsNyArMzIsNyBAQAogICog
QHBhcmFtIHtudW1iZXJ9IGVuZExpbmUKICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRDb2x1bW4KICAq
IEBwYXJhbSB7Ym9vbGVhbn0gaXNDb250ZW50U2NyaXB0Ci0gKi8KKyAgKi8KIFdlYkluc3BlY3Rv
ci5TY3JpcHQgPSBmdW5jdGlvbihzY3JpcHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0
Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCkKIHsKICAgICB0aGlz
LnNjcmlwdElkID0gc2NyaXB0SWQ7CkBAIC00NCw2ICs0NCw4IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHQgPSBmdW5jdGlvbihzY3JpcHRJZCwgc291cmNlVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1u
LCBlbmRMCiAgICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBpc0NvbnRlbnRTY3JpcHQ7CiB9CiAK
K1dlYkluc3BlY3Rvci5TY3JpcHQuX2xhc3RTY3JpcHRJZCA9IDA7CisKIFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3Ry
aW5nKX0gY2FsbGJhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYTFmYzgwY2NhMTZkYmNjZmQ0MjFmZjMzMDZmNDkyYTlh
ZWRmYTU1Li5jMzIyNDM2YmU0N2MyZDg4NjAwOTMzMzlhMTE2MWM1ZTI2NDEwZDFjIDEwMDc1NQot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTYgQEAKIDIwMTEtMTAtMjggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29n
bGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvIG5vdCBtYXAgc2NyaXB0cyBnZW5l
cmF0ZWQgd2l0aCBkb2N1bWVudC53cml0ZSB0byB0aGUgZG9jdW1lbnQgcmVzb3VyY2VzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9iaW5kLXNjcmlwdC10by1yZXNvdXJjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9iaW5kLXNjcmlwdC10by1yZXNvdXJjZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWw6CisKKzIw
MTEtMTAtMjggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCiAgICAgICAg
IFJlc2V0IGxpbmUgbnVtYmVycyBmb3Igc2NyaXB0cyBnZW5lcmF0ZWQgd2l0aCBkb2N1bWVudC53
cml0ZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcx
MDk5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9iaW5kLXNj
cmlwdC10by1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYmluZC1zY3JpcHQtdG8tcmVzb3VyY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
MDA0YTE3NTBkZmIwYjEwZmIxOWNiMmYzYWJiNGM3NDlkZGM2ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYmluZC1zY3JpcHQtdG8tcmVzb3VyY2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgb25seSBpbmxpbmUgc2Ny
aXB0cyBhcmUgYm91bmQgdG8gdGhlIHJlc291cmNlLCB3aGlsZSB0aGUgb25lcyBnZW5lcmF0ZWQg
d2l0aCBkb2N1bWVudC53cml0ZSBhcmUgbm90LiBCdWcgNzEwOTkKKworRGVidWdnZXIgd2FzIGVu
YWJsZWQuCitzY3JpcHQ6IGJpbmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWwKK3NjcmlwdDogYmlu
ZC1zY3JpcHQtdG8tcmVzb3VyY2UuaHRtbAorc2NyaXB0OiBkZWJ1Z2dlci10ZXN0LmpzCitzY3Jp
cHQ6IGluc3BlY3Rvci10ZXN0LmpzCit1cmw6IGRlYnVnZ2VyLXRlc3QuanMKKyAgICBzY3JpcHQ6
IGRlYnVnZ2VyLXRlc3QuanMKK3VybDogaW5zcGVjdG9yLXRlc3QuanMKKyAgICBzY3JpcHQ6IGlu
c3BlY3Rvci10ZXN0LmpzCit1cmw6IGJpbmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWwKKyAgICBz
Y3JpcHQ6IGJpbmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWwKK2RvY3VtZW50IHVybDpiaW5kLXNj
cmlwdC10by1yZXNvdXJjZS5odG1sCitEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9iaW5kLXNjcmlwdC10by1yZXNvdXJj
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JpbmQtc2NyaXB0LXRvLXJl
c291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ3NmI0YjlmMmE3YzhlNTk5NDdkMDA0YjIzMjE3NDJl
OTE5YzQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9iaW5kLXNjcmlwdC10by1yZXNvdXJjZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitkb2N1bWVudC53
cml0ZSgiPHNjcmlwIiArICJ0PmZ1bmN0aW9uIGZvbygpIHsgfTwvc2MiICsgInJpcHQ+Iik7CisK
K3ZhciB0ZXN0ID0gZnVuY3Rpb24oKQoreworICAgIHZhciBzY3JpcHRzID0gW107CisgICAgSW5z
cGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSk7CisKKyAgICBmdW5jdGlvbiBzdGVw
MSgpCisgICAgeworICAgICAgICB2YXIgbW9kZWwgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbDsKKworICAgICAgICB2YXIgc2NyaXB0VVJMcyA9IFtdOworICAgICAgICBm
b3IgKHZhciBzY3JpcHRJZCBpbiBtb2RlbC5fcmF3U291cmNlQ29kZSkgeworICAgICAgICAgICAg
dmFyIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHNbc2NyaXB0SWRd
OworICAgICAgICAgICAgc2NyaXB0VVJMcy5wdXNoKFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZv
clVSTChzY3JpcHQuc291cmNlVVJMKSk7CisgICAgICAgIH0KKyAgICAgICAgc2NyaXB0VVJMcy5z
b3J0KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0VVJMcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJzY3JpcHQ6ICIgKyBzY3Jp
cHRVUkxzW2ldKTsKKworICAgICAgICB2YXIgdXJscyA9IE9iamVjdC5rZXlzKG1vZGVsLl9yYXdT
b3VyY2VDb2RlRm9yVVJMKTsKKyAgICAgICAgdXJscy5zb3J0KCk7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdXJscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHVybCA9IHVy
bHNbaV07CisgICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSBXZWJJbnNwZWN0b3IuZGlzcGxh
eU5hbWVGb3JVUkwodXJsKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJ1
cmw6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IG1v
ZGVsLl9yYXdTb3VyY2VDb2RlRm9yVVJMW3VybF07CisgICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IHJhd1NvdXJjZUNvZGUuX3NjcmlwdHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAg
ICAgICB2YXIgc2NyaXB0ID0gcmF3U291cmNlQ29kZS5fc2NyaXB0c1tqXTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHNjcmlwdDogIiArIFdlYkluc3BlY3Rv
ci5kaXNwbGF5TmFtZUZvclVSTChzY3JpcHQuc291cmNlVVJMKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICB1cmxzID0gT2JqZWN0LmtleXMobW9kZWwuX3Jhd1NvdXJjZUNv
ZGVGb3JEb2N1bWVudFVSTCk7CisgICAgICAgIHVybHMuc29ydCgpOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHVybHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiZG9jdW1lbnQgdXJsOiIgKyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JV
UkwodXJsc1tpXSkpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRl
c3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorCis8cD4KK1Rlc3RzIHRoYXQgb25seSBpbmxpbmUgc2NyaXB0cyBhcmUgYm91bmQg
dG8gdGhlIHJlc291cmNlLCB3aGlsZSB0aGUgb25lcyBnZW5lcmF0ZWQgd2l0aCBkb2N1bWVudC53
cml0ZSBhcmUgbm90LiBCdWcgNzEwOTk8L2E+Cis8L3A+CisKKzwvYm9keT4KKworPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCmluZGV4IGZi
MzU0MWM3YWYzMjNhZjUwYWExYzMxNzcxY2U0Zjg0NDk5ZWJkOTcuLjMzMjljMzFjYWFlOTVkODFj
YTJmNmUzMGM4NTk5NGYyNjRmMzllNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvbGlua2lmaWVyLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAK
ICAgICBmdW5jdGlvbiBkZWJ1Z2dlclRlc3QoKQogICAgIHsKLSAgICAgICAgaWYgKCFXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZVtXZWJJbnNwZWN0
b3IubWFpblJlc291cmNlLl9kb2N1bWVudFVSTF0pIHsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZUZvclVSTFtXZWJJbnNw
ZWN0b3IubWFpblJlc291cmNlLl9kb2N1bWVudFVSTF0pIHsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCwg
Il9hZGRTY3JpcHQiLCBkZWJ1Z2dlclRlc3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113030</attachid>
            <date>2011-10-31 03:21:43 -0700</date>
            <delta_ts>2011-10-31 18:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71114-20111031142140.patch</filename>
            <type>text/plain</type>
            <size>24349</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MWQ4OTkwMjE0NjJlMDY0
YjFlZjQ4OWQ1YmE3N2FjZmEzYzk5NjY0Li5jNTFjMzkxNmNlNjYxNDczZTlkZDlkZjQxZjAzY2Ey
MGM4N2U0M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTAtMzEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGRvIG5vdCBtYXAgc2NyaXB0cyBnZW5lcmF0ZWQgd2l0aCBkb2N1bWVudC53cml0ZSB0byB0aGUg
ZG9jdW1lbnQgcmVzb3VyY2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzExMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvZGVidWdnZXIvYmluZC1zY3JpcHQtdG8tcmVzb3Vy
Y2UuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9hZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9iaW5kU2NyaXB0VG9SYXdTb3VyY2VDb2RlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
cmF3U291cmNlQ29kZUZvclNjcmlwdFdpdGhVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5fc2NyaXB0Rm9yUmF3U291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2RlYnVnZ2VyUmVzZXQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlU291cmNlTWFwcGluZy5kaWRS
ZXF1ZXN0Q29udGVudC5kaWRGb3JtYXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fY3JlYXRlU291cmNlTWFwcGluZy5kaWRSZXF1ZXN0Q29u
dGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX2Ny
ZWF0ZVNvdXJjZU1hcHBpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
LmpzOgorCiAyMDExLTEwLTMxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZhY3RvciBvdXQgUmVzb3VyY2VVdGlscywgY2xl
YW4gdXAgZXh0ZXJucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCA3OGE5NTM1
OWMyZTA1NjVkOTUxMDkxMGNjOWIyMWNkMzI4YzRkZTAxLi5hOGZhMGEwNTIyZWIwODAzYjFiNGMy
ZWQyZjE1OWIzOTYxYzJhZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC0z
Niw3ICszNiw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsID0gZnVu
Y3Rpb24oKQogewogICAgIC8vIEZJWE1FOiBhcHBseSBmb3JtYXR0ZXIgZnJvbSBvdXRzaWRlIGFz
IGEgZ2VuZXJpYyBtYXBwaW5nLgogICAgIHRoaXMuX2Zvcm1hdHRlciA9IG5ldyBXZWJJbnNwZWN0
b3IuU2NyaXB0Rm9ybWF0dGVyKCk7Ci0gICAgdGhpcy5fcmF3U291cmNlQ29kZSA9IHt9OworICAg
IHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OworICAgIHRoaXMuX3Jhd1NvdXJj
ZUNvZGVGb3JVUkwgPSB7fTsKKyAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkwg
PSB7fTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzID0gW107CiAKICAgICB0aGlz
Ll9icmVha3BvaW50TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIo
V2ViSW5zcGVjdG9yLnNldHRpbmdzLmJyZWFrcG9pbnRzLCB0aGlzLl9icmVha3BvaW50QWRkZWQu
YmluZCh0aGlzKSwgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQuYmluZCh0aGlzKSwgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwpOwpAQCAtMTA5LDI0ICsxMTEsNDMgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9hZGRT
Y3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7Ci0gICAgICAgIHZhciByYXdTb3VyY2VDb2Rl
SWQgPSB0aGlzLl9jcmVhdGVSYXdTb3VyY2VDb2RlSWQoc2NyaXB0KTsKLSAgICAgICAgdmFyIHJh
d1NvdXJjZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2RlW3Jhd1NvdXJjZUNvZGVJZF07Ci0gICAg
ICAgIGlmIChyYXdTb3VyY2VDb2RlKSB7Ci0gICAgICAgICAgICByYXdTb3VyY2VDb2RlLmFkZFNj
cmlwdChzY3JpcHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAg
dmFyIHJlc291cmNlOwotICAgICAgICBpZiAoc2NyaXB0LnNvdXJjZVVSTCkKKyAgICAgICAgdmFy
IGlzSW5saW5lU2NyaXB0ID0gZmFsc2U7CisgICAgICAgIGlmIChzY3JpcHQuaXNJbmxpbmVTY3Jp
cHQoKSkgewogICAgICAgICAgICAgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFn
ZXIuaW5mbGlnaHRSZXNvdXJjZUZvclVSTChzY3JpcHQuc291cmNlVVJMKSB8fCBXZWJJbnNwZWN0
b3IucmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgIHJhd1NvdXJjZUNv
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUocmF3U291cmNlQ29kZUlkLCBzY3Jp
cHQsIHJlc291cmNlLCB0aGlzLl9mb3JtYXR0ZXIsIHRoaXMuX2Zvcm1hdFNvdXJjZSk7Ci0gICAg
ICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVbcmF3U291cmNlQ29kZUlkXSA9IHJhd1NvdXJjZUNvZGU7
CisgICAgICAgICAgICBpZiAocmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVj
dG9yLlJlc291cmNlLlR5cGUuRG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBpc0lubGluZVNj
cmlwdCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9y
YXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkxbc2NyaXB0LnNvdXJjZVVSTF07CisgICAgICAgICAg
ICAgICAgaWYgKHJhd1NvdXJjZUNvZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmF3U291cmNl
Q29kZS5hZGRTY3JpcHQoc2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYmluZFNj
cmlwdFRvUmF3U291cmNlQ29kZShzY3JpcHQsIHJhd1NvdXJjZUNvZGUpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgcmF3U291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNl
Q29kZShzY3JpcHQuc2NyaXB0SWQsIHNjcmlwdCwgcmVzb3VyY2UsIHRoaXMuX2Zvcm1hdHRlciwg
dGhpcy5fZm9ybWF0U291cmNlKTsKKyAgICAgICAgdGhpcy5fYmluZFNjcmlwdFRvUmF3U291cmNl
Q29kZShzY3JpcHQsIHJhd1NvdXJjZUNvZGUpOworCisgICAgICAgIGlmIChpc0lubGluZVNjcmlw
dCkKKyAgICAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JEb2N1bWVudFVSTFtzY3JpcHQu
c291cmNlVVJMXSA9IHJhd1NvdXJjZUNvZGU7CisKICAgICAgICAgaWYgKHJhd1NvdXJjZUNvZGUu
c291cmNlTWFwcGluZykKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNvdXJjZU1hcHBpbmcocmF3
U291cmNlQ29kZSwgbnVsbCk7CiAgICAgICAgIHJhd1NvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuU291cmNlTWFwcGluZ1VwZGF0ZWQs
IHRoaXMuX3NvdXJjZU1hcHBpbmdVcGRhdGVkLCB0aGlzKTsKICAgICB9LAogCiAgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlfSByYXdTb3VyY2VDb2RlCisgICAgICovCisgICAg
X2JpbmRTY3JpcHRUb1Jhd1NvdXJjZUNvZGU6IGZ1bmN0aW9uKHNjcmlwdCwgcmF3U291cmNlQ29k
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQu
c2NyaXB0SWRdID0gcmF3U291cmNlQ29kZTsKKyAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZv
clVSTFtzY3JpcHQuc291cmNlVVJMXSA9IHJhd1NvdXJjZUNvZGU7IAorICAgIH0sCisKKyAgICAv
KioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAgKi8KICAg
ICBfc291cmNlTWFwcGluZ1VwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTQyLDggKzE2Myw4
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICB1aVNvdXJjZUNvZGVzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcmVzdWx0
ID0gW107Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3Jhd1NvdXJjZUNvZGUpIHsKLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gdGhpcy5fcmF3U291cmNlQ29kZVtpZF0u
c291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7CisgICAgICAgIGZvciAodmFyIGlkIGlu
IHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRJZCkgeworICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZUxpc3QgPSB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWRbaWRdLnNvdXJjZU1h
cHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIHJlc3VsdC5w
dXNoKHVpU291cmNlQ29kZUxpc3RbaV0pOwogICAgICAgICB9CkBAIC0yOTcsOCArMzE4LDggQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAg
ICAgICAgIHRoaXMuX2Zvcm1hdFNvdXJjZSA9IGZvcm1hdFNvdXJjZTsKICAgICAgICAgdGhpcy5f
YnJlYWtwb2ludE1hbmFnZXIucmVzZXQoKTsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5f
cmF3U291cmNlQ29kZSkKLSAgICAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVbaWRdLnNldEZv
cm1hdHRlZCh0aGlzLl9mb3JtYXRTb3VyY2UpOworICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlz
Ll9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWQpCisgICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VD
b2RlRm9yU2NyaXB0SWRbaWRdLnNldEZvcm1hdHRlZCh0aGlzLl9mb3JtYXRTb3VyY2UpOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTMzOCw4ICszNTksOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfY29uc29sZUNsZWFyZWQ6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3Jhd1NvdXJjZUNv
ZGUpCi0gICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlW2lkXS5tZXNzYWdlcyA9IFtdOwor
ICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWQpCisg
ICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWRbaWRdLm1lc3NhZ2VzID0g
W107CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xlTWVzc2FnZXNDbGVhcmVkKTsK
ICAgICB9LAogCkBAIC01ODAsNyArNjAxLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9yYXdTb3VyY2VDb2RlRm9y
U2NyaXB0V2l0aFVSTDogZnVuY3Rpb24oc291cmNlVVJMKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3Jhd1NvdXJjZUNvZGVbc291cmNlVVJMXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Jh
d1NvdXJjZUNvZGVGb3JVUkxbc291cmNlVVJMXTsKICAgICB9LAogCiAgICAgLyoqCkBAIC01ODgs
NyArNjA5LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlID0gewogICAgICAqLwogICAgIF9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0OiBmdW5jdGlvbihz
Y3JpcHQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcmF3U291cmNlQ29kZVt0aGlzLl9j
cmVhdGVSYXdTb3VyY2VDb2RlSWQoc2NyaXB0KV07CisgICAgICAgIHJldHVybiB0aGlzLl9yYXdT
b3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC02MDMsMjMgKzYyNCwxNSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAqLwogICAgICAgICBmdW5jdGlvbiBmaWx0ZXIo
c2NyaXB0KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlUmF3U291
cmNlQ29kZUlkKHNjcmlwdCkgPT09IHJhd1NvdXJjZUNvZGUuaWQ7CisgICAgICAgICAgICByZXR1
cm4gc2NyaXB0LnNjcmlwdElkID09PSByYXdTb3VyY2VDb2RlLmlkOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5xdWVyeVNjcmlwdHMoZmlsdGVy
LmJpbmQodGhpcykpWzBdOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TY3JpcHR9IHNjcmlwdAotICAgICAqLwotICAgIF9jcmVhdGVSYXdTb3VyY2VDb2Rl
SWQ6IGZ1bmN0aW9uKHNjcmlwdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzY3JpcHQuc291cmNl
VVJMIHx8IHNjcmlwdC5zY3JpcHRJZDsKLSAgICB9LAotCiAgICAgX2RlYnVnZ2VyUmVzZXQ6IGZ1
bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3Jhd1NvdXJjZUNv
ZGUpIHsKLSAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291cmNlQ29k
ZVtpZF07CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JTY3Jp
cHRJZCkgeworICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VD
b2RlRm9yU2NyaXB0SWRbaWRdOwogICAgICAgICAgICAgaWYgKHJhd1NvdXJjZUNvZGUuc291cmNl
TWFwcGluZykgewogICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gcmF3U291
cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKTsKICAgICAgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kpCkBAIC02
MjcsNyArNjQwLDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmF3U291cmNlQ29kZS5yZW1v
dmVBbGxMaXN0ZW5lcnMoKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2Rl
ID0ge307CisgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OworICAg
ICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJMID0ge307CisgICAgICAgIHRoaXMuX3Jhd1Nv
dXJjZUNvZGVGb3JEb2N1bWVudFVSTCA9IHt9OwogICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25D
YWxsRnJhbWVzID0gW107CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lID0gbnVsbDsK
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuZGVidWdnZXJSZXNldCgpOwpAQCAtOTYw
LDggKzk3NSw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkxpbmtp
Zmllci5wcm90b3R5cGUgPSB7CiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IGZvciAodmFyIGlkIGluIHRoaXMuX2FuY2hvcnNGb3JSYXdTb3VyY2VDb2RlKSB7Ci0gICAgICAg
ICAgICBpZiAodGhpcy5fbW9kZWwuX3Jhd1NvdXJjZUNvZGVbaWRdKSAvLyBJbiBjYXNlIG9mIG5h
dmlnYXRpb24gdGhlIGxpc3Qgb2YgcmF3U291cmNlQ29kZXMgaXMgZW1wdHkuCi0gICAgICAgICAg
ICAgICAgdGhpcy5fbW9kZWwuX3Jhd1NvdXJjZUNvZGVbaWRdLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRhdGVkLCB0
aGlzLl91cGRhdGVTb3VyY2VBbmNob3JzLCB0aGlzKTsKKyAgICAgICAgICAgIGlmICh0aGlzLl9t
b2RlbC5fcmF3U291cmNlQ29kZUZvclNjcmlwdElkW2lkXSkgLy8gSW4gY2FzZSBvZiBuYXZpZ2F0
aW9uIHRoZSBsaXN0IG9mIHJhd1NvdXJjZUNvZGVzIGlzIGVtcHR5LgorICAgICAgICAgICAgICAg
IHRoaXMuX21vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWRbaWRdLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRh
dGVkLCB0aGlzLl91cGRhdGVTb3VyY2VBbmNob3JzLCB0aGlzKTsKICAgICAgICAgfQogICAgICAg
ICB0aGlzLl9hbmNob3JzRm9yUmF3U291cmNlQ29kZSA9IHt9OwogICAgIH0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUuanMKaW5kZXgg
ZTkxZDlhOTY4ZTlkYWIzYTY3OGYwMGY3M2M2NTQ3YjkzMWVkNmI3Mi4uMDJlNWRmMDFkZWYwNGFi
NzBhNmU0MWNhZGUwMzA4NjAzODNlZWRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwpAQCAtMjExLDcgKzIxMSw3IEBAIFdl
Ykluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgb3Jp
Z2luYWxDb250ZW50UHJvdmlkZXIgPSB0aGlzLl9jcmVhdGVDb250ZW50UHJvdmlkZXIoKTsKICAg
ICAgICAgaWYgKCF0aGlzLl9mb3JtYXR0ZWQpIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0aGlzLmlkLCB0aGlzLnVybCwgdGhp
cy5pc0NvbnRlbnRTY3JpcHQsIHRoaXMsIG9yaWdpbmFsQ29udGVudFByb3ZpZGVyKTsKKyAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh0
aGlzLnVybCwgdGhpcy51cmwsIHRoaXMuaXNDb250ZW50U2NyaXB0LCB0aGlzLCBvcmlnaW5hbENv
bnRlbnRQcm92aWRlcik7CiAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IG5ldyBXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5QbGFpblNvdXJjZU1hcHBpbmcodGhpcywgdWlTb3VyY2VD
b2RlKTsKICAgICAgICAgICAgIGNhbGxiYWNrKHNvdXJjZU1hcHBpbmcpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMjMyLDcgKzIzMiw3IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdENvbnRlbnQoZm9ybWF0
dGVkQ29udGVudCwgbWFwcGluZykKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2YXIg
Y29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIo
bWltZVR5cGUsIGZvcm1hdHRlZENvbnRlbnQpCi0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKCJkZW9iZnVzY2F0ZWQ6IiArIHRo
aXMuaWQsIHRoaXMudXJsLCB0aGlzLmlzQ29udGVudFNjcmlwdCwgdGhpcywgY29udGVudFByb3Zp
ZGVyKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUoImRlb2JmdXNjYXRlZDoiICsgdGhpcy51cmwsIHRoaXMudXJsLCB0aGlz
LmlzQ29udGVudFNjcmlwdCwgdGhpcywgY29udGVudFByb3ZpZGVyKTsKICAgICAgICAgICAgICAg
ICB2YXIgc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Gb3Jt
YXR0ZWRTb3VyY2VNYXBwaW5nKHRoaXMsIHVpU291cmNlQ29kZSwgbWFwcGluZyk7CiAgICAgICAg
ICAgICAgICAgY2FsbGJhY2soc291cmNlTWFwcGluZyk7CiAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCmluZGV4IDBiMjdjYjI4NTRi
MTg0NTFkZmUxOThhMjhjZWY0ZGExOGIxZDkxZmQuLmJkMmE3N2IzMzc2ODZhNzVhY2Q0ZGNhOWRj
OWYwNWM4YTMwMTY4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0LmpzCkBAIC0xMjYsNSArMTI2LDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgRGVidWdnZXJBZ2VudC5zZXRTY3JpcHRTb3VyY2UodGhpcy5z
Y3JpcHRJZCwgbmV3U291cmNlLCB1bmRlZmluZWQsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0
aGlzKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY2FsbGJhY2soIlNjcmlwdCBmYWls
ZWQgdG8gcGFyc2UiKTsKKyAgICB9LAorCisgICAgaXNJbmxpbmVTY3JpcHQ6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZVVSTCAmJiB0aGlzLmxpbmVPZmZzZXQg
IT09IDAgJiYgdGhpcy5jb2x1bW5PZmZzZXQgIT09IDA7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ1NTc5
ODAzZDY2MzBmM2Y4YzIzNjZmYWI3MGI1ODZhNDFiYjNjOWEuLjhiYWRlYmQ2MTk0ZWM3MmFlZjEz
YTJiZjk4ZGI4ZDk1MjFiODBlYTIgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0zMSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZG8gbm90IG1hcCBzY3JpcHRzIGdlbmVyYXRlZCB3aXRoIGRvY3VtZW50LndyaXRlIHRv
IHRoZSBkb2N1bWVudCByZXNvdXJjZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTExNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JpbmQtc2NyaXB0LXRvLXJlc291
cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jp
bmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9saW5raWZpZXIuaHRtbDoKKwogMjAxMS0xMC0zMSAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIE1hcmsgZmFzdC9jYW52
YXMvc2hhZG93LW9mZnNldC0zLmh0bWwgYXMgUEFTUyBDUkFTSCBvbiBHUFUgTElOVVggREVCVUcu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYmluZC1zY3JpcHQt
dG8tcmVzb3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JpbmQtc2NyaXB0LXRvLXJlc291cmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjY5ZDNk
YzAzN2I3NTY0NTNhNWM0ZjZiMTJjNDEyNWFlMzAyMzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JpbmQtc2NyaXB0LXRvLXJlc291cmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0cyB0aGF0IG9ubHkgaW5saW5lIHNjcmlwdHMg
YXJlIGJvdW5kIHRvIHRoZSByZXNvdXJjZSwgd2hpbGUgdGhlIG9uZXMgZ2VuZXJhdGVkIHdpdGgg
ZG9jdW1lbnQud3JpdGUgYXJlIG5vdC4gQnVnIDcxMDk5CisKK0RlYnVnZ2VyIHdhcyBlbmFibGVk
LgorVGhlcmUgc2hvdWxkIGJlIDQgc2NyaXB0czoKK3NjcmlwdDE6IGJpbmQtc2NyaXB0LXRvLXJl
c291cmNlLmh0bWwKK3NjcmlwdDI6IGJpbmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWwKK3Njcmlw
dDM6IGRlYnVnZ2VyLXRlc3QuanMKK3NjcmlwdDQ6IGluc3BlY3Rvci10ZXN0LmpzCisKK1RoZXJl
IHNob3VsZCBiZSAzIHJlc291cmNlcywgZWFjaCByZXNvdXJjZSBzaG91bGQgaGF2ZSAxIHNjcmlw
dDoKK3VybDEgOiBkZWJ1Z2dlci10ZXN0LmpzCisgICAgc2NyaXB0OiBkZWJ1Z2dlci10ZXN0Lmpz
Cit1cmwyIDogaW5zcGVjdG9yLXRlc3QuanMKKyAgICBzY3JpcHQ6IGluc3BlY3Rvci10ZXN0Lmpz
Cit1cmwzIDogYmluZC1zY3JpcHQtdG8tcmVzb3VyY2UuaHRtbAorICAgIHNjcmlwdDogYmluZC1z
Y3JpcHQtdG8tcmVzb3VyY2UuaHRtbAorZG9jdW1lbnQgdXJsOmJpbmQtc2NyaXB0LXRvLXJlc291
cmNlLmh0bWwKK0RlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JpbmQtc2NyaXB0LXRvLXJlc291cmNlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYmluZC1zY3JpcHQtdG8tcmVzb3VyY2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjM1ZGZjZmM2YTM4MzAzOTYzNThkNmE4ZDFjMzMwNDQ5N2NlYTVmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JpbmQtc2NyaXB0
LXRvLXJlc291cmNlLmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
dGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK2RvY3VtZW50LndyaXRlKCI8c2NyaXAi
ICsgInQ+ZnVuY3Rpb24gZm9vKCkgeyB9PC9zYyIgKyAicmlwdD4iKTsKKwordmFyIHRlc3QgPSBm
dW5jdGlvbigpCit7CisgICAgdmFyIHNjcmlwdHMgPSBbXTsKKyAgICBJbnNwZWN0b3JUZXN0LnN0
YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7Cisg
ICAgICAgIHZhciBtb2RlbCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
OworCisgICAgICAgIHZhciBzY3JpcHRVUkxzID0gW107CisgICAgICAgIGZvciAodmFyIHNjcmlw
dElkIGluIG1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWQpIHsKKyAgICAgICAgICAgIHZh
ciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRzW3NjcmlwdElkXTsK
KyAgICAgICAgICAgIHNjcmlwdFVSTHMucHVzaChXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JV
Ukwoc2NyaXB0LnNvdXJjZVVSTCkpOworICAgICAgICB9CisgICAgICAgIHNjcmlwdFVSTHMuc29y
dCgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyg0LCBzY3JpcHRVUkxzLmxl
bmd0aCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUaGVyZSBzaG91bGQgYmUg
NCBzY3JpcHRzOiIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdFVSTHMubGVu
Z3RoOyArK2kpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2NyaXB0IiAr
IChpKzEpICsgIjogIiArIHNjcmlwdFVSTHNbaV0pOworCisgICAgICAgIHZhciB1cmxzID0gT2Jq
ZWN0LmtleXMobW9kZWwuX3Jhd1NvdXJjZUNvZGVGb3JVUkwpOworICAgICAgICB1cmxzLnNvcnQo
KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5UaGVyZSBzaG91bGQgYmUg
MyByZXNvdXJjZXMsIGVhY2ggcmVzb3VyY2Ugc2hvdWxkIGhhdmUgMSBzY3JpcHQ6Iik7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDMsIHVybHMubGVuZ3RoKTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB1cmxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
dXJsID0gdXJsc1tpXTsKKyAgICAgICAgICAgIHZhciBkaXNwbGF5TmFtZSA9IFdlYkluc3BlY3Rv
ci5kaXNwbGF5TmFtZUZvclVSTCh1cmwpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInVybCIgKyAoaSsxKSArICIgOiAiICsgZGlzcGxheU5hbWUpOworICAgICAgICAgICAg
dmFyIHJhd1NvdXJjZUNvZGUgPSBtb2RlbC5fcmF3U291cmNlQ29kZUZvclVSTFt1cmxdOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgcmF3U291cmNlQ29kZS5fc2Ny
aXB0cy5sZW5ndGgpOworICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCByYXdTb3VyY2VD
b2RlLl9zY3JpcHRzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IHJhd1NvdXJjZUNvZGUuX3NjcmlwdHNbal07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAgICBzY3JpcHQ6ICIgKyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JV
Ukwoc2NyaXB0LnNvdXJjZVVSTCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgdXJscyA9IE9iamVjdC5rZXlzKG1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkwp
OworICAgICAgICB1cmxzLnNvcnQoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cmxz
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImRvY3Vt
ZW50IHVybDoiICsgV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHVybHNbaV0pKTsKKwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKworPHA+CitU
ZXN0cyB0aGF0IG9ubHkgaW5saW5lIHNjcmlwdHMgYXJlIGJvdW5kIHRvIHRoZSByZXNvdXJjZSwg
d2hpbGUgdGhlIG9uZXMgZ2VuZXJhdGVkIHdpdGggZG9jdW1lbnQud3JpdGUgYXJlIG5vdC4gQnVn
IDcxMDk5PC9hPgorPC9wPgorCis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQKaW5kZXggNzQ4
Yjk3ZTg1NjUxODYzOWFkNjA1ZjgyNWNjYWY2NDljYTU1MWNhMy4uOGIyYzczZTQ5NmI3OTAyZWY3
ZjkxYzUyMWQzZjE2MGY1Y2I3MTY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQKQEAgLTMsMjYgKzMsMTAgQEAgVGVz
dHMgdGhhdCBMaW5raWZpZXIgd29ya3MgY29ycmVjdGx5LgogVHdvIGFkZEV2ZW50TGlzdGVuZXIg
Y2FsbHMgZXhwZWN0ZWQuIFRoZSBmaXJzdCBmb3IgJ2Zha2VVcmwtMScgdGhlIHNlY29uZCBmb3Ig
J2Zha2VVcmwtMicuCiBUd28gcmVtb3ZlRXZlbnRMaXN0ZW5lciBjYWxscyBleHBlY3RlZC4gVGhl
IGZpcnN0IGZvciAnZmFrZVVybC0xJyB0aGUgc2Vjb25kIGZvciAnZmFrZVVybC0yJy4KIERlYnVn
Z2VyIHdhcyBlbmFibGVkLgotLS0tIGxpbmtpZnkgZmFrZVVSTC0xIGZpcnN0IHRpbWUgLS0tCi1E
dW1teVByZXNlbnRhdGlvbk1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0V2l0aFVSTCB3YXMg
Y2FsbGVkIHdpdGggYXJndW1lbnRzID0gWydmYWtlVXJsLTEnXQotRHVtbXlSYXdTb3VyY2VDb2Rl
LmFkZEV2ZW50TGlzdGVuZXIgd2FzIGNhbGxlZCBmb3Igc291cmNlIHdpdGggVVJMID0gJ2Zha2VV
cmwtMScgd2l0aCBhcmd1bWVudHMgPSBbJ3NvdXJjZS1tYXBwaW5nLXVwZGF0ZWQnLCBmdW5jdGlv
biwgb2JqZWN0XQotCi0tLS0gbGlua2lmeSBmYWtlVVJMLTIgZmlyc3QgdGltZSAtLS0KLUR1bW15
UHJlc2VudGF0aW9uTW9kZWwuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRXaXRoVVJMIHdhcyBjYWxs
ZWQgd2l0aCBhcmd1bWVudHMgPSBbJ2Zha2VVcmwtMiddCi1EdW1teVJhd1NvdXJjZUNvZGUuYWRk
RXZlbnRMaXN0ZW5lciB3YXMgY2FsbGVkIGZvciBzb3VyY2Ugd2l0aCBVUkwgPSAnZmFrZVVybC0y
JyB3aXRoIGFyZ3VtZW50cyA9IFsnc291cmNlLW1hcHBpbmctdXBkYXRlZCcsIGZ1bmN0aW9uLCBv
YmplY3RdCi0KLS0tLSBsaW5raWZ5IGZha2VVUkwtMSBzZWNvbmQgdGltZSAtLS0KLUR1bW15UHJl
c2VudGF0aW9uTW9kZWwuX3Jhd1NvdXJjZUNvZGVGb3JTY3JpcHRXaXRoVVJMIHdhcyBjYWxsZWQg
d2l0aCBhcmd1bWVudHMgPSBbJ2Zha2VVcmwtMSddCi0KLS0tLSBsaW5raWZ5IGZha2VVUkwtMiBz
ZWNvbmQgdGltZSAtLS0KLUR1bW15UHJlc2VudGF0aW9uTW9kZWwuX3Jhd1NvdXJjZUNvZGVGb3JT
Y3JpcHRXaXRoVVJMIHdhcyBjYWxsZWQgd2l0aCBhcmd1bWVudHMgPSBbJ2Zha2VVcmwtMiddCi0K
LS0tLSByZXNldCAtLS0KLUR1bW15UmF3U291cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyIHdh
cyBjYWxsZWQgZm9yIHNvdXJjZSB3aXRoIGlkID0gJ2Zha2VVcmwtMScgd2l0aCBhcmd1bWVudHMg
PSBbJ3NvdXJjZS1tYXBwaW5nLXVwZGF0ZWQnLCBmdW5jdGlvbiwgb2JqZWN0XQotRHVtbXlSYXdT
b3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIgd2FzIGNhbGxlZCBmb3Igc291cmNlIHdpdGgg
aWQgPSAnZmFrZVVybC0yJyB3aXRoIGFyZ3VtZW50cyA9IFsnc291cmNlLW1hcHBpbmctdXBkYXRl
ZCcsIGZ1bmN0aW9uLCBvYmplY3RdCi0KLS0tLSBsb2NhdGlvbiB1cGRhdGUgLS0tCi1vcmlnaW5h
bCBsb2NhdGlvbjogbGlua2lmaWVyLmh0bWw6OTMKLXByZXR0eSBwcmludGVkIGxvY2F0aW9uOiBs
aW5raWZpZXIuaHRtbDo5OAotcmV2ZXJ0ZWQgbG9jYXRpb246IGxpbmtpZmllci5odG1sOjkzCits
aXN0ZW5lcnMgYWRkZWQgb24gcmF3IHNvdXJjZSBjb2RlOiAxCitvcmlnaW5hbCBsb2NhdGlvbjog
bGlua2lmaWVyLmh0bWw6MjEKK3ByZXR0eSBwcmludGVkIGxvY2F0aW9uOiBsaW5raWZpZXIuaHRt
bDoyNAorcmV2ZXJ0ZWQgbG9jYXRpb246IGxpbmtpZmllci5odG1sOjIxCitsaXN0ZW5lcnMgcmVt
b3ZlZCBmcm9tIHJhdyBzb3VyY2UgY29kZTogMQorRGVidWdnZXIgd2FzIGRpc2FibGVkLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKaW5kZXggZmIz
NTQxYzdhZjMyM2FmNTBhYTFjMzE3NzFjZTRmODQ0OTllYmQ5Ny4uNWM0ODI3ZDE3NjhlZTcxMjc0
YjU0M2Y0ZWJmMjYwMWI2MWFhODZkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9saW5raWZpZXIuaHRtbApAQCAtOCw5OSArOCw1NCBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KGRlYnVnZ2VyVGVzdCk7CiAKKyAg
ICB2YXIgbGlua2lmaWVyOworICAgIHZhciBsaW5rOworICAgIHZhciByYXdTb3VyY2VDb2RlOwor
CiAgICAgZnVuY3Rpb24gZGVidWdnZXJUZXN0KCkKICAgICB7Ci0gICAgICAgIGlmICghV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuX3Jhd1NvdXJjZUNvZGVbV2ViSW5zcGVj
dG9yLm1haW5SZXNvdXJjZS5fZG9jdW1lbnRVUkxdKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwsICJf
YWRkU2NyaXB0IiwgZGVidWdnZXJUZXN0KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIHZhciBmYWtlVVJMMSA9ICJmYWtlVXJsLTEiOwotICAgICAgICB2YXIgZmFr
ZVVSTDIgPSAiZmFrZVVybC0yIjsKLQotICAgICAgICBEdW1teVJhd1NvdXJjZUNvZGUgPSBmdW5j
dGlvbih1cmwpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMudXJsID0gdXJsOwotICAgICAg
ICAgICAgdGhpcy5pZCA9IHVybDsKLSAgICAgICAgfQotCi0gICAgICAgIER1bW15UmF3U291cmNl
Q29kZS5wcm90b3R5cGUgPSB7Ci0gICAgICAgICAgICBhZGRFdmVudExpc3RlbmVyOiBmdW5jdGlv
bihldmVudE5hbWUsIGNhbGxiYWNrLCBvYmplY3QpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bW15UmF3U291cmNlQ29kZS5hZGRFdmVu
dExpc3RlbmVyIHdhcyBjYWxsZWQgZm9yIHNvdXJjZSB3aXRoIFVSTCA9ICciICsgdGhpcy51cmwg
KyAiJyB3aXRoIGFyZ3VtZW50cyA9IFsnIiArIGV2ZW50TmFtZSArICInLCAiICsgKHR5cGVvZiBj
YWxsYmFjaykgKyAiLCAiICsgKHR5cGVvZiBvYmplY3QpICsgIl0iKTsKLSAgICAgICAgICAgIH0s
Ci0KLSAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uKGV2ZW50TmFtZSwg
Y2FsbGJhY2ssIG9iamVjdCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRHVtbXlSYXdTb3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIg
d2FzIGNhbGxlZCBmb3Igc291cmNlIHdpdGggaWQgPSAnIiArIHRoaXMudXJsICsgIicgd2l0aCBh
cmd1bWVudHMgPSBbJyIgKyBldmVudE5hbWUgKyAiJywgIiArICh0eXBlb2YgY2FsbGJhY2spICsg
IiwgIiArICh0eXBlb2Ygb2JqZWN0KSArICJdIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LQotICAgICAgICBEdW1teVByZXNlbnRhdGlvbk1vZGVsID0gZnVuY3Rpb24oKQotICAgICAgICB7
Ci0gICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlID0gW107Ci0gICAgICAgIH0KLQotICAg
ICAgICBEdW1teVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKLSAgICAgICAgICAgIF9y
YXdTb3VyY2VDb2RlRm9yU2NyaXB0V2l0aFVSTDogZnVuY3Rpb24oc291cmNlVVJMKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1teVBy
ZXNlbnRhdGlvbk1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0V2l0aFVSTCB3YXMgY2FsbGVk
IHdpdGggYXJndW1lbnRzID0gWyciICsgc291cmNlVVJMICsgIiddIik7Ci0gICAgICAgICAgICAg
ICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2RlW3NvdXJjZVVSTF07Ci0g
ICAgICAgICAgICAgICAgaWYgKHJhd1NvdXJjZUNvZGUpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiByYXdTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUgPSBuZXcg
RHVtbXlSYXdTb3VyY2VDb2RlKHNvdXJjZVVSTCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmF3
U291cmNlQ29kZVtzb3VyY2VVUkxdID0gcmF3U291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmF3U291cmNlQ29kZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAg
IHZhciBkdW1teVByZXNlbnRhdGlvbk1vZGVsID0gbmV3IER1bW15UHJlc2VudGF0aW9uTW9kZWwo
KTsKKyAgICAgICAgbGlua2lmaWVyID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuY3JlYXRlTGlua2lmaWVyKCk7CisgICAgICAgIHJhd1NvdXJjZUNvZGUgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZUZvclVSTFtXZWJJ
bnNwZWN0b3IubWFpblJlc291cmNlLl9kb2N1bWVudFVSTF07CiAKLSAgICAgICAgdmFyIGxpbmtp
ZmllciA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5MaW5raWZp
ZXIoZHVtbXlQcmVzZW50YXRpb25Nb2RlbCk7CisgICAgICAgIHZhciBjb3VudDEgPSBsaXN0ZW5l
cnNDb3VudChyYXdTb3VyY2VDb2RlKTsKKyAgICAgICAgbGluayA9IGxpbmtpZmllci5saW5raWZ5
TG9jYXRpb24oV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZS5fZG9jdW1lbnRVUkwsIDIwLCAwLCAi
ZHVtbXktY2xhc3MiKTsKKyAgICAgICAgdmFyIGNvdW50MiA9IGxpc3RlbmVyc0NvdW50KHJhd1Nv
dXJjZUNvZGUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibGlzdGVuZXJzIGFk
ZGVkIG9uIHJhdyBzb3VyY2UgY29kZTogIiArIChjb3VudDIgLSBjb3VudDEpKTsKIAotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiLS0tIGxpbmtpZnkgZmFrZVVSTC0xIGZpcnN0IHRp
bWUgLS0tIik7Ci0gICAgICAgIGxpbmtpZmllci5saW5raWZ5TG9jYXRpb24oZmFrZVVSTDEsIDQy
LCAyNiwgImZha2UtY2xhc3MtbmFtZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJvcmlnaW5hbCBsb2NhdGlv
bjogIiArIGxpbmsudGV4dENvbnRlbnQpOwogCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCItLS0gbGlua2lmeSBmYWtlVVJMLTIgZmlyc3QgdGltZSAtLS0iKTsKLSAgICAgICAgbGlu
a2lmaWVyLmxpbmtpZnlMb2NhdGlvbihmYWtlVVJMMiwgNDIsIDI2LCAiZmFrZS1jbGFzcy1uYW1l
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKGxpbmtpZmllciwgIl91cGRhdGVBbmNob3IiLCBsaW5rVXBkYXRl
ZCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnNldEZv
cm1hdFNvdXJjZSh0cnVlKTsKKyAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIi0tLSBsaW5raWZ5IGZha2VVUkwtMSBzZWNvbmQgdGltZSAtLS0iKTsKLSAgICAgICAgbGlu
a2lmaWVyLmxpbmtpZnlMb2NhdGlvbihmYWtlVVJMMSwgOTcsIDIzLCAiZmFrZS1jbGFzcy1uYW1l
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKyAgICBmdW5jdGlvbiBs
aW5rVXBkYXRlZCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicHJl
dHR5IHByaW50ZWQgbG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKGxpbmtpZmllciwgIl91cGRhdGVBbmNob3IiLCBsaW5rUmV2
ZXJ0ZWQpOworICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5z
ZXRGb3JtYXRTb3VyY2UoZmFsc2UpOworICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiLS0tIGxpbmtpZnkgZmFrZVVSTC0yIHNlY29uZCB0aW1lIC0tLSIpOwotICAgICAg
ICBsaW5raWZpZXIubGlua2lmeUxvY2F0aW9uKGZha2VVUkwyLCA0LCAyLCAiZmFrZS1jbGFzcy1u
YW1lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKyAgICBmdW5jdGlv
biBsaW5rUmV2ZXJ0ZWQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InJldmVydGVkIGxvY2F0aW9uOiAiICsgbGluay50ZXh0Q29udGVudCk7CiAKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIi0tLSByZXNldCAtLS0iKTsKKyAgICAgICAgdmFyIGNvdW50
MSA9IGxpc3RlbmVyc0NvdW50KHJhd1NvdXJjZUNvZGUpOwogICAgICAgICBsaW5raWZpZXIucmVz
ZXQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCItLS0gbG9jYXRpb24gdXBkYXRlIC0tLSIpOwotCi0gICAg
ICAgIGZ1bmN0aW9uIGR1bW15RnVuY3Rpb25Ub0JlUHJldHR5UHJpbnRlZCgpIHsgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiIpOyBjb25zb2xlLmVycm9yKCIiKTsgfQotCi0gICAgICAgIGxpbmtp
ZmllciA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmNyZWF0ZUxpbmtp
ZmllcigpOwotICAgICAgICB2YXIgbGluayA9IGxpbmtpZmllci5saW5raWZ5TG9jYXRpb24oV2Vi
SW5zcGVjdG9yLm1haW5SZXNvdXJjZS5fZG9jdW1lbnRVUkwsIDkyLCAwLCAiZHVtbXktY2xhc3Mi
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIm9yaWdpbmFsIGxvY2F0aW9uOiAi
ICsgbGluay50ZXh0Q29udGVudCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KGxpbmtpZmllciwgIl91cGRhdGVBbmNob3IiLCBsaW5rVXBkYXRlZCk7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnNldEZvcm1hdFNvdXJjZSh0cnVlKTsK
KyAgICAgICAgdmFyIGNvdW50MiA9IGxpc3RlbmVyc0NvdW50KHJhd1NvdXJjZUNvZGUpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibGlzdGVuZXJzIHJlbW92ZWQgZnJvbSByYXcg
c291cmNlIGNvZGU6ICIgKyAoY291bnQxIC0gY291bnQyKSk7CiAKLSAgICAgICAgZnVuY3Rpb24g
bGlua1VwZGF0ZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgicHJldHR5IHByaW50ZWQgbG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50KTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihsaW5raWZpZXIsICJfdXBkYXRlQW5j
aG9yIiwgbGlua1JldmVydGVkKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnNldEZvcm1hdFNvdXJjZShmYWxzZSk7Ci0gICAgICAgIH0KKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOworICAgIH0KIAotICAgICAg
ICBmdW5jdGlvbiBsaW5rUmV2ZXJ0ZWQoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgicmV2ZXJ0ZWQgbG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgZnVuY3Rp
b24gbGlzdGVuZXJzQ291bnQob2JqZWN0KQorICAgIHsKKyAgICAgICAgdmFyIGxpc3RlbmVycyA9
IG9iamVjdC5fbGlzdGVuZXJzOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICBmb3Ig
KHZhciBldmVudFR5cGVzIGluIGxpc3RlbmVycykgeworICAgICAgICAgICAgdmFyIGxpc3RlbmVy
c0FycmF5ID0gbGlzdGVuZXJzW2V2ZW50VHlwZXNdOworICAgICAgICAgICAgY291bnQgKz0gbGlz
dGVuZXJzQXJyYXkubGVuZ3RoOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsgCiAg
ICAgfQogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>