<?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>110037</bug_id>
          
          <creation_ts>2013-02-16 15:47:16 -0800</creation_ts>
          <short_desc>Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.</short_desc>
          <delta_ts>2013-02-20 01:56:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103299</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834860</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:47:16 -0800</bug_when>
    <thetext>While addressing https://bugs.webkit.org/show_bug.cgi?id=109939, we discovered that we&apos;re avoiding targeting mouse events to text nodes in a way that can cause problems when coupled with shadow dom. Rather than grabbing a node&apos;s parentNode() directly for use in an event, we should be using AncestorChainWalker to grab the nearest targetable parent node.

This effects EventHandler::handleMouseDraggedEvent, EventHandler::updateDragAndDrop, closestScrollableNodeCandidate, and EventHandler::handleTouchEvent at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834866</commentid>
    <comment_count>1</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:51:50 -0800</bug_when>
    <thetext>CCing Hayato-san, who is apparently doing related work in https://bugs.webkit.org/show_bug.cgi?id=107796. Hello!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834871</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 15:57:21 -0800</bug_when>
    <thetext>Details, from dglazkov@ in https://bugs.webkit.org/show_bug.cgi?id=109939#c27:

---

Consider this scenario:

1) a shadow tree is hosted by element A
2) element A has a child text node B
3) shadow tree has an insertion point
4) B is distributed into this insertion point.

If you need more background on the terminology/plumbing, seek knowledge here: https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#dfn-distribution

If we just use B&apos;s parent as initial target, it will be impossible for an event listener inside the shadow tree to ever hear this event. That seems bad. Thus, we should use AncestorChainWalker.

As a rule of thumb, AncestorChainWalker will do the right thing for any ancestor traversal related to events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834875</commentid>
    <comment_count>3</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-16 16:05:07 -0800</bug_when>
    <thetext>Perhaps we should teach HitTestResult to return an &quot;eventTargetableNode&quot; (or something better named) alongside it&apos;s current &quot;innerNode&quot;? That would mean that that EventHandler wouldn&apos;t need to know about ancestors or chains, and we&apos;d be able to reuse the targeting logic if we need it elsewhere.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835217</commentid>
    <comment_count>4</comment_count>
      <attachid>188818</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 01:24:52 -0800</bug_when>
    <thetext>Created attachment 188818
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835218</commentid>
    <comment_count>5</comment_count>
      <attachid>188818</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 01:26:41 -0800</bug_when>
    <thetext>Comment on attachment 188818
WIP

Clearing r?, this is a WIP patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835220</commentid>
    <comment_count>6</comment_count>
      <attachid>188818</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 01:28:43 -0800</bug_when>
    <thetext>Comment on attachment 188818
WIP

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

Please update this. We have a test.

&gt; Source/WebCore/page/EventHandler.cpp:263
&gt; +    // Events targeting text nodes should dispatch on their parent node
&gt; +    // (rdar://4196646). This is complicated a bit by Shadow DOM goodness,
&gt; +    // so we&apos;ll need to walk the ancestor chain rather than grabbing the
&gt; +    // Node&apos;s parentNode() directly.

You can probably fit all of this comment in two lines.
Also, it’s not great add a comment like this when we can instead rename the function to convey the reason.
e.g. retargetTextNodeEventsToParentConsideringShadowDOM

Furthermore, “Shadow DOM goodness” is extremely vague. Please elaborate it in the change log and
the function name should also convey the semantics. And that should eliminate the need for the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835295</commentid>
    <comment_count>7</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-18 03:05:02 -0800</bug_when>
    <thetext>As we chatted in #webkit, the layout test in the patch does not output the expected behavior.
Let me debug this tomorrow.

(In reply to comment #5)
&gt; (From update of attachment 188818 [details])
&gt; Clearing r?, this is a WIP patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835356</commentid>
    <comment_count>8</comment_count>
      <attachid>188854</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 04:57:41 -0800</bug_when>
    <thetext>Created attachment 188854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835627</commentid>
    <comment_count>9</comment_count>
      <attachid>188854</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-18 11:01:10 -0800</bug_when>
    <thetext>Comment on attachment 188854
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:255
&gt; +static inline Node* retargetTextNodeEventsToParentOrShadowHost(Node* node)

This isn&apos;t really retargeting the event itself. It&apos;s returning a new node that will be used at the new target. How about nonTextNodeParentOrShadowHost? I&apos;m not thrilled with that name either, but it&apos;s the best I can think of at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835633</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 11:04:47 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 188854 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188854&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:255
&gt; &gt; +static inline Node* retargetTextNodeEventsToParentOrShadowHost(Node* node)
&gt; 
&gt; This isn&apos;t really retargeting the event itself. It&apos;s returning a new node that will be used at the new target. How about nonTextNodeParentOrShadowHost? I&apos;m not thrilled with that name either, but it&apos;s the best I can think of at the moment.

parentOrShadowHostElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835656</commentid>
    <comment_count>11</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 11:34:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 188854 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188854&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:255
&gt; &gt; +static inline Node* retargetTextNodeEventsToParentOrShadowHost(Node* node)
&gt; 
&gt; This isn&apos;t really retargeting the event itself. It&apos;s returning a new node that will be used at the new target. How about nonTextNodeParentOrShadowHost? I&apos;m not thrilled with that name either, but it&apos;s the best I can think of at the moment.

Would you accept the name if it described a method that actually modified the given Node* rather than returning a new Node*? I think the word &quot;retarget&quot; is fairly critical in understanding what&apos;s going on.

&quot;parentOrShadowHostElement&quot; also describes what we&apos;re getting, but doesn&apos;t really explain to any extent why we&apos;re doing it.

*shrug* This was the shortest descriptive name I could come up with. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835669</commentid>
    <comment_count>12</comment_count>
      <attachid>188854</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 12:02:44 -0800</bug_when>
    <thetext>Comment on attachment 188854
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:260
&gt; +    AncestorChainWalker walker(node);

The problem is the name of this obnoxious class.
It&apos;s not obvious at all why AncestorChainWalker(node).parent() would never return a node other than node-&gt;parent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835675</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 12:09:46 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 188854 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188854&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:260
&gt; &gt; +    AncestorChainWalker walker(node);
&gt; 
&gt; The problem is the name of this obnoxious class.
&gt; It&apos;s not obvious at all why AncestorChainWalker(node).parent() would never return a node other than node-&gt;parent().

I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=110146 to track this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835677</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 12:10:51 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Would you accept the name if it described a method that actually modified the given Node* rather than returning a new Node*? I think the word &quot;retarget&quot; is fairly critical in understanding what&apos;s going on.
&gt; 
&gt; &quot;parentOrShadowHostElement&quot; also describes what we&apos;re getting, but doesn&apos;t really explain to any extent why we&apos;re doing it.

parentNodeCrossingInsertionPointIfNeeded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835679</commentid>
    <comment_count>15</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 12:13:27 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #11)
&gt; &gt; Would you accept the name if it described a method that actually modified the given Node* rather than returning a new Node*? I think the word &quot;retarget&quot; is fairly critical in understanding what&apos;s going on.
&gt; &gt; 
&gt; &gt; &quot;parentOrShadowHostElement&quot; also describes what we&apos;re getting, but doesn&apos;t really explain to any extent why we&apos;re doing it.
&gt; 
&gt; parentNodeCrossingInsertionPointIfNeeded.

You don&apos;t need the parent node unless you&apos;re targeting a text node. If the method name doesn&apos;t tell you that somehow, why would you call it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835682</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 12:16:32 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Would you accept the name if it described a method that actually modified the given Node* rather than returning a new Node*? I think the word &quot;retarget&quot; is fairly critical in understanding what&apos;s going on.
&gt; &gt; &gt; 
&gt; &gt; &gt; &quot;parentOrShadowHostElement&quot; also describes what we&apos;re getting, but doesn&apos;t really explain to any extent why we&apos;re doing it.
&gt; &gt; 
&gt; &gt; parentNodeCrossingInsertionPointIfNeeded.
&gt; 
&gt; You don&apos;t need the parent node unless you&apos;re targeting a text node. If the method name doesn&apos;t tell you that somehow, why would you call it?

parentCrossingInsertionPointIfNotTextNode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835711</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 13:12:05 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; You don&apos;t need the parent node unless you&apos;re targeting a text node. If the method name doesn&apos;t tell you that somehow, why would you call it?
&gt; 
&gt; parentCrossingInsertionPointIfNotTextNode?

Again, this method only has an effect if the current target _is_ a text node. I&apos;d like to end up with a name that makes it clear that (a) this method should be called when dealing with events that target a node, (b) this method only has an effect when the current target is a text node, and (c) that effect is to change the event&apos;s target to the node&apos;s insertion point&apos;s parent (or something like that).

Alternatively, we could name it something more generic, and add a descriptive comment. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835726</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 13:37:03 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; &gt; You don&apos;t need the parent node unless you&apos;re targeting a text node. If the method name doesn&apos;t tell you that somehow, why would you call it?
&gt; &gt; 
&gt; &gt; parentCrossingInsertionPointIfNotTextNode?
&gt; 
&gt; Again, this method only has an effect if the current target _is_ a text node. I&apos;d like to end up with a name that makes it clear that (a) this method should be called when dealing with events that target a node, (b) this method only has an effect when the current target is a text node, and (c) that effect is to change the event&apos;s target to the node&apos;s insertion point&apos;s parent (or something like that).

nonTextNodeAncestorCrossingInsertionPointIfNeeded.

&gt; Alternatively, we could name it something more generic, and add a descriptive comment. :)

Please don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835953</commentid>
    <comment_count>19</comment_count>
      <attachid>188854</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 22:16:23 -0800</bug_when>
    <thetext>Comment on attachment 188854
Patch

Attachment 188854 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16617487

New failing tests:
fast/forms/datalist/update-range-with-datalist.html
fast/dom/shadow/shadow-dom-event-dispatching-text-node-in-shadow-root.html
fast/dom/shadow/shadow-dom-event-dispatching-distributed-text-node.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836047</commentid>
    <comment_count>20</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-18 23:55:03 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 188854 [details])
&gt; Attachment 188854 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/16617487
&gt; 
&gt; New failing tests:
&gt; fast/forms/datalist/update-range-with-datalist.html
&gt; fast/dom/shadow/shadow-dom-event-dispatching-text-node-in-shadow-root.html
&gt; fast/dom/shadow/shadow-dom-event-dispatching-distributed-text-node.html

Ugh. I changed the tests, but didn&apos;t rebaseline them. :)

Regarding the name, how about a different direction: findNearestEventTargetableNode? That drops some of the detail, but has the advantage of sounding like something you&apos;d want to do.

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836512</commentid>
    <comment_count>21</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-19 10:12:59 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Regarding the name, how about a different direction: findNearestEventTargetableNode? That drops some of the detail, but has the advantage of sounding like something you&apos;d want to do.
&gt; 
&gt; WDYT?

Works for me. Better than the other suggested names so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836532</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-19 10:40:46 -0800</bug_when>
    <thetext>Now that we have https://bugs.webkit.org/show_bug.cgi?id=110146, we probably don&apos;t need a function for it:
if (node &amp;&amp; node-&gt;isTextNode())
    node = EventPathWalker.parent(node);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836536</commentid>
    <comment_count>23</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-19 10:43:02 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Now that we have https://bugs.webkit.org/show_bug.cgi?id=110146, we probably don&apos;t need a function for it:
&gt; if (node &amp;&amp; node-&gt;isTextNode())
&gt;     node = EventPathWalker.parent(node);

Makes sense to me. I&apos;ll wait till that refactoring lands, then update this patch to fix the places where it&apos;s not being used. Thanks for the heads up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837082</commentid>
    <comment_count>24</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-19 20:00:09 -0800</bug_when>
    <thetext>I&apos;ve just landed the patch in https://bugs.webkit.org/show_bug.cgi?id=110146.
I think we should also rename the title of this bug.

(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; Now that we have https://bugs.webkit.org/show_bug.cgi?id=110146, we probably don&apos;t need a function for it:
&gt; &gt; if (node &amp;&amp; node-&gt;isTextNode())
&gt; &gt;     node = EventPathWalker.parent(node);
&gt; 
&gt; Makes sense to me. I&apos;ll wait till that refactoring lands, then update this patch to fix the places where it&apos;s not being used. Thanks for the heads up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837083</commentid>
    <comment_count>25</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-19 20:01:21 -0800</bug_when>
    <thetext>I&apos;ve renamed the title.

(In reply to comment #24)
&gt; I&apos;ve just landed the patch in https://bugs.webkit.org/show_bug.cgi?id=110146.
&gt; I think we should also rename the title of this bug.
&gt; 
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; Now that we have https://bugs.webkit.org/show_bug.cgi?id=110146, we probably don&apos;t need a function for it:
&gt; &gt; &gt; if (node &amp;&amp; node-&gt;isTextNode())
&gt; &gt; &gt;     node = EventPathWalker.parent(node);
&gt; &gt; 
&gt; &gt; Makes sense to me. I&apos;ll wait till that refactoring lands, then update this patch to fix the places where it&apos;s not being used. Thanks for the heads up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837236</commentid>
    <comment_count>26</comment_count>
      <attachid>189260</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-20 00:20:59 -0800</bug_when>
    <thetext>Created attachment 189260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837247</commentid>
    <comment_count>27</comment_count>
      <attachid>189260</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-20 01:22:23 -0800</bug_when>
    <thetext>Comment on attachment 189260
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:711
&gt; +        renderer = parent ? parent-&gt;renderer() : 0;

I would have preferred to see an early return when parent was 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837250</commentid>
    <comment_count>28</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-20 01:24:24 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 189260 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189260&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:711
&gt; &gt; +        renderer = parent ? parent-&gt;renderer() : 0;
&gt; 
&gt; I would have preferred to see an early return when parent was 0.

I&apos;ll make that change before landing. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837254</commentid>
    <comment_count>29</comment_count>
      <attachid>189264</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-20 01:26:52 -0800</bug_when>
    <thetext>Created attachment 189264
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837262</commentid>
    <comment_count>30</comment_count>
      <attachid>189264</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 01:44:53 -0800</bug_when>
    <thetext>Comment on attachment 189264
Patch for landing

Clearing flags on attachment: 189264

Committed r143439: &lt;http://trac.webkit.org/changeset/143439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837263</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 01:44:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837271</commentid>
    <comment_count>32</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-20 01:56:38 -0800</bug_when>
    <thetext>Thank you for fixing this!

(In reply to comment #31)
&gt; All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188818</attachid>
            <date>2013-02-18 01:24:52 -0800</date>
            <delta_ts>2013-02-18 04:57:35 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-110037-20130218102114.patch</filename>
            <type>text/plain</type>
            <size>7645</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NTEwODJmNWExMzJh
NTA3MmJiOTNiNjIwOTk2ZGI2N2VjMWZhYy4uMTZmOThmZmY5NzhlNjlmOTY1Yzg0YTQ2YzE5YzA1
MTliZTZjMGU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTE4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNlIEFuY2VzdG9yQ2hhaW5X
YWxrZXIgcmF0aGVyIHRoYW4gcGFyZW50Tm9kZSgpIHRvIG5vcm1hbGl6ZSBldmVudCB0YXJnZXRz
IGluIEV2ZW50SGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDAzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmV0YXJnZXRUZXh0Tm9kZUV2ZW50c1RvUGFy
ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVw
ZGF0ZU1vdXNlRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQpOgorCiAyMDEzLTAyLTE1ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0
YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBQcm9m
aWxlc1BhbmVsRGVzY3JpcHRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCAzYmFjNGYyMDkwMTFkNDgwYmJhOWQ5MGM0YWRmYTcxOWFmZjgxM2FjLi42ZTc1YWQwMzY2MTRh
NDEyYjlhN2RmNTZmNWUxMDRjNjQwODEyNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0yNTIsNiArMjUyLDIwIEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorc3RhdGlj
IGlubGluZSBOb2RlKiByZXRhcmdldFRleHROb2RlRXZlbnRzVG9QYXJlbnQoTm9kZSogbm9kZSkK
K3sKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgcmV0dXJu
IG5vZGU7CisKKyAgICAvLyBFdmVudHMgdGFyZ2V0aW5nIHRleHQgbm9kZXMgc2hvdWxkIGRpc3Bh
dGNoIG9uIHRoZWlyIHBhcmVudCBub2RlCisgICAgLy8gKHJkYXI6Ly80MTk2NjQ2KS4gVGhpcyBp
cyBjb21wbGljYXRlZCBhIGJpdCBieSBTaGFkb3cgRE9NIGdvb2RuZXNzLAorICAgIC8vIHNvIHdl
J2xsIG5lZWQgdG8gd2FsayB0aGUgYW5jZXN0b3IgY2hhaW4gcmF0aGVyIHRoYW4gZ3JhYmJpbmcg
dGhlCisgICAgLy8gTm9kZSdzIHBhcmVudE5vZGUoKSBkaXJlY3RseS4KKyAgICBBbmNlc3RvckNo
YWluV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIucGFyZW50KCk7CisgICAgcmV0dXJu
IHdhbGtlci5nZXQoKTsKK30KKwogc3RhdGljIGlubGluZSBTY3JvbGxHcmFudWxhcml0eSB3aGVl
bEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh1bnNpZ25lZCBkZWx0YU1vZGUpCiB7CiAg
ICAgc3dpdGNoIChkZWx0YU1vZGUpIHsKQEAgLTE5ODAsOCArMTk5NCw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
LCBDbGlwYm9hcmQqCiAKICAgICAvLyBEcmFnIGV2ZW50cyBzaG91bGQgbmV2ZXIgZ28gdG8gdGV4
dCBub2RlcyAoZm9sbG93aW5nIElFLCBhbmQgcHJvcGVyIG1vdXNlb3Zlci9vdXQgZGlzcGF0Y2gp
CiAgICAgUmVmUHRyPE5vZGU+IG5ld1RhcmdldCA9IG1ldi50YXJnZXROb2RlKCk7Ci0gICAgaWYg
KG5ld1RhcmdldCAmJiBuZXdUYXJnZXQtPmlzVGV4dE5vZGUoKSkKLSAgICAgICAgbmV3VGFyZ2V0
ID0gbmV3VGFyZ2V0LT5wYXJlbnROb2RlKCk7CisgICAgbmV3VGFyZ2V0ID0gcmV0YXJnZXRUZXh0
Tm9kZUV2ZW50c1RvUGFyZW50KG5ld1RhcmdldC5nZXQoKSk7CiAKICAgICBtX2F1dG9zY3JvbGxD
b250cm9sbGVyLT51cGRhdGVEcmFnQW5kRHJvcChuZXdUYXJnZXQuZ2V0KCksIGV2ZW50LnBvc2l0
aW9uKCksIGV2ZW50LnRpbWVzdGFtcCgpKTsKIApAQCAtMjExNywxNCArMjEzMCw4IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShOb2RlKiB0YXJnZXROb2Rl
LCBjb25zdCBQbGF0Zm9ybU1vCiAgICAgLy8gSWYgd2UncmUgY2FwdHVyaW5nLCB3ZSBhbHdheXMg
Z28gcmlnaHQgdG8gdGhhdCBub2RlLgogICAgIGlmIChtX2NhcHR1cmluZ01vdXNlRXZlbnRzTm9k
ZSkKICAgICAgICAgcmVzdWx0ID0gbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUuZ2V0KCk7Ci0g
ICAgZWxzZSB7Ci0gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgbm9kZSBpcyBhIHRleHQgbm9kZSwg
ZGlzcGF0Y2ggb24gdGhlIHBhcmVudCBub2RlIC0gcmRhcjovLzQxOTY2NDYKLSAgICAgICAgaWYg
KHJlc3VsdCAmJiByZXN1bHQtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICAgICAgQW5jZXN0b3JD
aGFpbldhbGtlciB3YWxrZXIocmVzdWx0KTsKLSAgICAgICAgICAgIHdhbGtlci5wYXJlbnQoKTsK
LSAgICAgICAgICAgIHJlc3VsdCA9IHdhbGtlci5nZXQoKTsKLSAgICAgICAgfQotICAgIH0KKyAg
ICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHJldGFyZ2V0VGV4dE5vZGVFdmVudHNUb1BhcmVudChy
ZXN1bHQpOwogICAgIG1fbm9kZVVuZGVyTW91c2UgPSByZXN1bHQ7CiAjaWYgRU5BQkxFKFNWRykK
ICAgICBtX2luc3RhbmNlVW5kZXJNb3VzZSA9IGluc3RhbmNlQXNzb2NpYXRlZFdpdGhTaGFkb3dU
cmVlRWxlbWVudChyZXN1bHQpOwpAQCAtMjMzMCwxMiArMjMzNyw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICBi
b29sIHVzZUxhdGNoZWRXaGVlbEV2ZW50Tm9kZSA9IGUudXNlTGF0Y2hlZEV2ZW50Tm9kZSgpOwog
CiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKLSAgICAvLyBXaGVlbCBldmVu
dHMgc2hvdWxkIG5vdCBkaXNwYXRjaCB0byB0ZXh0IG5vZGVzLgotICAgIGlmIChub2RlICYmIG5v
ZGUtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICBBbmNlc3RvckNoYWluV2Fsa2VyIHdhbGtlcihu
b2RlKTsKLSAgICAgICAgd2Fsa2VyLnBhcmVudCgpOwotICAgICAgICBub2RlID0gd2Fsa2VyLmdl
dCgpOwotICAgIH0KKyAgICBub2RlID0gcmV0YXJnZXRUZXh0Tm9kZUV2ZW50c1RvUGFyZW50KG5v
ZGUpOwogCiAgICAgYm9vbCBpc092ZXJXaWRnZXQ7CiAgICAgaWYgKHVzZUxhdGNoZWRXaGVlbEV2
ZW50Tm9kZSkgewpAQCAtMzg3Myw5ICszODc1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAg
IE5vZGUqIG5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgICAgICAgICBBU1NFUlQobm9k
ZSk7CiAKLSAgICAgICAgICAgIC8vIFRvdWNoIGV2ZW50cyBzaG91bGQgbm90IGdvIHRvIHRleHQg
bm9kZXMKLSAgICAgICAgICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICAg
ICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAgICAgIG5vZGUgPSByZXRhcmdl
dFRleHROb2RlRXZlbnRzVG9QYXJlbnQobm9kZSk7CiAKICAgICAgICAgICAgIGlmIChJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmhhbmRsZVRvdWNoRXZlbnQobV9mcmFtZS0+cGFnZSgpLCBub2Rl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNWI1NGI5NTdlMmRiODEw
MDM0ODg3MjI0ZDlkZWZjZjY2N2EzZThjLi5mMWUwMjY1YTY1NWNiNDMzYTE1NzhmZDRhOWVmMTA1
MzE2ZDM4OWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDItMTggIE1pa2UgV2VzdCAg
PG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgQW5jZXN0b3JDaGFpbldhbGtlciBy
YXRoZXIgdGhhbiBwYXJlbnROb2RlKCkgdG8gbm9ybWFsaXplIGV2ZW50IHRhcmdldHMgaW4gRXZl
bnRIYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sOgor
CiAyMDEzLTAyLTE1ICBFdWdlbmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBQcm9maWxlc1BhbmVsRGVzY3JpcHRv
ci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2
ZW50LWRpc3BhdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCmluZGV4IGI2ZTMzMDYzZmFhZTFlNGE5ODk4YmJl
YjAzYjFjMDk3NDk0MjZiZTMuLjhhZmNmODhmZmIzZGU3ZDAyYzNhODg4YWJhY2Q1MGU4MmVlNGNl
ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2
ZW50LWRpc3BhdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbApAQCAtMjcsNiArMjcsMTAgQEAgZnVuY3Rp
b24gbW92ZU1vdXNlT3ZlcihlbGVtZW50KQogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgs
IHkpOwogfQogCitmdW5jdGlvbiBzY3JvbGxNb3VzZXdoZWVsKCkgeworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnkoMCwxMjApOworfQorCiB2YXIgZXZlbnRSZWNvcmRzID0ge307CiAKIGZ1
bmN0aW9uIGNsZWFyRXZlbnRSZWNvcmRzKCkKQEAgLTg5LDYgKzkzLDcgQEAgZnVuY3Rpb24gYWRk
RXZlbnRMaXN0ZW5lcnMobm9kZXMpCiAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91
c2VvdmVyJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKICAgICAgICAgbm9kZS5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW91dCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgICAgIG5vZGUuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgICBub2RlLmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCByZWNvcmRFdmVudCwgZmFsc2UpOwogICAgICAg
ICAvLyA8Y29udGVudD4gbWlnaHQgYmUgYW4gaW5hY3RpdmUgaW5zZXJ0aW9uIHBvaW50LCBzbyBz
dHlsZSBpdCBhbHNvLgogICAgICAgICBpZiAobm9kZS50YWdOYW1lID09ICdESVYnIHx8IG5vZGUu
dGFnTmFtZSA9PSAnREVUQUlMUycgfHwgbm9kZS50YWdOYW1lID09ICdTVU1NQVJZJyB8fCBub2Rl
LnRhZ05hbWUgPT0gJ0NPTlRFTlQnKQogICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3N0
eWxlJywgJ3BhZGRpbmctdG9wOiAnICsgZGVmYXVsdFBhZGRpbmdTaXplICsgJ3B4OycpOwpAQCAt
MjczLDkgKzI3OCwzOSBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzT25EaXN0cmlidXRlZFRleHROb2Rl
KCkKICAgICBkZWJ1ZygnXG4nICsgJ01vdmluZyBtb3VzZSBmcm9tIGEgZGlzdHJpYnV0ZWQgdGV4
dCBub2RlIHRvIHRvcCcpOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogICAg
IGNsZWFyRXZlbnRSZWNvcmRzKCk7CisgICAgc2Nyb2xsTW91c2V3aGVlbCgpOworICAgIG1vdmVN
b3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpKTsKKyAgICBkZWJ1Z0Rpc3Bh
dGNoZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2Vv
dmVyJyk7CisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNld2hlZWwnKTsKK30KKworZnVu
Y3Rpb24gdGVzdEV2ZW50c09uRGlzdHJpYnV0ZWRUZXh0Tm9kZSgpCit7CisgICAgLy8gTWFrZXMg
c3VyZSBhbiBpbnNlcnRpb24gcG9pbnQgY2FuIHJlY2VpdmUgYSBldmVudCB3aGVuIGEgZGlzdHJp
YnV0ZWQgdGV4dCBub2RlIGlzIGNsaWNrZWQuCisgICAgc2FuZGJveC5pbm5lckhUTUwgPSAnJzsK
KyAgICBzYW5kYm94LmFwcGVuZENoaWxkKAorICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAndG9wJ30sCisgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hh
ZG93LWhvc3QnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J2lkJzogJ2NvbnRlbnQnfSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdUZXh0IE5vZGUnKSkpKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QvJykuaWQgPSAnc2hhZG93LXJvb3Qn
OworICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ3NoYWRvdy1ob3N0JywgJ3NoYWRvdy1o
b3N0LycsICdzaGFkb3ctaG9zdC9jb250ZW50J10pOworICAgIHNob3dTYW5kYm94VHJlZSgpOwor
CisgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRleHQgbm9kZS4KKyAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOworICAgIHZh
ciB4ID0gaG9zdC5vZmZzZXRMZWZ0ICsgNTsKKyAgICB2YXIgeSA9IGhvc3Qub2Zmc2V0VG9wICsg
ZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKKyAgICBkZWJ1ZygnXG4nICsgJ01vdmluZyBtb3VzZSBm
cm9tIGEgZGlzdHJpYnV0ZWQgdGV4dCBub2RlIHRvIHRvcCcpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOworICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7CisgICAgc2Nyb2xsTW91
c2V3aGVlbCgpOwogICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rv
cCcpKTsKICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKICAgICBkZWJ1Z0Rp
c3BhdGNoZWRFdmVudCgnbW91c2VvdmVyJyk7CisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21v
dXNld2hlZWwnKTsKIH0KIAogZnVuY3Rpb24gdGVzdEV2ZW50c09uQ2hpbGRPZkluYWN0aXZlQ29u
dGVudCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188854</attachid>
            <date>2013-02-18 04:57:41 -0800</date>
            <delta_ts>2013-02-20 00:20:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110037-20130218135403.patch</filename>
            <type>text/plain</type>
            <size>10449</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIyZGEzNDQxZTY1YzZl
MGZmMGJkNzgxMzRiNGJmMTJkMDUxNDVkNS4uNzZjMGNmMzRiMzA2NDk3Y2ExZGI3ZWI3ZTEwY2Q4
ZDU1NDZjOWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTE4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNlIEFuY2VzdG9yQ2hhaW5X
YWxrZXIgcmF0aGVyIHRoYW4gcGFyZW50Tm9kZSgpIHRvIG5vcm1hbGl6ZSBldmVudCB0YXJnZXRz
IGluIEV2ZW50SGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDAzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIG5lZWQgdG8gdGVhY2ggRXZlbnRIYW5kbGVyIGFib3V0IFNoYWRvdyBET00g
aW4gYSBmZXcgcGxhY2VzIGluIG9yZGVyCisgICAgICAgIHRvIGVuc3VyZSB0aGF0IHdlIHByb3Bl
cmx5IHRhcmdldCBldmVudHMgZGlzcGF0Y2hlZCB1cG9uIHRleHQgbm9kZXMuCisgICAgICAgIFJh
dGhlciB0aGFuIG5haXZlbHkgZ3JhYmJpbmcgdGhlIHRleHQgbm9kZSdzIGRpcmVjdCBwYXJlbnQg
dmlhCisgICAgICAgIHBhcmVudE5vZGUoKSwgd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgY2Fz
ZSBpbiB3aGljaCB0aGUgdGV4dCBub2RlIGlzCisgICAgICAgIGRpc3RyaWJ1dGVkWzFdIHRvIGFu
IGluc2VydGlvbiBwb2ludCBpbnNpZGUgYSBzaGFkb3cgaG9zdC4KKyAgICAgICAgQW5jZXN0b3JD
aGFpbldhbGtlcjo6cGFyZW50IHVuZGVyc3RhbmRzIHRoZXNlIHJlbGF0aW9uc2hpcHMsIGFuZCBz
aG91bGQKKyAgICAgICAgYmUgdXNlZCB3aGVuIGRlYWxpbmcgd2l0aCBtb3VzZSwgZHJhZywgYW5k
IHRvdWNoIGV2ZW50cy4KKworICAgICAgICBbMV06IGh0dHA6Ly93d3cudzMub3JnL1RSL3NoYWRv
dy1kb20vI2Rmbi1kaXN0cmlidXRpb24KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJldGFyZ2V0VGV4dE5vZGVFdmVudHNUb1BhcmVudE9yU2hh
ZG93SG9zdCk6CisgICAgICAgICAgICBFeHRyYWN0IHRoZSBtaW5pbWFsIEFuY2VzdG9yQ2hhaW5X
YWxrZXIgbG9naWMgb3V0IGludG8gYSBzdGF0aWMKKyAgICAgICAgICAgIG1ldGhvZCB3aXRoIGEg
ZGVzY3JpcHRpdmUgbmFtZSByYXRoZXIgdGhhbiByZXBlYXRpbmcgY29kZS4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZlbnRUYXJn
ZXROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQpOgor
ICAgICAgICAgICAgUmVmYWN0b3IgdGhlIEFuY2VzdG9yQ2hhaW5XYWxrZXIgYW5kIHBhcmVudE5v
ZGUgY2FsbHNpdGVzIHRvIHVzZQorICAgICAgICAgICAgdGhlIG5ld2x5IGNyZWF0ZWQgbWV0aG9k
LgorCiAyMDEzLTAyLTE4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0
PgogCiAgICAgICAgIFtFRkxdW1dLMl0gY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vZml4ZWQt
cG9zaXRpb24tb3V0LW9mLXZpZXctc2NhbGVkLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCAzYmFjNGYyMDkwMTFkNDgwYmJhOWQ5MGM0YWRmYTcxOWFm
ZjgxM2FjLi5kYmVlMjVlMzBmNWQ3MzdjY2Q3N2YyMDQ5NTRhYzM4NDY3MTc2NzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNTIsNiArMjUyLDE2IEBAIHB1YmxpYzoK
IH07CiAjZW5kaWYKIAorc3RhdGljIGlubGluZSBOb2RlKiByZXRhcmdldFRleHROb2RlRXZlbnRz
VG9QYXJlbnRPclNoYWRvd0hvc3QoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIG5vZGU7CisKKyAgICBBbmNlc3RvckNo
YWluV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIucGFyZW50KCk7CisgICAgcmV0dXJu
IHdhbGtlci5nZXQoKTsKK30KKwogc3RhdGljIGlubGluZSBTY3JvbGxHcmFudWxhcml0eSB3aGVl
bEdyYW51bGFyaXR5VG9TY3JvbGxHcmFudWxhcml0eSh1bnNpZ25lZCBkZWx0YU1vZGUpCiB7CiAg
ICAgc3dpdGNoIChkZWx0YU1vZGUpIHsKQEAgLTE5ODAsOCArMTk5MCw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
LCBDbGlwYm9hcmQqCiAKICAgICAvLyBEcmFnIGV2ZW50cyBzaG91bGQgbmV2ZXIgZ28gdG8gdGV4
dCBub2RlcyAoZm9sbG93aW5nIElFLCBhbmQgcHJvcGVyIG1vdXNlb3Zlci9vdXQgZGlzcGF0Y2gp
CiAgICAgUmVmUHRyPE5vZGU+IG5ld1RhcmdldCA9IG1ldi50YXJnZXROb2RlKCk7Ci0gICAgaWYg
KG5ld1RhcmdldCAmJiBuZXdUYXJnZXQtPmlzVGV4dE5vZGUoKSkKLSAgICAgICAgbmV3VGFyZ2V0
ID0gbmV3VGFyZ2V0LT5wYXJlbnROb2RlKCk7CisgICAgbmV3VGFyZ2V0ID0gcmV0YXJnZXRUZXh0
Tm9kZUV2ZW50c1RvUGFyZW50T3JTaGFkb3dIb3N0KG5ld1RhcmdldC5nZXQoKSk7CiAKICAgICBt
X2F1dG9zY3JvbGxDb250cm9sbGVyLT51cGRhdGVEcmFnQW5kRHJvcChuZXdUYXJnZXQuZ2V0KCks
IGV2ZW50LnBvc2l0aW9uKCksIGV2ZW50LnRpbWVzdGFtcCgpKTsKIApAQCAtMjExNywxNCArMjEy
Niw4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZShOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBQbGF0Zm9ybU1vCiAgICAgLy8gSWYgd2UncmUgY2FwdHVyaW5n
LCB3ZSBhbHdheXMgZ28gcmlnaHQgdG8gdGhhdCBub2RlLgogICAgIGlmIChtX2NhcHR1cmluZ01v
dXNlRXZlbnRzTm9kZSkKICAgICAgICAgcmVzdWx0ID0gbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05v
ZGUuZ2V0KCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIElmIHRoZSB0YXJnZXQgbm9kZSBpcyBh
IHRleHQgbm9kZSwgZGlzcGF0Y2ggb24gdGhlIHBhcmVudCBub2RlIC0gcmRhcjovLzQxOTY2NDYK
LSAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICAg
ICAgQW5jZXN0b3JDaGFpbldhbGtlciB3YWxrZXIocmVzdWx0KTsKLSAgICAgICAgICAgIHdhbGtl
ci5wYXJlbnQoKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHdhbGtlci5nZXQoKTsKLSAgICAgICAg
fQotICAgIH0KKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHJldGFyZ2V0VGV4dE5vZGVFdmVu
dHNUb1BhcmVudE9yU2hhZG93SG9zdChyZXN1bHQpOwogICAgIG1fbm9kZVVuZGVyTW91c2UgPSBy
ZXN1bHQ7CiAjaWYgRU5BQkxFKFNWRykKICAgICBtX2luc3RhbmNlVW5kZXJNb3VzZSA9IGluc3Rh
bmNlQXNzb2NpYXRlZFdpdGhTaGFkb3dUcmVlRWxlbWVudChyZXN1bHQpOwpAQCAtMjMzMCwxMiAr
MjMzMyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZSkKICAgICBib29sIHVzZUxhdGNoZWRXaGVlbEV2ZW50Tm9kZSA9IGUu
dXNlTGF0Y2hlZEV2ZW50Tm9kZSgpOwogCiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5pbm5lck5v
ZGUoKTsKLSAgICAvLyBXaGVlbCBldmVudHMgc2hvdWxkIG5vdCBkaXNwYXRjaCB0byB0ZXh0IG5v
ZGVzLgotICAgIGlmIChub2RlICYmIG5vZGUtPmlzVGV4dE5vZGUoKSkgewotICAgICAgICBBbmNl
c3RvckNoYWluV2Fsa2VyIHdhbGtlcihub2RlKTsKLSAgICAgICAgd2Fsa2VyLnBhcmVudCgpOwot
ICAgICAgICBub2RlID0gd2Fsa2VyLmdldCgpOwotICAgIH0KKyAgICBub2RlID0gcmV0YXJnZXRU
ZXh0Tm9kZUV2ZW50c1RvUGFyZW50T3JTaGFkb3dIb3N0KG5vZGUpOwogCiAgICAgYm9vbCBpc092
ZXJXaWRnZXQ7CiAgICAgaWYgKHVzZUxhdGNoZWRXaGVlbEV2ZW50Tm9kZSkgewpAQCAtMzg3Myw5
ICszODcxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSByZXN1bHQu
aW5uZXJOb2RlKCk7CiAgICAgICAgICAgICBBU1NFUlQobm9kZSk7CiAKLSAgICAgICAgICAgIC8v
IFRvdWNoIGV2ZW50cyBzaG91bGQgbm90IGdvIHRvIHRleHQgbm9kZXMKLSAgICAgICAgICAgIGlm
IChub2RlLT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVu
dE5vZGUoKTsKKyAgICAgICAgICAgIG5vZGUgPSByZXRhcmdldFRleHROb2RlRXZlbnRzVG9QYXJl
bnRPclNoYWRvd0hvc3Qobm9kZSk7CiAKICAgICAgICAgICAgIGlmIChJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmhhbmRsZVRvdWNoRXZlbnQobV9mcmFtZS0+cGFnZSgpLCBub2RlKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MzQ2YmUwOTc2ODU1NzZkNzBkMDcxN2Jk
NzU0ZDQ4ZWU3ODg4ZGRmLi5mYTIzZjlmMjdiMjg3YTUxNWMyYjQxY2IzNzBlZTAyNDgwMTkyYjcz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDItMTggIE1pa2UgV2VzdCAgPG1rd3N0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBVc2UgQW5jZXN0b3JDaGFpbldhbGtlciByYXRoZXIgdGhh
biBwYXJlbnROb2RlKCkgdG8gbm9ybWFsaXplIGV2ZW50IHRhcmdldHMgaW4gRXZlbnRIYW5kbGVy
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzOgorICAgICAgICAoc2Ny
b2xsTW91c2VXaGVlbCk6CisgICAgICAgIChhZGRFdmVudExpc3RlbmVycyk6CisgICAgICAgICAg
ICBBZGQgTW91c2VXaGVlbCwgRHJhZywgYW5kIFRvdWNoIHN1cHBvcnQgdG8gdGhlIGV2ZW50LWRp
c3BhdGNoaW5nCisgICAgICAgICAgICB0ZXN0cyBpbiBTaGFkb3cgRE9NLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVkLXRl
eHQtbm9kZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50
LWRpc3BhdGNoaW5nLXRleHQtbm9kZS1pbi1zaGFkb3ctcm9vdC5odG1sOgorICAgICAgICAgICAg
U2Nyb2xsIHRoZSBtb3VzZSB3aGVlbCwgZHJhZyBhIGJpdCwgYW5kIHRvdWNoIGJlZm9yZSBsZWF2
aW5nIHRoZQorICAgICAgICAgICAgdGV4dCBub2RlLCBhbmQgcmVjb3JkIHRoZSBnZW5lcmF0ZWQg
ZXZlbnRzLgorCiAyMDEzLTAyLTE4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFtFRkxdW1dLMl0gY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24v
Zml4ZWQtcG9zaXRpb24tb3V0LW9mLXZpZXctc2NhbGVkLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hp
bmcuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3Bh
dGNoaW5nLmpzCmluZGV4IGI0ZmZmYmFmZmEyMjEzOGRlNmE5MWQwMjFhNzk3ZDZhM2IxZjk0NjQu
LmJhNzQxOWI5Njg5Yjk0ZTk1N2I1Yzk5Mzc1ZjgxZjQ0MGQ4N2RkMTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9ldmVudC1kaXNwYXRj
aGluZy5qcwpAQCAtMTYsNiArMTYsNDEgQEAgZnVuY3Rpb24gbW92ZU1vdXNlT3ZlcihlbGVtZW50
KQogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogfQogCitmdW5jdGlvbiB0b3Vj
aExvY2F0aW9uKG5vZGUpCit7CisgICAgdmFyIHggPSBub2RlLm9mZnNldExlZnQgKyA1OworICAg
IHZhciB5ID0gbm9kZS5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1NpemUgKyA1OworICAgIGV2
ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoeCwgeSk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFy
dCgpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZXZlbnRTZW5kZXIu
dG91Y2hFbmQoKTsKKyAgICBldmVudFNlbmRlci5jYW5jZWxUb3VjaFBvaW50KHgsIHkpOworfQor
CitmdW5jdGlvbiBzZWxlY3RUZXh0Tm9kZShub2RlKQoreworICAgIGdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQobm9kZSwgMCwgbm9kZSwgbm9kZS5sZW5ndGgpOworfQorCitmdW5jdGlv
biBkcmFnTW91c2Uobm9kZSkgeworICAgIHZhciB4ID0gbm9kZS5vZmZzZXRMZWZ0ICsgNTsKKyAg
ICB2YXIgeSA9IG5vZGUub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKKworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oeCArIDEwMCwgeSArIDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworfQorCitmdW5jdGlvbiBzY3Jv
bGxNb3VzZVdoZWVsKG5vZGUpIHsKKyAgICB2YXIgeCA9IG5vZGUub2Zmc2V0TGVmdCArIDU7Cisg
ICAgdmFyIHkgPSBub2RlLm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6ZSArIDU7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeSgwLCAxMjApOworfQorCiB2YXIgZXZlbnRSZWNvcmRzID0ge307CiAKIGZ1bmN0aW9uIGNs
ZWFyRXZlbnRSZWNvcmRzKCkKQEAgLTc1LDkgKzExMCwxMiBAQCBmdW5jdGlvbiBhZGRFdmVudExp
c3RlbmVycyhub2RlcykKIHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgIHZhciBub2RlID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5vZGVz
W2ldKTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCByZWNvcmRF
dmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0Jywg
cmVjb3JkRXZlbnQsIGZhbHNlKTsKICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcign
ZHJhZ3N0YXJ0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKKyAgICAgICAgbm9kZS5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW91dCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIG5vZGUuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKKyAgICAgICAg
bm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsK
KyAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcmVjb3JkRXZlbnQs
IGZhbHNlKTsKICAgICAgICAgLy8gPGNvbnRlbnQ+IG1pZ2h0IGJlIGFuIGluYWN0aXZlIGluc2Vy
dGlvbiBwb2ludCwgc28gc3R5bGUgaXQgYWxzby4KICAgICAgICAgaWYgKG5vZGUudGFnTmFtZSA9
PSAnRElWJyB8fCBub2RlLnRhZ05hbWUgPT0gJ0RFVEFJTFMnIHx8IG5vZGUudGFnTmFtZSA9PSAn
U1VNTUFSWScgfHwgbm9kZS50YWdOYW1lID09ICdDT05URU5UJykKICAgICAgICAgICAgIG5vZGUu
c2V0QXR0cmlidXRlKCdzdHlsZScsICdwYWRkaW5nLXRvcDogJyArIGRlZmF1bHRQYWRkaW5nU2l6
ZSArICdweDsnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlz
dHJpYnV0ZWQtdGV4dC1ub2RlLmh0bWwKaW5kZXggODM1Y2JiNTRlMjQ1ZjUyNWJjMDdlYWIwZjE3
N2RkZWJjZThjYjRiYS4uMjc1YWQ4NzRiZWZmMmM4ODhlMzAzMDk2ODE2MGNjODYyYzdhMzU0YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQt
dGV4dC1ub2RlLmh0bWwKQEAgLTMwLDkgKzMwLDE2IEBACiAgICAgICAgIGRlYnVnKCdcbicgKyAn
TW92aW5nIG1vdXNlIGZyb20gYSBkaXN0cmlidXRlZCB0ZXh0IG5vZGUgdG8gdG9wJyk7CiAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogICAgICAgICBjbGVhckV2ZW50UmVj
b3JkcygpOworCiAgICAgICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RvcCcpKTsKICAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0Jyk7CiAgICAg
ICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsKKworICAgICAgICB0b3VjaExv
Y2F0aW9uKGhvc3QpOworICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgndG91Y2hzdGFydCcp
OworCisgICAgICAgIHNjcm9sbE1vdXNlV2hlZWwoaG9zdCk7CisgICAgICAgIGRlYnVnRGlzcGF0
Y2hlZEV2ZW50KCdtb3VzZXdoZWVsJyk7CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWluLXNoYWRvdy1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4t
c2hhZG93LXJvb3QuaHRtbAppbmRleCA5OTc3NjI4ZGVmZTZiZmFlZjBmYzZhNGViMTkyZmRmZGI0
OGM4Y2UxLi4wMDVlZDVjZGJjNDlhNjVjMDM0MjMzNDE1NGYxNDgwZGFjZTY4M2U3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hh
ZG93LXJvb3QuaHRtbApAQCAtMjksOSArMjksMTYgQEAKICAgICAgICAgZGVidWcoJ1xuJyArICdN
b3ZpbmcgbW91c2UgZnJvbSBhIGRpcmVjdCBjaGlsZCB0ZXh0IG5vZGUgb2YgdGhlIHNoYWRvdyBy
b290IHRvIHRvcCcpOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKICAg
ICAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKwogICAgICAgICBtb3ZlTW91c2VPdmVyKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKSk7CiAgICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50
KCdtb3VzZW91dCcpOwogICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVyJyk7
CisKKyAgICAgICAgdG91Y2hMb2NhdGlvbihob3N0KTsKKyAgICAgICAgZGVidWdEaXNwYXRjaGVk
RXZlbnQoJ3RvdWNoc3RhcnQnKTsKKworICAgICAgICBzY3JvbGxNb3VzZVdoZWVsKGhvc3QpOwor
ICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2V3aGVlbCcpOwogICAgIDwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189260</attachid>
            <date>2013-02-20 00:20:59 -0800</date>
            <delta_ts>2013-02-20 01:26:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110037-20130220091720.patch</filename>
            <type>text/plain</type>
            <size>11325</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMjdlOGYzZDY5M2Zj
Zjk1N2MzMjdiZjAxZGQ1NDZiYWZjYWRhOC4uNjA3MWE5Y2Y1Zjg3Y2ZlYTMzYzQ4OTlmM2IwODIz
MDkxYWVmOTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAyLTE5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNlIEV2ZW50UGF0aFdhbGtl
ciByYXRoZXIgdGhhbiBwYXJlbnROb2RlKCkgdG8gbm9ybWFsaXplIGV2ZW50IHRhcmdldHMgaW4g
RXZlbnRIYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEwMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2UgbmVlZCB0byB0ZWFjaCBFdmVudEhhbmRsZXIgYWJvdXQgU2hhZG93IERPTSBpbiBh
IGZldyBwbGFjZXMgaW4gb3JkZXIKKyAgICAgICAgdG8gZW5zdXJlIHRoYXQgd2UgcHJvcGVybHkg
dGFyZ2V0IGV2ZW50cyBkaXNwYXRjaGVkIHVwb24gdGV4dCBub2Rlcy4KKyAgICAgICAgUmF0aGVy
IHRoYW4gbmFpdmVseSBncmFiYmluZyB0aGUgdGV4dCBub2RlJ3MgZGlyZWN0IHBhcmVudCB2aWEK
KyAgICAgICAgcGFyZW50Tm9kZSgpLCB3ZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoZSBjYXNlIGlu
IHdoaWNoIHRoZSB0ZXh0IG5vZGUgaXMKKyAgICAgICAgZGlzdHJpYnV0ZWRbMV0gdG8gYW4gaW5z
ZXJ0aW9uIHBvaW50IGluc2lkZSBhIHNoYWRvdyBob3N0LgorICAgICAgICBFdmVudFBhdGhXYWxr
ZXI6OnBhcmVudCB1bmRlcnN0YW5kcyB0aGVzZSByZWxhdGlvbnNoaXBzLCBhbmQgc2hvdWxkCisg
ICAgICAgIGJlIHVzZWQgd2hlbiBkZWFsaW5nIHdpdGggbW91c2UsIGRyYWcsIGFuZCB0b3VjaCBl
dmVudHMuCisKKyAgICAgICAgWzFdOiBodHRwOi8vd3d3LnczLm9yZy9UUi9zaGFkb3ctZG9tLyNk
Zm4tZGlzdHJpYnV0aW9uCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdldElmUG9zc2li
bGUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6
CisgICAgICAgICAgICBSZWZhY3RvciBwYXJlbnROb2RlIGNhbGxzaXRlcyB0byB1c2UgRXZlbnRQ
YXRoV2Fsa2VyOjpwYXJlbnQoKS4KKwogMjAxMy0wMi0xOSAgQW5kcmV5IEFkYWlraW4gIDxhYW5k
cmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGZXcgbWV0aG9kcyBpbiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsIGhhdmUgaW5jb3JyZWN0IHNpZ25hdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCAzYjgxNjVlNzZkMWRmZWJiZDIzN2U3ZTAyY2EwZWNkODYzMTc0
MDRjLi4yZTFlM2I1MjUxZGI2ZGI0OGZjYTIzODI1N2VjYTJlOGUwZDIwZjhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC03MDcsNyArNzA3LDggQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmIGUKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0YXJnZXROb2RlLT5y
ZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpIHsKLSAgICAgICAgcmVuZGVyZXIgPSB0YXJn
ZXROb2RlLT5wYXJlbnROb2RlKCkgPyB0YXJnZXROb2RlLT5wYXJlbnROb2RlKCktPnJlbmRlcmVy
KCkgOiAwOworICAgICAgICBOb2RlKiBwYXJlbnQgPSBFdmVudFBhdGhXYWxrZXI6OnBhcmVudCh0
YXJnZXROb2RlKTsKKyAgICAgICAgcmVuZGVyZXIgPSBwYXJlbnQgPyBwYXJlbnQtPnJlbmRlcmVy
KCkgOiAwOwogICAgICAgICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNMaXN0Qm94KCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTk4MSw3ICsxOTgyLDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgZXZlbnQsIENsaXBib2FyZCoKICAgICAvLyBEcmFnIGV2ZW50cyBzaG91bGQgbmV2ZXIg
Z28gdG8gdGV4dCBub2RlcyAoZm9sbG93aW5nIElFLCBhbmQgcHJvcGVyIG1vdXNlb3Zlci9vdXQg
ZGlzcGF0Y2gpCiAgICAgUmVmUHRyPE5vZGU+IG5ld1RhcmdldCA9IG1ldi50YXJnZXROb2RlKCk7
CiAgICAgaWYgKG5ld1RhcmdldCAmJiBuZXdUYXJnZXQtPmlzVGV4dE5vZGUoKSkKLSAgICAgICAg
bmV3VGFyZ2V0ID0gbmV3VGFyZ2V0LT5wYXJlbnROb2RlKCk7CisgICAgICAgIG5ld1RhcmdldCA9
IEV2ZW50UGF0aFdhbGtlcjo6cGFyZW50KG5ld1RhcmdldC5nZXQoKSk7CiAKICAgICBtX2F1dG9z
Y3JvbGxDb250cm9sbGVyLT51cGRhdGVEcmFnQW5kRHJvcChuZXdUYXJnZXQuZ2V0KCksIGV2ZW50
LnBvc2l0aW9uKCksIGV2ZW50LnRpbWVzdGFtcCgpKTsKIApAQCAtMjYzNCw3ICsyNjM1LDggQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdldElmUG9zc2libGUoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQKIAogc3RhdGljIGNvbnN0IE5vZGUqIGNsb3Nlc3RTY3Jv
bGxhYmxlTm9kZUNhbmRpZGF0ZShjb25zdCBOb2RlKiBub2RlKQogewotICAgIGZvciAoY29uc3Qg
Tm9kZSogc2Nyb2xsYWJsZU5vZGUgPSBub2RlOyBzY3JvbGxhYmxlTm9kZTsgc2Nyb2xsYWJsZU5v
ZGUgPSBzY3JvbGxhYmxlTm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAgZm9yIChFdmVudFBhdGhX
YWxrZXIgd2Fsa2VyKG5vZGUpOyB3YWxrZXIubm9kZSgpOyB3YWxrZXIubW92ZVRvUGFyZW50KCkp
IHsKKyAgICAgICAgTm9kZSogc2Nyb2xsYWJsZU5vZGUgPSB3YWxrZXIubm9kZSgpOwogICAgICAg
ICBpZiAoc2Nyb2xsYWJsZU5vZGUtPmlzRG9jdW1lbnROb2RlKCkpCiAgICAgICAgICAgICByZXR1
cm4gc2Nyb2xsYWJsZU5vZGU7CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzY3Jv
bGxhYmxlTm9kZS0+cmVuZGVyZXIoKTsKQEAgLTM4NjksNyArMzg3MSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQp
CiAKICAgICAgICAgICAgIC8vIFRvdWNoIGV2ZW50cyBzaG91bGQgbm90IGdvIHRvIHRleHQgbm9k
ZXMKICAgICAgICAgICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICAgICAg
bm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAgICAgICAgICBub2RlID0gRXZlbnRQ
YXRoV2Fsa2VyOjpwYXJlbnQobm9kZSk7CiAKICAgICAgICAgICAgIGlmIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmhhbmRsZVRvdWNoRXZlbnQobV9mcmFtZS0+cGFnZSgpLCBub2RlKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYTQzNWFmMmI0YzM0OTgwMzZlNzlj
ZTBlNDkzMGE4ZGRmZjBjZjQzLi4xOTQ1ODI4NTNlMGI1ZTE0NDAyZmE2NTg5ZDIyOGZiY2YyZGM4
NDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDItMTkgIE1pa2UgV2VzdCAgPG1rd3N0
QGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgRXZlbnRQYXRoV2Fsa2VyIHJhdGhlciB0aGFu
IHBhcmVudE5vZGUoKSB0byBub3JtYWxpemUgZXZlbnQgdGFyZ2V0cyBpbiBFdmVudEhhbmRsZXIu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAwMzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanM6CisgICAgICAgIChzY3Jv
bGxNb3VzZVdoZWVsKToKKyAgICAgICAgKGFkZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgICAg
IEFkZCBNb3VzZVdoZWVsLCBEcmFnLCBhbmQgVG91Y2ggc3VwcG9ydCB0byB0aGUgZXZlbnQtZGlz
cGF0Y2hpbmcKKyAgICAgICAgICAgIHRlc3RzIGluIFNoYWRvdyBET00uCisgICAgICAgICogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4
dC1ub2RlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWluLXNoYWRvdy1yb290Lmh0bWw6CisgICAgICAgICAgICBT
Y3JvbGwgdGhlIG1vdXNlIHdoZWVsLCBkcmFnIGEgYml0LCBhbmQgdG91Y2ggYmVmb3JlIGxlYXZp
bmcgdGhlCisgICAgICAgICAgICB0ZXh0IG5vZGUsIGFuZCByZWNvcmQgdGhlIGdlbmVyYXRlZCBl
dmVudHMuCisKIDIwMTMtMDItMTkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDMzOTMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3Bh
dGNoaW5nLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9ldmVudC1k
aXNwYXRjaGluZy5qcwppbmRleCBiNGZmZmJhZmZhMjIxMzhkZTZhOTFkMDIxYTc5N2Q2YTNiMWY5
NDY0Li5iZWQzZjA2M2YzMzNlYmFhMDhlODkyMWJmZTc1NWE5MjMyOTk3MTM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5n
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlz
cGF0Y2hpbmcuanMKQEAgLTE2LDYgKzE2LDQxIEBAIGZ1bmN0aW9uIG1vdmVNb3VzZU92ZXIoZWxl
bWVudCkKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKIH0KIAorZnVuY3Rpb24g
dG91Y2hMb2NhdGlvbihub2RlKQoreworICAgIHZhciB4ID0gbm9kZS5vZmZzZXRMZWZ0ICsgNTsK
KyAgICB2YXIgeSA9IG5vZGUub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKKyAg
ICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHgsIHkpOworICAgIGV2ZW50U2VuZGVyLnRvdWNo
U3RhcnQoKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOworICAgIGV2ZW50U2Vu
ZGVyLnRvdWNoRW5kKCk7CisgICAgZXZlbnRTZW5kZXIuY2FuY2VsVG91Y2hQb2ludCgwKTsKK30K
KworZnVuY3Rpb24gc2VsZWN0VGV4dE5vZGUobm9kZSkKK3sKKyAgICBnZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KG5vZGUsIDAsIG5vZGUsIG5vZGUubGVuZ3RoKTsKK30KKworZnVuY3Rp
b24gZHJhZ01vdXNlKG5vZGUpIHsKKyAgICB2YXIgeCA9IG5vZGUub2Zmc2V0TGVmdCArIDU7Cisg
ICAgdmFyIHkgPSBub2RlLm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6ZSArIDU7CisKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHggKyAxMDAsIHkgKyAxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKK30KKworZnVuY3Rpb24gc2Ny
b2xsTW91c2VXaGVlbChub2RlKSB7CisgICAgdmFyIHggPSBub2RlLm9mZnNldExlZnQgKyA1Owor
ICAgIHZhciB5ID0gbm9kZS5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1NpemUgKyA1OworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnkoMCwgMTIwKTsKK30KKwogdmFyIGV2ZW50UmVjb3JkcyA9IHt9OwogCiBmdW5jdGlvbiBj
bGVhckV2ZW50UmVjb3JkcygpCkBAIC03NSw5ICsxMTAsMTIgQEAgZnVuY3Rpb24gYWRkRXZlbnRM
aXN0ZW5lcnMobm9kZXMpCiB7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7
ICsraSkgewogICAgICAgICB2YXIgbm9kZSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhub2Rl
c1tpXSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgcmVjb3Jk
RXZlbnQsIGZhbHNlKTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcs
IHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xp
Y2snLCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIo
J2RyYWdzdGFydCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIG5vZGUuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VvdXQnLCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgICBub2RlLmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAg
IG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7
CisgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHJlY29yZEV2ZW50
LCBmYWxzZSk7CiAgICAgICAgIC8vIDxjb250ZW50PiBtaWdodCBiZSBhbiBpbmFjdGl2ZSBpbnNl
cnRpb24gcG9pbnQsIHNvIHN0eWxlIGl0IGFsc28uCiAgICAgICAgIGlmIChub2RlLnRhZ05hbWUg
PT0gJ0RJVicgfHwgbm9kZS50YWdOYW1lID09ICdERVRBSUxTJyB8fCBub2RlLnRhZ05hbWUgPT0g
J1NVTU1BUlknIHx8IG5vZGUudGFnTmFtZSA9PSAnQ09OVEVOVCcpCiAgICAgICAgICAgICBub2Rl
LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncGFkZGluZy10b3A6ICcgKyBkZWZhdWx0UGFkZGluZ1Np
emUgKyAncHg7Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0
Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dAppbmRleCA3MTkxMTE0Mjcz
MzNiNjBjZWYzMjA1ZGM3ZTY4YjdkOGU1ZDU1Nzc2Li45YTA3NjQwMmQyOTU4ODU4NWEwYjBkZTQ1
OWE1Mzk0MzFlMTkwZTEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50
LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS1leHBlY3RlZC50eHQKQEAgLTIwLDYg
KzIwLDE4IEBAIE1vdmluZyBtb3VzZSBmcm9tIGEgZGlzdHJpYnV0ZWQgdGV4dCBub2RlIHRvIHRv
cAogCiAgIG1vdXNlb3ZlcgogICAgICBAdG9wICh0YXJnZXQ6IHRvcCkgKHJlbGF0ZWQ6IHNoYWRv
dy1ob3N0KQorCisgIHRvdWNoc3RhcnQKKyAgICAgQGNvbnRlbnQgKHRhcmdldDogY29udGVudCkK
KyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGNvbnRlbnQpCisgICAgIEBzaGFkb3ctaG9zdCAo
dGFyZ2V0OiBzaGFkb3ctaG9zdCkKKyAgICAgQHRvcCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKKwor
ICBtb3VzZXdoZWVsCisgICAgIEBjb250ZW50ICh0YXJnZXQ6IGNvbnRlbnQpCisgICAgIEBzaGFk
b3ctcm9vdCAodGFyZ2V0OiBjb250ZW50KQorICAgICBAc2hhZG93LWhvc3QgKHRhcmdldDogc2hh
ZG93LWhvc3QpCisgICAgIEB0b3AgKHRhcmdldDogc2hhZG93LWhvc3QpCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1
dGVkLXRleHQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
b20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2RlLmh0bWwKaW5kZXggODM1
Y2JiNTRlMjQ1ZjUyNWJjMDdlYWIwZjE3N2RkZWJjZThjYjRiYS4uMjc1YWQ4NzRiZWZmMmM4ODhl
MzAzMDk2ODE2MGNjODYyYzdhMzU0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2Rl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2RlLmh0bWwKQEAgLTMwLDkgKzMwLDE2IEBA
CiAgICAgICAgIGRlYnVnKCdcbicgKyAnTW92aW5nIG1vdXNlIGZyb20gYSBkaXN0cmlidXRlZCB0
ZXh0IG5vZGUgdG8gdG9wJyk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OwogICAgICAgICBjbGVhckV2ZW50UmVjb3JkcygpOworCiAgICAgICAgIG1vdmVNb3VzZU92ZXIo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpKTsKICAgICAgICAgZGVidWdEaXNwYXRjaGVk
RXZlbnQoJ21vdXNlb3V0Jyk7CiAgICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92
ZXInKTsKKworICAgICAgICB0b3VjaExvY2F0aW9uKGhvc3QpOworICAgICAgICBkZWJ1Z0Rpc3Bh
dGNoZWRFdmVudCgndG91Y2hzdGFydCcpOworCisgICAgICAgIHNjcm9sbE1vdXNlV2hlZWwoaG9z
dCk7CisgICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZXdoZWVsJyk7CiAgICAgPC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWluLXNoYWRvdy1y
b290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9t
LWV2ZW50LWRpc3BhdGNoaW5nLXRleHQtbm9kZS1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQK
aW5kZXggNDI2MzA2NjEyZTNmNzVmNDQ4ZWJhMDc0MWI1MTdjNmE2M2Y3ZDM2Mi4uNzczY2U5YmM4
ZDYyM2MxNTVlZmE2ZWUwMzBjZjdjOTc4YTZiNmY0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWlu
LXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3Qt
ZXhwZWN0ZWQudHh0CkBAIC0yMCw2ICsyMCwxNiBAQCBNb3ZpbmcgbW91c2UgZnJvbSBhIGRpcmVj
dCBjaGlsZCB0ZXh0IG5vZGUgb2YgdGhlIHNoYWRvdyByb290IHRvIHRvcAogCiAgIG1vdXNlb3Zl
cgogICAgICBAdG9wICh0YXJnZXQ6IHRvcCkgKHJlbGF0ZWQ6IHNoYWRvdy1ob3N0KQorCisgIHRv
dWNoc3RhcnQKKyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IHNoYWRvdy1yb290KQorICAgICBA
c2hhZG93LWhvc3QgKHRhcmdldDogc2hhZG93LWhvc3QpCisgICAgIEB0b3AgKHRhcmdldDogc2hh
ZG93LWhvc3QpCisKKyAgbW91c2V3aGVlbAorICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogc2hh
ZG93LXJvb3QpCisgICAgIEBzaGFkb3ctaG9zdCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKKyAgICAg
QHRvcCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWluLXNoYWRvdy1yb290
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAppbmRleCA5OTc3NjI4ZGVmZTZi
ZmFlZjBmYzZhNGViMTkyZmRmZGI0OGM4Y2UxLi4wMDVlZDVjZGJjNDlhNjVjMDM0MjMzNDE1NGYx
NDgwZGFjZTY4M2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbApAQCAtMjksOSArMjksMTYgQEAKICAg
ICAgICAgZGVidWcoJ1xuJyArICdNb3ZpbmcgbW91c2UgZnJvbSBhIGRpcmVjdCBjaGlsZCB0ZXh0
IG5vZGUgb2YgdGhlIHNoYWRvdyByb290IHRvIHRvcCcpOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKICAgICAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKwogICAgICAg
ICBtb3ZlTW91c2VPdmVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKSk7CiAgICAgICAg
IGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW91dCcpOwogICAgICAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdmVyJyk7CisKKyAgICAgICAgdG91Y2hMb2NhdGlvbihob3N0KTsKKyAg
ICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ3RvdWNoc3RhcnQnKTsKKworICAgICAgICBzY3Jv
bGxNb3VzZVdoZWVsKGhvc3QpOworICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2V3
aGVlbCcpOwogICAgIDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189264</attachid>
            <date>2013-02-20 01:26:52 -0800</date>
            <delta_ts>2013-02-20 01:44:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-110037-20130220102313.patch</filename>
            <type>text/plain</type>
            <size>11360</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMjdlOGYzZDY5M2Zj
Zjk1N2MzMjdiZjAxZGQ1NDZiYWZjYWRhOC4uZDUwMzRiNTUxZTVmMGQyOWVjYmNlMDgyNTllMGRl
NzU3MmNiYTRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAyLTIwICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNlIEV2ZW50UGF0aFdhbGtl
ciByYXRoZXIgdGhhbiBwYXJlbnROb2RlKCkgdG8gbm9ybWFsaXplIGV2ZW50IHRhcmdldHMgaW4g
RXZlbnRIYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEwMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAg
ICAgIFdlIG5lZWQgdG8gdGVhY2ggRXZlbnRIYW5kbGVyIGFib3V0IFNoYWRvdyBET00gaW4gYSBm
ZXcgcGxhY2VzIGluIG9yZGVyCisgICAgICAgIHRvIGVuc3VyZSB0aGF0IHdlIHByb3Blcmx5IHRh
cmdldCBldmVudHMgZGlzcGF0Y2hlZCB1cG9uIHRleHQgbm9kZXMuCisgICAgICAgIFJhdGhlciB0
aGFuIG5haXZlbHkgZ3JhYmJpbmcgdGhlIHRleHQgbm9kZSdzIGRpcmVjdCBwYXJlbnQgdmlhCisg
ICAgICAgIHBhcmVudE5vZGUoKSwgd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgY2FzZSBpbiB3
aGljaCB0aGUgdGV4dCBub2RlIGlzCisgICAgICAgIGRpc3RyaWJ1dGVkWzFdIHRvIGFuIGluc2Vy
dGlvbiBwb2ludCBpbnNpZGUgYSBzaGFkb3cgaG9zdC4KKyAgICAgICAgRXZlbnRQYXRoV2Fsa2Vy
OjpwYXJlbnQgdW5kZXJzdGFuZHMgdGhlc2UgcmVsYXRpb25zaGlwcywgYW5kIHNob3VsZAorICAg
ICAgICBiZSB1c2VkIHdoZW4gZGVhbGluZyB3aXRoIG1vdXNlLCBkcmFnLCBhbmQgdG91Y2ggZXZl
bnRzLgorCisgICAgICAgIFsxXTogaHR0cDovL3d3dy53My5vcmcvVFIvc2hhZG93LWRvbS8jZGZu
LWRpc3RyaWJ1dGlvbgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzR2VzdHVyZUV2ZW50VG9XaWRnZXRJZlBvc3NpYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3ApOgor
ICAgICAgICAgICAgUmVmYWN0b3IgcGFyZW50Tm9kZSBjYWxsc2l0ZXMgdG8gdXNlIEV2ZW50UGF0
aFdhbGtlcjo6cGFyZW50KCkuCisKIDIwMTMtMDItMTkgIEFuZHJleSBBZGFpa2luICA8YWFuZHJl
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRmV3IG1ldGhvZHMgaW4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmlkbCBoYXZlIGluY29ycmVjdCBzaWduYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggM2I4MTY1ZTc2ZDFkZmViYmQyMzdlN2UwMmNhMGVjZDg2MzE3NDA0
Yy4uZmRiYjUyMDBiMzA0ZWNhZjg5YjMwMTg0ZmRjODNjMzk5NjRmOGUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzA3LDcgKzcwNywxMSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgZQogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRhcmdldE5vZGUtPnJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikgewotICAgICAgICByZW5kZXJlciA9IHRhcmdl
dE5vZGUtPnBhcmVudE5vZGUoKSA/IHRhcmdldE5vZGUtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIo
KSA6IDA7CisgICAgICAgIE5vZGUqIHBhcmVudCA9IEV2ZW50UGF0aFdhbGtlcjo6cGFyZW50KHRh
cmdldE5vZGUpOworICAgICAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICByZW5kZXJlciA9IHBhcmVudC0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYg
KCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzTGlzdEJveCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KQEAgLTE5ODEsNyArMTk4NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1
cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBDbGlwYm9h
cmQqCiAgICAgLy8gRHJhZyBldmVudHMgc2hvdWxkIG5ldmVyIGdvIHRvIHRleHQgbm9kZXMgKGZv
bGxvd2luZyBJRSwgYW5kIHByb3BlciBtb3VzZW92ZXIvb3V0IGRpc3BhdGNoKQogICAgIFJlZlB0
cjxOb2RlPiBuZXdUYXJnZXQgPSBtZXYudGFyZ2V0Tm9kZSgpOwogICAgIGlmIChuZXdUYXJnZXQg
JiYgbmV3VGFyZ2V0LT5pc1RleHROb2RlKCkpCi0gICAgICAgIG5ld1RhcmdldCA9IG5ld1Rhcmdl
dC0+cGFyZW50Tm9kZSgpOworICAgICAgICBuZXdUYXJnZXQgPSBFdmVudFBhdGhXYWxrZXI6OnBh
cmVudChuZXdUYXJnZXQuZ2V0KCkpOwogCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+dXBk
YXRlRHJhZ0FuZERyb3AobmV3VGFyZ2V0LmdldCgpLCBldmVudC5wb3NpdGlvbigpLCBldmVudC50
aW1lc3RhbXAoKSk7CiAKQEAgLTI2MzQsNyArMjYzOCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpw
YXNzR2VzdHVyZUV2ZW50VG9XaWRnZXRJZlBvc3NpYmxlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2
ZW50CiAKIHN0YXRpYyBjb25zdCBOb2RlKiBjbG9zZXN0U2Nyb2xsYWJsZU5vZGVDYW5kaWRhdGUo
Y29uc3QgTm9kZSogbm9kZSkKIHsKLSAgICBmb3IgKGNvbnN0IE5vZGUqIHNjcm9sbGFibGVOb2Rl
ID0gbm9kZTsgc2Nyb2xsYWJsZU5vZGU7IHNjcm9sbGFibGVOb2RlID0gc2Nyb2xsYWJsZU5vZGUt
PnBhcmVudE5vZGUoKSkgeworICAgIGZvciAoRXZlbnRQYXRoV2Fsa2VyIHdhbGtlcihub2RlKTsg
d2Fsa2VyLm5vZGUoKTsgd2Fsa2VyLm1vdmVUb1BhcmVudCgpKSB7CisgICAgICAgIE5vZGUqIHNj
cm9sbGFibGVOb2RlID0gd2Fsa2VyLm5vZGUoKTsKICAgICAgICAgaWYgKHNjcm9sbGFibGVOb2Rl
LT5pc0RvY3VtZW50Tm9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVOb2RlOwog
ICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2Nyb2xsYWJsZU5vZGUtPnJlbmRlcmVy
KCk7CkBAIC0zODY5LDcgKzM4NzQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hF
dmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogCiAgICAgICAgICAgICAvLyBU
b3VjaCBldmVudHMgc2hvdWxkIG5vdCBnbyB0byB0ZXh0IG5vZGVzCiAgICAgICAgICAgICBpZiAo
bm9kZS0+aXNUZXh0Tm9kZSgpKQotICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRO
b2RlKCk7CisgICAgICAgICAgICAgICAgbm9kZSA9IEV2ZW50UGF0aFdhbGtlcjo6cGFyZW50KG5v
ZGUpOwogCiAgICAgICAgICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYW5kbGVU
b3VjaEV2ZW50KG1fZnJhbWUtPnBhZ2UoKSwgbm9kZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMmE0MzVhZjJiNGMzNDk4MDM2ZTc5Y2UwZTQ5MzBhOGRkZmYwY2Y0My4u
NjE2NTZiNWU1YTc3NDVlMTZhOTY0ZDZmNjVjYWY1MTkzZTAzMGM2YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEzLTAyLTIwICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgVXNlIEV2ZW50UGF0aFdhbGtlciByYXRoZXIgdGhhbiBwYXJlbnROb2RlKCkgdG8gbm9y
bWFsaXplIGV2ZW50IHRhcmdldHMgaW4gRXZlbnRIYW5kbGVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMDM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9l
dmVudC1kaXNwYXRjaGluZy5qczoKKyAgICAgICAgKHNjcm9sbE1vdXNlV2hlZWwpOgorICAgICAg
ICAoYWRkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAgICAgQWRkIE1vdXNlV2hlZWwsIERyYWcs
IGFuZCBUb3VjaCBzdXBwb3J0IHRvIHRoZSBldmVudC1kaXNwYXRjaGluZworICAgICAgICAgICAg
dGVzdHMgaW4gU2hhZG93IERPTS4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRv
bS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUt
aW4tc2hhZG93LXJvb3QuaHRtbDoKKyAgICAgICAgICAgIFNjcm9sbCB0aGUgbW91c2Ugd2hlZWws
IGRyYWcgYSBiaXQsIGFuZCB0b3VjaCBiZWZvcmUgbGVhdmluZyB0aGUKKyAgICAgICAgICAgIHRl
eHQgbm9kZSwgYW5kIHJlY29yZCB0aGUgZ2VuZXJhdGVkIGV2ZW50cy4KKwogMjAxMy0wMi0xOSAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MzM5My4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzCmluZGV4IGI0
ZmZmYmFmZmEyMjEzOGRlNmE5MWQwMjFhNzk3ZDZhM2IxZjk0NjQuLmJlZDNmMDYzZjMzM2ViYWEw
OGU4OTIxYmZlNzU1YTkyMzI5OTcxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcwpAQCAtMTYsNiAr
MTYsNDEgQEAgZnVuY3Rpb24gbW92ZU1vdXNlT3ZlcihlbGVtZW50KQogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwogfQogCitmdW5jdGlvbiB0b3VjaExvY2F0aW9uKG5vZGUpCit7
CisgICAgdmFyIHggPSBub2RlLm9mZnNldExlZnQgKyA1OworICAgIHZhciB5ID0gbm9kZS5vZmZz
ZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1NpemUgKyA1OworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNo
UG9pbnQoeCwgeSk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgIGV2ZW50U2Vu
ZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKyAgICBl
dmVudFNlbmRlci5jYW5jZWxUb3VjaFBvaW50KDApOworfQorCitmdW5jdGlvbiBzZWxlY3RUZXh0
Tm9kZShub2RlKQoreworICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQobm9kZSwg
MCwgbm9kZSwgbm9kZS5sZW5ndGgpOworfQorCitmdW5jdGlvbiBkcmFnTW91c2Uobm9kZSkgewor
ICAgIHZhciB4ID0gbm9kZS5vZmZzZXRMZWZ0ICsgNTsKKyAgICB2YXIgeSA9IG5vZGUub2Zmc2V0
VG9wICsgZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVy
LmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIDEwMCwg
eSArIDEwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOworfQorCitmdW5jdGlvbiBzY3JvbGxNb3VzZVdoZWVsKG5vZGUpIHsK
KyAgICB2YXIgeCA9IG5vZGUub2Zmc2V0TGVmdCArIDU7CisgICAgdmFyIHkgPSBub2RlLm9mZnNl
dFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6ZSArIDU7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgwLCAxMjApOworfQorCiB2
YXIgZXZlbnRSZWNvcmRzID0ge307CiAKIGZ1bmN0aW9uIGNsZWFyRXZlbnRSZWNvcmRzKCkKQEAg
LTc1LDkgKzExMCwxMiBAQCBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycyhub2RlcykKIHsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIHZhciBu
b2RlID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5vZGVzW2ldKTsKLSAgICAgICAgbm9kZS5h
ZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAg
ICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsK
ICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlY29yZEV2ZW50LCBmYWxz
ZSk7CisgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ3N0YXJ0JywgcmVjb3JkRXZl
bnQsIGZhbHNlKTsKKyAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHJl
Y29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dmVyJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKKyAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZXdoZWVsJywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKKyAgICAgICAgbm9kZS5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKICAgICAgICAgLy8g
PGNvbnRlbnQ+IG1pZ2h0IGJlIGFuIGluYWN0aXZlIGluc2VydGlvbiBwb2ludCwgc28gc3R5bGUg
aXQgYWxzby4KICAgICAgICAgaWYgKG5vZGUudGFnTmFtZSA9PSAnRElWJyB8fCBub2RlLnRhZ05h
bWUgPT0gJ0RFVEFJTFMnIHx8IG5vZGUudGFnTmFtZSA9PSAnU1VNTUFSWScgfHwgbm9kZS50YWdO
YW1lID09ICdDT05URU5UJykKICAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdzdHlsZScs
ICdwYWRkaW5nLXRvcDogJyArIGRlZmF1bHRQYWRkaW5nU2l6ZSArICdweDsnKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0
LW5vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDcxOTExMTQyNzMzM2I2MGNlZjMyMDVkYzdlNjhiN2Q4
ZTVkNTU3NzYuLjlhMDc2NDAyZDI5NTg4NTg1YTBiMGRlNDU5YTUzOTQzMWUxOTBlMTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3Bh
dGNoaW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0
ZWQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dApAQCAtMjAsNiArMjAsMTggQEAgTW92aW5nIG1vdXNl
IGZyb20gYSBkaXN0cmlidXRlZCB0ZXh0IG5vZGUgdG8gdG9wCiAKICAgbW91c2VvdmVyCiAgICAg
IEB0b3AgKHRhcmdldDogdG9wKSAocmVsYXRlZDogc2hhZG93LWhvc3QpCisKKyAgdG91Y2hzdGFy
dAorICAgICBAY29udGVudCAodGFyZ2V0OiBjb250ZW50KQorICAgICBAc2hhZG93LXJvb3QgKHRh
cmdldDogY29udGVudCkKKyAgICAgQHNoYWRvdy1ob3N0ICh0YXJnZXQ6IHNoYWRvdy1ob3N0KQor
ICAgICBAdG9wICh0YXJnZXQ6IHNoYWRvdy1ob3N0KQorCisgIG1vdXNld2hlZWwKKyAgICAgQGNv
bnRlbnQgKHRhcmdldDogY29udGVudCkKKyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGNvbnRl
bnQpCisgICAgIEBzaGFkb3ctaG9zdCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKKyAgICAgQHRvcCAo
dGFyZ2V0OiBzaGFkb3ctaG9zdCkKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1ub2RlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1k
aXN0cmlidXRlZC10ZXh0LW5vZGUuaHRtbAppbmRleCA4MzVjYmI1NGUyNDVmNTI1YmMwN2VhYjBm
MTc3ZGRlYmNlOGNiNGJhLi4yNzVhZDg3NGJlZmYyYzg4OGUzMDMwOTY4MTYwY2M4NjJjN2EzNTRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVu
dC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRl
ZC10ZXh0LW5vZGUuaHRtbApAQCAtMzAsOSArMzAsMTYgQEAKICAgICAgICAgZGVidWcoJ1xuJyAr
ICdNb3ZpbmcgbW91c2UgZnJvbSBhIGRpc3RyaWJ1dGVkIHRleHQgbm9kZSB0byB0b3AnKTsKICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgICAgIGNsZWFyRXZlbnRS
ZWNvcmRzKCk7CisKICAgICAgICAgbW92ZU1vdXNlT3Zlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndG9wJykpOwogICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKICAg
ICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3ZlcicpOworCisgICAgICAgIHRvdWNo
TG9jYXRpb24oaG9zdCk7CisgICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCd0b3VjaHN0YXJ0
Jyk7CisKKyAgICAgICAgc2Nyb2xsTW91c2VXaGVlbChob3N0KTsKKyAgICAgICAgZGVidWdEaXNw
YXRjaGVkRXZlbnQoJ21vdXNld2hlZWwnKTsKICAgICA8L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVu
dC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4
dC1ub2RlLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAppbmRleCA0MjYzMDY2MTJlM2Y3NWY0
NDhlYmEwNzQxYjUxN2M2YTYzZjdkMzYyLi43NzNjZTliYzhkNjIzYzE1NWVmYTZlZTAzMGNmN2M5
NzhhNmI2ZjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRp
c3BhdGNoaW5nLXRleHQtbm9kZS1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQKQEAgLTIwLDYg
KzIwLDE2IEBAIE1vdmluZyBtb3VzZSBmcm9tIGEgZGlyZWN0IGNoaWxkIHRleHQgbm9kZSBvZiB0
aGUgc2hhZG93IHJvb3QgdG8gdG9wCiAKICAgbW91c2VvdmVyCiAgICAgIEB0b3AgKHRhcmdldDog
dG9wKSAocmVsYXRlZDogc2hhZG93LWhvc3QpCisKKyAgdG91Y2hzdGFydAorICAgICBAc2hhZG93
LXJvb3QgKHRhcmdldDogc2hhZG93LXJvb3QpCisgICAgIEBzaGFkb3ctaG9zdCAodGFyZ2V0OiBz
aGFkb3ctaG9zdCkKKyAgICAgQHRvcCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKKworICBtb3VzZXdo
ZWVsCisgICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBzaGFkb3ctcm9vdCkKKyAgICAgQHNoYWRv
dy1ob3N0ICh0YXJnZXQ6IHNoYWRvdy1ob3N0KQorICAgICBAdG9wICh0YXJnZXQ6IHNoYWRvdy1o
b3N0KQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1k
aXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLXRleHQtbm9kZS1pbi1z
aGFkb3ctcm9vdC5odG1sCmluZGV4IDk5Nzc2MjhkZWZlNmJmYWVmMGZjNmE0ZWIxOTJmZGZkYjQ4
YzhjZTEuLjAwNWVkNWNkYmM0OWE2NWMwMzQyMzM0MTU0ZjE0ODBkYWNlNjgzZTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLXRleHQtbm9kZS1pbi1zaGFkb3ctcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLXRleHQtbm9kZS1pbi1zaGFk
b3ctcm9vdC5odG1sCkBAIC0yOSw5ICsyOSwxNiBAQAogICAgICAgICBkZWJ1ZygnXG4nICsgJ01v
dmluZyBtb3VzZSBmcm9tIGEgZGlyZWN0IGNoaWxkIHRleHQgbm9kZSBvZiB0aGUgc2hhZG93IHJv
b3QgdG8gdG9wJyk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogICAg
ICAgICBjbGVhckV2ZW50UmVjb3JkcygpOworCiAgICAgICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpKTsKICAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQo
J21vdXNlb3V0Jyk7CiAgICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsK
KworICAgICAgICB0b3VjaExvY2F0aW9uKGhvc3QpOworICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRF
dmVudCgndG91Y2hzdGFydCcpOworCisgICAgICAgIHNjcm9sbE1vdXNlV2hlZWwoaG9zdCk7Cisg
ICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZXdoZWVsJyk7CiAgICAgPC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>