<?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>101150</bug_id>
          
          <creation_ts>2012-11-03 10:05:43 -0700</creation_ts>
          <short_desc>Web Inspector: Console: hovering node wrappers in object tree should highlight them on the page</short_desc>
          <delta_ts>2012-11-29 12:00:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">me</reporter>
          <assigned_to name="Nikita Vasilyev">me</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757970</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-03 10:05:43 -0700</bug_when>
    <thetext>Screencast: http://www.screenr.com/sYs7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757971</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-03 10:14:03 -0700</bug_when>
    <thetext>I wanted to do this for quite some time now. Do you have a patch for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757972</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-03 10:15:53 -0700</bug_when>
    <thetext>No. I can start working on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757973</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-03 10:36:19 -0700</bug_when>
    <thetext>Feel free to, I have no code for it yet. You should look at the code for hovering over node, then you should repeat it for ObjectPropertySection elements. The only difference is that you would need to resolve RemoteObjects with type &quot;node&quot; into DOMNodes (use RemoteObject.prototype.pushNodeToFrontend for that). Then existing node highlight routines will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765466</commentid>
    <comment_count>4</comment_count>
      <attachid>173862</attachid>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 04:39:51 -0800</bug_when>
    <thetext>Created attachment 173862
WIP

Demo: http://www.screenr.com/TJH7

This is what I want except it shouldn’t have ► and shouldn’t be expandable.

It terms of code, it doesn’t look right. ConsoleMessageImpl contains all formatters, but they should also be used in Sources (Watch Expressions and Scope Variables). Thus, formatters doesn’t belong to ConsoleMessageImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765507</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-13 05:35:03 -0800</bug_when>
    <thetext>I don&apos;t think we want it this way in the UI. There is a &quot;Reveil in Elements panel&quot; action available on it, so one should use it. Otherwise we end up with a mixture of representations in one tree. I think the title of the bug states it the right way: we only want highlight upon hovering the object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765510</commentid>
    <comment_count>6</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 05:42:32 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I don&apos;t think we want it this way in the UI. There is a &quot;Reveil in Elements panel&quot; action available on it, so one should use it. Otherwise we end up with a mixture of representations in one tree.

I think the same. I just don’t yet know how to code it properly. The code responsible for hovering elements is in WebInspector.ElementsTreeOutline. I need only one element instead of a tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765533</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-13 06:22:41 -0800</bug_when>
    <thetext>&gt; I think the same. I just don’t yet know how to code it properly. The code responsible for hovering elements is in WebInspector.ElementsTreeOutline. I need only one element instead of a tree.

Comment #3 should give you a clue. Or I can steal it from you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765534</commentid>
    <comment_count>8</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 06:24:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; I think the same. I just don’t yet know how to code it properly. The code responsible for hovering elements is in WebInspector.ElementsTreeOutline. I need only one element instead of a tree.
&gt; 
&gt; Comment #3 should give you a clue. Or I can steal it from you.

Are you suggesting not using WebInspector.ElementsTreeOutline and just duplicate hover logic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765541</commentid>
    <comment_count>9</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 06:34:09 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Or I can steal it from you.

No, wait, I almost got it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765542</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-13 06:34:54 -0800</bug_when>
    <thetext>&gt; Are you suggesting not using WebInspector.ElementsTreeOutline and just duplicate hover logic?

I don&apos;t think ElementsTreeOutline is involved. You want to highlight elements in the screen, not on the elements panel, right? If there is some code to be extracted, it can go into DOMAgent, but I doubt there is any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765679</commentid>
    <comment_count>11</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 09:16:58 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Are you suggesting not using WebInspector.ElementsTreeOutline and just duplicate hover logic?
&gt; 
&gt; I don&apos;t think ElementsTreeOutline is involved. You want to highlight elements in the screen, not on the elements panel, right?

Right. Although, I do want to jump to elements panel by either left-clicking the element or from the context menu (as it currently work for ElementsTreeOutline).

If you know how to implement it really easy, then do steal it from me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765783</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-13 10:37:54 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; &gt; Are you suggesting not using WebInspector.ElementsTreeOutline and just duplicate hover logic?
&gt; &gt; 
&gt; &gt; I don&apos;t think ElementsTreeOutline is involved. You want to highlight elements in the screen, not on the elements panel, right?
&gt; 
&gt; Right. Although, I do want to jump to elements panel by either left-clicking the element or from the context menu (as it currently work for ElementsTreeOutline).
&gt; 

This one is already there. Context menu -&gt; &quot;Reveal in Elements Panel&quot;.

&gt; If you know how to implement it really easy, then do steal it from me.

Rest could be done as in Comment #3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765839</commentid>
    <comment_count>13</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 11:21:13 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; I don&apos;t think ElementsTreeOutline is involved. You want to highlight elements in the screen, not on the elements panel, right?
&gt; &gt; 
&gt; &gt; Right. Although, I do want to jump to elements panel by either left-clicking the element or from the context menu (as it currently work for ElementsTreeOutline).
&gt; &gt; 
&gt; 
&gt; This one is already there. Context menu -&gt; &quot;Reveal in Elements Panel&quot;.

Nope. http://www.screenr.com/RiH7

&quot;Reveal in Elements Panel&quot; implemented in WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired. I’m pretty sure ElementsTreeOutline should be involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766147</commentid>
    <comment_count>14</comment_count>
      <attachid>174020</attachid>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-13 16:11:02 -0800</bug_when>
    <thetext>Created attachment 174020
WIP 2

http://www.screenr.com/vIH7

I ended following your advice and not using WebInspector.ElementsTreeOutline directly. However, I abstracted _buildTagDOM and _buildAttributeDOM from WebInspector.ElementsTreeElement.prototype to WebInspector.DOMPresentationUtils so I can use them in WebInspector.ObjectPropertyTreeElement.prototype.update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766279</commentid>
    <comment_count>15</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-13 18:17:11 -0800</bug_when>
    <thetext>&gt; Nope. http://www.screenr.com/RiH7
&gt; 

It is a regression. It works from the Elements panel&apos;s properties sidebar, but not from the console. Console&apos;s context menu has {b:document.body} object as a target when you invoke it. I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766776</commentid>
    <comment_count>16</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-14 05:22:49 -0800</bug_when>
    <thetext>&gt; It is a regression. It works from the Elements panel&apos;s properties sidebar, but not from the console. Console&apos;s context menu has {b:document.body} object as a target when you invoke it. I&apos;ll fix it.

Fix landed as http://trac.webkit.org/changeset/134595. Take a look at it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766778</commentid>
    <comment_count>17</comment_count>
      <attachid>174020</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-14 05:24:21 -0800</bug_when>
    <thetext>Comment on attachment 174020
WIP 2

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

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:251
&gt; +                var fragment = WebInspector.DOMPresentationUtils.buildTagDOM(node, false, true);

Please do not render object as DOM. As I pointed out earlier, Object view only shows Object representation.

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:274
&gt; +            this.property.value.pushNodeToFrontend(printNode);

You should only push node upon hover. Otherwise you are at risk of pushing all DOM at once with no good reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766787</commentid>
    <comment_count>18</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-14 05:37:43 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:274
&gt; &gt; +            this.property.value.pushNodeToFrontend(printNode);
&gt; 
&gt; You should only push node upon hover. Otherwise you are at risk of pushing all DOM at once with no good reason.

I’m showing all an element with all its attributes. How do I get this information without using pushNodeToFrontend?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766796</commentid>
    <comment_count>19</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-11-14 05:45:25 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 174020 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174020&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:251
&gt; &gt; +                var fragment = WebInspector.DOMPresentationUtils.buildTagDOM(node, false, true);
&gt; 
&gt; Please do not render object as DOM. As I pointed out earlier, Object view only shows Object representation.

I’m not really following. An object may contains elements, that’s what the bug all about. 

(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; &gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:274
&gt; &gt; &gt; +            this.property.value.pushNodeToFrontend(printNode);
&gt; &gt; 
&gt; &gt; You should only push node upon hover. Otherwise you are at risk of pushing all DOM at once with no good reason.
&gt; 
&gt; I’m showing all an element with all its attributes. How do I get this information without using pushNodeToFrontend?

WebInspector.RemoteObject.prototype.description returns no attributes, e.g. &lt;body&gt; when it actually &lt;body class=&quot;logged_in page-dashboard macintosh  env-production &quot;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766798</commentid>
    <comment_count>20</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-14 05:48:51 -0800</bug_when>
    <thetext>&gt; I’m not really following. An object may contains elements, that’s what the bug all about. 

Oh, I think the bug title is misleading. Updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775528</commentid>
    <comment_count>21</comment_count>
      <attachid>176012</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-26 09:00:00 -0800</bug_when>
    <thetext>Created attachment 176012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779181</commentid>
    <comment_count>22</comment_count>
      <attachid>176012</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-11-29 10:51:03 -0800</bug_when>
    <thetext>Comment on attachment 176012
Patch

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

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:249
&gt; +            WebInspector.DOMPresentationUtils.createSpansForNodeTitle(this.valueElement, this.property.value.description);

s/this.property.value.description/description/

&gt; Source/WebCore/inspector/front-end/externs.js:68
&gt; +window.isUnderTest = false;

is that related?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779277</commentid>
    <comment_count>23</comment_count>
      <attachid>176012</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 12:00:03 -0800</bug_when>
    <thetext>Comment on attachment 176012
Patch

Clearing flags on attachment: 176012

Committed r136144: &lt;http://trac.webkit.org/changeset/136144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779278</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 12:00:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173862</attachid>
            <date>2012-11-13 04:39:51 -0800</date>
            <delta_ts>2012-11-13 16:11:02 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>1378</size>
            <attacher name="Nikita Vasilyev">me</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJv
cGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09i
amVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IDEyMTA2YzQuLjM2NDViZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24uanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMjMwLDYgKzIzMCw4IEBAIFdlYkluc3BlY3Rvci5PYmpl
Y3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgfSBlbHNlIGlmICh0
aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIGRlc2NyaXB0
aW9uID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQudGV4dENv
bnRlbnQgPSAvLiovLmV4ZWMoZGVzY3JpcHRpb24pWzBdLnJlcGxhY2UoLyArJC9nLCAiIik7CiAg
ICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5fb3JpZ2luYWxUZXh0Q29udGVudCA9IGRlc2Ny
aXB0aW9uOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcGVydHkudmFsdWUuc3VidHlwZSA9
PT0gIm5vZGUiKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBs
LnByb3RvdHlwZS5fZm9ybWF0UGFyYW1ldGVyQXNOb2RlKHRoaXMucHJvcGVydHkudmFsdWUsIHRo
aXMudmFsdWVFbGVtZW50KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0aGlzLnZhbHVl
RWxlbWVudC50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggODlkYTc5Yy4uYmFlZTNj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmNzcwpAQCAtMTE0OCw2ICsxMTQ4LDEwIEBAIG9sLndhdGNoLWV4cHJlc3Npb25zID4gbGkuaG92
ZXJlZCB7CiAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7CiB9CiAKKy5jb25zb2xlLWZv
cm1hdHRlZC1ub2RlID4gLm91dGxpbmUtZGlzY2xvc3VyZSB7CisgICAgZGlzcGxheTogYmxvY2s7
Cit9CisKIC5jb25zb2xlLWZvcm1hdHRlZC1udW1iZXIgewogICAgIGNvbG9yOiByZ2IoMjgsIDAs
IDIwNyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174020</attachid>
            <date>2012-11-13 16:11:02 -0800</date>
            <delta_ts>2012-11-26 08:59:54 -0800</delta_ts>
            <desc>WIP 2</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13684</size>
            <attacher name="Nikita Vasilyev">me</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NUHJlc2Vu
dGF0aW9uVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVBy
ZXNlbnRhdGlvblV0aWxzLmpzCmluZGV4IDkwNWI3OGYuLjdkMzY4M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NUHJlc2VudGF0aW9uVXRpbHMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01QcmVzZW50YXRpb25V
dGlscy5qcwpAQCAtMTQ0LDMgKzE0NCw3NCBAQCBXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0aW9u
VXRpbHMuYnVpbGRJbWFnZVByZXZpZXdDb250ZW50cyA9IGZ1bmN0aW9uKGltYWdlVVJMLAogICAg
ICAgICB1c2VyQ2FsbGJhY2soY29udGFpbmVyKTsKICAgICB9CiB9CisKKy8qKgorICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuRE9NTm9kZX0gbm9kZQorICogQHBhcmFtIHtib29sZWFuPX0gaXNDbG9z
aW5nVGFnCisgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0Rpc3RpbmN0VHJlZUVsZW1lbnQKKyAqIEBw
YXJhbSB7ZnVuY3Rpb24oc3RyaW5nLCBzdHJpbmcsIHN0cmluZywgYm9vbGVhbj0sIHN0cmluZz0p
PX0gbGlua2lmeQorICovCitXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuYnVpbGRU
YWdET00gPSBmdW5jdGlvbihub2RlLCBpc0Nsb3NpbmdUYWcsIGlzRGlzdGluY3RUcmVlRWxlbWVu
dCwgbGlua2lmeSkgeworICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50
RnJhZ21lbnQoKTsKKworICAgIHZhciBjbGFzc2VzID0gWyAid2Via2l0LWh0bWwtdGFnIiBdOwor
ICAgIGlmIChpc0Nsb3NpbmdUYWcgJiYgaXNEaXN0aW5jdFRyZWVFbGVtZW50KQorICAgICAgICBj
bGFzc2VzLnB1c2goImNsb3NlIik7CisgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkKKyAg
ICAgICAgY2xhc3Nlcy5wdXNoKCJzaGFkb3ciKTsKKyAgICB2YXIgdGFnRWxlbWVudCA9IGZyYWdt
ZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgY2xhc3Nlcy5qb2luKCIgIikpOworICAgIHRhZ0VsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjwiKSk7CisgICAgdmFyIHRh
Z05hbWVFbGVtZW50ID0gdGFnRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsIGlzQ2xvc2luZ1Rh
ZyA/ICIiIDogIndlYmtpdC1odG1sLXRhZy1uYW1lIik7CisgICAgdmFyIHRhZ05hbWUgPSBub2Rl
Lm5vZGVOYW1lSW5Db3JyZWN0Q2FzZSgpOworICAgIHRhZ05hbWVFbGVtZW50LnRleHRDb250ZW50
ID0gKGlzQ2xvc2luZ1RhZyA/ICIvIiA6ICIiKSArIHRhZ05hbWU7CisgICAgaWYgKCFpc0Nsb3Np
bmdUYWcgJiYgbm9kZS5oYXNBdHRyaWJ1dGVzKCkpIHsKKyAgICAgICAgdmFyIGF0dHJpYnV0ZXMg
PSBub2RlLmF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRyaWJ1
dGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgYXR0ciA9IGF0dHJpYnV0ZXNbaV07
CisgICAgICAgICAgICB0YWdFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCIgIikpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkRPTVByZXNlbnRhdGlvblV0aWxz
LmJ1aWxkQXR0cmlidXRlRE9NKHRhZ0VsZW1lbnQsIGF0dHIubmFtZSwgYXR0ci52YWx1ZSwgbm9k
ZSwgbGlua2lmeSk7CisgICAgICAgIH0KKyAgICB9CisgICAgdGFnRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiPiIpKTsKKyAgICBmcmFnbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHUyMDBCIikpOworCisgICAgcmV0dXJuIGZyYWdt
ZW50OworfQorCisvKioKKyAqIEBwYXJhbSB7RWxlbWVudH0gcGFyZW50RWxlbWVudAorICogQHBh
cmFtIHtzdHJpbmd9IG5hbWUKKyAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQorICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRE9NTm9kZT19IG5vZGUKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nLCBz
dHJpbmcsIHN0cmluZywgYm9vbGVhbj0sIHN0cmluZz0pPX0gbGlua2lmeQorICovCitXZWJJbnNw
ZWN0b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuYnVpbGRBdHRyaWJ1dGVET00gPSBmdW5jdGlvbiAo
cGFyZW50RWxlbWVudCwgbmFtZSwgdmFsdWUsIG5vZGUsIGxpbmtpZnkpCit7CisgICAgdmFyIGhh
c1RleHQgPSAodmFsdWUubGVuZ3RoID4gMCk7CisgICAgdmFyIGF0dHJTcGFuRWxlbWVudCA9IHBh
cmVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwtYXR0cmlidXRlIik7
CisgICAgdmFyIGF0dHJOYW1lRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgi
c3BhbiIsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOworICAgIGF0dHJOYW1lRWxlbWVu
dC50ZXh0Q29udGVudCA9IG5hbWU7CisKKyAgICBpZiAoaGFzVGV4dCkKKyAgICAgICAgYXR0clNw
YW5FbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI9XHUyMDBCXCIi
KSk7CisKKyAgICBpZiAobGlua2lmeSAmJiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9PT0gImhy
ZWYiKSkgeworICAgICAgICB2YXIgcmV3cml0dGVuSHJlZiA9IG5vZGUucmVzb2x2ZVVSTCh2YWx1
ZSk7CisgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvKFtcLzs6XClcXVx9XSkvZywgIiQx
XHUyMDBCIik7CisgICAgICAgIGlmIChyZXdyaXR0ZW5IcmVmID09PSBudWxsKSB7CisgICAgICAg
ICAgICB2YXIgYXR0clZhbHVlRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgi
c3BhbiIsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAgICAgICAgIGF0dHJW
YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCJkYXRhOiIpKQorICAgICAgICAgICAgICAgIHZh
bHVlID0gdmFsdWUudHJpbU1pZGRsZSg2MCk7CisgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQu
YXBwZW5kQ2hpbGQobGlua2lmeShyZXdyaXR0ZW5IcmVmLCB2YWx1ZSwgIndlYmtpdC1odG1sLWF0
dHJpYnV0ZS12YWx1ZSIsIG5vZGUubm9kZU5hbWUoKS50b0xvd2VyQ2FzZSgpID09PSAiYSIpKTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgv
KFtcLzs6XClcXVx9XSkvZywgIiQxXHUyMDBCIik7CisgICAgICAgIHZhciBhdHRyVmFsdWVFbGVt
ZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLWF0
dHJpYnV0ZS12YWx1ZSIpOworICAgICAgICBhdHRyVmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0g
dmFsdWU7CisgICAgfQorCisgICAgaWYgKGhhc1RleHQpCisgICAgICAgIGF0dHJTcGFuRWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXCIiKSk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxp
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91
dGxpbmUuanMKaW5kZXggYTg3YmM5Mi4uODM0MWY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAt
MTIzOSw3ICsxMjM5LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICAvLyBDYW5ub3QganVzdCBjb252ZXJ0IHRoZSB0ZXh0dWFsIGh0bWwg
aW50byBhbiBlbGVtZW50IHdpdGhvdXQKICAgICAgICAgLy8gYSBwYXJlbnQgbm9kZS4gVXNlIGEg
dGVtcG9yYXJ5IHNwYW4gY29udGFpbmVyIGZvciB0aGUgSFRNTC4KICAgICAgICAgdmFyIGNvbnRh
aW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgdGhpcy5fYnVp
bGRBdHRyaWJ1dGVET00oY29udGFpbmVyLCAiICIsICIiKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LkRPTVByZXNlbnRhdGlvblV0aWxzLmJ1aWxkQXR0cmlidXRlRE9NKGNvbnRhaW5lciwgIiAiLCAi
Iik7CiAgICAgICAgIHZhciBhdHRyID0gY29udGFpbmVyLmZpcnN0Q2hpbGQ7CiAgICAgICAgIGF0
dHIuc3R5bGUubWFyZ2luTGVmdCA9ICIycHgiOyAvLyBvdmVycmlkZXMgdGhlIC5lZGl0aW5nIG1h
cmdpbiBydWxlCiAgICAgICAgIGF0dHIuc3R5bGUubWFyZ2luUmlnaHQgPSAiMnB4IjsgLy8gb3Zl
cnJpZGVzIHRoZSAuZWRpdGluZyBtYXJnaW4gcnVsZQpAQCAtMTY4Nyw2NSArMTY4NywxMyBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAog
ICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTU5vZGU9fSBub2RlCi0gICAg
ICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBib29sZWFuPSwgc3Ry
aW5nPSk9fSBsaW5raWZ5Ci0gICAgICovCi0gICAgX2J1aWxkQXR0cmlidXRlRE9NOiBmdW5jdGlv
bihwYXJlbnRFbGVtZW50LCBuYW1lLCB2YWx1ZSwgbm9kZSwgbGlua2lmeSkKLSAgICB7Ci0gICAg
ICAgIHZhciBoYXNUZXh0ID0gKHZhbHVlLmxlbmd0aCA+IDApOwotICAgICAgICB2YXIgYXR0clNw
YW5FbGVtZW50ID0gcGFyZW50RWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRt
bC1hdHRyaWJ1dGUiKTsKLSAgICAgICAgdmFyIGF0dHJOYW1lRWxlbWVudCA9IGF0dHJTcGFuRWxl
bWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOwot
ICAgICAgICBhdHRyTmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1lOwotCi0gICAgICAgIGlm
IChoYXNUZXh0KQotICAgICAgICAgICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCI9XHUyMDBCXCIiKSk7Ci0KLSAgICAgICAgaWYgKGxpbmtpZnkg
JiYgKG5hbWUgPT09ICJzcmMiIHx8IG5hbWUgPT09ICJocmVmIikpIHsKLSAgICAgICAgICAgIHZh
ciByZXdyaXR0ZW5IcmVmID0gbm9kZS5yZXNvbHZlVVJMKHZhbHVlKTsKLSAgICAgICAgICAgIHZh
bHVlID0gdmFsdWUucmVwbGFjZSgvKFtcLzs6XClcXVx9XSkvZywgIiQxXHUyMDBCIik7Ci0gICAg
ICAgICAgICBpZiAocmV3cml0dGVuSHJlZiA9PT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHZh
ciBhdHRyVmFsdWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwg
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSIpOwotICAgICAgICAgICAgICAgIGF0dHJWYWx1
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoImRhdGE6IikpCi0gICAgICAgICAgICAg
ICAgICAgIHZhbHVlID0gdmFsdWUudHJpbU1pZGRsZSg2MCk7Ci0gICAgICAgICAgICAgICAgYXR0
clNwYW5FbGVtZW50LmFwcGVuZENoaWxkKGxpbmtpZnkocmV3cml0dGVuSHJlZiwgdmFsdWUsICJ3
ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiLCBub2RlLm5vZGVOYW1lKCkudG9Mb3dlckNhc2Uo
KSA9PT0gImEiKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1MjAwQiIpOwot
ICAgICAgICAgICAgdmFyIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRl
Q2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIik7Ci0gICAgICAgICAg
ICBhdHRyVmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gdmFsdWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoaGFzVGV4dCkKLSAgICAgICAgICAgIGF0dHJTcGFuRWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXCIiKSk7Ci0gICAgfSwKLQotICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nLCBzdHJpbmcsIHN0cmluZywgYm9vbGVhbj0sIHN0
cmluZz0pPX0gbGlua2lmeQogICAgICAqLwogICAgIF9idWlsZFRhZ0RPTTogZnVuY3Rpb24ocGFy
ZW50RWxlbWVudCwgdGFnTmFtZSwgaXNDbG9zaW5nVGFnLCBpc0Rpc3RpbmN0VHJlZUVsZW1lbnQs
IGxpbmtpZnkpCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9IC8qKiBAdHlwZSBXZWJJbnNwZWN0
b3IuRE9NTm9kZSAqLyAodGhpcy5yZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgICAgIHZhciBjbGFz
c2VzID0gWyAid2Via2l0LWh0bWwtdGFnIiBdOwotICAgICAgICBpZiAoaXNDbG9zaW5nVGFnICYm
IGlzRGlzdGluY3RUcmVlRWxlbWVudCkKLSAgICAgICAgICAgIGNsYXNzZXMucHVzaCgiY2xvc2Ui
KTsKLSAgICAgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkKLSAgICAgICAgICAgIGNsYXNz
ZXMucHVzaCgic2hhZG93Iik7Ci0gICAgICAgIHZhciB0YWdFbGVtZW50ID0gcGFyZW50RWxlbWVu
dC5jcmVhdGVDaGlsZCgic3BhbiIsIGNsYXNzZXMuam9pbigiICIpKTsKLSAgICAgICAgdGFnRWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiPCIpKTsKLSAgICAgICAg
dmFyIHRhZ05hbWVFbGVtZW50ID0gdGFnRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsIGlzQ2xv
c2luZ1RhZyA/ICIiIDogIndlYmtpdC1odG1sLXRhZy1uYW1lIik7Ci0gICAgICAgIHRhZ05hbWVF
bGVtZW50LnRleHRDb250ZW50ID0gKGlzQ2xvc2luZ1RhZyA/ICIvIiA6ICIiKSArIHRhZ05hbWU7
Ci0gICAgICAgIGlmICghaXNDbG9zaW5nVGFnICYmIG5vZGUuaGFzQXR0cmlidXRlcygpKSB7Ci0g
ICAgICAgICAgICB2YXIgYXR0cmlidXRlcyA9IG5vZGUuYXR0cmlidXRlcygpOwotICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgdmFyIGF0dHIgPSBhdHRyaWJ1dGVzW2ldOwotICAgICAgICAgICAgICAgIHRhZ0Vs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fYnVpbGRBdHRyaWJ1dGVET00odGFnRWxlbWVudCwgYXR0ci5uYW1lLCBh
dHRyLnZhbHVlLCBub2RlLCBsaW5raWZ5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICB0YWdFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCI+Iikp
OwotICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJcdTIwMEIiKSk7CisgICAgICAgIHZhciBmcmFnbWVudCA9IFdlYkluc3BlY3Rvci5ET01Q
cmVzZW50YXRpb25VdGlscy5idWlsZFRhZ0RPTShub2RlLCBpc0Nsb3NpbmdUYWcsIGlzRGlzdGlu
Y3RUcmVlRWxlbWVudCwgbGlua2lmeSk7CisgICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQoZnJhZ21lbnQpOwogICAgIH0sCiAKICAgICBfY29udmVydFdoaXRlc3BhY2VUb0VudGl0aWVz
OiBmdW5jdGlvbih0ZXh0KQpAQCAtMTc3NSw3ICsxNzIzLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1l
bnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5
cGUoKSkgewogICAgICAgICAgICAgY2FzZSBOb2RlLkFUVFJJQlVURV9OT0RFOgogICAgICAgICAg
ICAgICAgIHZhciB2YWx1ZSA9IG5vZGUudmFsdWUgfHwgIlx1MjAwQiI7IC8vIFplcm8gd2lkdGgg
c3BhY2UgdG8gZm9yY2Ugc2hvd2luZyBhbiBlbXB0eSB2YWx1ZS4KLSAgICAgICAgICAgICAgICB0
aGlzLl9idWlsZEF0dHJpYnV0ZURPTShpbmZvLnRpdGxlRE9NLCBub2RlLm5hbWUsIHZhbHVlKTsK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuYnVpbGRB
dHRyaWJ1dGVET00oaW5mby50aXRsZURPTSwgbm9kZS5uYW1lLCB2YWx1ZSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRp
ZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQ
cm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCAxMjEwNmM0Li44ZjY0ODVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9u
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVy
dGllc1NlY3Rpb24uanMKQEAgLTIxNywzNyArMjE3LDc5IEBAIFdlYkluc3BlY3Rvci5PYmplY3RQ
cm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgc2VwYXJhdG9yRWxlbWVu
dC5jbGFzc05hbWUgPSAic2VwYXJhdG9yIjsKICAgICAgICAgc2VwYXJhdG9yRWxlbWVudC50ZXh0
Q29udGVudCA9ICI6ICI7CiAKLSAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmNsYXNzTmFt
ZSA9ICJ2YWx1ZSI7CisgICAgICAgIHZhciB2YWx1ZUVsZW1lbnQgPSB0aGlzLnZhbHVlRWxlbWVu
dDsKKyAgICAgICAgdmFsdWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OworICAgICAgICB2YWx1ZUVsZW1lbnQuY2xhc3NOYW1lID0gInZhbHVlIjsKKworICAgICAgICBm
dW5jdGlvbiBkZWZhdWx0RGVzY3JpcHRpb24oKQorICAgICAgICB7CisgICAgICAgICAgICB2YWx1
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgfQogCiAgICAgICAg
IHZhciBkZXNjcmlwdGlvbiA9IHRoaXMucHJvcGVydHkudmFsdWUuZGVzY3JpcHRpb247CiAgICAg
ICAgIC8vIFJlbmRlciBcbiBhcyBhIG5pY2UgdW5pY29kZSBjciBzeW1ib2wuCiAgICAgICAgIGlm
ICh0aGlzLnByb3BlcnR5Lndhc1Rocm93bikKLSAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50
LnRleHRDb250ZW50ID0gIltFeGNlcHRpb246ICIgKyBkZXNjcmlwdGlvbiArICJdIjsKKyAgICAg
ICAgICAgIHZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJbRXhjZXB0aW9uOiAiICsgZGVzY3Jp
cHRpb24gKyAiXSI7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMucHJvcGVydHkudmFsdWUudHlwZSA9
PT0gInN0cmluZyIgJiYgdHlwZW9mIGRlc2NyaXB0aW9uID09PSAic3RyaW5nIikgewotICAgICAg
ICAgICAgdGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiXCIiICsgZGVzY3JpcHRpb24u
cmVwbGFjZSgvXG4vZywgIlx1MjFCNSIpICsgIlwiIjsKLSAgICAgICAgICAgIHRoaXMudmFsdWVF
bGVtZW50Ll9vcmlnaW5hbFRleHRDb250ZW50ID0gIlwiIiArIGRlc2NyaXB0aW9uICsgIlwiIjsK
KyAgICAgICAgICAgIHZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJcIiIgKyBkZXNjcmlwdGlv
bi5yZXBsYWNlKC9cbi9nLCAiXHUyMUI1IikgKyAiXCIiOworICAgICAgICAgICAgdmFsdWVFbGVt
ZW50Ll9vcmlnaW5hbFRleHRDb250ZW50ID0gIlwiIiArIGRlc2NyaXB0aW9uICsgIlwiIjsKICAg
ICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUgPT09ICJmdW5jdGlvbiIg
JiYgdHlwZW9mIGRlc2NyaXB0aW9uID09PSAic3RyaW5nIikgewotICAgICAgICAgICAgdGhpcy52
YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAvLiovLmV4ZWMoZGVzY3JpcHRpb24pWzBdLnJlcGxh
Y2UoLyArJC9nLCAiIik7Ci0gICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5fb3JpZ2luYWxU
ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOworICAgICAgICAgICAgdmFsdWVFbGVtZW50LnRleHRD
b250ZW50ID0gLy4qLy5leGVjKGRlc2NyaXB0aW9uKVswXS5yZXBsYWNlKC8gKyQvZywgIiIpOwor
ICAgICAgICAgICAgdmFsdWVFbGVtZW50Ll9vcmlnaW5hbFRleHRDb250ZW50ID0gZGVzY3JpcHRp
b247CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS5zdWJ0eXBlID09PSAi
bm9kZSIpIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50Tm9kZShub2RlSWQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlSWQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdERlc2NyaXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUubm9k
ZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdERlc2NyaXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50ID0gV2ViSW5zcGVjdG9yLkRP
TVByZXNlbnRhdGlvblV0aWxzLmJ1aWxkVGFnRE9NKG5vZGUsIGZhbHNlLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICB2YWx1ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpOworCisgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gb25DbGljayhldmVudCkKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5pbnNwZWN0RWxlbWVudChub2Rl
SWQpOworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBvbk1vdXNlT3ZlcihldmVudCkKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5oaWdo
bGlnaHRET01Ob2RlKG5vZGVJZCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgZnVuY3Rpb24gb25Nb3VzZU91dChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICB2YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBvbkNsaWNrLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdmFsdWVFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsIG9uTW91c2VPdmVyLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgdmFsdWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iiwgb25Nb3VzZU91
dCwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eS52YWx1
ZS5wdXNoTm9kZVRvRnJvbnRlbmQocHJpbnROb2RlKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICB0aGlzLnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9IGRlc2NyaXB0aW9uOworICAgICAg
ICAgICAgZGVmYXVsdERlc2NyaXB0aW9uKCk7CiAKICAgICAgICAgaWYgKHRoaXMucHJvcGVydHku
d2FzVGhyb3duKQotICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
ZXJyb3IiKTsKKyAgICAgICAgICAgIHZhbHVlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJlcnJvciIp
OwogICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS52YWx1ZS5zdWJ0eXBlKQotICAgICAgICAgICAg
dGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtIiArIHRo
aXMucHJvcGVydHkudmFsdWUuc3VidHlwZSk7CisgICAgICAgICAgICB2YWx1ZUVsZW1lbnQuYWRk
U3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtIiArIHRoaXMucHJvcGVydHkudmFsdWUuc3Vi
dHlwZSk7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMucHJvcGVydHkudmFsdWUudHlwZSkKLSAgICAg
ICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZm9ybWF0dGVk
LSIgKyB0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUpOworICAgICAgICAgICAgdmFsdWVFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZm9ybWF0dGVkLSIgKyB0aGlzLnByb3BlcnR5LnZhbHVl
LnR5cGUpOwogCi0gICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNv
bnRleHRtZW51IiwgdGhpcy5fY29udGV4dE1lbnVGaXJlZC5iaW5kKHRoaXMsIHRoaXMucHJvcGVy
dHkudmFsdWUpLCBmYWxzZSk7Ci0gICAgICAgIHRoaXMudmFsdWVFbGVtZW50LnRpdGxlID0gZGVz
Y3JpcHRpb24gfHwgIiI7CisgICAgICAgIHZhbHVlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
b250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51RmlyZWQuYmluZCh0aGlzLCB0aGlzLnByb3Bl
cnR5LnZhbHVlKSwgZmFsc2UpOworICAgICAgICB2YWx1ZUVsZW1lbnQudGl0bGUgPSBkZXNjcmlw
dGlvbiB8fCAiIjsKIAogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5yZW1vdmVDaGlsZHJl
bigpOwogCiAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubmFt
ZUVsZW1lbnQpOwogICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRDaGlsZChzZXBh
cmF0b3JFbGVtZW50KTsKLSAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy52YWx1ZUVsZW1lbnQpOworICAgICAgICB0aGlzLmxpc3RJdGVtRWxlbWVudC5hcHBlbmRD
aGlsZCh2YWx1ZUVsZW1lbnQpOwogICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gdGhpcy5wcm9w
ZXJ0eS52YWx1ZS5oYXNDaGlsZHJlbiAmJiAhdGhpcy5wcm9wZXJ0eS53YXNUaHJvd247CiAgICAg
fSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
Y3NzCmluZGV4IDg5ZGE3OWMuLmQ0NTY1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTExNjEsNiArMTE2MSwxMSBAQCBvbC53
YXRjaC1leHByZXNzaW9ucyA+IGxpLmhvdmVyZWQgewogICAgIGNvbG9yOiByZ2IoMTI4LCAxMjgs
IDEyOCk7CiB9CiAKKy5jb25zb2xlLWZvcm1hdHRlZC1ub2RlOmhvdmVyIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2JhKDU2LCAxMjEsIDIxNywgMC4xKTsKKyAgICAtd2Via2l0LWJvcmRlci1y
YWRpdXM6IDVweDsKK30KKwogLmNvbnNvbGUtZm9ybWF0dGVkLXByZXZpZXctbm9kZSwKIC5zZWN0
aW9uIC5jb25zb2xlLWZvcm1hdHRlZC1ub2RlIHsKICAgICBjb2xvcjogcmdiKDEzNiwgMTgsIDEy
OCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176012</attachid>
            <date>2012-11-26 09:00:00 -0800</date>
            <delta_ts>2012-11-29 12:00:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101150-20121126205738.patch</filename>
            <type>text/plain</type>
            <size>15147</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc3MDM1NzY1NjE0MDkw
ZGExYzg5MDVkNzM4OGE5OGVmZTk4OWRmZS4uMmMzNDIwZjdjYjNhMGZiMzBiMDRhODhkYzc5N2Fj
OGZhYWVjNjBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTExLTI2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENvbnNvbGU6IGhvdmVyaW5nIG5vZGUgd3JhcHBlcnMgaW4gb2JqZWN0IHRyZWUgc2hvdWxk
IGhpZ2hsaWdodCB0aGVtIG9uIHRoZSBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAtIEludHJvZHVjZWQgYSB3YXkgdG8gaGlnaGxpZ2h0IG5vZGVz
IGJ5IG9iamVjdCBpZCBpbiBhZGRpdGlvbiB0byBub2RlIGlkLgorICAgICAgICAtIERlY29yYXRl
ZCBub2RlcyBpbiB0aGUgb2JqZWN0IHRyZWUgb3V0bGluZSBhbmQgYWRkZWQgb24taG92ZXIgaGln
aGxpZ2h0aW5nLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JET01BZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9hcHBlbmRQcm9wZXJ0eVByZXZp
ZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLmhpZ2hsaWdodERPTU5vZGUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NUHJlc2VudGF0aW9uVXRpbHMuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuY3JlYXRlU3BhbnNGb3JOb2Rl
VGl0bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVu
dC5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0
eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fbW91c2VNb3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZS5fbW91c2VPdXQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuaGlnaGxpZ2h0QXNET01Ob2RlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmhpZGVET01Ob2RlSGlnaGxp
Z2h0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250cm9sbGVyLmpzOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICguY29uc29sZS1mb3JtYXR0
ZWQtbm9kZTpob3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMu
anM6CisKIDIwMTItMTEtMjYgICdQYXZlbCBGZWxkbWFuJyAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IGZvbGxvdyB1cCBmb3IgcjEzNTcyMCwgZml4aW5n
IG5vZGUgaGlnaGxpZ2h0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmlu
ZGV4IDYzNWZhOTQxNTA1YjE4M2JlZGNjZWM4Njc4NTk0NDEyYzZlYWIyYzMuLmEyMDk0Y2JiOTA2
NzAzNWFlOTM0NDJkNDFiYWY0NjJiNDkwYTgyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24KQEAgLTE4NTgsMTAgKzE4NTgsMTEgQEAKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAibmFtZSI6ICJoaWdobGlnaHROb2RlIiwKICAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAi
JHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgbm9kZSB0
byBoaWdobGlnaHQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIs
ICIkcmVmIjogIk5vZGVJZCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZGVu
dGlmaWVyIG9mIHRoZSBub2RlIHRvIGhpZ2hsaWdodC4iIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib2JqZWN0SWQiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdElkIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkphdmFTY3JpcHQgb2JqZWN0IGlkIG9m
IHRoZSBub2RlIHRvIGJlIGhpZ2hsaWdodGVkLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJoaWdobGlnaHRDb25maWciLCAiJHJlZiI6ICJIaWdobGlnaHRDb25maWciLCAiZGVz
Y3JpcHRpb24iOiAiQSBkZXNjcmlwdG9yIGZvciB0aGUgaGlnaGxpZ2h0IGFwcGVhcmFuY2UuIiB9
CiAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSGln
aGxpZ2h0cyBET00gbm9kZSB3aXRoIGdpdmVuIGlkLiIKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiSGlnaGxpZ2h0cyBET00gbm9kZSB3aXRoIGdpdmVuIGlkIG9yIHdpdGggdGhlIGdp
dmVuIEphdmFTY3JpcHQgb2JqZWN0IHdyYXBwZXIuIEVpdGhlciBub2RlSWQgb3Igb2JqZWN0SWQg
bXVzdCBiZSBzcGVjaWZpZWQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAibmFtZSI6ICJoaWRlSGlnaGxpZ2h0IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDFiMDg5MzQ3MjFhMmZlZDM5YzMy
YmEyNDAwZTMwODA3ODY0ZDEzM2MuLjliODg5MGFjNjYwMjFhOTQyOWRiNzU5NDc3YWRiMWNhNDAz
MWZkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcApAQCAtMTA2NiwxMiArMTA2NiwxOSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdo
bGlnaHRSZWN0KEVycm9yU3RyaW5nKiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludAogICAg
IG1fb3ZlcmxheS0+aGlnaGxpZ2h0UmVjdChhZG9wdFB0cihuZXcgSW50UmVjdCh4LCB5LCB3aWR0
aCwgaGVpZ2h0KSksICpoaWdobGlnaHRDb25maWcpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpoaWdobGlnaHROb2RlKAotICAgIEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywKLSAgICBp
bnQgbm9kZUlkLAotICAgIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBoaWdobGlnaHRJ
bnNwZWN0b3JPYmplY3QpCi17Ci0gICAgTm9kZSogbm9kZSA9IG5vZGVGb3JJZChub2RlSWQpOwor
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkLCBjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaGlnaGxpZ2h0SW5zcGVjdG9yT2JqZWN0KQoreworICAg
IE5vZGUqIG5vZGUgPSAwOworICAgIGlmIChub2RlSWQpIHsKKyAgICAgICAgbm9kZSA9IGFzc2Vy
dE5vZGUoZXJyb3JTdHJpbmcsICpub2RlSWQpOworICAgIH0gZWxzZSBpZiAob2JqZWN0SWQpIHsK
KyAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZCgqb2JqZWN0SWQpOworICAgICAgICBu
b2RlID0gaW5qZWN0ZWRTY3JpcHQubm9kZUZvck9iamVjdElkKCpvYmplY3RJZCk7CisgICAgICAg
IGlmICghbm9kZSkKKyAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJOb2RlIGZvciBnaXZlbiBv
YmplY3RJZCBub3QgZm91bmQiOworICAgIH0gZWxzZQorICAgICAgICAqZXJyb3JTdHJpbmcgPSAi
RWl0aGVyIG5vZGVJZCBvciBvYmplY3RJZCBtdXN0IGJlIHNwZWNpZmllZCI7CisKICAgICBpZiAo
IW5vZGUpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaAppbmRleCAzYjcyNjUyODMxYjExY2IxYzQzZmUxYjgxZGYyNjkwZGNh
YmIzNDJkLi5mN2NjNWZiMThhZDE4ZjE4OWQ5OTUyNjkzYWE1NGUwZGI2YmFhZTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTQxLDcgKzE0
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5k
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJZCk7CiAgICAgdmly
dHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQg
aGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg
aGVpZ2h0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOwotICAgIHZpcnR1YWwgdm9pZCBoaWdo
bGlnaHROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4mIGhpZ2hsaWdodENvbmZpZyk7CisgICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodE5v
ZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RJ
ZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGhpZ2hsaWdodENvbmZpZyk7CiAgICAg
dmlydHVhbCB2b2lkIGhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBm
cmFtZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOwogICAgIHZpcnR1YWwgdm9pZCBtb3Zl
VG8oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBpbnQgdGFyZ2V0Tm9kZUlkLCBjb25zdCBpbnQq
IGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQpOwogICAgIHZpcnR1YWwgdm9pZCB1bmRvKEVy
cm9yU3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCAzOWU0ZjZiOWNlYjI5NGY1YTU5NjQ1Njk4ZDg5ZTM4
NTM5NGE1MWE0Li42NGYxY2ExN2IyMGExOWZhZjUwM2FkOGUxMjU2Yjc5OTA5MmFlMGVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdl
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3Nh
Z2UuanMKQEAgLTM1MSwxMiArMzUxLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1w
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKHByb3BlcnR5LnR5cGUgPT09ICJvYmplY3Qi
ICYmIHByb3BlcnR5LnN1YnR5cGUgPT09ICJub2RlIikgewogICAgICAgICAgICAgc3Bhbi5hZGRT
dHlsZUNsYXNzKCJjb25zb2xlLWZvcm1hdHRlZC1wcmV2aWV3LW5vZGUiKTsKLSAgICAgICAgICAg
IHZhciBtYXRjaCA9IHByb3BlcnR5LnZhbHVlLm1hdGNoKC8oW14jLl0rKSgjW14uXSspPyhcLi4q
KT8vKTsKLSAgICAgICAgICAgIHNwYW4uY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwt
dGFnLW5hbWUiKS50ZXh0Q29udGVudCA9IG1hdGNoWzFdOwotICAgICAgICAgICAgaWYgKG1hdGNo
WzJdKQotICAgICAgICAgICAgICAgIHNwYW4uY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0
bWwtYXR0cmlidXRlLXZhbHVlIikudGV4dENvbnRlbnQgPSBtYXRjaFsyXTsKLSAgICAgICAgICAg
IGlmIChtYXRjaFszXSkKLSAgICAgICAgICAgICAgICBzcGFuLmNyZWF0ZUNoaWxkKCJzcGFuIiwg
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIikudGV4dENvbnRlbnQgPSBtYXRjaFszXTsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5ET01QcmVzZW50YXRpb25VdGlscy5jcmVhdGVTcGFuc0Zv
ck5vZGVUaXRsZShzcGFuLCBwcm9wZXJ0eS52YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanMKaW5kZXggZWY0ODY5MzgzNDE4MWNmNzdmZDBhOTNlZDMwYzQwNDViMjI0MTBjNy4uYWZi
YmQ3NjU1MTFkMmIzZDNlOGYwNWY5YjI0MzUxMTQ3YzMxY2VkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC0xMTk4LDE3ICsxMTk4LDE3
IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICog
QHBhcmFtIHs/bnVtYmVyfSBub2RlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZz19IG1vZGUKKyAg
ICAgKiBAcGFyYW0ge1J1bnRpbWVBZ2VudC5SZW1vdGVPYmplY3RJZD19IG9iamVjdElkCiAgICAg
ICovCi0gICAgaGlnaGxpZ2h0RE9NTm9kZTogZnVuY3Rpb24obm9kZUlkLCBtb2RlKQorICAgIGhp
Z2hsaWdodERPTU5vZGU6IGZ1bmN0aW9uKG5vZGVJZCwgbW9kZSwgb2JqZWN0SWQpCiAgICAgewog
ICAgICAgICBpZiAodGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0KSB7CiAgICAgICAg
ICAgICBjbGVhclRpbWVvdXQodGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0KTsKICAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzLl9oaWRlRE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQ7CiAgICAg
ICAgIH0KIAotICAgICAgICB0aGlzLl9oaWdobGlnaHRlZERPTU5vZGVJZCA9IG5vZGVJZDsKLSAg
ICAgICAgaWYgKG5vZGVJZCkKLSAgICAgICAgICAgIERPTUFnZW50LmhpZ2hsaWdodE5vZGUobm9k
ZUlkLCB0aGlzLl9idWlsZEhpZ2hsaWdodENvbmZpZyhtb2RlKSk7CisgICAgICAgIGlmIChvYmpl
Y3RJZCB8fCBub2RlSWQpCisgICAgICAgICAgICBET01BZ2VudC5oaWdobGlnaHROb2RlKG9iamVj
dElkID8gdW5kZWZpbmVkIDogbm9kZUlkLCBvYmplY3RJZCwgdGhpcy5fYnVpbGRIaWdobGlnaHRD
b25maWcobW9kZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBET01BZ2VudC5oaWRlSGln
aGxpZ2h0KCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NUHJlc2VudGF0aW9uVXRpbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTVByZXNlbnRhdGlvblV0aWxzLmpzCmluZGV4IDkwNWI3OGY5ZjdhYmZi
ZmE5ZjRhOTZjMzQ2N2NhYzA1Njk2NGMzNDAuLmQ3MDU2OWRiZWY4OWQ4N2FiOGNmYjEyMGY4YWRm
MzMxODIzMDA5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NUHJlc2VudGF0aW9uVXRpbHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01QcmVzZW50YXRpb25VdGlscy5qcwpAQCAtNzYsNiArNzYsMjAgQEAgV2Vi
SW5zcGVjdG9yLkRPTVByZXNlbnRhdGlvblV0aWxzLmRlY29yYXRlTm9kZUxhYmVsID0gZnVuY3Rp
b24obm9kZSwgcGFyZW50RWxlbWUKICAgICBwYXJlbnRFbGVtZW50LnRpdGxlID0gdGl0bGU7CiB9
CiAKKy8qKgorICogQHBhcmFtIHtFbGVtZW50fSBjb250YWluZXIKKyAqIEBwYXJhbSB7c3RyaW5n
fSBub2RlVGl0bGUKKyAqLworV2ViSW5zcGVjdG9yLkRPTVByZXNlbnRhdGlvblV0aWxzLmNyZWF0
ZVNwYW5zRm9yTm9kZVRpdGxlID0gZnVuY3Rpb24oY29udGFpbmVyLCBub2RlVGl0bGUpCit7Cisg
ICAgdmFyIG1hdGNoID0gbm9kZVRpdGxlLm1hdGNoKC8oW14jLl0rKSgjW14uXSspPyhcLi4qKT8v
KTsKKyAgICBjb250YWluZXIuY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwtdGFnLW5h
bWUiKS50ZXh0Q29udGVudCA9IG1hdGNoWzFdOworICAgIGlmIChtYXRjaFsyXSkKKyAgICAgICAg
Y29udGFpbmVyLmNyZWF0ZUNoaWxkKCJzcGFuIiwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1
ZSIpLnRleHRDb250ZW50ID0gbWF0Y2hbMl07CisgICAgaWYgKG1hdGNoWzNdKQorICAgICAgICBj
b250YWluZXIuY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUi
KS50ZXh0Q29udGVudCA9IG1hdGNoWzNdOworfQorCiBXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0
aW9uVXRpbHMubGlua2lmeU5vZGVSZWZlcmVuY2UgPSBmdW5jdGlvbihub2RlKQogewogICAgIHZh
ciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1Nl
Y3Rpb24uanMKaW5kZXggYmNiZjAxMzg2NDYzZmNlYWRmZDU3N2E5MGVlOTI0YmU5ZDRhYjk1Ni4u
ZTRiZTc4MGY5N2I0ZDM5OWMwMzM5MzIzNzc5MzI3NDQ1MDY3NjQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRp
ZXNTZWN0aW9uLmpzCkBAIC0yMzQsNyArMjM0LDcgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3Bl
cnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJv
cGVydHkudmFsdWUudHlwZSA9PT0gImZ1bmN0aW9uIiAmJiB0eXBlb2YgZGVzY3JpcHRpb24gPT09
ICJzdHJpbmciKSB7CiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9
IC8uKi8uZXhlYyhkZXNjcmlwdGlvbilbMF0ucmVwbGFjZSgvICskL2csICIiKTsKICAgICAgICAg
ICAgIHRoaXMudmFsdWVFbGVtZW50Ll9vcmlnaW5hbFRleHRDb250ZW50ID0gZGVzY3JpcHRpb247
Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcGVydHkudmFsdWUu
dHlwZSAhPT0gIm9iamVjdCIgfHwgdGhpcy5wcm9wZXJ0eS52YWx1ZS5zdWJ0eXBlICE9PSAibm9k
ZSIpIAogICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBkZXNjcmlw
dGlvbjsKIAogICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eS53YXNUaHJvd24pCkBAIC0yNDUsNyAr
MjQ1LDEyIEBAIFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNv
bGUtZm9ybWF0dGVkLSIgKyB0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUpOwogCiAgICAgICAgIHRo
aXMudmFsdWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5fY29u
dGV4dE1lbnVGaXJlZC5iaW5kKHRoaXMsIHRoaXMucHJvcGVydHkudmFsdWUpLCBmYWxzZSk7Ci0g
ICAgICAgIHRoaXMudmFsdWVFbGVtZW50LnRpdGxlID0gZGVzY3JpcHRpb24gfHwgIiI7CisgICAg
ICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUgPT09ICJvYmplY3QiICYmIHRoaXMucHJv
cGVydHkudmFsdWUuc3VidHlwZSA9PT0gIm5vZGUiKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuY3JlYXRlU3BhbnNGb3JOb2RlVGl0bGUodGhpcy52YWx1
ZUVsZW1lbnQsIHRoaXMucHJvcGVydHkudmFsdWUuZGVzY3JpcHRpb24pOworICAgICAgICAgICAg
dGhpcy52YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fbW91
c2VNb3ZlLmJpbmQodGhpcywgdGhpcy5wcm9wZXJ0eS52YWx1ZSksIGZhbHNlKTsKKyAgICAgICAg
ICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5f
bW91c2VPdXQuYmluZCh0aGlzLCB0aGlzLnByb3BlcnR5LnZhbHVlKSwgZmFsc2UpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LnRpdGxlID0gZGVzY3JpcHRp
b24gfHwgIiI7CiAKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4o
KTsKIApAQCAtMjcwLDYgKzI3NSwxNiBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgIH0sCiAKKyAgICBfbW91c2VNb3ZlOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMucHJvcGVydHkudmFsdWUuaGlnaGxp
Z2h0QXNET01Ob2RlKCk7CisgICAgfSwKKworICAgIF9tb3VzZU91dDogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB0aGlzLnByb3BlcnR5LnZhbHVlLmhpZGVET01Ob2RlSGlnaGxpZ2h0
KCk7CisgICAgfSwKKwogICAgIHVwZGF0ZVNpYmxpbmdzOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICBpZiAodGhpcy5wYXJlbnQucm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggM2YwODBiMzUyMTQ0ZmU5ZGQ0ODli
YzBmN2E2NmYyOTZhYTg0ZTU2Ni4uMzVjYmYxYjZiZmFlMzZlMDYyYTUxMWU0MGQ3MDMzYWJiMjIy
OWZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1v
dGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1v
dGVPYmplY3QuanMKQEAgLTI4OCw2ICsyODgsMTYgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFjaygwKTsKICAgICB9LAogCisgICAg
aGlnaGxpZ2h0QXNET01Ob2RlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tQWdlbnQuaGlnaGxpZ2h0RE9NTm9kZSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGhpcy5f
b2JqZWN0SWQpOworICAgIH0sCisKKyAgICBoaWRlRE9NTm9kZUhpZ2hsaWdodDogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxp
Z2h0KCk7CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24odGhpczpP
YmplY3QpfSBmdW5jdGlvbkRlY2xhcmF0aW9uCiAgICAgICogQHBhcmFtIHtBcnJheS48UnVudGlt
ZUFnZW50LkNhbGxBcmd1bWVudD49fSBhcmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcwppbmRleCBiNDYwMjYxOTllNTlkMTAz
MjY3YTdkNjY0MzUwMzE0NjkzNmNmMTFkLi5iYjQwMGVkMzJjMmQ0MmFlODNiZDllYzU1ZmY2M2Vk
NGIwZTdmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Rlc3RDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGVzdENvbnRyb2xsZXIuanMKQEAgLTQ1LDcgKzQ1LDcgQEAgV2ViSW5zcGVjdG9yLlRlc3RD
b250cm9sbGVyLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLmV2YWx1YXRlRm9yVGVzdElu
RnJvbnRlbmQgPSBmdW5jdGlvbihjYWxsSWQsIHNjcmlwdCkKIHsKLSAgICBXZWJJbnNwZWN0b3Iu
aXNVbmRlclRlc3QgPSB0cnVlOworICAgIHdpbmRvdy5pc1VuZGVyVGVzdCA9IHRydWU7CiAgICAg
ZnVuY3Rpb24gaW52b2tlTWV0aG9kKCkKICAgICB7CiAgICAgICAgIHRyeSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKaW5kZXggYmU3OTJiZTZkOWFk
NjVjYzVmNmNkOTg2ZGYwY2Q2ZmM2Y2ExYTc5YS4uOGM1YTRlZjhhN2M2MzgyMDA5NmIyMzA2YjY5
ZTYzNWY5MThmMDU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9leHRlcm5zLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
ZXh0ZXJucy5qcwpAQCAtNjUsNiArNjUsOCBAQCBmdW5jdGlvbiBwb3N0TWVzc2FnZShtZXNzYWdl
KSB7fQogLyoqIEB0eXBlIHsqfSAqLwogd2luZG93LnRlc3RSdW5uZXIgPSBudWxsOwogCit3aW5k
b3cuaXNVbmRlclRlc3QgPSBmYWxzZTsKKwogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3Nz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4
IGVkOTc5YjNhZWMzMDFhZTJjYzUyYmYxODljZWI1Y2I1YzExMDRiNWIuLjA0YmYxN2VkYjlhNGFj
YjI0ZTE2ODY2YmFkNzM5OWU1MGEyZmNlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTExNDAsNiArMTE0MCwxMCBAQCBvbC53
YXRjaC1leHByZXNzaW9ucyA+IGxpLmhvdmVyZWQgewogICAgIGNvbG9yOiBibGFjazsKIH0KIAor
LmNvbnNvbGUtZm9ybWF0dGVkLW5vZGU6aG92ZXIgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YmEoNTYsIDEyMSwgMjE3LCAwLjEpOworfQorCiAuY29uc29sZS1mb3JtYXR0ZWQtb2JqZWN0IC5z
ZWN0aW9uLCAuY29uc29sZS1mb3JtYXR0ZWQtbm9kZSAuc2VjdGlvbiwgLmNvbnNvbGUtZm9ybWF0
dGVkLWFycmF5IC5zZWN0aW9uIHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwppbmRleCAwNDNlODg2
ZTkxZWVhOTllYzc2ZmM1NGE5YzE0NTA3NWUyMTNiNWE5Li5iNGJiZWM1MTAzNzM1OTNhMGMyOWY1
ZTE4OTk2ZWRlNDMxMzYwNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL3V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL3V0aWxpdGllcy5qcwpAQCAtODYxLDYgKzg2MSw3IEBAIGZ1bmN0aW9uIGltcG9ydFNj
cmlwdChzY3JpcHROYW1lKQogICAgIHdpbmRvdy5ldmFsKHhoci5yZXNwb25zZVRleHQgKyAiXG4v
L0Agc291cmNlVVJMPSIgKyBzY3JpcHROYW1lKTsKIH0KIAord2luZG93LmlzVW5kZXJUZXN0ID0g
ZmFsc2U7CiAKIC8qKgogICogTXV0YXRpb24gb2JzZXJ2ZXJzIGxlYWsgbWVtb3J5LiBLZWVwIHRy
YWNrIG9mIHRoZW0gYW5kIGRpc2Nvbm5lY3QKQEAgLTg3Miw3ICs4NzMsNyBAQCBmdW5jdGlvbiBO
b25MZWFraW5nTXV0YXRpb25PYnNlcnZlcihoYW5kbGVyKQogewogICAgIHRoaXMuX29ic2VydmVy
ID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoaGFuZGxlcik7CiAgICAgTm9uTGVha2luZ011
dGF0aW9uT2JzZXJ2ZXIuX2luc3RhbmNlcy5wdXNoKHRoaXMpOwotICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIgJiYgIVdlYkluc3BlY3Rvci5pc1VuZGVyVGVzdCAmJiAhTm9uTGVha2luZ011dGF0
aW9uT2JzZXJ2ZXIuX3VubG9hZExpc3RlbmVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5l
ciAmJiAhd2luZG93LmlzVW5kZXJUZXN0ICYmICFOb25MZWFraW5nTXV0YXRpb25PYnNlcnZlci5f
dW5sb2FkTGlzdGVuZXIpIHsKICAgICAgICAgTm9uTGVha2luZ011dGF0aW9uT2JzZXJ2ZXIuX3Vu
bG9hZExpc3RlbmVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB3aGlsZSAoTm9uTGVha2lu
Z011dGF0aW9uT2JzZXJ2ZXIuX2luc3RhbmNlcy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgTm9u
TGVha2luZ011dGF0aW9uT2JzZXJ2ZXIuX2luc3RhbmNlc1tOb25MZWFraW5nTXV0YXRpb25PYnNl
cnZlci5faW5zdGFuY2VzLmxlbmd0aCAtIDFdLmRpc2Nvbm5lY3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>