<?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>148268</bug_id>
          
          <creation_ts>2015-08-20 17:03:05 -0700</creation_ts>
          <short_desc>Web Inspector: REGRESSION(173684): Edit as HTML not working</short_desc>
          <delta_ts>2015-08-21 12:37:14 -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>WebKit 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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>cdumez</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>1119464</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 17:03:05 -0700</bug_when>
    <thetext>* SUMMARY
Edit as HTML not working in DOM Tree.

* STEPS TO REPRODUCE
1. Inspector &lt;body&gt; on about:blank
2. Right click &quot;Edit as HTML&quot; for &lt;body&gt; element
3. Commit &quot;&lt;body&gt;&lt;h1&gt;Test&lt;/h1&gt;&lt;/body&gt;&quot;
  =&gt; DOM is unchanged, expected &lt;h1&gt;Test&lt;/h1&gt; but it doesn&apos;t exist

* NOTES
- Regressed with &lt;http://trac.webkit.org/changeset/173684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119466</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 17:03:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/22364817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119467</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 17:04:30 -0700</bug_when>
    <thetext>I&apos;m going to write at least a basic test for DOM.setOuterHTML to make sure we don&apos;t break it again!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119527</commentid>
    <comment_count>3</comment_count>
      <attachid>259546</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 18:15:32 -0700</bug_when>
    <thetext>Created attachment 259546
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119570</commentid>
    <comment_count>4</comment_count>
      <attachid>259559</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 18:56:39 -0700</bug_when>
    <thetext>Created attachment 259559
[PATCH] Proposed Fix

Removed some trailing whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119577</commentid>
    <comment_count>5</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2015-08-20 19:13:39 -0700</bug_when>
    <thetext>Is it a dupe of https://bugs.webkit.org/show_bug.cgi?id=147736?
(I haven&apos;t looked closely into the issue.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119582</commentid>
    <comment_count>6</comment_count>
      <attachid>259559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-20 19:22:05 -0700</bug_when>
    <thetext>Comment on attachment 259559
[PATCH] Proposed Fix

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

&gt; Source/WebCore/inspector/DOMPatchSupport.cpp:-377
&gt; -    Node* node = parentNode-&gt;firstChild();

Could you explain what it wrong with the optimization? Why is this not equivalent? The Changelog doesn&apos;t say anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119615</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 20:11:56 -0700</bug_when>
    <thetext>*** Bug 147736 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119766</commentid>
    <comment_count>8</comment_count>
      <attachid>259559</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-21 09:46:50 -0700</bug_when>
    <thetext>Comment on attachment 259559
[PATCH] Proposed Fix

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

The setOuterHTML test is making me happy. I think our testing-fu is increasing.

Please address Chris&apos; question, though. It seems to be the meat of the fix, but I also have no idea why it is correct without spending a lot of time reading DOMPatch. That code is pretty gnarly, I&apos;m surprised the Googlers didn&apos;t add tests.

(edit: they did write tests, lots of them. In particular, they also tested undo of setOuterHTML. You can see all of their tests here: http://trac.webkit.org/browser/trunk/LayoutTests/inspector/elements?rev=107399&amp;order=name)

&gt; LayoutTests/inspector/dom/getOuterHTML.html:20
&gt; +                        InspectorTest.log(outerHTML);

I would like us to get in the habit of labelling stuff that we dump. Here, the expected file would be more comprehensible if it said above:

&quot;Dumping outerHTML for element div#x:&quot;

&gt; LayoutTests/inspector/dom/setOuterHTML.html:31
&gt; +&lt;/div&gt;`.trim();

awesome.

&gt; LayoutTests/inspector/dom/setOuterHTML.html:66
&gt; +                    InspectorTest.expectThat(outerHTML === replacementOuterHTML, &quot;The outerHTML should be what was just set&quot;);

Nit: period

&gt; LayoutTests/inspector/dom/setOuterHTML.html:77
&gt; +            InspectorTest.assert(domNode, &quot;DOMNode exists&quot;);

Nit: period</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119819</commentid>
    <comment_count>9</comment_count>
      <attachid>259559</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-21 11:31:10 -0700</bug_when>
    <thetext>Comment on attachment 259559
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebCore/inspector/DOMPatchSupport.cpp:-377
&gt;&gt; -    Node* node = parentNode-&gt;firstChild();
&gt; 
&gt; Could you explain what it wrong with the optimization? Why is this not equivalent? The Changelog doesn&apos;t say anything.

The optimization changes were wrong for a few reasons:

- The loop would break out when we reached the end of the list of children (e.g. if !node) but that is fine if newMap/newList wanted to add a new node
- `node` is not longer at index `i` when insertBefore inserts a node before it. At that point, `node` would be at index `i + 1`, so future uses of `node` would likely be off-shifted.

I could, and did try correcting while keeping the optimizations but reading through DOMPatchSupport I couldn&apos;t be sure I wasn&apos;t overlooking any particular cases without writing tons more tests. Also, the loop right after this does the same thing without this attempt at an optimization, so this at least keeps them consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119824</commentid>
    <comment_count>10</comment_count>
      <attachid>259559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-21 11:34:41 -0700</bug_when>
    <thetext>Comment on attachment 259559
[PATCH] Proposed Fix

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

r=me for the C++ part. I trust you and Brian for the inspector tests.

&gt;&gt;&gt; Source/WebCore/inspector/DOMPatchSupport.cpp:-377
&gt;&gt;&gt; -    Node* node = parentNode-&gt;firstChild();
&gt;&gt; 
&gt;&gt; Could you explain what it wrong with the optimization? Why is this not equivalent? The Changelog doesn&apos;t say anything.
&gt; 
&gt; The optimization changes were wrong for a few reasons:
&gt; 
&gt; - The loop would break out when we reached the end of the list of children (e.g. if !node) but that is fine if newMap/newList wanted to add a new node
&gt; - `node` is not longer at index `i` when insertBefore inserts a node before it. At that point, `node` would be at index `i + 1`, so future uses of `node` would likely be off-shifted.
&gt; 
&gt; I could, and did try correcting while keeping the optimizations but reading through DOMPatchSupport I couldn&apos;t be sure I wasn&apos;t overlooking any particular cases without writing tons more tests. Also, the loop right after this does the same thing without this attempt at an optimization, so this at least keeps them consistent.

Ok, so we&apos;re basically modifying the children as we iterate over them :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119831</commentid>
    <comment_count>11</comment_count>
      <attachid>259636</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-21 11:43:39 -0700</bug_when>
    <thetext>Created attachment 259636
[PATCH] For Landing

Addressed comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119867</commentid>
    <comment_count>12</comment_count>
      <attachid>259636</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 12:37:09 -0700</bug_when>
    <thetext>Comment on attachment 259636
[PATCH] For Landing

Clearing flags on attachment: 259636

Committed r188768: &lt;http://trac.webkit.org/changeset/188768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119868</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 12:37:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259546</attachid>
            <date>2015-08-20 18:15:32 -0700</date>
            <delta_ts>2015-08-20 18:56:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>edit-as-html.patch</filename>
            <type>text/plain</type>
            <size>9285</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZWNlMDMyLi40OTRkZDM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgt
MjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSRUdSRVNTSU9OKDE3MzY4NCk6IEVkaXQgYXMgSFRNTCBub3Qgd29ya2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZG9tL2dldE91dGVySFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vc2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RvbS9zZXRPdXRlckhUTUwuaHRtbDogQWRkZWQuCisKIDIwMTUtMDgtMTkgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgU2VsZWN0IHZhbGlkYXRpb24g
ZG9lcyBub3QgY29ycmVjdGx5IHdvcmsgd2hlbiBoYW5kbGluZyBjaGFuZ2UgZXZlbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGU4MmFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRPdXRlckhUTUwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgZm9yIERPTS5nZXRPdXRlckhUTUwgKENvcHkgSFRNTCku
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBET00uZ2V0T3V0ZXJIVE1MCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogR2V0T3V0ZXJIVE1MCis8ZGl2IGlkPSJ4IiBzdHlsZT0iZGlzcGxheTpub25l
Ij4KKyAgICA8aDE+QSBUaXRsZTwvaDE+CisgICAgPHA+QSBQYXJhZ3JhcGg8L3A+Cis8L2Rpdj4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRPdXRlckhUTUwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY1YTc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwKQEAgLTAsMCArMSw0MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJET00uZ2V0T3V0ZXJIVE1MIik7CisKKyAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJHZXRPdXRlckhUTUwiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkdldCB0aGUgT3V0ZXJIVE1MIG9mIHRoZSB0YXJnZXQgZWxlbWVudC4iLAorICAg
ICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkg
eworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAg
ICAgICAgICAgIGxldCBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVG
b3JJZChub2RlSWQpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChk
b21Ob2RlLCAiRE9NTm9kZSBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgZG9tTm9kZS5n
ZXRPdXRlckhUTUwoZnVuY3Rpb24oZXJyb3IsIG91dGVySFRNTCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG91dGVySFRNTCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCBmb3IgRE9NLmdldE91dGVySFRNTCAo
Q29weSBIVE1MKS48L3A+CisKKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAg
IDxoMT5BIFRpdGxlPC9oMT4KKyAgICA8cD5BIFBhcmFncmFwaDwvcD4KKzwvZGl2PgorCis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NldE91
dGVySFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NldE91dGVy
SFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdj
OGY1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0T3V0
ZXJIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0IGZvciBET00uc2V0T3V0
ZXJIVE1MIChFZGl0IGFzIEhUTUwpLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRE9NLnNl
dE91dGVySFRNTAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IE91dGVySFRNTEJlZm9yZQorPGRpdiBp
ZD0ieCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CisgICAgPGgxPk9yaWdpbmFsIFRpdGxlPC9oMT4K
KyAgICA8cD5PcmlnaW5hbCBQYXJhZ3JhcGg8L3A+Cis8L2Rpdj4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFNldE91dGVySFRNTFJlbW92aW5nRWxlbWVudHMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDaGVja091dGVySFRNTEFmdGVyUmVtb3ZpbmdFbGVtZW50cworUEFTUzogVGhlIG91dGVySFRN
TCBzaG91bGQgYmUgd2hhdCB3YXMganVzdCBzZXQKKzxkaXYgaWQ9IngiPjwvZGl2PgorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogU2V0T3V0ZXJIVE1MQWRkaW5nRWxlbWVudHMKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDaGVja091dGVySFRNTEFmdGVyQWRkaW5nRWxlbWVudHMKK1BBU1M6IFRoZSBv
dXRlckhUTUwgc2hvdWxkIGJlIHdoYXQgd2FzIGp1c3Qgc2V0Cis8ZGl2IGlkPSJ4IiBzdHlsZT0i
ZGlzcGxheTpub25lOyBjb2xvcjpyZWQiPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxoMT5BIFRpdGxlPC9oMT4KKyAgICAgICAgPHA+QSBQYXJhZ3JhcGg8L3A+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNldE91dGVySFRNTE1vZGlm
eWluZ0VsZW1lbnRzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2hlY2tPdXRlckhUTUxBZnRlck1v
ZGlmeWluZ0VsZW1lbnRzCitQQVNTOiBUaGUgb3V0ZXJIVE1MIHNob3VsZCBiZSB3aGF0IHdhcyBq
dXN0IHNldAorPGRpdiBpZD0ieCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgY29sb3I6cmVkIj4KKyAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aDE+QSBEaWZmZXJlbnQgVGl0bGU8
L2gxPgorICAgICAgICA8cD5BIFBhcmFncmFwaDwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NldE91dGVySFRNTC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRPdXRlckhUTUwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDEwOTQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRPdXRlckhUTUwuaHRtbApAQCAtMCwwICsxLDkzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgZG9tTm9kZTsKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRPTS5zZXRPdXRlckhUTUwiKTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIk91dGVySFRNTEJlZm9y
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9nIHRoZSBpbml0aWFsIG91dGVySFRNTCBvZiB0
aGUgdGFyZ2V0IGVsZW1lbnQuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgZG9tTm9kZS5nZXRPdXRlckhUTUwoZnVuY3Rpb24oZXJyb3IsIG91dGVy
SFRNTCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm9FcnJvcihlcnJv
cik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob3V0ZXJIVE1MKTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0p
OworCisgICAgY29uc3QgZW1wdHlPdXRlckhUTUwgPSBgPGRpdiBpZD0ieCI+PC9kaXY+YDsKKwor
ICAgIGNvbnN0IG5ld091dGVySFRNTCA9IGAKKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5v
bmU7IGNvbG9yOnJlZCI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGgx
PkEgVGl0bGU8L2gxPgorICAgICAgICA8cD5BIFBhcmFncmFwaDwvcD4KKyAgICA8L2Rpdj4KKzwv
ZGl2PmAudHJpbSgpOworCisgICAgY29uc3QgbW9kaWZpZWRPdXRlckhUTUwgPSBgCis8ZGl2IGlk
PSJ4IiBzdHlsZT0iZGlzcGxheTpub25lOyBjb2xvcjpyZWQiPgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxoMT5BIERpZmZlcmVudCBUaXRsZTwvaDE+CisgICAgICAgIDxw
PkEgUGFyYWdyYXBoPC9wPgorICAgIDwvZGl2PgorPC9kaXY+YC50cmltKCk7CisKKyAgICBsZXQg
c3RlcHMgPSBbCisgICAgICAgIFsiUmVtb3ZpbmdFbGVtZW50cyIsIGVtcHR5T3V0ZXJIVE1MXSwK
KyAgICAgICAgWyJBZGRpbmdFbGVtZW50cyIsIG5ld091dGVySFRNTF0sCisgICAgICAgIFsiTW9k
aWZ5aW5nRWxlbWVudHMiLCBtb2RpZmllZE91dGVySFRNTF0sCisgICAgXTsKKworICAgIHN0ZXBz
LmZvckVhY2goZnVuY3Rpb24odHVwbGUpIHsKKyAgICAgICAgbGV0IFt0aXRsZSwgcmVwbGFjZW1l
bnRPdXRlckhUTUxdID0gdHVwbGU7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgICAgIG5hbWU6IGBTZXRPdXRlckhUTUwke3RpdGxlfWAsCisgICAgICAgICAgICBkZXNjcmlw
dGlvbjogIkNoYW5nZSB0aGUgb3V0ZXJIVE1MLiIsCisgICAgICAgICAgICB0ZXN0OiAocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgZG9tTm9kZS5zZXRPdXRlckhUTUwocmVw
bGFjZW1lbnRPdXRlckhUTUwsIGZ1bmN0aW9uKGVycm9yLCBvdXRlckhUTUwpIHsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb0Vycm9yKGVycm9yKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fQorICAgICAgICB9KTsKKworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAg
ICBuYW1lOiBgQ2hlY2tPdXRlckhUTUxBZnRlciR7dGl0bGV9YCwKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiTG9nIHRoZSBvdXRlckhUTUwgb2YgdGhlIHRhcmdldCBlbGVtZW50IGFmdGVyIGNo
YW5nZXMuIiwKKyAgICAgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgICAgICAgICBkb21Ob2RlLmdldE91dGVySFRNTChmdW5jdGlvbihlcnJvciwgb3V0ZXJIVE1M
KSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm9FcnJvcihlcnJv
cik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChvdXRlckhU
TUwgPT09IHJlcGxhY2VtZW50T3V0ZXJIVE1MLCAiVGhlIG91dGVySFRNTCBzaG91bGQgYmUgd2hh
dCB3YXMganVzdCBzZXQiKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZyhvdXRlckhUTUwpOworICAgICAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVu
dChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVN
YW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2Rl
SWQpIHsKKyAgICAgICAgICAgIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIu
bm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21O
b2RlLCAiRE9NTm9kZSBleGlzdHMiKTsKKyAgICAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0Fu
ZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3QgZm9yIERPTS5zZXRPdXRlckhU
TUwgKEVkaXQgYXMgSFRNTCkuPC9wPgorCis8ZGl2IGlkPSJ4IiBzdHlsZT0iZGlzcGxheTpub25l
Ij4KKyAgICA8aDE+T3JpZ2luYWwgVGl0bGU8L2gxPgorICAgIDxwPk9yaWdpbmFsIFBhcmFncmFw
aDwvcD4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4YjRkMi4u
OGQ2ZGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA4LTIwICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
UkVHUkVTU0lPTigxNzM2ODQpOiBFZGl0IGFzIEhUTUwgbm90IHdvcmtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODI2OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvZG9t
L2dldE91dGVySFRNTC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZG9tL3NldE91dGVy
SFRNTC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVBhdGNoU3VwcG9ydDo6aW5uZXJQYXRjaENoaWxkcmVuKToKKyAg
ICAgICAgUmV2ZXJ0IHRoZSBvcHRpbWl6YXRpb24gY2hhbmdlIG1hZGUgaW4gcjE3MzY4NC4KKwog
MjAxNS0wOC0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMTg4NjYzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAppbmRleCBhMTllZTg2Li5jNzgyYjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAt
MzQyLDcgKzM0Miw3IEBAIGJvb2wgRE9NUGF0Y2hTdXBwb3J0Ojppbm5lclBhdGNoQ2hpbGRyZW4o
Q29udGFpbmVyTm9kZSogcGFyZW50Tm9kZSwgY29uc3QgVmVjdG9yCiAgICAgfQogCiAgICAgLy8g
TWFyayByZXRhaW5lZCBub2RlcyBhcyB1c2VkLCBkbyBub3QgcmV1c2Ugbm9kZSBtb3JlIHRoYW4g
b25jZS4KLSAgICBIYXNoU2V0PHNpemVfdCwgV1RGOjpJbnRIYXNoPHNpemVfdD4sIFdURjo6VW5z
aWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gIHVzZWRPbGRPcmRpbmFsczsKKyAg
ICBIYXNoU2V0PHNpemVfdCwgV1RGOjpJbnRIYXNoPHNpemVfdD4sIFdURjo6VW5zaWduZWRXaXRo
WmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gdXNlZE9sZE9yZGluYWxzOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbmV3TGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAoIW5ld01h
cFtpXS5maXJzdCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzc0LDExICszNzQsMTAgQEAg
Ym9vbCBET01QYXRjaFN1cHBvcnQ6OmlubmVyUGF0Y2hDaGlsZHJlbihDb250YWluZXJOb2RlKiBw
YXJlbnROb2RlLCBjb25zdCBWZWN0b3IKICAgICB9CiAKICAgICAvLyAzLiBJbnNlcnQgbWlzc2lu
ZyBub2Rlcy4KLSAgICBOb2RlKiBub2RlID0gcGFyZW50Tm9kZS0+Zmlyc3RDaGlsZCgpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IG5vZGUgJiYgaSA8IG5ld01hcC5zaXplKCk7ICsraSwgbm9k
ZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5l
d01hcC5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobmV3TWFwW2ldLmZpcnN0IHx8IG1lcmdl
cy5jb250YWlucyhuZXdMaXN0W2ldLmdldCgpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBpZiAoIWluc2VydEJlZm9yZUFuZE1hcmtBc1VzZWQocGFyZW50Tm9kZSwgbmV3TGlzdFtp
XS5nZXQoKSwgbm9kZSwgZWMpKQorICAgICAgICBpZiAoIWluc2VydEJlZm9yZUFuZE1hcmtBc1Vz
ZWQocGFyZW50Tm9kZSwgbmV3TGlzdFtpXS5nZXQoKSwgcGFyZW50Tm9kZS0+dHJhdmVyc2VUb0No
aWxkQXQoaSksIGVjKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259559</attachid>
            <date>2015-08-20 18:56:39 -0700</date>
            <delta_ts>2015-08-21 11:43:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>better.patch</filename>
            <type>text/plain</type>
            <size>9222</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3N2MzN2VkLi5mY2MzZmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgt
MjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSRUdSRVNTSU9OKDE3MzY4NCk6IEVkaXQgYXMgSFRNTCBub3Qgd29ya2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZG9tL2dldE91dGVySFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vc2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RvbS9zZXRPdXRlckhUTUwuaHRtbDogQWRkZWQuCisKIDIwMTUtMDgtMjAgIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0IGdhcmRlbmluZyBh
ZnRlciByMTg4MTY3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91
dGVySFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVy
SFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhl
ODJhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0
ZXJIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IGZvciBET00uZ2V0T3V0
ZXJIVE1MIChDb3B5IEhUTUwpLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRE9NLmdldE91
dGVySFRNTAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEdldE91dGVySFRNTAorPGRpdiBpZD0ieCIg
c3R5bGU9ImRpc3BsYXk6bm9uZSI+CisgICAgPGgxPkEgVGl0bGU8L2gxPgorICAgIDxwPkEgUGFy
YWdyYXBoPC9wPgorPC9kaXY+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vZ2V0T3V0ZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVy
SFRNTC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNWE3NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVySFRNTC5o
dG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxl
dCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRE9NLmdldE91dGVySFRN
TCIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiR2V0T3V0ZXJI
VE1MIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIE91dGVySFRNTCBvZiB0aGUgdGFy
Z2V0IGVsZW1lbnQuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5j
dGlvbihkb2N1bWVudE5vZGUpIHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjeCIsIGZ1bmN0aW9uKG5v
ZGVJZCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5k
b21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgIkRPTU5vZGUgZXhpc3RzIik7CisgICAgICAgICAg
ICAgICAgICAgIGRvbU5vZGUuZ2V0T3V0ZXJIVE1MKGZ1bmN0aW9uKGVycm9yLCBvdXRlckhUTUwp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm9FcnJvcihl
cnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhvdXRlckhU
TUwpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3QgZm9y
IERPTS5nZXRPdXRlckhUTUwgKENvcHkgSFRNTCkuPC9wPgorCis8ZGl2IGlkPSJ4IiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KKyAgICA8aDE+QSBUaXRsZTwvaDE+CisgICAgPHA+QSBQYXJhZ3JhcGg8
L3A+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9zZXRPdXRlckhUTUwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS9zZXRPdXRlckhUTUwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmU3YzhmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL3NldE91dGVySFRNTC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAor
VGVzdCBmb3IgRE9NLnNldE91dGVySFRNTCAoRWRpdCBhcyBIVE1MKS4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IERPTS5zZXRPdXRlckhUTUwKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBPdXRl
ckhUTUxCZWZvcmUKKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgIDxoMT5P
cmlnaW5hbCBUaXRsZTwvaDE+CisgICAgPHA+T3JpZ2luYWwgUGFyYWdyYXBoPC9wPgorPC9kaXY+
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTZXRPdXRlckhUTUxSZW1vdmluZ0VsZW1lbnRzCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ2hlY2tPdXRlckhUTUxBZnRlclJlbW92aW5nRWxlbWVudHMK
K1BBU1M6IFRoZSBvdXRlckhUTUwgc2hvdWxkIGJlIHdoYXQgd2FzIGp1c3Qgc2V0Cis8ZGl2IGlk
PSJ4Ij48L2Rpdj4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNldE91dGVySFRNTEFkZGluZ0Vs
ZW1lbnRzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2hlY2tPdXRlckhUTUxBZnRlckFkZGluZ0Vs
ZW1lbnRzCitQQVNTOiBUaGUgb3V0ZXJIVE1MIHNob3VsZCBiZSB3aGF0IHdhcyBqdXN0IHNldAor
PGRpdiBpZD0ieCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgY29sb3I6cmVkIj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8aDE+QSBUaXRsZTwvaDE+CisgICAgICAgIDxwPkEg
UGFyYWdyYXBoPC9wPgorICAgIDwvZGl2PgorPC9kaXY+CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBTZXRPdXRlckhUTUxNb2RpZnlpbmdFbGVtZW50cworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENo
ZWNrT3V0ZXJIVE1MQWZ0ZXJNb2RpZnlpbmdFbGVtZW50cworUEFTUzogVGhlIG91dGVySFRNTCBz
aG91bGQgYmUgd2hhdCB3YXMganVzdCBzZXQKKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5v
bmU7IGNvbG9yOnJlZCI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGgx
PkEgRGlmZmVyZW50IFRpdGxlPC9oMT4KKyAgICAgICAgPHA+QSBQYXJhZ3JhcGg8L3A+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9z
ZXRPdXRlckhUTUwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1M
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBjOTE3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1MLmh0bWwK
QEAgLTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IGRv
bU5vZGU7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJE
T00uc2V0T3V0ZXJIVE1MIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJPdXRlckhUTUxCZWZvcmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvZyB0aGUgaW5p
dGlhbCBvdXRlckhUTUwgb2YgdGhlIHRhcmdldCBlbGVtZW50LiIsCisgICAgICAgIHRlc3Q6IChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGRvbU5vZGUuZ2V0T3V0ZXJIVE1MKGZ1
bmN0aW9uKGVycm9yLCBvdXRlckhUTUwpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdE5vRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KG91dGVySFRNTCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGNvbnN0IGVtcHR5T3V0ZXJIVE1MID0gYDxkaXYg
aWQ9IngiPjwvZGl2PmA7CisKKyAgICBjb25zdCBuZXdPdXRlckhUTUwgPSBgCis8ZGl2IGlkPSJ4
IiBzdHlsZT0iZGlzcGxheTpub25lOyBjb2xvcjpyZWQiPgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgIDxoMT5BIFRpdGxlPC9oMT4KKyAgICAgICAgPHA+QSBQYXJhZ3JhcGg8
L3A+CisgICAgPC9kaXY+Cis8L2Rpdj5gLnRyaW0oKTsKKworICAgIGNvbnN0IG1vZGlmaWVkT3V0
ZXJIVE1MID0gYAorPGRpdiBpZD0ieCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsgY29sb3I6cmVkIj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aDE+QSBEaWZmZXJlbnQgVGl0
bGU8L2gxPgorICAgICAgICA8cD5BIFBhcmFncmFwaDwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PmAu
dHJpbSgpOworCisgICAgbGV0IHN0ZXBzID0gWworICAgICAgICBbIlJlbW92aW5nRWxlbWVudHMi
LCBlbXB0eU91dGVySFRNTF0sCisgICAgICAgIFsiQWRkaW5nRWxlbWVudHMiLCBuZXdPdXRlckhU
TUxdLAorICAgICAgICBbIk1vZGlmeWluZ0VsZW1lbnRzIiwgbW9kaWZpZWRPdXRlckhUTUxdLAor
ICAgIF07CisKKyAgICBzdGVwcy5mb3JFYWNoKGZ1bmN0aW9uKHR1cGxlKSB7CisgICAgICAgIGxl
dCBbdGl0bGUsIHJlcGxhY2VtZW50T3V0ZXJIVE1MXSA9IHR1cGxlOworICAgICAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiBgU2V0T3V0ZXJIVE1MJHt0aXRsZX1gLAor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGFuZ2UgdGhlIG91dGVySFRNTC4iLAorICAgICAg
ICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIGRvbU5v
ZGUuc2V0T3V0ZXJIVE1MKHJlcGxhY2VtZW50T3V0ZXJIVE1MLCBmdW5jdGlvbihlcnJvciwgb3V0
ZXJIVE1MKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm9FcnJv
cihlcnJvcik7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICAgICAgbmFtZTogYENoZWNrT3V0ZXJIVE1MQWZ0ZXIke3RpdGxlfWAs
CisgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkxvZyB0aGUgb3V0ZXJIVE1MIG9mIHRoZSB0YXJn
ZXQgZWxlbWVudCBhZnRlciBjaGFuZ2VzLiIsCisgICAgICAgICAgICB0ZXN0OiAocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgZG9tTm9kZS5nZXRPdXRlckhUTUwoZnVuY3Rp
b24oZXJyb3IsIG91dGVySFRNTCkgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdE5vRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQob3V0ZXJIVE1MID09PSByZXBsYWNlbWVudE91dGVySFRNTCwgIlRoZSBvdXRl
ckhUTUwgc2hvdWxkIGJlIHdoYXQgd2FzIGp1c3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKG91dGVySFRNTCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cisg
ICAgfSk7CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50
KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1h
bmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjeCIsIGZ1bmN0aW9uKG5vZGVJ
ZCkgeworICAgICAgICAgICAgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5u
b2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5v
ZGUsICJET01Ob2RlIGV4aXN0cyIpOworICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCBmb3IgRE9NLnNldE91dGVySFRN
TCAoRWRpdCBhcyBIVE1MKS48L3A+CisKKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
PgorICAgIDxoMT5PcmlnaW5hbCBUaXRsZTwvaDE+CisgICAgPHA+T3JpZ2luYWwgUGFyYWdyYXBo
PC9wPgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNmU3Njc2Li4y
YjZmODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDgtMjAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
RUdSRVNTSU9OKDE3MzY4NCk6IEVkaXQgYXMgSFRNTCBub3Qgd29ya2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9kb20v
Z2V0T3V0ZXJIVE1MLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9kb20vc2V0T3V0ZXJI
VE1MLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NUGF0Y2hTdXBwb3J0Ojppbm5lclBhdGNoQ2hpbGRyZW4pOgorICAg
ICAgICBSZXZlcnQgdGhlIG9wdGltaXphdGlvbiBjaGFuZ2UgbWFkZSBpbiByMTczNjg0LgorCiAy
MDE1LTA4LTIwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjE4ODcyNgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAppbmRleCBhMTllZTg2Li5jNzgyYjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtMzQyLDcg
KzM0Miw3IEBAIGJvb2wgRE9NUGF0Y2hTdXBwb3J0Ojppbm5lclBhdGNoQ2hpbGRyZW4oQ29udGFp
bmVyTm9kZSogcGFyZW50Tm9kZSwgY29uc3QgVmVjdG9yCiAgICAgfQogCiAgICAgLy8gTWFyayBy
ZXRhaW5lZCBub2RlcyBhcyB1c2VkLCBkbyBub3QgcmV1c2Ugbm9kZSBtb3JlIHRoYW4gb25jZS4K
LSAgICBIYXNoU2V0PHNpemVfdCwgV1RGOjpJbnRIYXNoPHNpemVfdD4sIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8c2l6ZV90Pj4gIHVzZWRPbGRPcmRpbmFsczsKKyAgICBIYXNo
U2V0PHNpemVfdCwgV1RGOjpJbnRIYXNoPHNpemVfdD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tl
eUhhc2hUcmFpdHM8c2l6ZV90Pj4gdXNlZE9sZE9yZGluYWxzOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbmV3TGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAoIW5ld01hcFtpXS5m
aXJzdCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzc0LDExICszNzQsMTAgQEAgYm9vbCBE
T01QYXRjaFN1cHBvcnQ6OmlubmVyUGF0Y2hDaGlsZHJlbihDb250YWluZXJOb2RlKiBwYXJlbnRO
b2RlLCBjb25zdCBWZWN0b3IKICAgICB9CiAKICAgICAvLyAzLiBJbnNlcnQgbWlzc2luZyBub2Rl
cy4KLSAgICBOb2RlKiBub2RlID0gcGFyZW50Tm9kZS0+Zmlyc3RDaGlsZCgpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IG5vZGUgJiYgaSA8IG5ld01hcC5zaXplKCk7ICsraSwgbm9kZSA9IG5v
ZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5ld01hcC5z
aXplKCk7ICsraSkgewogICAgICAgICBpZiAobmV3TWFwW2ldLmZpcnN0IHx8IG1lcmdlcy5jb250
YWlucyhuZXdMaXN0W2ldLmdldCgpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAoIWluc2VydEJlZm9yZUFuZE1hcmtBc1VzZWQocGFyZW50Tm9kZSwgbmV3TGlzdFtpXS5nZXQo
KSwgbm9kZSwgZWMpKQorICAgICAgICBpZiAoIWluc2VydEJlZm9yZUFuZE1hcmtBc1VzZWQocGFy
ZW50Tm9kZSwgbmV3TGlzdFtpXS5nZXQoKSwgcGFyZW50Tm9kZS0+dHJhdmVyc2VUb0NoaWxkQXQo
aSksIGVjKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
</data>
<flag name="review"
          id="284749"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="284750"
          type_id="3"
          status="-"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259636</attachid>
            <date>2015-08-21 11:43:39 -0700</date>
            <delta_ts>2015-08-21 12:37:09 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>edit-for-landing.patch</filename>
            <type>text/plain</type>
            <size>9659</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3N2MzN2VkLi45YWE5ZjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgt
MjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSRUdSRVNTSU9OKDE3MzY4NCk6IEVkaXQgYXMgSFRNTCBub3Qgd29ya2luZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tL2dldE91dGVySFRNTC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kb20v
c2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS9zZXRPdXRlckhUTUwuaHRtbDogQWRkZWQuCisKIDIwMTUtMDgtMjAgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0IGdhcmRlbmluZyBhZnRl
ciByMTg4MTY3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVy
SFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVySFRN
TC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIxN2Yx
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJI
VE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0IGZvciBET00uZ2V0T3V0ZXJI
VE1MIChDb3B5IEhUTUwpLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRE9NLmdldE91dGVy
SFRNTAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEdldE91dGVySFRNTAorRHVtcGluZyBvdXRlckhU
TUwgZm9yIGVsZW1lbnQgZGl2I3g6Cis8ZGl2IGlkPSJ4IiBzdHlsZT0iZGlzcGxheTpub25lIj4K
KyAgICA8aDE+QSBUaXRsZTwvaDE+CisgICAgPHA+QSBQYXJhZ3JhcGg8L3A+Cis8L2Rpdj4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRPdXRlckhUTUwuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBmOTMwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwKQEAgLTAsMCArMSw0MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJET00uZ2V0T3V0ZXJIVE1MIik7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJHZXRPdXRlckhUTUwiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkdldCB0aGUgT3V0ZXJIVE1MIG9mIHRoZSB0YXJnZXQgZWxlbWVudC4iLAorICAgICAg
ICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewor
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9y
KGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJ
ZChub2RlSWQpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21O
b2RlLCAiRE9NTm9kZSBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgZG9tTm9kZS5nZXRP
dXRlckhUTUwoZnVuY3Rpb24oZXJyb3IsIG91dGVySFRNTCkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEdW1waW5nIG91dGVySFRNTCBmb3IgZWxlbWVu
dCBkaXYjeDoiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG91
dGVySFRNTCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVz
dCBmb3IgRE9NLmdldE91dGVySFRNTCAoQ29weSBIVE1MKS48L3A+CisKKzxkaXYgaWQ9IngiIHN0
eWxlPSJkaXNwbGF5Om5vbmUiPgorICAgIDxoMT5BIFRpdGxlPC9oMT4KKyAgICA8cD5BIFBhcmFn
cmFwaDwvcD4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tL3NldE91dGVySFRNTC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZG9tL3NldE91dGVySFRNTC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMjFjMDlkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1MLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1
IEBACitUZXN0IGZvciBET00uc2V0T3V0ZXJIVE1MIChFZGl0IGFzIEhUTUwpLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRE9NLnNldE91dGVySFRNTAorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IE91dGVySFRNTEJlZm9yZQorPGRpdiBpZD0ieCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CisgICAg
PGgxPk9yaWdpbmFsIFRpdGxlPC9oMT4KKyAgICA8cD5PcmlnaW5hbCBQYXJhZ3JhcGg8L3A+Cis8
L2Rpdj4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNldE91dGVySFRNTFJlbW92aW5nRWxlbWVu
dHMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVja091dGVySFRNTEFmdGVyUmVtb3ZpbmdFbGVt
ZW50cworUEFTUzogVGhlIG91dGVySFRNTCBzaG91bGQgYmUgd2hhdCB3YXMganVzdCBzZXQuCis8
ZGl2IGlkPSJ4Ij48L2Rpdj4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNldE91dGVySFRNTEFk
ZGluZ0VsZW1lbnRzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ2hlY2tPdXRlckhUTUxBZnRlckFk
ZGluZ0VsZW1lbnRzCitQQVNTOiBUaGUgb3V0ZXJIVE1MIHNob3VsZCBiZSB3aGF0IHdhcyBqdXN0
IHNldC4KKzxkaXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IGNvbG9yOnJlZCI+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGgxPkEgVGl0bGU8L2gxPgorICAgICAg
ICA8cD5BIFBhcmFncmFwaDwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogU2V0T3V0ZXJIVE1MTW9kaWZ5aW5nRWxlbWVudHMKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDaGVja091dGVySFRNTEFmdGVyTW9kaWZ5aW5nRWxlbWVudHMKK1BBU1M6IFRoZSBvdXRl
ckhUTUwgc2hvdWxkIGJlIHdoYXQgd2FzIGp1c3Qgc2V0LgorPGRpdiBpZD0ieCIgc3R5bGU9ImRp
c3BsYXk6bm9uZTsgY29sb3I6cmVkIj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8aDE+QSBEaWZmZXJlbnQgVGl0bGU8L2gxPgorICAgICAgICA8cD5BIFBhcmFncmFwaDwv
cD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tL3NldE91dGVySFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRP
dXRlckhUTUwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWM2ZmZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRPdXRlckhU
TUwuaHRtbApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBsZXQgZG9tTm9kZTsKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIkRPTS5zZXRPdXRlckhUTUwiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIk91dGVySFRNTEJlZm9yZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9n
IHRoZSBpbml0aWFsIG91dGVySFRNTCBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQuIiwKKyAgICAgICAg
dGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgZG9tTm9kZS5nZXRPdXRl
ckhUTUwoZnVuY3Rpb24oZXJyb3IsIG91dGVySFRNTCkgeworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm9FcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2cob3V0ZXJIVE1MKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgY29uc3QgZW1wdHlPdXRlckhUTUwg
PSBgPGRpdiBpZD0ieCI+PC9kaXY+YDsKKworICAgIGNvbnN0IG5ld091dGVySFRNTCA9IGAKKzxk
aXYgaWQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IGNvbG9yOnJlZCI+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgICAgPGgxPkEgVGl0bGU8L2gxPgorICAgICAgICA8cD5BIFBh
cmFncmFwaDwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PmAudHJpbSgpOworCisgICAgY29uc3QgbW9k
aWZpZWRPdXRlckhUTUwgPSBgCis8ZGl2IGlkPSJ4IiBzdHlsZT0iZGlzcGxheTpub25lOyBjb2xv
cjpyZWQiPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxoMT5BIERpZmZl
cmVudCBUaXRsZTwvaDE+CisgICAgICAgIDxwPkEgUGFyYWdyYXBoPC9wPgorICAgIDwvZGl2Pgor
PC9kaXY+YC50cmltKCk7CisKKyAgICBsZXQgc3RlcHMgPSBbCisgICAgICAgIFsiUmVtb3ZpbmdF
bGVtZW50cyIsIGVtcHR5T3V0ZXJIVE1MXSwKKyAgICAgICAgWyJBZGRpbmdFbGVtZW50cyIsIG5l
d091dGVySFRNTF0sCisgICAgICAgIFsiTW9kaWZ5aW5nRWxlbWVudHMiLCBtb2RpZmllZE91dGVy
SFRNTF0sCisgICAgXTsKKworICAgIHN0ZXBzLmZvckVhY2goZnVuY3Rpb24odHVwbGUpIHsKKyAg
ICAgICAgbGV0IFt0aXRsZSwgcmVwbGFjZW1lbnRPdXRlckhUTUxdID0gdHVwbGU7CisgICAgICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWU6IGBTZXRPdXRlckhUTUwke3Rp
dGxlfWAsCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoYW5nZSB0aGUgb3V0ZXJIVE1MLiIs
CisgICAgICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAg
ICAgZG9tTm9kZS5zZXRPdXRlckhUTUwocmVwbGFjZW1lbnRPdXRlckhUTUwsIGZ1bmN0aW9uKGVy
cm9yLCBvdXRlckhUTUwpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3ROb0Vycm9yKGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiBgQ2hlY2tPdXRlckhUTUxBZnRlciR7
dGl0bGV9YCwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9nIHRoZSBvdXRlckhUTUwgb2Yg
dGhlIHRhcmdldCBlbGVtZW50IGFmdGVyIGNoYW5nZXMuIiwKKyAgICAgICAgICAgIHRlc3Q6IChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBkb21Ob2RlLmdldE91dGVySFRN
TChmdW5jdGlvbihlcnJvciwgb3V0ZXJIVE1MKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0Tm9FcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChvdXRlckhUTUwgPT09IHJlcGxhY2VtZW50T3V0ZXJIVE1MLCAi
VGhlIG91dGVySFRNTCBzaG91bGQgYmUgd2hhdCB3YXMganVzdCBzZXQuIik7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG91dGVySFRNTCk7CisgICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVz
dERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjeCIsIGZ1bmN0
aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGRvbU5vZGUsICJET01Ob2RlIGV4aXN0cy4iKTsKKyAgICAgICAgICAgIHN1aXRlLnJ1blRl
c3RDYXNlc0FuZEZpbmlzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3QgZm9yIERPTS5z
ZXRPdXRlckhUTUwgKEVkaXQgYXMgSFRNTCkuPC9wPgorCis8ZGl2IGlkPSJ4IiBzdHlsZT0iZGlz
cGxheTpub25lIj4KKyAgICA8aDE+T3JpZ2luYWwgVGl0bGU8L2gxPgorICAgIDxwPk9yaWdpbmFs
IFBhcmFncmFwaDwvcD4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTZlNzY3Ni4uMGZmMjEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA4LTIx
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUkVHUkVTU0lPTigxNzM2ODQpOiBFZGl0IGFzIEhUTUwgbm90IHdvcmtpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODI2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0
b3IvZG9tL2dldE91dGVySFRNTC5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZG9tL3Nl
dE91dGVySFRNTC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVBhdGNoU3VwcG9ydDo6aW5uZXJQYXRjaENoaWxkcmVu
KToKKyAgICAgICAgUmV2ZXJ0IHRoZSBvcHRpbWl6YXRpb24gY2hhbmdlIG1hZGUgaW4gcjE3MzY4
NC4gVGhlIG9wdGltaXphdGlvbiBjaGFuZ2VzCisgICAgICAgIGhhZCBhIGZldyBpc3N1ZXMuIEl0
IGNoYW5nZWQgdGhlIGxvZ2ljIHRvIHBvdGVudGlhbGx5IGRyb3Agb3V0IG9mIHRoZQorICAgICAg
ICBsb29wIGJlZm9yZSBhbGwgbmV3IGl0ZW1zIHdlcmUgcHJvY2Vzc2VkIGFuZCB1c2luZyBhIG5v
ZGUgcmVmZXJlbmNlCisgICAgICAgIHRvIHRyYWNrIGFuIGluZGV4IGRpZCBub3QgYWNjb3VudCBm
b3IgdGhlIG1vZGlmaWNhdGlvbnMgaW5zZXJ0QmVmb3JlCisgICAgICAgIG1heSBoYXZlIG1hZGUg
dG8gdGhhdCBub2RlJ3MgaW5kZXggaW4gdGhlIGxpc3QuCisKIDIwMTUtMDgtMjAgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGlPUyBi
dWlsZCBhZnRlciByMTg4NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1
cHBvcnQuY3BwCmluZGV4IGExOWVlODYuLmM3ODJiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCkBAIC0zNDIsNyArMzQyLDcgQEAgYm9vbCBET01Q
YXRjaFN1cHBvcnQ6OmlubmVyUGF0Y2hDaGlsZHJlbihDb250YWluZXJOb2RlKiBwYXJlbnROb2Rl
LCBjb25zdCBWZWN0b3IKICAgICB9CiAKICAgICAvLyBNYXJrIHJldGFpbmVkIG5vZGVzIGFzIHVz
ZWQsIGRvIG5vdCByZXVzZSBub2RlIG1vcmUgdGhhbiBvbmNlLgotICAgIEhhc2hTZXQ8c2l6ZV90
LCBXVEY6OkludEhhc2g8c2l6ZV90PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czxzaXplX3Q+PiAgdXNlZE9sZE9yZGluYWxzOworICAgIEhhc2hTZXQ8c2l6ZV90LCBXVEY6Oklu
dEhhc2g8c2l6ZV90PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+
PiB1c2VkT2xkT3JkaW5hbHM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuZXdMaXN0LnNp
emUoKTsgKytpKSB7CiAgICAgICAgIGlmICghbmV3TWFwW2ldLmZpcnN0KQogICAgICAgICAgICAg
Y29udGludWU7CkBAIC0zNzQsMTEgKzM3NCwxMCBAQCBib29sIERPTVBhdGNoU3VwcG9ydDo6aW5u
ZXJQYXRjaENoaWxkcmVuKENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUsIGNvbnN0IFZlY3Rvcgog
ICAgIH0KIAogICAgIC8vIDMuIEluc2VydCBtaXNzaW5nIG5vZGVzLgotICAgIE5vZGUqIG5vZGUg
PSBwYXJlbnROb2RlLT5maXJzdENoaWxkKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgbm9k
ZSAmJiBpIDwgbmV3TWFwLnNpemUoKTsgKytpLCBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkg
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3TWFwLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIGlmIChuZXdNYXBbaV0uZmlyc3QgfHwgbWVyZ2VzLmNvbnRhaW5zKG5ld0xpc3RbaV0uZ2V0
KCkpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghaW5zZXJ0QmVmb3JlQW5k
TWFya0FzVXNlZChwYXJlbnROb2RlLCBuZXdMaXN0W2ldLmdldCgpLCBub2RlLCBlYykpCisgICAg
ICAgIGlmICghaW5zZXJ0QmVmb3JlQW5kTWFya0FzVXNlZChwYXJlbnROb2RlLCBuZXdMaXN0W2ld
LmdldCgpLCBwYXJlbnROb2RlLT50cmF2ZXJzZVRvQ2hpbGRBdChpKSwgZWMpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>