<?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>147973</bug_id>
          
          <creation_ts>2015-08-13 00:07:19 -0700</creation_ts>
          <short_desc>Web Inspector: Flash DOM node attribute on change</short_desc>
          <delta_ts>2015-08-13 19:20:29 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1117197</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 00:07:19 -0700</bug_when>
    <thetext>When an attribute of a DOM node changes, flash the value (if it doesn&apos;t exist, flash the name of the attribute) to indicate that it has changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117200</commentid>
    <comment_count>1</comment_count>
      <attachid>258882</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 00:16:59 -0700</bug_when>
    <thetext>Created attachment 258882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117210</commentid>
    <comment_count>2</comment_count>
      <attachid>258882</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-08-13 03:58:14 -0700</bug_when>
    <thetext>Comment on attachment 258882
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:120
&gt; +                    nodeItem.nodeGenerallyChanged = nodeGenerallyChanged;

Why not just pass this as an argument to updateTitle? updateTitle can pass it around internally. It seems odd to hang this temp data off the node tree element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117221</commentid>
    <comment_count>3</comment_count>
      <attachid>258882</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-13 08:13:05 -0700</bug_when>
    <thetext>Comment on attachment 258882
Patch

&apos;Generally&apos; is a filler word here, and should be removed or replaced. Can you rename nodeGenerallyChanged to nodeStateChanged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117304</commentid>
    <comment_count>4</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 11:55:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 258882 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258882&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:120
&gt; &gt; +                    nodeItem.nodeGenerallyChanged = nodeGenerallyChanged;
&gt; 
&gt; Why not just pass this as an argument to updateTitle? updateTitle can pass
&gt; it around internally. It seems odd to hang this temp data off the node tree
&gt; element.

I wanted to use a temp item to allow for innerHTML change flashing to work too.  I tried this before and passing it through the title didn&apos;t work and added parameters to a lot of functions.  I feel that doing it this way doesn&apos;t add more clutter in the parameter passing down the chain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117389</commentid>
    <comment_count>5</comment_count>
      <attachid>258935</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 14:23:26 -0700</bug_when>
    <thetext>Created attachment 258935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117391</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-13 14:23:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/22275991&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117413</commentid>
    <comment_count>7</comment_count>
      <attachid>258935</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-13 14:51:00 -0700</bug_when>
    <thetext>Comment on attachment 258935
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:199
&gt; +    set nodeStateChanged(change)
&gt; +    {
&gt; +        this._nodeStateChanged = change;
&gt; +    }

Could there be multiple attribute changes to a node in one batch of updates? If so, does this only cover one of the updates and not all of them?

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:1098
&gt; +                let attrValueElement = document.createElement(&quot;a&quot;);

This scares me. We are shadowing attrValueElement with `let`. Why not just use a new local `linkElement`?

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:1471
&gt; +        if (element.classList.contains(&quot;node-state-changed&quot;))
&gt; +            element.classList.remove(&quot;node-state-changed&quot;);

Seems we could just call remove, if it is not there nothing happens.

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:122
&gt; +                nodeItem.updateTitle();
&gt;              }

Previously there would have been a `continue` here. Now there isn&apos;t. Is that okay?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117452</commentid>
    <comment_count>8</comment_count>
      <attachid>258935</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 16:26:32 -0700</bug_when>
    <thetext>Comment on attachment 258935
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:1098
&gt;&gt; +                let attrValueElement = document.createElement(&quot;a&quot;);
&gt; 
&gt; This scares me. We are shadowing attrValueElement with `let`. Why not just use a new local `linkElement`?

That was an accident.  It was only supposed to be attrValueElement and not have a let in front of it.  I used the same variable because then if the link changes for an attribute, it will still flash.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:122
&gt;&gt;              }
&gt; 
&gt; Previously there would have been a `continue` here. Now there isn&apos;t. Is that okay?

I restructured this so that the continue is in the check above:  if (!nodeItem)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117468</commentid>
    <comment_count>9</comment_count>
      <attachid>258956</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 16:50:28 -0700</bug_when>
    <thetext>Created attachment 258956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117496</commentid>
    <comment_count>10</comment_count>
      <attachid>258956</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-08-13 18:13:08 -0700</bug_when>
    <thetext>Comment on attachment 258956
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:1466
&gt; +            this.classList.remove(&quot;node-state-changed&quot;);

Does this handle rapid updates well? We have had issues with removing class name mid animation causing it to stop abruptly. Ideally the animation here would restart and darken back up and start to animate back to transparent.

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeUpdater.js:114
&gt; +                let nodeItem = this._treeOutline.findTreeElement(node);

nodeTreeElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117502</commentid>
    <comment_count>11</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 18:24:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:1466
&gt; &gt; +            this.classList.remove(&quot;node-state-changed&quot;);
&gt; 
&gt; Does this handle rapid updates well? We have had issues with removing class
&gt; name mid animation causing it to stop abruptly. Ideally the animation here
&gt; would restart and darken back up and start to animate back to transparent.

Yes, this handles reselecting and restarts the animation in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117504</commentid>
    <comment_count>12</comment_count>
      <attachid>258966</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-13 18:26:22 -0700</bug_when>
    <thetext>Created attachment 258966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117525</commentid>
    <comment_count>13</comment_count>
      <attachid>258966</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-13 19:20:25 -0700</bug_when>
    <thetext>Comment on attachment 258966
Patch

Clearing flags on attachment: 258966

Committed r188429: &lt;http://trac.webkit.org/changeset/188429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117526</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-13 19:20:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258882</attachid>
            <date>2015-08-13 00:16:59 -0700</date>
            <delta_ts>2015-08-13 14:23:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147973-20150813001642.patch</filename>
            <type>text/plain</type>
            <size>10710</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU5MmEzNGU5MGNjY2Y5OWI4NjY3M2MzYzUwZmM0
N2E5OWQzOWYyYzIuLjU4YmE5MDk3YjU3NzJmNjEyYWVhZGM2YzkzMTYwMzQ4YzYyMDczYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTA4LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
bGFzaCBET00gbm9kZSBhdHRyaWJ1dGUgb24gY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuZXZlciBhbiBhdHRyaWJ1dGUgb24gYSBET00g
bm9kZSBjaGFuZ2VzLCBmbGFzaCB0aGUgYXR0cmlidXRlIHZhbHVlLgorICAgICAgICBJZiB0aGF0
IHZhbHVlIGRvZXNuJ3QgZXhpc3QsIGZsYXNoIHRoZSBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBub2RlR2VuZXJhbGx5Q2hhbmdlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9idWlsZEF0dHJpYnV0
ZURPTSk6CisgICAgICAgIElmIHRoZSBub2RlIGhhcyBiZWVuIG1hcmtlZCB3aXRoIGEgZ2VuZXJh
bCBjaGFuZ2UsIG1hcmsgdGhlIGF0dHJpYnV0ZSBlbGVtZW50IGZvciBhbmltYXRpb24uCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9tYXJrTm9kZUdlbmVy
YWxseUNoYW5nZWQuYW5pbWF0aW9uRW5kKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudC5wcm90b3R5cGUuX21hcmtOb2RlR2VuZXJhbGx5Q2hhbmdlZCk6CisgICAgICAgIEFk
ZHMgYSBjbGFzcyB0byB0aGUgZ2l2ZW4gZWxlbWVudCB0aGF0IGFwcGxpZXMgYSBzaW1wbGUgYmFj
a2dyb3VuZCBmbGFzaCBhbmltYXRpb24uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmNzczoKKyAgICAgICAgKEBrZXlmcmFtZXMgbm9kZS1nZW5lcmFsbHkt
Y2hhbmdlZCk6CisgICAgICAgIEFwcGxpZXMgYSBzZW1pLXRyYW5zcGFyZW50IGJhY2tncm91bmQg
dGhhdCBmYWRlcyB0byBkZWZhdWx0LgorICAgICAgICAoLm5vZGUtZ2VuZXJhbGx5LWNoYW5nZWQp
OgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlVXBkYXRlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUuX2F0dHJpYnV0ZXNV
cGRhdGVkKToKKyAgICAgICAgTm93IHBhc3NlcyBhbG9uZyB0aGUgbmFtZSBvZiB0aGUgbW9kaWZp
ZWQgYXR0cmlidXRlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVVcGRhdGVyLnByb3Rv
dHlwZS5fdXBkYXRlTW9kaWZpZWROb2Rlcyk6CisgICAgICAgIElmIHRoZSBtb2RpZmllZCBub2Rl
IG9iamVjdCBoYXMgYW4gYXR0cmlidXRlIG1lbWJlciwgbWFyayB0aGUgbm9kZSBhcyBiZWluZyBn
ZW5lcmFsbHkgY2hhbmdlZC4KKwogMjAxNS0wOC0xMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBQb29yIENsYXNzIE5h
bWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9ET01UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCmluZGV4IGU4ZWFiNmZmYmU4OWQ3YzBiMmFlOTFkOGEz
MDZkNTM1OTkzNmI5NjMuLjAyYTA2Yjk1Y2E2NDAwZmU5ZjE1NzU2N2U0ZWYyZjFlNjU3Y2YwNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RP
TVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCkBAIC00MSw2ICs0MSw3IEBAIFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LlRyZWVFbGVtCiAgICAgICAgICAgICB0aGlzLl9jYW5BZGRBdHRyaWJ1dGVzID0gdHJ1ZTsKICAg
ICAgICAgdGhpcy5fc2VhcmNoUXVlcnkgPSBudWxsOwogICAgICAgICB0aGlzLl9leHBhbmRlZENo
aWxkcmVuTGltaXQgPSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuSW5pdGlhbENoaWxkcmVu
TGltaXQ7CisgICAgICAgIHRoaXMuX25vZGVHZW5lcmFsbHlDaGFuZ2VkID0gbnVsbDsKICAgICB9
CiAKICAgICBpc0Nsb3NlVGFnKCkKQEAgLTE5Miw2ICsxOTMsMTEgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgIH0KIAorICAgIHNldCBub2RlR2Vu
ZXJhbGx5Q2hhbmdlZChjaGFuZ2UpCisgICAgeworICAgICAgICB0aGlzLl9ub2RlR2VuZXJhbGx5
Q2hhbmdlZCA9IGNoYW5nZTsKKyAgICB9CisKICAgICBzaG93Q2hpbGROb2RlKG5vZGUpCiAgICAg
ewogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZWxlbWVudENsb3NlVGFnKTsKQEAgLTEw
NzAsNDEgKzEwNzYsNDIgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9N
VHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KIAogICAgIF9idWlsZEF0
dHJpYnV0ZURPTShwYXJlbnRFbGVtZW50LCBuYW1lLCB2YWx1ZSwgbm9kZSkKICAgICB7Ci0gICAg
ICAgIHZhciBoYXNUZXh0ID0gKHZhbHVlLmxlbmd0aCA+IDApOwotICAgICAgICB2YXIgYXR0clNw
YW5FbGVtZW50ID0gcGFyZW50RWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJp
YnV0ZSIpOwotICAgICAgICB2YXIgYXR0ck5hbWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNy
ZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRlLW5hbWUiKTsKKyAgICAgICAgbGV0IGhh
c1RleHQgPSAodmFsdWUubGVuZ3RoID4gMCk7CisgICAgICAgIGxldCBhdHRyU3BhbkVsZW1lbnQg
PSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRlIik7Cisg
ICAgICAgIGxldCBhdHRyTmFtZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQo
InNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOwogICAgICAgICBhdHRyTmFtZUVsZW1lbnQu
dGV4dENvbnRlbnQgPSBuYW1lOwotCisgICAgICAgIGxldCBhdHRyVmFsdWVFbGVtZW50ID0gbnVs
bDsKICAgICAgICAgaWYgKGhhc1RleHQpCiAgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBw
ZW5kKCI9XHUyMDBCXCIiKTsKIAogICAgICAgICBpZiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9
PT0gImhyZWYiKSB7Ci0gICAgICAgICAgICB2YXIgYmFzZVVSTCA9IG5vZGUub3duZXJEb2N1bWVu
dCA/IG5vZGUub3duZXJEb2N1bWVudC5kb2N1bWVudFVSTCA6IG51bGw7Ci0gICAgICAgICAgICB2
YXIgcmV3cml0dGVuVVJMID0gYWJzb2x1dGVVUkwodmFsdWUsIGJhc2VVUkwpOwotCisgICAgICAg
ICAgICBsZXQgYmFzZVVSTCA9IG5vZGUub3duZXJEb2N1bWVudCA/IG5vZGUub3duZXJEb2N1bWVu
dC5kb2N1bWVudFVSTCA6IG51bGw7CisgICAgICAgICAgICBsZXQgcmV3cml0dGVuVVJMID0gYWJz
b2x1dGVVUkwodmFsdWUsIGJhc2VVUkwpOwogICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pbnNl
cnRXb3JkQnJlYWtDaGFyYWN0ZXJzKCk7Ci0KICAgICAgICAgICAgIGlmICghcmV3cml0dGVuVVJM
KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1l
bnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAgICAg
ICAgICAgICBhdHRyVmFsdWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJz
cGFuIiwgImh0bWwtYXR0cmlidXRlLXZhbHVlIik7CiAgICAgICAgICAgICAgICAgYXR0clZhbHVl
RWxlbWVudC50ZXh0Q29udGVudCA9IHZhbHVlOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aCgiZGF0YToiKSkKICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSB2YWx1ZS50cmltTWlkZGxlKDYwKTsKIAotICAgICAgICAgICAgICAgIHZh
ciBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKLSAgICAgICAgICAg
ICAgICBsaW5rRWxlbWVudC5ocmVmID0gcmV3cml0dGVuVVJMOwotICAgICAgICAgICAgICAgIGxp
bmtFbGVtZW50LnRleHRDb250ZW50ID0gdmFsdWU7CisgICAgICAgICAgICAgICAgbGV0IGF0dHJW
YWx1ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgICAgICAgICAgICAg
ICAgYXR0clZhbHVlRWxlbWVudC5ocmVmID0gcmV3cml0dGVuVVJMOworICAgICAgICAgICAgICAg
IGF0dHJWYWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKIAotICAgICAgICAgICAgICAg
IGF0dHJTcGFuRWxlbWVudC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7CisgICAgICAgICAgICAg
ICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZENoaWxkKGF0dHJWYWx1ZUVsZW1lbnQpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pbnNl
cnRXb3JkQnJlYWtDaGFyYWN0ZXJzKCk7Ci0gICAgICAgICAgICB2YXIgYXR0clZhbHVlRWxlbWVu
dCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJpYnV0ZS12
YWx1ZSIpOworICAgICAgICAgICAgYXR0clZhbHVlRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5j
cmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJpYnV0ZS12YWx1ZSIpOwogICAgICAgICAgICAg
YXR0clZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9IHZhbHVlOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGhhc1RleHQpCiAgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5kKCJcIiIp
OworCisgICAgICAgIGlmICh0aGlzLl9ub2RlR2VuZXJhbGx5Q2hhbmdlZCAmJiB0aGlzLl9ub2Rl
R2VuZXJhbGx5Q2hhbmdlZC50eXBlID09PSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuQ2hh
bmdlVHlwZS5BdHRyaWJ1dGUgJiYgdGhpcy5fbm9kZUdlbmVyYWxseUNoYW5nZWQuYXR0cmlidXRl
ID09PSBuYW1lKQorICAgICAgICAgICAgdGhpcy5fbWFya05vZGVHZW5lcmFsbHlDaGFuZ2VkKGhh
c1RleHQgPyBhdHRyVmFsdWVFbGVtZW50IDogYXR0ck5hbWVFbGVtZW50KTsKICAgICB9CiAKICAg
ICBfYnVpbGRUYWdET00ocGFyZW50RWxlbWVudCwgdGFnTmFtZSwgaXNDbG9zaW5nVGFnLCBpc0Rp
c3RpbmN0VHJlZUVsZW1lbnQpCkBAIC0xNDQ5LDYgKzE0NTYsMjQgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KICAgICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodFJhbmdlc1dpdGhTdHlsZUNs
YXNzKHRoaXMudGl0bGUsIG1hdGNoUmFuZ2VzLCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQu
U2VhcmNoSGlnaGxpZ2h0U3R5bGVDbGFzc05hbWUsIHRoaXMuX2hpZ2hsaWdodFJlc3VsdCk7CiAg
ICAgfQogCisgICAgX21hcmtOb2RlR2VuZXJhbGx5Q2hhbmdlZChlbGVtZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fbm9kZUdlbmVyYWxseUNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKCFl
bGVtZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uIGFuaW1hdGlv
bkVuZCgpIHsKKyAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibm9kZS1nZW5l
cmFsbHktY2hhbmdlZCIpOworICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy
KCJhbmltYXRpb25FbmQiLCBhbmltYXRpb25FbmQpOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJub2RlLWdlbmVyYWxseS1jaGFuZ2VkIikpCisg
ICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm5vZGUtZ2VuZXJhbGx5LWNoYW5n
ZWQiKTsKKworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImFuaW1hdGlvbkVuZCIs
IGFuaW1hdGlvbkVuZCk7CisgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm9kZS1nZW5l
cmFsbHktY2hhbmdlZCIpOworICAgIH0KKwogICAgIGhhbmRsZUV2ZW50KGV2ZW50KQogICAgIHsK
ICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJkcmFnc3RhcnQiICYmIHRoaXMuX2VkaXRpbmcp
CkBAIC0xNDcyLDUgKzE0OTcsOSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuRWRpdFRh
Z0JsYWNrbGlzdCA9IFsKICAgICAiaHRtbCIsICJoZWFkIiwgImJvZHkiCiBdLmtleVNldCgpOwog
CitXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuQ2hhbmdlVHlwZSA9IHsKKyAgICBBdHRyaWJ1
dGU6ICJkb20tdHJlZS1lbGVtZW50LWNoYW5nZS10eXBlLWF0dHJpYnV0ZSIKK307CisKIFdlYklu
c3BlY3Rvci5ET01UcmVlRWxlbWVudC5TZWFyY2hIaWdobGlnaHRTdHlsZUNsYXNzTmFtZSA9ICJz
ZWFyY2gtaGlnaGxpZ2h0IjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5Cb3VuY3lIaWdo
bGlnaHRTdHlsZUNsYXNzTmFtZSA9ICJib3VuY3ktaGlnaGxpZ2h0IjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRs
aW5lLmNzcwppbmRleCA2YjgyYjI1NjY5ZDcyZjJjNzVmNzRhZTEwZGVhOTFlMDU0ZTBiYjgzLi41
Njk5YTIyYjZjYmRkNmJlZjcyYmZmMDZmYTMxNmRjZjU0ODJlM2JhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91
dGxpbmUuY3NzCkBAIC0xNjUsMyArMTY1LDEyIEBACiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
YSg1MywgODMlLCA1MyUsIDAuMik7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCg0
NywgODIlLCA2MCUpOwogfQorCitAa2V5ZnJhbWVzIG5vZGUtZ2VuZXJhbGx5LWNoYW5nZWQgewor
ICAgIGZyb20geyBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDIxMiwgOTIlLCA1NCUsIDAuNSk7IH0K
K30KKworLm5vZGUtZ2VuZXJhbGx5LWNoYW5nZWQgeworICAgIGFuaW1hdGlvbjogbm9kZS1nZW5l
cmFsbHktY2hhbmdlZCAxLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjI1LCAxKTsKKyAgICBib3Jk
ZXItcmFkaXVzOiAzcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlVXBkYXRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCmluZGV4IGFkMjY4NDFiNjJi
NzkyMzUyMmIzZWQ4ZGY1NzdmOWUzZGM0MmQ1MjQuLjRlNjBmMTNkMWYxZmQ2YWE1ZTdjMDg4ZTFi
MDgwNDg2NWJjMjUyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCkBAIC01NSw3ICs1NSw3IEBA
IFdlYkluc3BlY3Rvci5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUgPSB7CiAKICAgICBfYXR0cmli
dXRlc1VwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVjZW50
bHlNb2RpZmllZE5vZGVzLnB1c2goe25vZGU6IGV2ZW50LmRhdGEubm9kZSwgdXBkYXRlZDogdHJ1
ZX0pOworICAgICAgICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXMucHVzaCh7bm9kZTogZXZl
bnQuZGF0YS5ub2RlLCB1cGRhdGVkOiB0cnVlLCBhdHRyaWJ1dGU6IGV2ZW50LmRhdGEubmFtZX0p
OwogICAgICAgICBpZiAodGhpcy5fdHJlZU91dGxpbmUuX3Zpc2libGUpCiAgICAgICAgICAgICB0
aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzU29vbigpOwogICAgIH0sCkBAIC0xMDIsMjMgKzEwMiwz
MCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0OwogICAgICAgICB9CiAK
LSAgICAgICAgdmFyIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMgPSBbXTsKKyAgICAgICAgbGV0
IHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMgPSBbXTsKIAotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgdmFyIHBhcmVudCA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5wYXJlbnQ7
Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5u
b2RlOworICAgICAgICBmb3IgKGxldCByZWNlbnRseU1vZGlmaWVkTm9kZSBvZiB0aGlzLl9yZWNl
bnRseU1vZGlmaWVkTm9kZXMpIHsKKyAgICAgICAgICAgIGxldCBwYXJlbnQgPSByZWNlbnRseU1v
ZGlmaWVkTm9kZS5wYXJlbnQ7CisgICAgICAgICAgICBsZXQgbm9kZSA9IHJlY2VudGx5TW9kaWZp
ZWROb2RlLm5vZGU7CisgICAgICAgICAgICBpZiAocmVjZW50bHlNb2RpZmllZE5vZGUudXBkYXRl
ZCkgeworICAgICAgICAgICAgICAgIGxldCBub2RlSXRlbSA9IHRoaXMuX3RyZWVPdXRsaW5lLmZp
bmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGVJdGVtKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuX3JlY2Vu
dGx5TW9kaWZpZWROb2Rlc1tpXS51cGRhdGVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5vZGVJ
dGVtID0gdGhpcy5fdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAgICAg
ICAgICAgIGlmIChub2RlSXRlbSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW0udXBkYXRl
VGl0bGUoKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBsZXQg
bm9kZUdlbmVyYWxseUNoYW5nZWQgPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChyZWNlbnRs
eU1vZGlmaWVkTm9kZS5hdHRyaWJ1dGUpCisgICAgICAgICAgICAgICAgICAgIG5vZGVHZW5lcmFs
bHlDaGFuZ2VkID0ge3R5cGU6IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5DaGFuZ2VUeXBl
LkF0dHJpYnV0ZSwgYXR0cmlidXRlOiByZWNlbnRseU1vZGlmaWVkTm9kZS5hdHRyaWJ1dGV9Owor
CisgICAgICAgICAgICAgICAgaWYgKG5vZGVHZW5lcmFsbHlDaGFuZ2VkKQorICAgICAgICAgICAg
ICAgICAgICBub2RlSXRlbS5ub2RlR2VuZXJhbGx5Q2hhbmdlZCA9IG5vZGVHZW5lcmFsbHlDaGFu
Z2VkOworCisgICAgICAgICAgICAgICAgbm9kZUl0ZW0udXBkYXRlVGl0bGUoKTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKCFwYXJlbnQpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIHZhciBwYXJlbnROb2RlSXRlbSA9IHRoaXMuX3RyZWVPdXRsaW5l
LmZpbmRUcmVlRWxlbWVudChwYXJlbnQpOworICAgICAgICAgICAgbGV0IHBhcmVudE5vZGVJdGVt
ID0gdGhpcy5fdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHBhcmVudCk7CiAgICAgICAgICAg
ICBpZiAocGFyZW50Tm9kZUl0ZW0gJiYgIXBhcmVudE5vZGVJdGVtLmFscmVhZHlVcGRhdGVkQ2hp
bGRyZW4pIHsKICAgICAgICAgICAgICAgICBwYXJlbnROb2RlSXRlbS51cGRhdGVUaXRsZSgpOwog
ICAgICAgICAgICAgICAgIHBhcmVudE5vZGVJdGVtLnVwZGF0ZUNoaWxkcmVuKCk7CkBAIC0xMjcs
NyArMTM0LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVVcGRhdGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXBk
YXRlZFBhcmVudFRyZWVFbGVtZW50cy5sZW5ndGg7ICsraSkKKyAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzLmxlbmd0aDsgKytpKQogICAgICAgICAg
ICAgZGVsZXRlIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHNbaV0uYWxyZWFkeVVwZGF0ZWRDaGls
ZHJlbjsKIAogICAgICAgICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXMgPSBbXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258935</attachid>
            <date>2015-08-13 14:23:26 -0700</date>
            <delta_ts>2015-08-13 16:50:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147973-20150813142308.patch</filename>
            <type>text/plain</type>
            <size>11216</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU5MmEzNGU5MGNjY2Y5OWI4NjY3M2MzYzUwZmM0
N2E5OWQzOWYyYzIuLmU1MjBhNzYzMWI0YmQ4YmUyMWJhMzQ3OTFkZjkzYzZhYTI0NDE3ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA4LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
bGFzaCBET00gbm9kZSBhdHRyaWJ1dGUgb24gY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuZXZlciBhbiBhdHRyaWJ1dGUgb24gYSBET00g
bm9kZSBjaGFuZ2VzLCBmbGFzaCB0aGUgYXR0cmlidXRlIHZhbHVlLgorICAgICAgICBJZiB0aGF0
IHZhbHVlIGRvZXNuJ3QgZXhpc3QsIGZsYXNoIHRoZSBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBub2RlU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX2J1aWxkQXR0cmlidXRlRE9N
KToKKyAgICAgICAgSWYgdGhlIG5vZGUgaGFzIGJlZW4gbWFya2VkIHdpdGggYSBnZW5lcmFsIGNo
YW5nZSwgbWFyayB0aGUgYXR0cmlidXRlIGVsZW1lbnQgZm9yIGFuaW1hdGlvbi4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX21hcmtOb2RlU3RhdGVDaGFu
Z2VkLmFuaW1hdGlvbkVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9tYXJrTm9kZVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIEFkZHMgYSBjbGFzcyB0
byB0aGUgZ2l2ZW4gZWxlbWVudCB0aGF0IGFwcGxpZXMgYSBzaW1wbGUgYmFja2dyb3VuZCBmbGFz
aCBhbmltYXRpb24uCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90
eXBlLl9maXJlRGlkQ2hhbmdlKToKKyAgICAgICAgQWRkIHRoZSBhbmltYXRpb24gY2xhc3Mgb25j
ZSBhbGwgYnVpbGRpbmcgb2YgdGhlIHJlcHJlc2VudGVkIERPTSBvYmplY3QgZm9yIHRoYXQgbm9k
ZSBpcyBkb25lLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGlu
ZS5jc3M6CisgICAgICAgIChAa2V5ZnJhbWVzIG5vZGUtc3RhdGUtY2hhbmdlZCk6CisgICAgICAg
IEFwcGxpZXMgYSBzZW1pLXRyYW5zcGFyZW50IGJhY2tncm91bmQgdGhhdCBmYWRlcyB0byBkZWZh
dWx0LgorICAgICAgICAoLm5vZGUtc3RhdGUtY2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TVRyZWVVcGRhdGVyLnByb3RvdHlwZS5fYXR0cmlidXRlc1VwZGF0ZWQpOgorICAgICAgICBOb3cg
cGFzc2VzIGFsb25nIHRoZSBuYW1lIG9mIHRoZSBtb2RpZmllZCBhdHRyaWJ1dGUuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBlLl91cGRhdGVNb2RpZmllZE5v
ZGVzKToKKyAgICAgICAgSWYgdGhlIG1vZGlmaWVkIG5vZGUgb2JqZWN0IGhhcyBhbiBhdHRyaWJ1
dGUgbWVtYmVyLCBtYXJrIHRoZSBub2RlIGFzIGJlaW5nIGdlbmVyYWxseSBjaGFuZ2VkLgorCiAy
MDE1LTA4LTEyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogRml4IFBvb3IgQ2xhc3MgTmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQu
anMKaW5kZXggZThlYWI2ZmZiZTg5ZDdjMGIyYWU5MWQ4YTMwNmQ1MzU5OTM2Yjk2My4uYjRhNWY1
NDhlOWJhZjEwOGI4ODM4ZDQxNGI3MDBmMTMyZDE4OTQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQu
anMKQEAgLTQxLDYgKzQxLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3Mg
RE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgICAg
IHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0cnVlOwogICAgICAgICB0aGlzLl9zZWFyY2hRdWVy
eSA9IG51bGw7CiAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudC5Jbml0aWFsQ2hpbGRyZW5MaW1pdDsKKyAgICAgICAgdGhpcy5f
bm9kZVN0YXRlQ2hhbmdlZCA9IG51bGw7CiAgICAgfQogCiAgICAgaXNDbG9zZVRhZygpCkBAIC0x
OTIsNiArMTkzLDExIEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRy
ZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIHJldHVybiBj
b3VudDsKICAgICB9CiAKKyAgICBzZXQgbm9kZVN0YXRlQ2hhbmdlZChjaGFuZ2UpCisgICAgewor
ICAgICAgICB0aGlzLl9ub2RlU3RhdGVDaGFuZ2VkID0gY2hhbmdlOworICAgIH0KKwogICAgIHNo
b3dDaGlsZE5vZGUobm9kZSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9l
bGVtZW50Q2xvc2VUYWcpOwpAQCAtMTA3MCw0MSArMTA3Niw0MiBAQCBXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5U
cmVlRWxlbQogCiAgICAgX2J1aWxkQXR0cmlidXRlRE9NKHBhcmVudEVsZW1lbnQsIG5hbWUsIHZh
bHVlLCBub2RlKQogICAgIHsKLSAgICAgICAgdmFyIGhhc1RleHQgPSAodmFsdWUubGVuZ3RoID4g
MCk7Ci0gICAgICAgIHZhciBhdHRyU3BhbkVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNo
aWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRlIik7Ci0gICAgICAgIHZhciBhdHRyTmFtZUVsZW1l
bnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUt
bmFtZSIpOworICAgICAgICBsZXQgaGFzVGV4dCA9ICh2YWx1ZS5sZW5ndGggPiAwKTsKKyAgICAg
ICAgbGV0IGF0dHJTcGFuRWxlbWVudCA9IHBhcmVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4i
LCAiaHRtbC1hdHRyaWJ1dGUiKTsKKyAgICAgICAgbGV0IGF0dHJOYW1lRWxlbWVudCA9IGF0dHJT
cGFuRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJpYnV0ZS1uYW1lIik7CiAg
ICAgICAgIGF0dHJOYW1lRWxlbWVudC50ZXh0Q29udGVudCA9IG5hbWU7Ci0KKyAgICAgICAgbGV0
IGF0dHJWYWx1ZUVsZW1lbnQgPSBudWxsOwogICAgICAgICBpZiAoaGFzVGV4dCkKICAgICAgICAg
ICAgIGF0dHJTcGFuRWxlbWVudC5hcHBlbmQoIj1cdTIwMEJcIiIpOwogCiAgICAgICAgIGlmIChu
YW1lID09PSAic3JjIiB8fCBuYW1lID09PSAiaHJlZiIpIHsKLSAgICAgICAgICAgIHZhciBiYXNl
VVJMID0gbm9kZS5vd25lckRvY3VtZW50ID8gbm9kZS5vd25lckRvY3VtZW50LmRvY3VtZW50VVJM
IDogbnVsbDsKLSAgICAgICAgICAgIHZhciByZXdyaXR0ZW5VUkwgPSBhYnNvbHV0ZVVSTCh2YWx1
ZSwgYmFzZVVSTCk7Ci0KKyAgICAgICAgICAgIGxldCBiYXNlVVJMID0gbm9kZS5vd25lckRvY3Vt
ZW50ID8gbm9kZS5vd25lckRvY3VtZW50LmRvY3VtZW50VVJMIDogbnVsbDsKKyAgICAgICAgICAg
IGxldCByZXdyaXR0ZW5VUkwgPSBhYnNvbHV0ZVVSTCh2YWx1ZSwgYmFzZVVSTCk7CiAgICAgICAg
ICAgICB2YWx1ZSA9IHZhbHVlLmluc2VydFdvcmRCcmVha0NoYXJhY3RlcnMoKTsKLQogICAgICAg
ICAgICAgaWYgKCFyZXdyaXR0ZW5VUkwpIHsKLSAgICAgICAgICAgICAgICB2YXIgYXR0clZhbHVl
RWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJp
YnV0ZS12YWx1ZSIpOworICAgICAgICAgICAgICAgIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3Bh
bkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKICAg
ICAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gdmFsdWU7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCJk
YXRhOiIpKQogICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW1NaWRkbGUoNjAp
OwogCi0gICAgICAgICAgICAgICAgdmFyIGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiYSIpOwotICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LmhyZWYgPSByZXdyaXR0ZW5V
Ukw7Ci0gICAgICAgICAgICAgICAgbGlua0VsZW1lbnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICBsZXQgYXR0clZhbHVlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImEiKTsKKyAgICAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50LmhyZWYgPSByZXdyaXR0
ZW5VUkw7CisgICAgICAgICAgICAgICAgYXR0clZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9IHZh
bHVlOwogCi0gICAgICAgICAgICAgICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZENoaWxkKGxpbmtF
bGVtZW50KTsKKyAgICAgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5kQ2hpbGQoYXR0
clZhbHVlRWxlbWVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICB2YWx1ZSA9IHZhbHVlLmluc2VydFdvcmRCcmVha0NoYXJhY3RlcnMoKTsKLSAgICAgICAg
ICAgIHZhciBhdHRyVmFsdWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJz
cGFuIiwgImh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAgICAgICBhdHRyVmFsdWVFbGVt
ZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRl
LXZhbHVlIik7CiAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0gdmFs
dWU7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaGFzVGV4dCkKICAgICAgICAgICAgIGF0dHJT
cGFuRWxlbWVudC5hcHBlbmQoIlwiIik7CisKKyAgICAgICAgaWYgKHRoaXMuX25vZGVTdGF0ZUNo
YW5nZWQgJiYgdGhpcy5fbm9kZVN0YXRlQ2hhbmdlZC50eXBlID09PSBXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQuQ2hhbmdlVHlwZS5BdHRyaWJ1dGUgJiYgdGhpcy5fbm9kZVN0YXRlQ2hhbmdl
ZC5hdHRyaWJ1dGUgPT09IG5hbWUpCisgICAgICAgICAgICB0aGlzLl9ub2RlU3RhdGVDaGFuZ2Vk
LmVsZW1lbnQgPSBoYXNUZXh0ID8gYXR0clZhbHVlRWxlbWVudCA6IGF0dHJOYW1lRWxlbWVudDsK
ICAgICB9CiAKICAgICBfYnVpbGRUYWdET00ocGFyZW50RWxlbWVudCwgdGFnTmFtZSwgaXNDbG9z
aW5nVGFnLCBpc0Rpc3RpbmN0VHJlZUVsZW1lbnQpCkBAIC0xNDQ5LDYgKzE0NTYsMzMgQEAgV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodFJhbmdl
c1dpdGhTdHlsZUNsYXNzKHRoaXMudGl0bGUsIG1hdGNoUmFuZ2VzLCBXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQuU2VhcmNoSGlnaGxpZ2h0U3R5bGVDbGFzc05hbWUsIHRoaXMuX2hpZ2hsaWdo
dFJlc3VsdCk7CiAgICAgfQogCisgICAgX21hcmtOb2RlU3RhdGVDaGFuZ2VkKCkKKyAgICB7Cisg
ICAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5fbm9kZVN0YXRlQ2hhbmdlZC5lbGVtZW50OworICAg
ICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rp
b24gYW5pbWF0aW9uRW5kKCkgeworICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3Zl
KCJub2RlLXN0YXRlLWNoYW5nZWQiKTsKKyAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRM
aXN0ZW5lcigiYW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygibm9kZS1zdGF0ZS1jaGFuZ2VkIikp
CisgICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm5vZGUtc3RhdGUtY2hhbmdl
ZCIpOworCisgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uRW5kIiwg
YW5pbWF0aW9uRW5kKTsKKyAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJub2RlLXN0YXRl
LWNoYW5nZWQiKTsKKyAgICAgICAgdGhpcy5fbm9kZVN0YXRlQ2hhbmdlZCA9IG51bGw7CisgICAg
fQorCisgICAgX2ZpcmVEaWRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIuX2ZpcmVEaWRD
aGFuZ2UoKTsKKworICAgICAgICBpZiAodGhpcy5fbm9kZVN0YXRlQ2hhbmdlZCkKKyAgICAgICAg
ICAgIHRoaXMuX21hcmtOb2RlU3RhdGVDaGFuZ2VkKCk7CisgICAgfQorCiAgICAgaGFuZGxlRXZl
bnQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImRyYWdzdGFydCIg
JiYgdGhpcy5fZWRpdGluZykKQEAgLTE0NzIsNSArMTUwNiw5IEBAIFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudC5FZGl0VGFnQmxhY2tsaXN0ID0gWwogICAgICJodG1sIiwgImhlYWQiLCAiYm9k
eSIKIF0ua2V5U2V0KCk7CiAKK1dlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5DaGFuZ2VUeXBl
ID0geworICAgIEF0dHJpYnV0ZTogImRvbS10cmVlLWVsZW1lbnQtY2hhbmdlLXR5cGUtYXR0cmli
dXRlIgorfTsKKwogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LlNlYXJjaEhpZ2hsaWdodFN0
eWxlQ2xhc3NOYW1lID0gInNlYXJjaC1oaWdobGlnaHQiOwogV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50LkJvdW5jeUhpZ2hsaWdodFN0eWxlQ2xhc3NOYW1lID0gImJvdW5jeS1oaWdobGlnaHQi
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZU91dGxpbmUuY3NzCmluZGV4IDZiODJiMjU2NjlkNzJmMmM3NWY3NGFlMTBk
ZWE5MWUwNTRlMGJiODMuLjAzMzkyNmEyMDUyM2E4OGU3ZTUyYWVhNDc1YTk2ZDIxYTMwYWZlMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RP
TVRyZWVPdXRsaW5lLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKQEAgLTE2NSwzICsxNjUsMTIgQEAKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2xhKDUzLCA4MyUsIDUzJSwgMC4yKTsKICAgICBib3JkZXItYm90dG9t
OiAxcHggc29saWQgaHNsKDQ3LCA4MiUsIDYwJSk7CiB9CisKK0BrZXlmcmFtZXMgbm9kZS1zdGF0
ZS1jaGFuZ2VkIHsKKyAgICBmcm9tIHsgYmFja2dyb3VuZC1jb2xvcjogaHNsYSgyMTIsIDkyJSwg
NTQlLCAwLjUpOyB9Cit9CisKKy5ub2RlLXN0YXRlLWNoYW5nZWQgeworICAgIGFuaW1hdGlvbjog
bm9kZS1zdGF0ZS1jaGFuZ2VkIDEuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMjUsIDEpOworICAg
IGJvcmRlci1yYWRpdXM6IDNweDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZVVwZGF0ZXIuanMKaW5kZXggYWQyNjg0
MWI2MmI3OTIzNTIyYjNlZDhkZjU3N2Y5ZTNkYzQyZDUyNC4uZGVlNGRhNWQ4YWViNDQwMmQxMmQ4
NzcwNzUyYWExZjY5YmQzNWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZVVwZGF0ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZVVwZGF0ZXIuanMKQEAgLTU1LDcgKzU1
LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVVcGRhdGVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9h
dHRyaWJ1dGVzVXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9y
ZWNlbnRseU1vZGlmaWVkTm9kZXMucHVzaCh7bm9kZTogZXZlbnQuZGF0YS5ub2RlLCB1cGRhdGVk
OiB0cnVlfSk7CisgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5wdXNoKHtub2Rl
OiBldmVudC5kYXRhLm5vZGUsIHVwZGF0ZWQ6IHRydWUsIGF0dHJpYnV0ZTogZXZlbnQuZGF0YS5u
YW1lfSk7CiAgICAgICAgIGlmICh0aGlzLl90cmVlT3V0bGluZS5fdmlzaWJsZSkKICAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNTb29uKCk7CiAgICAgfSwKQEAgLTk5LDI2ICs5
OSwzMiBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBlID0gewogICAgIHsK
ICAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0KSB7CiAgICAgICAg
ICAgICBjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQpOwotICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0OworICAgICAg
ICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1RpbWVvdXQgPSBudWxsOwogICAgICAgICB9
CiAKLSAgICAgICAgdmFyIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMgPSBbXTsKKyAgICAgICAg
bGV0IHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgcmVj
ZW50bHlNb2RpZmllZE5vZGUgb2YgdGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVzKSB7CisgICAg
ICAgICAgICBsZXQgcGFyZW50ID0gcmVjZW50bHlNb2RpZmllZE5vZGUucGFyZW50OworICAgICAg
ICAgICAgbGV0IG5vZGUgPSByZWNlbnRseU1vZGlmaWVkTm9kZS5ub2RlOworICAgICAgICAgICAg
bGV0IG5vZGVTdGF0ZUNoYW5nZWQgPSBudWxsOworICAgICAgICAgICAgaWYgKHJlY2VudGx5TW9k
aWZpZWROb2RlLmF0dHJpYnV0ZSkKKyAgICAgICAgICAgICAgICBub2RlU3RhdGVDaGFuZ2VkID0g
e3R5cGU6IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5DaGFuZ2VUeXBlLkF0dHJpYnV0ZSwg
YXR0cmlidXRlOiByZWNlbnRseU1vZGlmaWVkTm9kZS5hdHRyaWJ1dGV9OwogCi0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVz
W2ldLnBhcmVudDsKLSAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5fcmVjZW50bHlNb2RpZmll
ZE5vZGVzW2ldLm5vZGU7CisgICAgICAgICAgICBpZiAocmVjZW50bHlNb2RpZmllZE5vZGUudXBk
YXRlZCkgeworICAgICAgICAgICAgICAgIGxldCBub2RlSXRlbSA9IHRoaXMuX3RyZWVPdXRsaW5l
LmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGVJdGVtKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgaWYgKHRoaXMuX3Jl
Y2VudGx5TW9kaWZpZWROb2Rlc1tpXS51cGRhdGVkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG5v
ZGVJdGVtID0gdGhpcy5fdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAg
ICAgICAgICAgIGlmIChub2RlSXRlbSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW0udXBk
YXRlVGl0bGUoKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBp
ZiAobm9kZVN0YXRlQ2hhbmdlZCkKKyAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW0ubm9kZVN0
YXRlQ2hhbmdlZCA9IG5vZGVTdGF0ZUNoYW5nZWQ7CisKKyAgICAgICAgICAgICAgICBub2RlSXRl
bS51cGRhdGVUaXRsZSgpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIXBhcmVu
dCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgdmFyIHBhcmVudE5v
ZGVJdGVtID0gdGhpcy5fdHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHBhcmVudCk7CisgICAg
ICAgICAgICBsZXQgcGFyZW50Tm9kZUl0ZW0gPSB0aGlzLl90cmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQocGFyZW50KTsKICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlSXRlbSAmJiAhcGFyZW50
Tm9kZUl0ZW0uYWxyZWFkeVVwZGF0ZWRDaGlsZHJlbikgewogICAgICAgICAgICAgICAgIHBhcmVu
dE5vZGVJdGVtLnVwZGF0ZVRpdGxlKCk7CiAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZUl0ZW0u
dXBkYXRlQ2hpbGRyZW4oKTsKQEAgLTEyNyw4ICsxMzMsOCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJl
ZVVwZGF0ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgZGVsZXRlIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHNbaV0uYWxy
ZWFkeVVwZGF0ZWRDaGlsZHJlbjsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVk
UGFyZW50VHJlZUVsZW1lbnRzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdXBkYXRlZFBhcmVu
dFRyZWVFbGVtZW50c1tpXS5hbHJlYWR5VXBkYXRlZENoaWxkcmVuID0gbnVsbDsKIAogICAgICAg
ICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXMgPSBbXTsKICAgICB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258956</attachid>
            <date>2015-08-13 16:50:28 -0700</date>
            <delta_ts>2015-08-13 18:26:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147973-20150813165009.patch</filename>
            <type>text/plain</type>
            <size>11198</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU5MmEzNGU5MGNjY2Y5OWI4NjY3M2MzYzUwZmM0
N2E5OWQzOWYyYzIuLmI3ZDk5ZmJmZDc1OGMzMGYyYjM3NGE3ZTNjYjg1MmUwMzAyZWZjZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA4LTEzICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
bGFzaCBET00gbm9kZSBhdHRyaWJ1dGUgb24gY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuZXZlciBhbiBhdHRyaWJ1dGUgb24gYSBET00g
bm9kZSBjaGFuZ2VzLCBmbGFzaCB0aGUgYXR0cmlidXRlIHZhbHVlLgorICAgICAgICBJZiB0aGF0
IHZhbHVlIGRvZXNuJ3QgZXhpc3QsIGZsYXNoIHRoZSBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLm5vZGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX2J1aWxkQXR0cmlidXRlRE9NKToKKyAgICAg
ICAgSWYgdGhlIG5vZGUgaGFzIGJlZW4gbWFya2VkIHdpdGggYSBnZW5lcmFsIGNoYW5nZSwgbWFy
ayB0aGUgYXR0cmlidXRlIGVsZW1lbnQgZm9yIGFuaW1hdGlvbi4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX21hcmtOb2RlQ2hhbmdlZC5hbmltYXRpb25F
bmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fbWFy
a05vZGVDaGFuZ2VkKToKKyAgICAgICAgQWRkcyBhIGNsYXNzIHRvIHRoZSBnaXZlbiBlbGVtZW50
IHRoYXQgYXBwbGllcyBhIHNpbXBsZSBiYWNrZ3JvdW5kIGZsYXNoIGFuaW1hdGlvbi4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX2ZpcmVEaWRDaGFuZ2Up
OgorICAgICAgICBBZGQgdGhlIGFuaW1hdGlvbiBjbGFzcyBvbmNlIGFsbCBidWlsZGluZyBvZiB0
aGUgcmVwcmVzZW50ZWQgRE9NIG9iamVjdCBmb3IgdGhhdCBub2RlIGlzIGRvbmUuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzczoKKyAgICAgICAgKEBr
ZXlmcmFtZXMgbm9kZS1zdGF0ZS1jaGFuZ2VkKToKKyAgICAgICAgQXBwbGllcyBhIHNlbWktdHJh
bnNwYXJlbnQgYmFja2dyb3VuZCB0aGF0IGZhZGVzIHRvIGRlZmF1bHQuCisgICAgICAgICgubm9k
ZS1zdGF0ZS1jaGFuZ2VkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZVVwZGF0ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0ZXIucHJvdG90
eXBlLl9hdHRyaWJ1dGVzVXBkYXRlZCk6CisgICAgICAgIE5vdyBwYXNzZXMgYWxvbmcgdGhlIG5h
bWUgb2YgdGhlIG1vZGlmaWVkIGF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01U
cmVlVXBkYXRlci5wcm90b3R5cGUuX3VwZGF0ZU1vZGlmaWVkTm9kZXMpOgorICAgICAgICBJZiB0
aGUgbW9kaWZpZWQgbm9kZSBvYmplY3QgaGFzIGFuIGF0dHJpYnV0ZSBtZW1iZXIsIG1hcmsgdGhl
IG5vZGUgYXMgYmVpbmcgZ2VuZXJhbGx5IGNoYW5nZWQuCisKIDIwMTUtMDgtMTIgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aXggUG9vciBDbGFzcyBOYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwppbmRleCBlOGVhYjZmZmJl
ODlkN2MwYjJhZTkxZDhhMzA2ZDUzNTk5MzZiOTYzLi4wNzE0OTY1YTkwZjhlN2NkMTM4N2RmZDM4
Yzk4NGE0MzNkZGQyMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwpAQCAtNDEsNiArNDEsNyBA
QCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRl
bmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICAgICAgdGhpcy5fY2FuQWRkQXR0cmli
dXRlcyA9IHRydWU7CiAgICAgICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gbnVsbDsKICAgICAgICAg
dGhpcy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID0gV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50
LkluaXRpYWxDaGlsZHJlbkxpbWl0OworICAgICAgICB0aGlzLl9ub2RlU3RhdGVDaGFuZ2VzID0g
W107CiAgICAgfQogCiAgICAgaXNDbG9zZVRhZygpCkBAIC0xOTIsNiArMTkzLDE0IEBAIFdlYklu
c3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIHJldHVybiBjb3VudDsKICAgICB9CiAKKyAgICBu
b2RlU3RhdGVDaGFuZ2VkKGNoYW5nZSkKKyAgICB7CisgICAgICAgIGlmICghY2hhbmdlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX25vZGVTdGF0ZUNoYW5nZXMucHVzaChj
aGFuZ2UpOworICAgIH0KKwogICAgIHNob3dDaGlsZE5vZGUobm9kZSkKICAgICB7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbGVtZW50Q2xvc2VUYWcpOwpAQCAtMTA3MCw0MSArMTA3
OSw0MyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVu
dCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAgICAgX2J1aWxkQXR0cmlidXRlRE9N
KHBhcmVudEVsZW1lbnQsIG5hbWUsIHZhbHVlLCBub2RlKQogICAgIHsKLSAgICAgICAgdmFyIGhh
c1RleHQgPSAodmFsdWUubGVuZ3RoID4gMCk7Ci0gICAgICAgIHZhciBhdHRyU3BhbkVsZW1lbnQg
PSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRlIik7Ci0g
ICAgICAgIHZhciBhdHRyTmFtZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQo
InNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOworICAgICAgICBsZXQgaGFzVGV4dCA9ICh2
YWx1ZS5sZW5ndGggPiAwKTsKKyAgICAgICAgbGV0IGF0dHJTcGFuRWxlbWVudCA9IHBhcmVudEVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUiKTsKKyAgICAgICAgbGV0
IGF0dHJOYW1lRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJo
dG1sLWF0dHJpYnV0ZS1uYW1lIik7CiAgICAgICAgIGF0dHJOYW1lRWxlbWVudC50ZXh0Q29udGVu
dCA9IG5hbWU7Ci0KKyAgICAgICAgbGV0IGF0dHJWYWx1ZUVsZW1lbnQgPSBudWxsOwogICAgICAg
ICBpZiAoaGFzVGV4dCkKICAgICAgICAgICAgIGF0dHJTcGFuRWxlbWVudC5hcHBlbmQoIj1cdTIw
MEJcIiIpOwogCiAgICAgICAgIGlmIChuYW1lID09PSAic3JjIiB8fCBuYW1lID09PSAiaHJlZiIp
IHsKLSAgICAgICAgICAgIHZhciBiYXNlVVJMID0gbm9kZS5vd25lckRvY3VtZW50ID8gbm9kZS5v
d25lckRvY3VtZW50LmRvY3VtZW50VVJMIDogbnVsbDsKLSAgICAgICAgICAgIHZhciByZXdyaXR0
ZW5VUkwgPSBhYnNvbHV0ZVVSTCh2YWx1ZSwgYmFzZVVSTCk7Ci0KKyAgICAgICAgICAgIGxldCBi
YXNlVVJMID0gbm9kZS5vd25lckRvY3VtZW50ID8gbm9kZS5vd25lckRvY3VtZW50LmRvY3VtZW50
VVJMIDogbnVsbDsKKyAgICAgICAgICAgIGxldCByZXdyaXR0ZW5VUkwgPSBhYnNvbHV0ZVVSTCh2
YWx1ZSwgYmFzZVVSTCk7CiAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmluc2VydFdvcmRCcmVh
a0NoYXJhY3RlcnMoKTsKLQogICAgICAgICAgICAgaWYgKCFyZXdyaXR0ZW5VUkwpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgYXR0clZhbHVlRWxlbWVudCA9IGF0dHJTcGFuRWxlbWVudC5jcmVhdGVD
aGlsZCgic3BhbiIsICJodG1sLWF0dHJpYnV0ZS12YWx1ZSIpOworICAgICAgICAgICAgICAgIGF0
dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRt
bC1hdHRyaWJ1dGUtdmFsdWUiKTsKICAgICAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50LnRl
eHRDb250ZW50ID0gdmFsdWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IGlmICh2YWx1ZS5zdGFydHNXaXRoKCJkYXRhOiIpKQogICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IHZhbHVlLnRyaW1NaWRkbGUoNjApOwogCi0gICAgICAgICAgICAgICAgdmFyIGxpbmtFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwotICAgICAgICAgICAgICAgIGxpbmtF
bGVtZW50LmhyZWYgPSByZXdyaXR0ZW5VUkw7Ci0gICAgICAgICAgICAgICAgbGlua0VsZW1lbnQu
dGV4dENvbnRlbnQgPSB2YWx1ZTsKLQotICAgICAgICAgICAgICAgIGF0dHJTcGFuRWxlbWVudC5h
cHBlbmRDaGlsZChsaW5rRWxlbWVudCk7CisgICAgICAgICAgICAgICAgYXR0clZhbHVlRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKKyAgICAgICAgICAgICAgICBhdHRyVmFs
dWVFbGVtZW50LmhyZWYgPSByZXdyaXR0ZW5VUkw7CisgICAgICAgICAgICAgICAgYXR0clZhbHVl
RWxlbWVudC50ZXh0Q29udGVudCA9IHZhbHVlOworICAgICAgICAgICAgICAgIGF0dHJTcGFuRWxl
bWVudC5hcHBlbmRDaGlsZChhdHRyVmFsdWVFbGVtZW50KTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuaW5zZXJ0V29yZEJyZWFrQ2hh
cmFjdGVycygpOwotICAgICAgICAgICAgdmFyIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAg
ICAgICAgIGF0dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNw
YW4iLCAiaHRtbC1hdHRyaWJ1dGUtdmFsdWUiKTsKICAgICAgICAgICAgIGF0dHJWYWx1ZUVsZW1l
bnQudGV4dENvbnRlbnQgPSB2YWx1ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChoYXNUZXh0
KQogICAgICAgICAgICAgYXR0clNwYW5FbGVtZW50LmFwcGVuZCgiXCIiKTsKKworICAgICAgICBm
b3IgKGxldCBjaGFuZ2Ugb2YgdGhpcy5fbm9kZVN0YXRlQ2hhbmdlcykgeworICAgICAgICAgICAg
aWYgKGNoYW5nZS50eXBlID09PSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuQ2hhbmdlVHlw
ZS5BdHRyaWJ1dGUgJiYgY2hhbmdlLmF0dHJpYnV0ZSA9PT0gbmFtZSkKKyAgICAgICAgICAgICAg
ICBjaGFuZ2UuZWxlbWVudCA9IGhhc1RleHQgPyBhdHRyVmFsdWVFbGVtZW50IDogYXR0ck5hbWVF
bGVtZW50OworICAgICAgICB9CiAgICAgfQogCiAgICAgX2J1aWxkVGFnRE9NKHBhcmVudEVsZW1l
bnQsIHRhZ05hbWUsIGlzQ2xvc2luZ1RhZywgaXNEaXN0aW5jdFRyZWVFbGVtZW50KQpAQCAtMTQ0
OSw2ICsxNDYwLDM0IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRy
ZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5oaWdobGlnaHRSYW5nZXNXaXRoU3R5bGVDbGFzcyh0aGlzLnRpdGxlLCBtYXRjaFJhbmdl
cywgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LlNlYXJjaEhpZ2hsaWdodFN0eWxlQ2xhc3NO
YW1lLCB0aGlzLl9oaWdobGlnaHRSZXN1bHQpOwogICAgIH0KIAorICAgIF9tYXJrTm9kZUNoYW5n
ZWQoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kKCkgeworICAgICAgICAg
ICAgdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJub2RlLXN0YXRlLWNoYW5nZWQiKTsKKyAgICAgICAg
ICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5k
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IGNoYW5nZSBvZiB0aGlzLl9ub2RlU3Rh
dGVDaGFuZ2VzKSB7CisgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGNoYW5nZS5lbGVtZW50Owor
ICAgICAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm5vZGUtc3RhdGUtY2hhbmdlZCIp
OworICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJhbmltYXRpb25FbmQiLCBh
bmltYXRpb25FbmQpOworICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJub2RlLXN0
YXRlLWNoYW5nZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX25vZGVTdGF0ZUNoYW5n
ZXMgPSBbXTsKKyAgICB9CisKKyAgICBfZmlyZURpZENoYW5nZSgpCisgICAgeworICAgICAgICBz
dXBlci5fZmlyZURpZENoYW5nZSgpOworCisgICAgICAgIGlmICh0aGlzLl9ub2RlU3RhdGVDaGFu
Z2VzKQorICAgICAgICAgICAgdGhpcy5fbWFya05vZGVDaGFuZ2VkKCk7CisgICAgfQorCiAgICAg
aGFuZGxlRXZlbnQoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImRy
YWdzdGFydCIgJiYgdGhpcy5fZWRpdGluZykKQEAgLTE0NzIsNSArMTUxMSw5IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudC5FZGl0VGFnQmxhY2tsaXN0ID0gWwogICAgICJodG1sIiwgImhl
YWQiLCAiYm9keSIKIF0ua2V5U2V0KCk7CiAKK1dlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5D
aGFuZ2VUeXBlID0geworICAgIEF0dHJpYnV0ZTogImRvbS10cmVlLWVsZW1lbnQtY2hhbmdlLXR5
cGUtYXR0cmlidXRlIgorfTsKKwogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LlNlYXJjaEhp
Z2hsaWdodFN0eWxlQ2xhc3NOYW1lID0gInNlYXJjaC1oaWdobGlnaHQiOwogV2ViSW5zcGVjdG9y
LkRPTVRyZWVFbGVtZW50LkJvdW5jeUhpZ2hsaWdodFN0eWxlQ2xhc3NOYW1lID0gImJvdW5jeS1o
aWdobGlnaHQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzCmluZGV4IDZiODJiMjU2NjlkNzJmMmM3
NWY3NGFlMTBkZWE5MWUwNTRlMGJiODMuLjM3MjRjOTgyYzllYWVkNDZkZTdlNjRmOWIyNzNhZDYy
ZjUzOTlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKQEAgLTE2NSwzICsxNjUsMTIgQEAK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDUzLCA4MyUsIDUzJSwgMC4yKTsKICAgICBib3Jk
ZXItYm90dG9tOiAxcHggc29saWQgaHNsKDQ3LCA4MiUsIDYwJSk7CiB9CisKK0BrZXlmcmFtZXMg
bm9kZS1zdGF0ZS1jaGFuZ2VkIHsKKyAgICBmcm9tIHsgYmFja2dyb3VuZC1jb2xvcjogaHNsYSgy
MTIsIDkyJSwgNTQlLCAwLjUpOyB9Cit9CisKKy5ub2RlLXN0YXRlLWNoYW5nZWQgeworICAgIGFu
aW1hdGlvbjogbm9kZS1zdGF0ZS1jaGFuZ2VkIDFzIGN1YmljLWJlemllcigwLCAwLCAwLjI1LCAx
KTsKKyAgICBib3JkZXItcmFkaXVzOiAzcHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlVXBkYXRlci5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCmluZGV4
IGFkMjY4NDFiNjJiNzkyMzUyMmIzZWQ4ZGY1NzdmOWUzZGM0MmQ1MjQuLmRkYjkxZjdhY2NjNjQx
NDI0NDM1NzAzNTE0MDAzOTI3MDZkYmMwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVyLmpzCkBAIC01
NSw3ICs1NSw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUgPSB7CiAK
ICAgICBfYXR0cmlidXRlc1VwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAg
dGhpcy5fcmVjZW50bHlNb2RpZmllZE5vZGVzLnB1c2goe25vZGU6IGV2ZW50LmRhdGEubm9kZSwg
dXBkYXRlZDogdHJ1ZX0pOworICAgICAgICB0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXMucHVz
aCh7bm9kZTogZXZlbnQuZGF0YS5ub2RlLCB1cGRhdGVkOiB0cnVlLCBhdHRyaWJ1dGU6IGV2ZW50
LmRhdGEubmFtZX0pOwogICAgICAgICBpZiAodGhpcy5fdHJlZU91dGxpbmUuX3Zpc2libGUpCiAg
ICAgICAgICAgICB0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzU29vbigpOwogICAgIH0sCkBAIC05
OSwyNiArOTksMzIgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVVcGRhdGVyLnByb3RvdHlwZSA9IHsK
ICAgICB7CiAgICAgICAgIGlmICh0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzVGltZW91dCkgewog
ICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0
KTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVNb2RpZmllZE5vZGVzVGltZW91dDsK
KyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9kZXNUaW1lb3V0ID0gbnVsbDsKICAg
ICAgICAgfQogCi0gICAgICAgIHZhciB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzID0gW107Cisg
ICAgICAgIGxldCB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzID0gW107CisgICAgICAgIGZvciAo
bGV0IHJlY2VudGx5TW9kaWZpZWROb2RlIG9mIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcykg
eworICAgICAgICAgICAgbGV0IHBhcmVudCA9IHJlY2VudGx5TW9kaWZpZWROb2RlLnBhcmVudDsK
KyAgICAgICAgICAgIGxldCBub2RlID0gcmVjZW50bHlNb2RpZmllZE5vZGUubm9kZTsKKyAgICAg
ICAgICAgIGxldCBjaGFuZ2VJbmZvID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChyZWNlbnRseU1v
ZGlmaWVkTm9kZS5hdHRyaWJ1dGUpCisgICAgICAgICAgICAgICAgY2hhbmdlSW5mbyA9IHt0eXBl
OiBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuQ2hhbmdlVHlwZS5BdHRyaWJ1dGUsIGF0dHJp
YnV0ZTogcmVjZW50bHlNb2RpZmllZE5vZGUuYXR0cmlidXRlfTsKIAotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5w
YXJlbnQ7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rl
c1tpXS5ub2RlOworICAgICAgICAgICAgaWYgKHJlY2VudGx5TW9kaWZpZWROb2RlLnVwZGF0ZWQp
IHsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZUl0ZW0gPSB0aGlzLl90cmVlT3V0bGluZS5maW5k
VHJlZUVsZW1lbnQobm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKCFub2RlSXRlbSkKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGlmICh0aGlzLl9yZWNlbnRs
eU1vZGlmaWVkTm9kZXNbaV0udXBkYXRlZCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlSXRl
bSA9IHRoaXMuX3RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKLSAgICAgICAgICAg
ICAgICBpZiAobm9kZUl0ZW0pCi0gICAgICAgICAgICAgICAgICAgIG5vZGVJdGVtLnVwZGF0ZVRp
dGxlKCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGNo
YW5nZUluZm8pCisgICAgICAgICAgICAgICAgICAgIG5vZGVJdGVtLm5vZGVTdGF0ZUNoYW5nZWQo
Y2hhbmdlSW5mbyk7CisKKyAgICAgICAgICAgICAgICBub2RlSXRlbS51cGRhdGVUaXRsZSgpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIXBhcmVudCkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICAgICAgdmFyIHBhcmVudE5vZGVJdGVtID0gdGhpcy5fdHJl
ZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHBhcmVudCk7CisgICAgICAgICAgICBsZXQgcGFyZW50
Tm9kZUl0ZW0gPSB0aGlzLl90cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQocGFyZW50KTsKICAg
ICAgICAgICAgIGlmIChwYXJlbnROb2RlSXRlbSAmJiAhcGFyZW50Tm9kZUl0ZW0uYWxyZWFkeVVw
ZGF0ZWRDaGlsZHJlbikgewogICAgICAgICAgICAgICAgIHBhcmVudE5vZGVJdGVtLnVwZGF0ZVRp
dGxlKCk7CiAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZUl0ZW0udXBkYXRlQ2hpbGRyZW4oKTsK
QEAgLTEyNyw4ICsxMzMsOCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0ZXIucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAg
ZGVsZXRlIHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHNbaV0uYWxyZWFkeVVwZGF0ZWRDaGlsZHJl
bjsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRz
Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdXBkYXRlZFBhcmVudFRyZWVFbGVtZW50c1tpXS5h
bHJlYWR5VXBkYXRlZENoaWxkcmVuID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9yZWNlbnRseU1v
ZGlmaWVkTm9kZXMgPSBbXTsKICAgICB9LAo=
</data>
<flag name="review"
          id="284148"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258966</attachid>
            <date>2015-08-13 18:26:22 -0700</date>
            <delta_ts>2015-08-13 19:20:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>147973.txt</filename>
            <type>text/plain</type>
            <size>10963</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGU5MmEzNGUuLjg0ODBmYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTA4LTEzICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGbGFzaCBET00g
bm9kZSBhdHRyaWJ1dGUgb24gY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDc5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhh
dGNoZXIuCisKKyAgICAgICAgV2hlbmV2ZXIgYW4gYXR0cmlidXRlIG9uIGEgRE9NIG5vZGUgY2hh
bmdlcywgZmxhc2ggdGhlIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgICAgSWYgdGhhdCB2YWx1ZSBk
b2Vzbid0IGV4aXN0LCBmbGFzaCB0aGUgYXR0cmlidXRlIG5hbWUgaW5zdGVhZC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50LnByb3RvdHlwZS5ub2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQucHJvdG90eXBlLl9idWlsZEF0dHJpYnV0ZURPTSk6CisgICAgICAgIElmIHRo
ZSBub2RlIGhhcyBiZWVuIG1hcmtlZCB3aXRoIGEgZ2VuZXJhbCBjaGFuZ2UsIG1hcmsgdGhlIGF0
dHJpYnV0ZSBlbGVtZW50IGZvciBhbmltYXRpb24uCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQucHJvdG90eXBlLl9tYXJrTm9kZUNoYW5nZWQuYW5pbWF0aW9uRW5kKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX21hcmtOb2RlQ2hh
bmdlZCk6CisgICAgICAgIEFkZHMgYSBjbGFzcyB0byB0aGUgZ2l2ZW4gZWxlbWVudCB0aGF0IGFw
cGxpZXMgYSBzaW1wbGUgYmFja2dyb3VuZCBmbGFzaCBhbmltYXRpb24uCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9maXJlRGlkQ2hhbmdlKToKKyAgICAg
ICAgQWRkIHRoZSBhbmltYXRpb24gY2xhc3Mgb25jZSBhbGwgYnVpbGRpbmcgb2YgdGhlIHJlcHJl
c2VudGVkIERPTSBvYmplY3QgZm9yIHRoYXQgbm9kZSBpcyBkb25lLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3M6CisgICAgICAgIChAa2V5ZnJhbWVz
IG5vZGUtc3RhdGUtY2hhbmdlZCk6CisgICAgICAgIEFwcGxpZXMgYSBzZW1pLXRyYW5zcGFyZW50
IGJhY2tncm91bmQgdGhhdCBmYWRlcyB0byBkZWZhdWx0LgorICAgICAgICAoLm5vZGUtc3RhdGUt
Y2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVVcGRhdGVy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVVcGRhdGVyLnByb3RvdHlwZS5fYXR0
cmlidXRlc1VwZGF0ZWQpOgorICAgICAgICBOb3cgcGFzc2VzIGFsb25nIHRoZSBuYW1lIG9mIHRo
ZSBtb2RpZmllZCBhdHRyaWJ1dGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZVVwZGF0
ZXIucHJvdG90eXBlLl91cGRhdGVNb2RpZmllZE5vZGVzKToKKyAgICAgICAgSWYgdGhlIG1vZGlm
aWVkIG5vZGUgb2JqZWN0IGhhcyBhbiBhdHRyaWJ1dGUgbWVtYmVyLCBtYXJrIHRoZSBub2RlIGFz
IGJlaW5nIGdlbmVyYWxseSBjaGFuZ2VkLgorCiAyMDE1LTA4LTEyICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IFBvb3Ig
Q2xhc3MgTmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggZThlYWI2Zi4uMDcxNDk2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKQEAgLTQxLDYgKzQxLDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KICAgICAgICAgICAgIHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0cnVlOwogICAg
ICAgICB0aGlzLl9zZWFyY2hRdWVyeSA9IG51bGw7CiAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hp
bGRyZW5MaW1pdCA9IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5Jbml0aWFsQ2hpbGRyZW5M
aW1pdDsKKyAgICAgICAgdGhpcy5fbm9kZVN0YXRlQ2hhbmdlcyA9IFtdOwogICAgIH0KIAogICAg
IGlzQ2xvc2VUYWcoKQpAQCAtMTkyLDYgKzE5MywxNCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVs
ZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxl
bQogICAgICAgICByZXR1cm4gY291bnQ7CiAgICAgfQogCisgICAgbm9kZVN0YXRlQ2hhbmdlZChj
aGFuZ2UpCisgICAgeworICAgICAgICBpZiAoIWNoYW5nZSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICB0aGlzLl9ub2RlU3RhdGVDaGFuZ2VzLnB1c2goY2hhbmdlKTsKKyAgICB9CisK
ICAgICBzaG93Q2hpbGROb2RlKG5vZGUpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCgh
dGhpcy5fZWxlbWVudENsb3NlVGFnKTsKQEAgLTEwNzAsNDEgKzEwNzksNDMgQEAgV2ViSW5zcGVj
dG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuVHJlZUVsZW0KIAogICAgIF9idWlsZEF0dHJpYnV0ZURPTShwYXJlbnRFbGVtZW50LCBu
YW1lLCB2YWx1ZSwgbm9kZSkKICAgICB7Ci0gICAgICAgIHZhciBoYXNUZXh0ID0gKHZhbHVlLmxl
bmd0aCA+IDApOwotICAgICAgICB2YXIgYXR0clNwYW5FbGVtZW50ID0gcGFyZW50RWxlbWVudC5j
cmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWF0dHJpYnV0ZSIpOwotICAgICAgICB2YXIgYXR0ck5h
bWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0
cmlidXRlLW5hbWUiKTsKKyAgICAgICAgbGV0IGhhc1RleHQgPSAodmFsdWUubGVuZ3RoID4gMCk7
CisgICAgICAgIGxldCBhdHRyU3BhbkVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxk
KCJzcGFuIiwgImh0bWwtYXR0cmlidXRlIik7CisgICAgICAgIGxldCBhdHRyTmFtZUVsZW1lbnQg
PSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1hdHRyaWJ1dGUtbmFt
ZSIpOwogICAgICAgICBhdHRyTmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1lOwotCisgICAg
ICAgIGxldCBhdHRyVmFsdWVFbGVtZW50ID0gbnVsbDsKICAgICAgICAgaWYgKGhhc1RleHQpCiAg
ICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5kKCI9XHUyMDBCXCIiKTsKIAogICAgICAg
ICBpZiAobmFtZSA9PT0gInNyYyIgfHwgbmFtZSA9PT0gImhyZWYiKSB7Ci0gICAgICAgICAgICB2
YXIgYmFzZVVSTCA9IG5vZGUub3duZXJEb2N1bWVudCA/IG5vZGUub3duZXJEb2N1bWVudC5kb2N1
bWVudFVSTCA6IG51bGw7Ci0gICAgICAgICAgICB2YXIgcmV3cml0dGVuVVJMID0gYWJzb2x1dGVV
UkwodmFsdWUsIGJhc2VVUkwpOwotCisgICAgICAgICAgICBsZXQgYmFzZVVSTCA9IG5vZGUub3du
ZXJEb2N1bWVudCA/IG5vZGUub3duZXJEb2N1bWVudC5kb2N1bWVudFVSTCA6IG51bGw7CisgICAg
ICAgICAgICBsZXQgcmV3cml0dGVuVVJMID0gYWJzb2x1dGVVUkwodmFsdWUsIGJhc2VVUkwpOwog
ICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5pbnNlcnRXb3JkQnJlYWtDaGFyYWN0ZXJzKCk7Ci0K
ICAgICAgICAgICAgIGlmICghcmV3cml0dGVuVVJMKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGF0
dHJWYWx1ZUVsZW1lbnQgPSBhdHRyU3BhbkVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRt
bC1hdHRyaWJ1dGUtdmFsdWUiKTsKKyAgICAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50ID0g
YXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmlidXRlLXZhbHVl
Iik7CiAgICAgICAgICAgICAgICAgYXR0clZhbHVlRWxlbWVudC50ZXh0Q29udGVudCA9IHZhbHVl
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRz
V2l0aCgiZGF0YToiKSkKICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltTWlk
ZGxlKDYwKTsKIAotICAgICAgICAgICAgICAgIHZhciBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImEiKTsKLSAgICAgICAgICAgICAgICBsaW5rRWxlbWVudC5ocmVmID0gcmV3
cml0dGVuVVJMOwotICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LnRleHRDb250ZW50ID0gdmFs
dWU7Ci0KLSAgICAgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5kQ2hpbGQobGlua0Vs
ZW1lbnQpOworICAgICAgICAgICAgICAgIGF0dHJWYWx1ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJhIik7CisgICAgICAgICAgICAgICAgYXR0clZhbHVlRWxlbWVudC5ocmVmID0g
cmV3cml0dGVuVVJMOworICAgICAgICAgICAgICAgIGF0dHJWYWx1ZUVsZW1lbnQudGV4dENvbnRl
bnQgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBhdHRyU3BhbkVsZW1lbnQuYXBwZW5kQ2hpbGQo
YXR0clZhbHVlRWxlbWVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICB2YWx1ZSA9IHZhbHVlLmluc2VydFdvcmRCcmVha0NoYXJhY3RlcnMoKTsKLSAgICAg
ICAgICAgIHZhciBhdHRyVmFsdWVFbGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxk
KCJzcGFuIiwgImh0bWwtYXR0cmlidXRlLXZhbHVlIik7CisgICAgICAgICAgICBhdHRyVmFsdWVF
bGVtZW50ID0gYXR0clNwYW5FbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImh0bWwtYXR0cmli
dXRlLXZhbHVlIik7CiAgICAgICAgICAgICBhdHRyVmFsdWVFbGVtZW50LnRleHRDb250ZW50ID0g
dmFsdWU7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaGFzVGV4dCkKICAgICAgICAgICAgIGF0
dHJTcGFuRWxlbWVudC5hcHBlbmQoIlwiIik7CisKKyAgICAgICAgZm9yIChsZXQgY2hhbmdlIG9m
IHRoaXMuX25vZGVTdGF0ZUNoYW5nZXMpIHsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LkNoYW5nZVR5cGUuQXR0cmlidXRlICYmIGNo
YW5nZS5hdHRyaWJ1dGUgPT09IG5hbWUpCisgICAgICAgICAgICAgICAgY2hhbmdlLmVsZW1lbnQg
PSBoYXNUZXh0ID8gYXR0clZhbHVlRWxlbWVudCA6IGF0dHJOYW1lRWxlbWVudDsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIF9idWlsZFRhZ0RPTShwYXJlbnRFbGVtZW50LCB0YWdOYW1lLCBpc0Ns
b3NpbmdUYWcsIGlzRGlzdGluY3RUcmVlRWxlbWVudCkKQEAgLTE0NDksNiArMTQ2MCwzNCBAQCBX
ZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICBXZWJJbnNwZWN0b3IuaGlnaGxpZ2h0UmFu
Z2VzV2l0aFN0eWxlQ2xhc3ModGhpcy50aXRsZSwgbWF0Y2hSYW5nZXMsIFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudC5TZWFyY2hIaWdobGlnaHRTdHlsZUNsYXNzTmFtZSwgdGhpcy5faGlnaGxp
Z2h0UmVzdWx0KTsKICAgICB9CiAKKyAgICBfbWFya05vZGVDaGFuZ2VkKCkKKyAgICB7CisgICAg
ICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZCgpIHsKKyAgICAgICAgICAgIHRoaXMuY2xhc3NMaXN0
LnJlbW92ZSgibm9kZS1zdGF0ZS1jaGFuZ2VkIik7CisgICAgICAgICAgICB0aGlzLnJlbW92ZUV2
ZW50TGlzdGVuZXIoImFuaW1hdGlvbkVuZCIsIGFuaW1hdGlvbkVuZCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmb3IgKGxldCBjaGFuZ2Ugb2YgdGhpcy5fbm9kZVN0YXRlQ2hhbmdlcykgeworICAg
ICAgICAgICAgbGV0IGVsZW1lbnQgPSBjaGFuZ2UuZWxlbWVudDsKKyAgICAgICAgICAgIGlmICgh
ZWxlbWVudCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgZWxlbWVu
dC5jbGFzc0xpc3QucmVtb3ZlKCJub2RlLXN0YXRlLWNoYW5nZWQiKTsKKyAgICAgICAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kKTsKKyAg
ICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm9kZS1zdGF0ZS1jaGFuZ2VkIik7Cisg
ICAgICAgIH0KKworICAgICAgICB0aGlzLl9ub2RlU3RhdGVDaGFuZ2VzID0gW107CisgICAgfQor
CisgICAgX2ZpcmVEaWRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgc3VwZXIuX2ZpcmVEaWRDaGFu
Z2UoKTsKKworICAgICAgICBpZiAodGhpcy5fbm9kZVN0YXRlQ2hhbmdlcykKKyAgICAgICAgICAg
IHRoaXMuX21hcmtOb2RlQ2hhbmdlZCgpOworICAgIH0KKwogICAgIGhhbmRsZUV2ZW50KGV2ZW50
KQogICAgIHsKICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJkcmFnc3RhcnQiICYmIHRoaXMu
X2VkaXRpbmcpCkBAIC0xNDcyLDUgKzE1MTEsOSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1l
bnQuRWRpdFRhZ0JsYWNrbGlzdCA9IFsKICAgICAiaHRtbCIsICJoZWFkIiwgImJvZHkiCiBdLmtl
eVNldCgpOwogCitXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuQ2hhbmdlVHlwZSA9IHsKKyAg
ICBBdHRyaWJ1dGU6ICJkb20tdHJlZS1lbGVtZW50LWNoYW5nZS10eXBlLWF0dHJpYnV0ZSIKK307
CisKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5TZWFyY2hIaWdobGlnaHRTdHlsZUNsYXNz
TmFtZSA9ICJzZWFyY2gtaGlnaGxpZ2h0IjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5C
b3VuY3lIaWdobGlnaHRTdHlsZUNsYXNzTmFtZSA9ICJib3VuY3ktaGlnaGxpZ2h0IjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVP
dXRsaW5lLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RP
TVRyZWVPdXRsaW5lLmNzcwppbmRleCA2YjgyYjI1Li4zNzI0Yzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91
dGxpbmUuY3NzCkBAIC0xNjUsMyArMTY1LDEyIEBACiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
YSg1MywgODMlLCA1MyUsIDAuMik7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCg0
NywgODIlLCA2MCUpOwogfQorCitAa2V5ZnJhbWVzIG5vZGUtc3RhdGUtY2hhbmdlZCB7CisgICAg
ZnJvbSB7IGJhY2tncm91bmQtY29sb3I6IGhzbGEoMjEyLCA5MiUsIDU0JSwgMC41KTsgfQorfQor
Cisubm9kZS1zdGF0ZS1jaGFuZ2VkIHsKKyAgICBhbmltYXRpb246IG5vZGUtc3RhdGUtY2hhbmdl
ZCAxcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yNSwgMSk7CisgICAgYm9yZGVyLXJhZGl1czogM3B4
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRE9NVHJlZVVwZGF0ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlVXBkYXRlci5qcwppbmRleCBhZDI2ODQxLi5lZTVkMmI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlVXBk
YXRlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9E
T01UcmVlVXBkYXRlci5qcwpAQCAtNTUsNyArNTUsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZVVw
ZGF0ZXIucHJvdG90eXBlID0gewogCiAgICAgX2F0dHJpYnV0ZXNVcGRhdGVkOiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWROb2Rlcy5wdXNoKHtu
b2RlOiBldmVudC5kYXRhLm5vZGUsIHVwZGF0ZWQ6IHRydWV9KTsKKyAgICAgICAgdGhpcy5fcmVj
ZW50bHlNb2RpZmllZE5vZGVzLnB1c2goe25vZGU6IGV2ZW50LmRhdGEubm9kZSwgdXBkYXRlZDog
dHJ1ZSwgYXR0cmlidXRlOiBldmVudC5kYXRhLm5hbWV9KTsKICAgICAgICAgaWYgKHRoaXMuX3Ry
ZWVPdXRsaW5lLl92aXNpYmxlKQogICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rl
c1Nvb24oKTsKICAgICB9LApAQCAtOTksMjYgKzk5LDMyIEBAIFdlYkluc3BlY3Rvci5ET01UcmVl
VXBkYXRlci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodGhpcy5fdXBkYXRlTW9k
aWZpZWROb2Rlc1RpbWVvdXQpIHsKICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRh
dGVNb2RpZmllZE5vZGVzVGltZW91dCk7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fdXBkYXRl
TW9kaWZpZWROb2Rlc1RpbWVvdXQ7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVNb2RpZmllZE5v
ZGVzVGltZW91dCA9IG51bGw7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgdXBkYXRlZFBhcmVu
dFRyZWVFbGVtZW50cyA9IFtdOworICAgICAgICBsZXQgdXBkYXRlZFBhcmVudFRyZWVFbGVtZW50
cyA9IFtdOworICAgICAgICBmb3IgKGxldCByZWNlbnRseU1vZGlmaWVkTm9kZSBvZiB0aGlzLl9y
ZWNlbnRseU1vZGlmaWVkTm9kZXMpIHsKKyAgICAgICAgICAgIGxldCBwYXJlbnQgPSByZWNlbnRs
eU1vZGlmaWVkTm9kZS5wYXJlbnQ7CisgICAgICAgICAgICBsZXQgbm9kZSA9IHJlY2VudGx5TW9k
aWZpZWROb2RlLm5vZGU7CisgICAgICAgICAgICBsZXQgY2hhbmdlSW5mbyA9IG51bGw7CisgICAg
ICAgICAgICBpZiAocmVjZW50bHlNb2RpZmllZE5vZGUuYXR0cmlidXRlKQorICAgICAgICAgICAg
ICAgIGNoYW5nZUluZm8gPSB7dHlwZTogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LkNoYW5n
ZVR5cGUuQXR0cmlidXRlLCBhdHRyaWJ1dGU6IHJlY2VudGx5TW9kaWZpZWROb2RlLmF0dHJpYnV0
ZX07CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZWNlbnRseU1vZGlmaWVk
Tm9kZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLl9yZWNl
bnRseU1vZGlmaWVkTm9kZXNbaV0ucGFyZW50OwotICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlz
Ll9yZWNlbnRseU1vZGlmaWVkTm9kZXNbaV0ubm9kZTsKKyAgICAgICAgICAgIGlmIChyZWNlbnRs
eU1vZGlmaWVkTm9kZS51cGRhdGVkKSB7CisgICAgICAgICAgICAgICAgbGV0IG5vZGVUcmVlRWxl
bWVudCA9IHRoaXMuX3RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIW5vZGVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIGlmICh0aGlzLl9yZWNlbnRseU1vZGlmaWVkTm9kZXNbaV0udXBk
YXRlZCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlSXRlbSA9IHRoaXMuX3RyZWVPdXRsaW5l
LmZpbmRUcmVlRWxlbWVudChub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZUl0ZW0pCi0g
ICAgICAgICAgICAgICAgICAgIG5vZGVJdGVtLnVwZGF0ZVRpdGxlKCk7Ci0gICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZUluZm8pCisgICAgICAgICAg
ICAgICAgICAgIG5vZGVUcmVlRWxlbWVudC5ub2RlU3RhdGVDaGFuZ2VkKGNoYW5nZUluZm8pOwor
CisgICAgICAgICAgICAgICAgbm9kZVRyZWVFbGVtZW50LnVwZGF0ZVRpdGxlKCk7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICghcGFyZW50KQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZUl0ZW0gPSB0aGlzLl90cmVlT3V0bGlu
ZS5maW5kVHJlZUVsZW1lbnQocGFyZW50KTsKKyAgICAgICAgICAgIGxldCBwYXJlbnROb2RlSXRl
bSA9IHRoaXMuX3RyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChwYXJlbnQpOwogICAgICAgICAg
ICAgaWYgKHBhcmVudE5vZGVJdGVtICYmICFwYXJlbnROb2RlSXRlbS5hbHJlYWR5VXBkYXRlZENo
aWxkcmVuKSB7CiAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZUl0ZW0udXBkYXRlVGl0bGUoKTsK
ICAgICAgICAgICAgICAgICBwYXJlbnROb2RlSXRlbS51cGRhdGVDaGlsZHJlbigpOwpAQCAtMTI3
LDggKzEzMyw4IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlVXBkYXRlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVw
ZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBkZWxldGUg
dXBkYXRlZFBhcmVudFRyZWVFbGVtZW50c1tpXS5hbHJlYWR5VXBkYXRlZENoaWxkcmVuOworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVwZGF0ZWRQYXJlbnRUcmVlRWxlbWVudHMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICB1cGRhdGVkUGFyZW50VHJlZUVsZW1lbnRzW2ldLmFscmVhZHlV
cGRhdGVkQ2hpbGRyZW4gPSBudWxsOwogCiAgICAgICAgIHRoaXMuX3JlY2VudGx5TW9kaWZpZWRO
b2RlcyA9IFtdOwogICAgIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>