<?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>80020</bug_id>
          
          <creation_ts>2012-03-01 04:04:39 -0800</creation_ts>
          <short_desc>[Crash] Adding &lt;content&gt; into a ShadowRoot causes crash.</short_desc>
          <delta_ts>2012-05-30 18:56:53 -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>DOM</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>
          
          <blocked>72352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>568544</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-01 04:04:39 -0800</bug_when>
    <thetext>Repro:

&lt;div&gt;DIV1&lt;/div&gt;&lt;div id=&apos;div2&apos;&gt;DIV2&lt;/div&gt;&lt;div&gt;DIV3&lt;/div&gt;
&lt;script&gt;
var div = document.getElementById(&apos;div2&apos;);
var root = new WebKitShadowRoot(div);
root.innerHTML = &quot;&lt;content&gt;&lt;/content&gt;&quot;;
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570399</commentid>
    <comment_count>1</comment_count>
      <attachid>130055</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-04 21:21:17 -0800</bug_when>
    <thetext>Created attachment 130055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570538</commentid>
    <comment_count>2</comment_count>
      <attachid>130085</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-05 02:30:47 -0800</bug_when>
    <thetext>Created attachment 130085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570788</commentid>
    <comment_count>3</comment_count>
      <attachid>130085</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-05 09:42:11 -0800</bug_when>
    <thetext>Comment on attachment 130085
Patch

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

Introducing two different paths for attaching seems like a bad idea. Can you help me understand why you need this?

&gt; Source/WebCore/ChangeLog:8
&gt; +        When layouting a shadow tree, we&apos;re currently assuming that the whole tree is re-created.

layouting -&gt; laying out.

&gt; Source/WebCore/ChangeLog:9
&gt; +        However, when appending a child, subtree attaching occurs.

And why is that bad?

&gt; Source/WebCore/dom/ShadowTree.cpp:41
&gt;  ShadowTree::ShadowTree()

Also: why is this called a Tree? It&apos;s really a ShadowTreeStack, isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571189</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-05 16:51:52 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; Also: why is this called a Tree? It&apos;s really a ShadowTreeStack, isn&apos;t it?
This is going to encapsulate whole Shadow subtree concept. &quot;stack&quot; is only part of that.
May be we should split stack (or list) to a separate object. I feel it a bit premature though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571325</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-05 18:21:22 -0800</bug_when>
    <thetext>&gt; &gt; Also: why is this called a Tree? It&apos;s really a ShadowTreeStack, isn&apos;t it?
&gt; This is going to encapsulate whole Shadow subtree concept. &quot;stack&quot; is only part of that.
&gt; May be we should split stack (or list) to a separate object. I feel it a bit premature though.
My comment above wasn&apos;t clear enough.
Point here is that the ShadowTree class is no longer simple list, or stack.
It&apos;s now encapsulating whole shadow dom lifecycle.
That&apos;s why it&apos;s it7s renamed from ShadowRootList to ShadowTree.

One suggested name was ShadowForest.
Then I objected introducing another out-of-standard noun here.
I hope we have good name for that.
Maybe ElementShadow is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571328</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-05 18:22:13 -0800</bug_when>
    <thetext>By the way, it looks attach and layout is mixed here. Which are you talking about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571348</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-05 18:40:54 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        However, when appending a child, subtree attaching occurs.
&gt; 
&gt; And why is that bad?

It&apos;s because recalculating distribution is performed in attaching. If only we attach only subtree, we cannot calculate distribution correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571376</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-05 19:35:30 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; &gt; Also: why is this called a Tree? It&apos;s really a ShadowTreeStack, isn&apos;t it?
&gt; &gt; This is going to encapsulate whole Shadow subtree concept. &quot;stack&quot; is only part of that.
&gt; &gt; May be we should split stack (or list) to a separate object. I feel it a bit premature though.
&gt; My comment above wasn&apos;t clear enough.
&gt; Point here is that the ShadowTree class is no longer simple list, or stack.
&gt; It&apos;s now encapsulating whole shadow dom lifecycle.
&gt; That&apos;s why it&apos;s it7s renamed from ShadowRootList to ShadowTree.
&gt; 
&gt; One suggested name was ShadowForest.
&gt; Then I objected introducing another out-of-standard noun here.
&gt; I hope we have good name for that.
&gt; Maybe ElementShadow is sufficient.

Hmm... I had a mental stumble trying to understand the purpose of this class. I am sure I won&apos;t be the only one. I understand now what you mean. This is a Tree of Trees, and a dynamically maintained structure, according to the spec. It&apos;s the ReifiedTree, right?

I wonder if, from the software engineering perspective, we would be better off by making the data-holding structures remain only Stacks and Subtrees. Then, a reified tree is just an iterator that encapsulates the logic in which this tree is perceived when rendering. Does this make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571892</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-06 08:55:18 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #5)
&gt; &gt; &gt; &gt; Also: why is this called a Tree? It&apos;s really a ShadowTreeStack, isn&apos;t it?
&gt; &gt; &gt; This is going to encapsulate whole Shadow subtree concept. &quot;stack&quot; is only part of that.
&gt; &gt; &gt; May be we should split stack (or list) to a separate object. I feel it a bit premature though.
&gt; &gt; My comment above wasn&apos;t clear enough.
&gt; &gt; Point here is that the ShadowTree class is no longer simple list, or stack.
&gt; &gt; It&apos;s now encapsulating whole shadow dom lifecycle.
&gt; &gt; That&apos;s why it&apos;s it7s renamed from ShadowRootList to ShadowTree.
&gt; &gt; 
&gt; &gt; One suggested name was ShadowForest.
&gt; &gt; Then I objected introducing another out-of-standard noun here.
&gt; &gt; I hope we have good name for that.
&gt; &gt; Maybe ElementShadow is sufficient.
&gt; 
&gt; Hmm... I had a mental stumble trying to understand the purpose of this class. I am sure I won&apos;t be the only one. I understand now what you mean. This is a Tree of Trees, and a dynamically maintained structure, according to the spec. It&apos;s the ReifiedTree, right?
&gt; 
&gt; I wonder if, from the software engineering perspective, we would be better off by making the data-holding structures remain only Stacks and Subtrees. Then, a reified tree is just an iterator that encapsulates the logic in which this tree is perceived when rendering. Does this make sense?

Hayato-san is implementing this iterator in bug 79197, it seems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572429</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-06 18:42:47 -0800</bug_when>
    <thetext>(In reply to comment #8)

&gt; 
&gt; Hmm... I had a mental stumble trying to understand the purpose of this class. I am sure I won&apos;t be the only one. I understand now what you mean. This is a Tree of Trees, and a dynamically maintained structure, according to the spec. It&apos;s the ReifiedTree, right?
&gt; 

I&apos;m not sure. The list of trees isn&apos;t reified without the traverser. 
I can think it as a reified view of the whole shadow stuff.

&gt; I wonder if, from the software engineering perspective, we would be better off by making the data-holding structures remain only Stacks and Subtrees. Then, a reified tree is just an iterator that encapsulates the logic in which this tree is perceived when rendering. Does this make sense?

In the engineering perspective, I agree that.
Especially because we have no such thing like ShadowTree in the standard.

On the other hand, this assumes that we have some consistent way to traverse
the whole shadow trees, which we don&apos;t have it yet in reality.

Without such abstractions, the tree traversal code around Node, Element, ContainerNode, etc.
will be really ugly and make folks who don&apos;t care shadow DOM uncomfortable.
So I thought that isolating such shadow-aware traversals into ShadowTree was a reasonable idea.

ReifiedTreeTraversal might help in certain level, but not all,
because many existing code relies recursion. which the traverser doesn&apos;t care about.
Also there are traversals in non-reified manner. 

Also, we maintain a data for node distribution which is owned by ShadowTree. 
We need to find a place for it.

Honestly I don&apos;t have good big picture of whole multiple shadow tree stuff yet.
Hopefully shinyak@ an hayato@ show their opinion here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572483</commentid>
    <comment_count>11</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-06 20:43:19 -0800</bug_when>
    <thetext>I agree that ideally we should not have ShadowTree structure.
However, as morrita says, we have to have this kind of abstraction now.

Currently we perform node distribution in attach(). However, attach() is called not only constructing whole shadow tree but also constructing subtree (e.g. appendChild(), which causes this bug).

It would be good we can check shadow tree construction is necessary or not in appendChild(), however I&apos;m hesitating to add such check from the view point of performance. I&apos;m thinking we should be able to know context of attach() (e.g. the element is in shadow, we need recalculate shadow tree, etc.), but it needs a lot of refactoring.

I want to remove ShadowTree finally, however I don&apos;t think the day comes near future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572484</commentid>
    <comment_count>12</comment_count>
      <attachid>130530</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-06 20:44:27 -0800</bug_when>
    <thetext>Created attachment 130530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572789</commentid>
    <comment_count>13</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-07 04:35:33 -0800</bug_when>
    <thetext>I agree that a class of ShadowTree has a lot of responsibilities, such as:

- Responsibility for maintaining a stack of ShadowRoots.
- Responsibility for attach()/detach() for all nodes in Shadow DOM subtrees.
- Responsibility for managing the result of node distribution algorithm, which ReifiedTreeTraversal uses.

It&apos;s not easy to separate these concerns so far since these are tightly related. It should be, but it requires some non-trivial refactoring. I guess ShadowTree is like a &apos;Greatest common divisor&apos; name.
If we can separate these concerns nicely, we don&apos;t have difficulties to have a intuitive name.

(In reply to comment #11)
&gt; I agree that ideally we should not have ShadowTree structure.
&gt; However, as morrita says, we have to have this kind of abstraction now.
&gt; 
&gt; Currently we perform node distribution in attach(). However, attach() is called not only constructing whole shadow tree but also constructing subtree (e.g. appendChild(), which causes this bug).
&gt; 
&gt; It would be good we can check shadow tree construction is necessary or not in appendChild(), however I&apos;m hesitating to add such check from the view point of performance. I&apos;m thinking we should be able to know context of attach() (e.g. the element is in shadow, we need recalculate shadow tree, etc.), but it needs a lot of refactoring.
&gt; 
&gt; I want to remove ShadowTree finally, however I don&apos;t think the day comes near future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572936</commentid>
    <comment_count>14</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-07 09:06:22 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; 
&gt; I want to remove ShadowTree finally, however I don&apos;t think the day comes near future.

Ok. Please file a bug on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572972</commentid>
    <comment_count>15</comment_count>
      <attachid>130530</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-07 09:47:18 -0800</bug_when>
    <thetext>Comment on attachment 130530
Patch

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

I am not sure what this patch does. I am sorry. I tried to undestand, but I couldn&apos;t figure it out.

It seems to me that as soon as there&apos;s a &lt;content&gt; element inserted into document, we should immediately look at its treescope, reset distribution, and mark to reattach the shadow dom tree. Right?

&gt; Source/WebCore/ChangeLog:8
&gt; +        The problem is &lt;content&gt; try to select host children though it is not prepared.

What does &quot;prepared&quot; mean in this context? Also, the sentence is grammatically incorrect.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Since populating host children for insertion points is performed just before

Perhaps you meant &quot;distributing host children into insertion points&quot;?

&gt; Source/WebCore/ChangeLog:10
&gt; +        attaching a shadow tree, we should recalculate whole shadow tree if &lt;content&gt; is

We should re-run distribution algorithm?

&gt; Source/WebCore/ChangeLog:13
&gt; +        However, element-&gt;appendChild() does not know the element is in a shadow tree or not.

&quot;does not know the element&quot; -&gt; &quot;is not aware whether the element&quot;

&gt; Source/WebCore/ChangeLog:14
&gt; +        We have to ensure reattaching whole shadow tree here.

ensure reattaching -&gt; ensure that we reattach

&gt; Source/WebCore/ChangeLog:16
&gt; +        So this patch ensures HTMLContentSelector exists only if it is prepared. If not,

Again, the word &quot;prepared&quot; is used here. What does it mean?

&gt; Source/WebCore/ChangeLog:17
&gt; +        we cannot select anything, but we have to enable a flag to reattach whole shadow tree.

we add a flag?

&gt; Source/WebCore/ChangeLog:48
&gt; +        When layouting a shadow tree, we&apos;re currently assuming that the whole tree is re-created.

layouting --&gt; laying out

&gt; Source/WebCore/ChangeLog:52
&gt; +        do layout only when the flag is enabled.

I think this log entry is old :)

&gt; Source/WebCore/dom/ShadowTree.h:87
&gt; +    void populate();
&gt; +    bool isPopulated();

are these used anywhere?

&gt; Source/WebCore/html/shadow/HTMLContentSelector.h:138
&gt; +    bool isSelecting() const { return m_isSelecting; }

Why do we need this?

&gt; Source/WebCore/html/shadow/HTMLContentSelector.h:142
&gt; +    void populateIfNesessary(Element* shadowHost);
&gt; +    bool isPopulated() const { return m_isPopulated; }

let&apos;s keep the language closely aligned with selection: selectIfNecessary and hasSelected. It appears that hasSelected is closely related to hasCandidates: the former is always true when the latter is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574589</commentid>
    <comment_count>16</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-08 21:24:37 -0800</bug_when>
    <thetext>Sorry for late response..

Maybe I mistook updating ChangeLog in the previous patch.

I believe we all agree that the current implementation of shadow trees is far from ideal one. We have to make code clear. BTW, we have to fix the bug though.

After fixing this, let&apos;s do a lot of refactoring to make code sane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574619</commentid>
    <comment_count>17</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-08 22:03:04 -0800</bug_when>
    <thetext>The name selectIfNecessary seems very confusing, since we have &apos;select&apos; method already and the roles of &apos;select&apos; and &apos;selectIfNecessary&apos; are completely different.

I think populateIfNecessary() is better. It is taken from the spec.

BTW I agree that the current code is too messy to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574931</commentid>
    <comment_count>18</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-09 09:06:56 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; The name selectIfNecessary seems very confusing, since we have &apos;select&apos; method already and the roles of &apos;select&apos; and &apos;selectIfNecessary&apos; are completely different.
&gt; 
&gt; I think populateIfNecessary() is better. It is taken from the spec.
&gt; 
&gt; BTW I agree that the current code is too messy to understand.

Ok. There are still parts of the patch that I don&apos;t understand. Maybe Morrita-san could give it a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574934</commentid>
    <comment_count>19</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-09 09:08:26 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Sorry for late response..
&gt; 
&gt; Maybe I mistook updating ChangeLog in the previous patch.
&gt; 
&gt; I believe we all agree that the current implementation of shadow trees is far from ideal one. We have to make code clear. BTW, we have to fix the bug though.
&gt; 
&gt; After fixing this, let&apos;s do a lot of refactoring to make code sane.

I am fine with fixing the bug, but you have a few things that are just sloppy code, like methods that aren&apos;t called anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575885</commentid>
    <comment_count>20</comment_count>
      <attachid>131271</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-11 19:09:05 -0700</bug_when>
    <thetext>Created attachment 131271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575888</commentid>
    <comment_count>21</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-11 19:14:11 -0700</bug_when>
    <thetext>&gt; I am fine with fixing the bug, but you have a few things that are just sloppy code, like methods that aren&apos;t called anywhere.

Ya, sorry, I didn&apos;t notice that there was sloppy code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579146</commentid>
    <comment_count>22</comment_count>
      <attachid>131992</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-14 23:12:30 -0700</bug_when>
    <thetext>Created attachment 131992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579160</commentid>
    <comment_count>23</comment_count>
      <attachid>131992</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-14 23:40:50 -0700</bug_when>
    <thetext>Comment on attachment 131992
Patch

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

What makes this patch cryptic is that this changes both lifetime of the HTMLContentSelector and adding a re-entrant guard in distribution.
Ideally these could be done in separate patch. But I think this is OK for now to fix crash asap.

&gt; Source/WebCore/ChangeLog:8
&gt; +        The problem is &lt;content&gt; try to select host children though it is not prepared.

s/try/tries

&gt; Source/WebCore/dom/ShadowTree.cpp:183
&gt; +    ensureSelector()-&gt;willSelect();

It looks we no longer need ensurSelector(). that means we no longer need to allocate it in the heap.

&gt; Source/WebCore/html/shadow/HTMLContentSelector.cpp:167
&gt; +    ASSERT(m_phase == NotPopulatedHostChildren);

This looks too obvious.

&gt; Source/WebCore/html/shadow/HTMLContentSelector.h:147
&gt; +        NotPopulatedHostChildren,

Please consider to avoid negation.

&gt; Source/WebCore/html/shadow/InsertionPoint.cpp:115
&gt; +        selector-&gt;select(this, &amp;m_selections);

Please consider early return. I think we can just return unless the selector is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579179</commentid>
    <comment_count>24</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-15 00:26:17 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 131992 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131992&amp;action=review
&gt; 
&gt; What makes this patch cryptic is that this changes both lifetime of the HTMLContentSelector and adding a re-entrant guard in distribution.
&gt; Ideally these could be done in separate patch. But I think this is OK for now to fix crash asap.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        The problem is &lt;content&gt; try to select host children though it is not prepared.
&gt; 
&gt; s/try/tries

Done.

&gt; 
&gt; &gt; Source/WebCore/dom/ShadowTree.cpp:183
&gt; &gt; +    ensureSelector()-&gt;willSelect();
&gt; 
&gt; It looks we no longer need ensurSelector(). that means we no longer need to allocate it in the heap.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentSelector.cpp:167
&gt; &gt; +    ASSERT(m_phase == NotPopulatedHostChildren);
&gt; 
&gt; This looks too obvious.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentSelector.h:147
&gt; &gt; +        NotPopulatedHostChildren,
&gt; 
&gt; Please consider to avoid negation.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/InsertionPoint.cpp:115
&gt; &gt; +        selector-&gt;select(this, &amp;m_selections);
&gt; 
&gt; Please consider early return. I think we can just return unless the selector is available.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579180</commentid>
    <comment_count>25</comment_count>
      <attachid>131997</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-15 00:26:45 -0700</bug_when>
    <thetext>Created attachment 131997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579187</commentid>
    <comment_count>26</comment_count>
      <attachid>131997</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-15 01:02:26 -0700</bug_when>
    <thetext>Comment on attachment 131997
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        So this patch ensures HTMLContentSelector exists only if it is prepared. If not,

It looks this is no longer true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579189</commentid>
    <comment_count>27</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-15 01:08:51 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 131997 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131997&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        So this patch ensures HTMLContentSelector exists only if it is prepared. If not,
&gt; 
&gt; It looks this is no longer true.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579190</commentid>
    <comment_count>28</comment_count>
      <attachid>132000</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-15 01:11:45 -0700</bug_when>
    <thetext>Created attachment 132000
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580067</commentid>
    <comment_count>29</comment_count>
      <attachid>132000</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 20:20:44 -0700</bug_when>
    <thetext>Comment on attachment 132000
Patch for landing

Clearing flags on attachment: 132000

Committed r110935: &lt;http://trac.webkit.org/changeset/110935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580068</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 20:20:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635663</commentid>
    <comment_count>31</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-29 00:15:20 -0700</bug_when>
    <thetext>*** Bug 80087 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130055</attachid>
            <date>2012-03-04 21:21:17 -0800</date>
            <delta_ts>2012-03-05 02:30:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120305142115.patch</filename>
            <type>text/plain</type>
            <size>6554</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRlNzcwMzQ1ZTViMzZk
ZmJkYmI4ZDI4M2U2MWM4YzhmY2Q0YzczZC4uZDA2MTRhZGRhMGNhMjE4MjZjYzMxMDMxZTA0ZjMz
NDkxNDY1YWM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTA0ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGxheW91dGluZyBhIHNo
YWRvdyB0cmVlLCB3ZSdyZSBjdXJyZW50bHkgYXNzdW1pbmcgdGhhdCB0aGUgd2hvbGUgdHJlZSBp
cyByZS1jcmVhdGVkLgorICAgICAgICBIb3dldmVyLCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLCBz
dWJ0cmVlIGF0dGFjaGluZyBvY2N1cnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2Vz
IGEgZmxhZyB0byBpbmRpY2F0ZSBhIHNoYWRvdyB0cmVlIGlzIHJlY29uc3RydWN0aW5nLiA8Y29u
dGVudD4gc2hvdWxkCisgICAgICAgIGRvIGxheW91dCBvbmx5IHdoZW4gdGhlIGZsYWcgaXMgZW5h
YmxlZC4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNy
YXNoLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpTaGFkb3dUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1RyZWU6OmF0dGFjaCk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1RyZWU6OmlzVHJlZUF0dGFjaGluZyk6CisgICAgICAgICAgSW50
cm9kdWNlZCBmbGFnIHRvIGluZGljYXRlIHRoYXQgdHJlZSBpcyBiZWluZyBhdHRhY2hlZC4KKyAg
ICAgICAgKFNoYWRvd1RyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCk6
CisgICAgICAgICAgQ2FsY3VsYXRlcyBpbmNsdXNpb24gb25seSB3aGVuIHdob2xlIHNoYWRvdyB0
cmVlIGlzIGJlaW5nIGF0dGFjaGVkLgorCiAyMDEyLTAzLTA0ICBMdWtlIE1hY3BoZXJzb24gICA8
bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSGFuZGxlIENTU1Byb3BlcnR5V2Vi
a2l0Q29sdW1uQnJlYWtBZnRlciwgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5CcmVha0JlZm9yZSBh
bmQgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5CcmVha0luc2lkZSBpbiBDU1NTdHlsZUFwcGx5UHJv
cGVydHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKaW5kZXggYmVlMzcyZjc4ZTc2Nzc3OTAx
MGEyZmNjNDc3NzYxMDI1MzE1ZTE5Yi4uMGJlZjdkMGI5MjRlNmE1OThhNTAyMTM1NDJjMTkzNDY3
ZjM3MGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcApAQCAtNDAsNiArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNoYWRvd1RyZWU6OlNoYWRvd1RyZWUoKQogICAgIDogbV9u
ZWVkc1JlY2FsY3VsYXRlQ29udGVudChmYWxzZSkKKyAgICAsIG1faXNUcmVlQXR0YWNoaW5nKGZh
bHNlKQogewogfQogCkBAIC0xNjMsNiArMTY0LDcgQEAgdm9pZCBTaGFkb3dUcmVlOjphdHRhY2go
KQogICAgIC8vIENoaWxkcmVuIG9mIG1fc2VsZWN0b3IgaXMgcG9wdWxhdGVkIGxhemlseSBpbgog
ICAgIC8vIGVuc3VyZVNlbGVjdG9yKCksIGFuZCBoZXJlIHdlIGp1c3QgZW5zdXJlIHRoYXQgaXQg
aXMgaW4gY2xlYW4gc3RhdGUuCiAgICAgQVNTRVJUKCFzZWxlY3RvcigpIHx8ICFzZWxlY3Rvcigp
LT5oYXNDYW5kaWRhdGVzKCkpOworICAgIG1faXNUcmVlQXR0YWNoaW5nID0gdHJ1ZTsKIAogICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAgaWYgKCFyb290LT5hdHRhY2hl
ZCgpKQpAQCAtMTcxLDYgKzE3Myw4IEBAIHZvaWQgU2hhZG93VHJlZTo6YXR0YWNoKCkKIAogICAg
IGlmIChIVE1MQ29udGVudFNlbGVjdG9yKiBjb250ZW50U2VsZWN0b3IgPSBzZWxlY3RvcigpKQog
ICAgICAgICBjb250ZW50U2VsZWN0b3ItPmRpZFNlbGVjdCgpOworCisgICAgbV9pc1RyZWVBdHRh
Y2hpbmcgPSBmYWxzZTsKIH0KIAogdm9pZCBTaGFkb3dUcmVlOjphdHRhY2hIb3N0KEVsZW1lbnQq
IGhvc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaAppbmRleCAwZWZiZGIxMzY3NDMwM2ZmNjdhNzFl
MTBlY2M1NTFhNWE0NzU0ODRmLi4zMTZmZTk3MTI3NTY4ZDk1ODgwOTQwMzdmNTZiNjdmZDA0ODg5
ZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVhdHRhY2goKTsKICAgICB2b2lkIGF0dGFjaEhvc3QoRWxlbWVudCopOwogICAg
IHZvaWQgZGV0YWNoSG9zdChFbGVtZW50Kik7CisgICAgYm9vbCBpc1RyZWVBdHRhY2hpbmcoKSBj
b25zdCB7IHJldHVybiBtX2lzVHJlZUF0dGFjaGluZzsgfQogCiAgICAgYm9vbCBjaGlsZE5lZWRz
U3R5bGVSZWNhbGMoKTsKICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKTsKQEAgLTkwLDYgKzkx
LDcgQEAgcHJpdmF0ZToKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93
Um9vdHM7CiAgICAgT3duUHRyPEhUTUxDb250ZW50U2VsZWN0b3I+IG1fc2VsZWN0b3I7CiAgICAg
Ym9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKKyAgICBib29sIG1faXNUcmVlQXR0
YWNoaW5nIDogMTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dUcmVlKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IDVmNmQ3NzkxOTU5MGMyZjgyN2NlZjFmZWFhYTg3ZDg4NjkyZDViOWMuLmRkMDUyYTdh
ZjMzYjFlZWFlZmFjOGNhY2YwYjNlMjY3NTBmMmFkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNzEsOSArNzEsMTAgQEAg
SFRNTENvbnRlbnRFbGVtZW50Ojp+SFRNTENvbnRlbnRFbGVtZW50KCkKIHZvaWQgSFRNTENvbnRl
bnRFbGVtZW50OjphdHRhY2goKQogewogICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jv
b3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpOworICAgIFNoYWRvd1RyZWUqIHRyZWUgPSByb290ID8g
cm9vdC0+dHJlZSgpIDogMDsKIAogICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0eWxlZEVsZW1lbnQ6
OmF0dGFjaCwgc2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgotICAgIGlmIChyb290KSB7Cisg
ICAgaWYgKHRyZWUgJiYgdHJlZS0+aXNUcmVlQXR0YWNoaW5nKCkpIHsKICAgICAgICAgSFRNTENv
bnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT50cmVlKCktPmVuc3VyZVNlbGVjdG9yKCk7
CiAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKICAgICAgICAgc2Vs
ZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsKQEAgLTgxLDcgKzgyLDcgQEAgdm9p
ZCBIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCiAKICAgICBJbnNlcnRpb25Qb2ludDo6YXR0
YWNoKCk7CiAKLSAgICBpZiAocm9vdCkgeworICAgIGlmICh0cmVlICYmIHRyZWUtPmlzVHJlZUF0
dGFjaGluZygpKSB7CiAgICAgICAgIGZvciAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlv
biA9IG1fc2VsZWN0aW9ucy5maXJzdCgpOyBzZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlv
bi0+bmV4dCgpKQogICAgICAgICAgICAgc2VsZWN0aW9uLT5ub2RlKCktPmF0dGFjaCgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxNGE0NjQxMjhlNDBiNDY1MDcyZmI0ZGRiYTRlNGI2NjdhNjRjYmFkLi4zZjZi
MjM4NjQ2ZmYyMTJlNzJiMDU0NjMzZWVjMWFkZGY1NGU0MDgzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDMtMDQgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtDcmFzaF0gQWRkaW5nIDxjb250ZW50PiBpbnRvIGEgU2hhZG93Um9vdCBjYXVz
ZXMgY3Jhc2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDAyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMy0wNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBXZSBzaG91bGQgcmVzZXQgbW91c2UgcG9zaXRpb24gYmVm
b3JlIGNhbGxpbmcgZXZlbnRTZW5kZXIubW91c2VNb3ZlIGluIExheW91dFRlc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNy
YXNoLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRlODlmMTNmYzg4NDY1MGU5MDkzMDk1N2Rk
MDEyODFlNjYzZThkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+U2hhZG93IENvbnRl
bnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBj
b25maXJtcyBhZGRpbmcgYSBjb250ZW50IGVsZW1lbnQgaW50byBhIHNoYWRvdyByb290IGRvZXMg
bm90IGNhdXNlIGNyYXNoLjwvcD4KKworPGRpdj5QQVNTPGRpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1j
cmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNy
YXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmYyYjJlOWJmNjVlNjIwNDJhNTU0NjJiMDUzMmFkMzYxY2Q3
YmE2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwv
dGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBj
b250ZW50IGVsZW1lbnQgaW50byBhIHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwv
cD4KKworPGRpdiBpZD0nY29udGFpbmVyJz5GQUlMPC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgZGl2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwordmFyIHJvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdChkaXYpOworcm9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQgc2VsZWN0
PSdzcGFuJz5QQVNTPC9jb250ZW50PiI7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130085</attachid>
            <date>2012-03-05 02:30:47 -0800</date>
            <delta_ts>2012-03-06 20:44:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120305193045.patch</filename>
            <type>text/plain</type>
            <size>6314</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI0OWUyOGUzZGQ3YzIw
N2M2YWM2OWM3NGViNGY3YWUyOGYxMzhlMC4uYmM1OGU0Zjg0ODQ2MTc2NGQzZWRmMjAxZmJlNDVk
OTE3MjIwODA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTA0ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGxheW91dGluZyBhIHNo
YWRvdyB0cmVlLCB3ZSdyZSBjdXJyZW50bHkgYXNzdW1pbmcgdGhhdCB0aGUgd2hvbGUgdHJlZSBp
cyByZS1jcmVhdGVkLgorICAgICAgICBIb3dldmVyLCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLCBz
dWJ0cmVlIGF0dGFjaGluZyBvY2N1cnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2Vz
IGEgZmxhZyB0byBpbmRpY2F0ZSBhIHNoYWRvdyB0cmVlIGlzIHJlY29uc3RydWN0aW5nLiA8Y29u
dGVudD4gc2hvdWxkCisgICAgICAgIGRvIGxheW91dCBvbmx5IHdoZW4gdGhlIGZsYWcgaXMgZW5h
YmxlZC4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNy
YXNoLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpTaGFkb3dUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1RyZWU6OmF0dGFjaCk6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1RyZWU6OmlzVHJlZUF0dGFjaGluZyk6CisgICAgICAgICAgSW50
cm9kdWNlZCBmbGFnIHRvIGluZGljYXRlIHRoYXQgdHJlZSBpcyBiZWluZyBhdHRhY2hlZC4KKyAg
ICAgICAgKFNoYWRvd1RyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCk6
CisgICAgICAgICAgQ2FsY3VsYXRlcyBpbmNsdXNpb24gb25seSB3aGVuIHdob2xlIHNoYWRvdyB0
cmVlIGlzIGJlaW5nIGF0dGFjaGVkLgorCiAyMDEyLTAzLTA1ICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZpeCBleHRl
bnNpb25zLXJlc291cmNlLmh0bWwgdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAppbmRl
eCBiZWUzNzJmNzhlNzY3Nzc5MDEwYTJmY2M0Nzc3NjEwMjUzMTVlMTliLi4wYmVmN2QwYjkyNGU2
YTU5OGE1MDIxMzU0MmMxOTM0NjdmMzcwZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3Bw
CkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2hhZG93VHJlZTo6U2hh
ZG93VHJlZSgpCiAgICAgOiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQorICAgICwg
bV9pc1RyZWVBdHRhY2hpbmcoZmFsc2UpCiB7CiB9CiAKQEAgLTE2Myw2ICsxNjQsNyBAQCB2b2lk
IFNoYWRvd1RyZWU6OmF0dGFjaCgpCiAgICAgLy8gQ2hpbGRyZW4gb2YgbV9zZWxlY3RvciBpcyBw
b3B1bGF0ZWQgbGF6aWx5IGluCiAgICAgLy8gZW5zdXJlU2VsZWN0b3IoKSwgYW5kIGhlcmUgd2Ug
anVzdCBlbnN1cmUgdGhhdCBpdCBpcyBpbiBjbGVhbiBzdGF0ZS4KICAgICBBU1NFUlQoIXNlbGVj
dG9yKCkgfHwgIXNlbGVjdG9yKCktPmhhc0NhbmRpZGF0ZXMoKSk7CisgICAgbV9pc1RyZWVBdHRh
Y2hpbmcgPSB0cnVlOwogCiAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFk
b3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkgewogICAgICAg
ICBpZiAoIXJvb3QtPmF0dGFjaGVkKCkpCkBAIC0xNzEsNiArMTczLDggQEAgdm9pZCBTaGFkb3dU
cmVlOjphdHRhY2goKQogCiAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0b3IqIGNvbnRlbnRTZWxl
Y3RvciA9IHNlbGVjdG9yKCkpCiAgICAgICAgIGNvbnRlbnRTZWxlY3Rvci0+ZGlkU2VsZWN0KCk7
CisKKyAgICBtX2lzVHJlZUF0dGFjaGluZyA9IGZhbHNlOwogfQogCiB2b2lkIFNoYWRvd1RyZWU6
OmF0dGFjaEhvc3QoRWxlbWVudCogaG9zdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCmluZGV4IDBl
ZmJkYjEzNjc0MzAzZmY2N2E3MWUxMGVjYzU1MWE1YTQ3NTQ4NGYuLjMxNmZlOTcxMjc1NjhkOTU4
ODA5NDAzN2Y1NmI2N2ZkMDQ4ODlmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaApAQCAtNjcs
NiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWF0dGFjaCgpOwogICAgIHZvaWQgYXR0YWNo
SG9zdChFbGVtZW50Kik7CiAgICAgdm9pZCBkZXRhY2hIb3N0KEVsZW1lbnQqKTsKKyAgICBib29s
IGlzVHJlZUF0dGFjaGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNUcmVlQXR0YWNoaW5nOyB9CiAK
ICAgICBib29sIGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogICAgIGJvb2wgbmVlZHNTdHlsZVJl
Y2FsYygpOwpAQCAtOTAsNiArOTEsNyBAQCBwcml2YXRlOgogICAgIERvdWJseUxpbmtlZExpc3Q8
U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKICAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rv
cj4gbV9zZWxlY3RvcjsKICAgICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgOiAxOwor
ICAgIGJvb2wgbV9pc1RyZWVBdHRhY2hpbmcgOiAxOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFNoYWRvd1RyZWUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0
aW9uUG9pbnQuY3BwCmluZGV4IDM2NTY5NWQxYWQ0YWM2OTRlNGU4ODNlZThkMTM0ZDA2YWViM2My
YzkuLjVlMjBmMWQyZmUyMWY1YWNhMDBjZTZiYjZkYTg3ZTU2NzcwYTJhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKQEAgLTQ5LDggKzQ5LDkg
QEAgSW5zZXJ0aW9uUG9pbnQ6On5JbnNlcnRpb25Qb2ludCgpCiB2b2lkIEluc2VydGlvblBvaW50
OjphdHRhY2goKQogewogICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93
VHJlZVJvb3ROb2RlKCkpOworICAgIFNoYWRvd1RyZWUqIHRyZWUgPSByb290ID8gcm9vdC0+dHJl
ZSgpIDogMDsKIAotICAgIGlmIChyb290KSB7CisgICAgaWYgKHRyZWUgJiYgdHJlZS0+aXNUcmVl
QXR0YWNoaW5nKCkpIHsKICAgICAgICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSBy
b290LT50cmVlKCktPmVuc3VyZVNlbGVjdG9yKCk7CiAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVj
dCgmbV9zZWxlY3Rpb25zKTsKICAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxl
Y3Rpb25zKTsKQEAgLTU4LDcgKzU5LDcgQEAgdm9pZCBJbnNlcnRpb25Qb2ludDo6YXR0YWNoKCkK
IAogICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKIAotICAgIGlmIChyb290KSB7CisgICAgaWYg
KHRyZWUgJiYgdHJlZS0+aXNUcmVlQXR0YWNoaW5nKCkpIHsKICAgICAgICAgZm9yIChIVE1MQ29u
dGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gbV9zZWxlY3Rpb25zLmZpcnN0KCk7IHNlbGVjdGlv
bjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5uZXh0KCkpCiAgICAgICAgICAgICBzZWxlY3Rpb24t
Pm5vZGUoKS0+YXR0YWNoKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwMTU0NjU3Y2QyMjljNTBiZjYxMjAx
ZTBkNWQ4OGI0M2M1NWIxZjAuLjE3ZGY0Y2EzNTdlNDk0NDM0MDUzMDZhZmJkNWEwNTk1ZDBmZDMz
YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wNCAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0NyYXNoXSBBZGRpbmcgPGNvbnRlbnQ+
IGludG8gYSBTaGFkb3dSb290IGNhdXNlcyBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQt
Y3Jhc2gtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1jb250ZW50LWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTA1ICBQYXZlbCBQb2Rp
dmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGZpeCBleHRlbnNpb25zLXJlc291cmNlLmh0bWwgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmRlODlmMTNmYzg4NDY1MGU5MDkzMDk1N2RkMDEyODFlNjYzZThk
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBD
cmFzaDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRp
bmcgYSBjb250ZW50IGVsZW1lbnQgaW50byBhIHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNy
YXNoLjwvcD4KKworPGRpdj5QQVNTPGRpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmYyYjJlOWJmNjVlNjIwNDJhNTU0NjJiMDUzMmFkMzYxY2Q3YmE2OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBjb250ZW50IGVsZW1l
bnQgaW50byBhIHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwvcD4KKworPGRpdiBp
ZD0nY29udGFpbmVyJz5GQUlMPC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwordmFyIHJvb3QgPSBuZXcgV2ViS2l0U2hhZG93
Um9vdChkaXYpOworcm9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQgc2VsZWN0PSdzcGFuJz5QQVNT
PC9jb250ZW50PiI7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130530</attachid>
            <date>2012-03-06 20:44:27 -0800</date>
            <delta_ts>2012-03-11 19:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120307134425.patch</filename>
            <type>text/plain</type>
            <size>10557</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4ZmZjODU1MmEyOWNj
YThiNTllMWE1MjcxYjBiMWU2ZjdhYzA3OS4uMjMxNjg3OTJhYzdkMGJkOTI3ZmE1NjczZmRkNWYx
NmI1YjhjMmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTAzLTA2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyA8Y29u
dGVudD4gdHJ5IHRvIHNlbGVjdCBob3N0IGNoaWxkcmVuIHRob3VnaCBpdCBpcyBub3QgcHJlcGFy
ZWQuCisgICAgICAgIFNpbmNlIHBvcHVsYXRpbmcgaG9zdCBjaGlsZHJlbiBmb3IgaW5zZXJ0aW9u
IHBvaW50cyBpcyBwZXJmb3JtZWQganVzdCBiZWZvcmUKKyAgICAgICAgYXR0YWNoaW5nIGEgc2hh
ZG93IHRyZWUsIHdlIHNob3VsZCByZWNhbGN1bGF0ZSB3aG9sZSBzaGFkb3cgdHJlZSBpZiA8Y29u
dGVudD4gaXMKKyAgICAgICAgYXBwZW5kZWQgYXMgYSBjaGlsZC4KKworICAgICAgICBIb3dldmVy
LCBlbGVtZW50LT5hcHBlbmRDaGlsZCgpIGRvZXMgbm90IGtub3cgdGhlIGVsZW1lbnQgaXMgaW4g
YSBzaGFkb3cgdHJlZSBvciBub3QuCisgICAgICAgIFdlIGhhdmUgdG8gZW5zdXJlIHJlYXR0YWNo
aW5nIHdob2xlIHNoYWRvdyB0cmVlIGhlcmUuCisKKyAgICAgICAgU28gdGhpcyBwYXRjaCBlbnN1
cmVzIEhUTUxDb250ZW50U2VsZWN0b3IgZXhpc3RzIG9ubHkgaWYgaXQgaXMgcHJlcGFyZWQuIElm
IG5vdCwKKyAgICAgICAgd2UgY2Fubm90IHNlbGVjdCBhbnl0aGluZywgYnV0IHdlIGhhdmUgdG8g
ZW5hYmxlIGEgZmxhZyB0byByZWF0dGFjaCB3aG9sZSBzaGFkb3cgdHJlZS4KKworICAgICAgICBU
ZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1s
CisKKyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dUcmVlOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJlZTo6ZW5zdXJlU2Vs
ZWN0b3IpOgorICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmg6CisgICAgICAgIChTaGFkb3dUcmVl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OkhUTUxDb250ZW50U2VsZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3QpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6cG9wdWxhdGVJZk5lc2Vz
c2FyeSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oOgorICAg
ICAgICAoSFRNTENvbnRlbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dFNlbGVjdG9yOjppc1NlbGVjdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNl
bGVjdG9yOjppc1BvcHVsYXRlZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9p
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmRpc3RyaWJ1dGVIb3N0
Q2hpbGRyZW4pOgorCisyMDEyLTAzLTA0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFkZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRv
d1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIGxheW91dGluZyBhIHNoYWRvdyB0cmVlLCB3ZSdyZSBjdXJyZW50bHkg
YXNzdW1pbmcgdGhhdCB0aGUgd2hvbGUgdHJlZSBpcyByZS1jcmVhdGVkLgorICAgICAgICBIb3dl
dmVyLCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLCBzdWJ0cmVlIGF0dGFjaGluZyBvY2N1cnMuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgZmxhZyB0byBpbmRpY2F0ZSBhIHNoYWRv
dyB0cmVlIGlzIHJlY29uc3RydWN0aW5nLiA8Y29udGVudD4gc2hvdWxkCisgICAgICAgIGRvIGxh
eW91dCBvbmx5IHdoZW4gdGhlIGZsYWcgaXMgZW5hYmxlZC4KKworICAgICAgICBUZXN0czogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCisKKyAgICAg
ICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpT
aGFkb3dUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1RyZWU6OmF0dGFjaCk6CisgICAg
ICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1RyZWU6Omlz
VHJlZUF0dGFjaGluZyk6CisgICAgICAgICAgSW50cm9kdWNlZCBmbGFnIHRvIGluZGljYXRlIHRo
YXQgdHJlZSBpcyBiZWluZyBhdHRhY2hlZC4KKyAgICAgICAgKFNoYWRvd1RyZWUpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgICAgQ2FsY3VsYXRlcyBpbmNs
dXNpb24gb25seSB3aGVuIHdob2xlIHNoYWRvdyB0cmVlIGlzIGJlaW5nIGF0dGFjaGVkLgorCiAy
MDEyLTAzLTA2ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA5OTY5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUu
Y3BwCmluZGV4IGJlZTM3MmY3OGU3Njc3NzkwMTBhMmZjYzQ3Nzc2MTAyNTMxNWUxOWIuLjcxODNi
MWRmOWE2YjY5NjVmOWExOTBlYzE0ZWI3OThkM2FmZGZhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
VHJlZS5jcHAKQEAgLTE2NCwxMyArMTY0LDEyIEBAIHZvaWQgU2hhZG93VHJlZTo6YXR0YWNoKCkK
ICAgICAvLyBlbnN1cmVTZWxlY3RvcigpLCBhbmQgaGVyZSB3ZSBqdXN0IGVuc3VyZSB0aGF0IGl0
IGlzIGluIGNsZWFuIHN0YXRlLgogICAgIEFTU0VSVCghc2VsZWN0b3IoKSB8fCAhc2VsZWN0b3Io
KS0+aGFzQ2FuZGlkYXRlcygpKTsKIAorICAgIGVuc3VyZVNlbGVjdG9yKCktPndpbGxTZWxlY3Qo
KTsKICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9v
dDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGlmICghcm9vdC0+
YXR0YWNoZWQoKSkKICAgICAgICAgICAgIHJvb3QtPmF0dGFjaCgpOwogICAgIH0KLQotICAgIGlm
IChIVE1MQ29udGVudFNlbGVjdG9yKiBjb250ZW50U2VsZWN0b3IgPSBzZWxlY3RvcigpKQotICAg
ICAgICBjb250ZW50U2VsZWN0b3ItPmRpZFNlbGVjdCgpOworICAgIHNlbGVjdG9yKCktPmRpZFNl
bGVjdCgpOwogfQogCiB2b2lkIFNoYWRvd1RyZWU6OmF0dGFjaEhvc3QoRWxlbWVudCogaG9zdCkK
QEAgLTMwMiw3ICszMDEsNiBAQCBIVE1MQ29udGVudFNlbGVjdG9yKiBTaGFkb3dUcmVlOjplbnN1
cmVTZWxlY3RvcigpCiB7CiAgICAgaWYgKCFtX3NlbGVjdG9yKQogICAgICAgICBtX3NlbGVjdG9y
ID0gYWRvcHRQdHIobmV3IEhUTUxDb250ZW50U2VsZWN0b3IoKSk7Ci0gICAgbV9zZWxlY3Rvci0+
d2lsbFNlbGVjdE92ZXIoaG9zdCgpKTsKICAgICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKaW5kZXggMGVmYmRiMTM2NzQzMDNmZjY3YTcxZTEwZWNj
NTUxYTVhNDc1NDg0Zi4uNTQ2MmNmODk1NmNlNWJkNzM3NDMwYzRjMjYzZGJlZTJhMjI5MGFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBT
aGFkb3dUcmVlKCk7CiAgICAgflNoYWRvd1RyZWUoKTsKIAorICAgIEVsZW1lbnQqIGhvc3QoKSBj
b25zdDsKKwogICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3Qq
IHlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRv
d1Jvb3QoKSBjb25zdDsKQEAgLTgxLDExICs4MywxMiBAQCBwdWJsaWM6CiAKICAgICBIVE1MQ29u
dGVudFNlbGVjdG9yKiBzZWxlY3RvcigpIGNvbnN0OwogICAgIEhUTUxDb250ZW50U2VsZWN0b3Iq
IGVuc3VyZVNlbGVjdG9yKCk7CisgICAgdm9pZCBwb3B1bGF0ZSgpOworICAgIGJvb2wgaXNQb3B1
bGF0ZWQoKTsKIAogICAgIGJvb2wgaXNTZWxlY3RvckFjdGl2ZSgpIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKIAogICAgIERvdWJseUxpbmtlZExpc3Q8U2hh
ZG93Um9vdD4gbV9zaGFkb3dSb290czsKICAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rvcj4g
bV9zZWxlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRTZWxlY3Rvci5jcHAKaW5kZXggOTUzOTViYzhiZjIyYmE4Mzk4ZmQ1NmU0NWQ4NjRkYTYzMTgy
NjkyNC4uYjYwNTM5MWUyMGExNjJjN2IwZmZjOGFlNTAwMGEyZGVkOGU5NjVkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKQEAg
LTEwMCw2ICsxMDAsOCBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdDo6YXBwZW5kKFBh
c3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNoaWxkKQogfQogCiBIVE1MQ29udGVudFNl
bGVjdG9yOjpIVE1MQ29udGVudFNlbGVjdG9yKCkKKyAgICA6IG1faXNTZWxlY3RpbmcoZmFsc2Up
CisgICAgLCBtX2lzUG9wdWxhdGVkKGZhbHNlKQogewogfQogCkBAIC0xMTEsNiArMTEzLDcgQEAg
SFRNTENvbnRlbnRTZWxlY3Rvcjo6fkhUTUxDb250ZW50U2VsZWN0b3IoKQogdm9pZCBIVE1MQ29u
dGVudFNlbGVjdG9yOjpzZWxlY3QoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBIVE1M
Q29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMpCiB7CiAgICAgQVNTRVJUKHNlbGVjdGlv
bnMtPmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKGlzUG9wdWxhdGVkKCkpOwogCiAgICAgQ29udGVu
dFNlbGVjdG9yUXVlcnkgcXVlcnkoaW5zZXJ0aW9uUG9pbnQpOwogCkBAIC0xNDEsMTMgKzE0NCwz
MCBAQCBIVE1MQ29udGVudFNlbGVjdGlvbiogSFRNTENvbnRlbnRTZWxlY3Rvcjo6ZmluZEZvcihO
b2RlKiBrZXkpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0aW9uU2V0LmZpbmQoa2V5KTsKIH0K
IAordm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0KCkKK3sKKyAgICBBU1NFUlQo
IW1faXNTZWxlY3RpbmcpOworICAgIEFTU0VSVCghbV9pc1BvcHVsYXRlZCk7CisKKyAgICBtX2lz
U2VsZWN0aW5nID0gdHJ1ZTsKK30KKwogdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxl
Y3QoKQogeworICAgIEFTU0VSVChtX2lzU2VsZWN0aW5nKTsKKworICAgIG1faXNTZWxlY3Rpbmcg
PSBmYWxzZTsKKyAgICBtX2lzUG9wdWxhdGVkID0gZmFsc2U7CiAgICAgbV9jYW5kaWRhdGVzLmNs
ZWFyKCk7CiB9CiAKLXZvaWQgSFRNTENvbnRlbnRTZWxlY3Rvcjo6d2lsbFNlbGVjdE92ZXIoRWxl
bWVudCogc2hhZG93SG9zdCkKK3ZvaWQgSFRNTENvbnRlbnRTZWxlY3Rvcjo6cG9wdWxhdGVJZk5l
c2Vzc2FyeShFbGVtZW50KiBzaGFkb3dIb3N0KQogeworICAgIGlmIChpc1BvcHVsYXRlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2lzUG9wdWxhdGVkID0gdHJ1ZTsKKwogICAgIGlmICgh
bV9jYW5kaWRhdGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChzaGFk
b3dIb3N0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2Vs
ZWN0b3IuaAppbmRleCAxNGVhMDU3YTBhNWVkNTc0N2NkY2E5ODk4ZDJhNWU1ZmE1M2M1ODc0Li5i
YmZmNzQzZDY0MDMyMGQxMWMyY2MwMjUwY2QxMDZhMWRmZDQ1ZDkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCkBAIC0xMzQsOCArMTM0
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHVuc2VsZWN0KEhUTUxDb250ZW50U2VsZWN0aW9uTGlz
dCopOwogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBmaW5kRm9yKE5vZGUqIGtleSkgY29uc3Q7
CiAKLSAgICB2b2lkIHdpbGxTZWxlY3RPdmVyKEVsZW1lbnQqIHNoYWRvd0hvc3QpOworICAgIHZv
aWQgd2lsbFNlbGVjdCgpOworICAgIGJvb2wgaXNTZWxlY3RpbmcoKSBjb25zdCB7IHJldHVybiBt
X2lzU2VsZWN0aW5nOyB9CiAgICAgdm9pZCBkaWRTZWxlY3QoKTsKKworICAgIHZvaWQgcG9wdWxh
dGVJZk5lc2Vzc2FyeShFbGVtZW50KiBzaGFkb3dIb3N0KTsKKyAgICBib29sIGlzUG9wdWxhdGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc1BvcHVsYXRlZDsgfQogICAgIGJvb2wgaGFzQ2FuZGlkYXRl
cygpIGNvbnN0IHsgcmV0dXJuICFtX2NhbmRpZGF0ZXMuaXNFbXB0eSgpOyB9CiAKIHByaXZhdGU6
CkBAIC0xNDQsNiArMTQ4LDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4g
PiBtX2NhbmRpZGF0ZXM7CiAgICAgSFRNTENvbnRlbnRTZWxlY3Rpb25TZXQgbV9zZWxlY3Rpb25T
ZXQ7CisgICAgYm9vbCBtX2lzU2VsZWN0aW5nOworICAgIGJvb2wgbV9pc1BvcHVsYXRlZDsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBv
aW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcApp
bmRleCAzOWZhNzIwNGQ5MTNkNzcxNjYxNjQzY2I5N2I3ODAwNzg4NTQ3Y2YzLi4wODY5NmM3NTBk
MDRlMDdkY2U1MTEwYTk2NzNlMDEyYjY3NmE0NTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCkBAIC04NSw5ICs4NSwxMSBAQCBib29sIEluc2Vy
dGlvblBvaW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0KQogCiBpbmxpbmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6ZGlzdHJpYnV0ZUhvc3RDaGls
ZHJlbihTaGFkb3dUcmVlKiB0cmVlKQogewotICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVj
dG9yID0gdHJlZS0+ZW5zdXJlU2VsZWN0b3IoKTsKLSAgICBzZWxlY3Rvci0+dW5zZWxlY3QoJm1f
c2VsZWN0aW9ucyk7Ci0gICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsK
KyAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSB0cmVlLT5zZWxlY3Rvcigp
KSB7CisgICAgICAgIHNlbGVjdG9yLT5wb3B1bGF0ZUlmTmVzZXNzYXJ5KHRyZWUtPmhvc3QoKSk7
CisgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKKyAgICAgICAgc2Vs
ZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsKKyAgICB9CiB9CiAKIGlubGluZSB2
b2lkIEluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlvbihTaGFkb3dUcmVlKiB0cmVlKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGVlMjlkOWFkYjYwOTUyNGYyYzMyMzQ0Y2E3NzI0OWE4M2MxOTczZmEuLjhjZTVhYzFh
NWVhZjNjMjQ0ODZiODAxNTA0NWIwYTk1ODlkYzA1OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMy0wNCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0NyYXNoXSBBZGRpbmcgPGNvbnRlbnQ+IGludG8gYSBTaGFkb3dSb290IGNhdXNlcyBj
cmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgw
MDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTAzLTA2ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRlIG1hYyB0ZXh0IGJhc2VsaW5lcyBhZnRlciByMTA5
ODUxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRl
bnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZTg5ZjEzZmM4ODQ2
NTBlOTA5MzA5NTdkZDAxMjgxZTY2M2U4ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PlNoYWRvdyBDb250ZW50IEVsZW1lbnQgQ3Jhc2g8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgY29uZmlybXMgYWRkaW5nIGEgY29udGVudCBlbGVtZW50IGludG8gYSBzaGFk
b3cgcm9vdCBkb2VzIG5vdCBjYXVzZSBjcmFzaC48L3A+CisKKzxkaXY+UEFTUzxkaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWNvbnRlbnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMmIyZTliZjY1ZTYyMDQyYTU1NDYy
YjA1MzJhZDM2MWNkN2JhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlNoYWRvdyBDb250ZW50IEVs
ZW1lbnQgQ3Jhc2g8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY29uZmly
bXMgYWRkaW5nIGEgY29udGVudCBlbGVtZW50IGludG8gYSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBj
YXVzZSBjcmFzaC48L3A+CisKKzxkaXYgaWQ9J2NvbnRhaW5lcic+RkFJTDwvZGl2PgorCis8c2Ny
aXB0PgordmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK3Zh
ciByb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKK3Jvb3QuaW5uZXJIVE1MID0gIjxj
b250ZW50IHNlbGVjdD0nc3Bhbic+UEFTUzwvY29udGVudD4iOworPC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131271</attachid>
            <date>2012-03-11 19:09:05 -0700</date>
            <delta_ts>2012-03-14 23:12:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120312110904.patch</filename>
            <type>text/plain</type>
            <size>9988</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmIyZThkNmFlMGQ5ZDVl
YjUwMDExMDE2OWU2OTE4ZjY5YTg2YTAyNy4uZmQ4OTVhYmEyYjFhNzU4MDIxNTVjYWIxZGE5MTQ1
Y2E3Zjk1MjA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTA4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyA8Y29u
dGVudD4gdHJ5IHRvIHNlbGVjdCBob3N0IGNoaWxkcmVuIHRob3VnaCBpdCBpcyBub3QgcHJlcGFy
ZWQuCisgICAgICAgIFNpbmNlIHBvcHVsYXRpbmcgaG9zdCBjaGlsZHJlbiBmb3IgaW5zZXJ0aW9u
IHBvaW50cyBpcyBwZXJmb3JtZWQganVzdCBiZWZvcmUKKyAgICAgICAgYXR0YWNoaW5nIGEgc2hh
ZG93IHRyZWUsIHdlIHNob3VsZCByZWNhbGN1bGF0ZSB3aG9sZSBzaGFkb3cgdHJlZSBpZiA8Y29u
dGVudD4gaXMKKyAgICAgICAgYXBwZW5kZWQgYXMgYSBjaGlsZC4KKworICAgICAgICBIb3dldmVy
LCBlbGVtZW50LT5hcHBlbmRDaGlsZCgpIGRvZXMgbm90IGtub3cgdGhlIGVsZW1lbnQgaXMgaW4g
YSBzaGFkb3cgdHJlZSBvciBub3QuCisgICAgICAgIFdlIGhhdmUgdG8gZW5zdXJlIHJlYXR0YWNo
aW5nIHdob2xlIHNoYWRvdyB0cmVlIGhlcmUuCisKKyAgICAgICAgU28gdGhpcyBwYXRjaCBlbnN1
cmVzIEhUTUxDb250ZW50U2VsZWN0b3IgZXhpc3RzIG9ubHkgaWYgaXQgaXMgcHJlcGFyZWQuIElm
IG5vdCwKKyAgICAgICAgd2UgY2Fubm90IHNlbGVjdCBhbnl0aGluZywgYnV0IHdlIGhhdmUgdG8g
ZW5hYmxlIGEgZmxhZyB0byByZWF0dGFjaCB3aG9sZSBzaGFkb3cgdHJlZS4KKworICAgICAgICBU
ZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1s
CisKKyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dUcmVlOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJlZTo6ZW5zdXJlU2Vs
ZWN0b3IpOgorICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmg6CisgICAgICAgIChTaGFkb3dUcmVl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OkhUTUxDb250ZW50U2VsZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3QpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6cG9wdWxhdGVJZk5lc2Vz
c2FyeSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oOgorICAg
ICAgICAoSFRNTENvbnRlbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dFNlbGVjdG9yOjppc1NlbGVjdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNl
bGVjdG9yOjppc1BvcHVsYXRlZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9p
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OmRpc3RyaWJ1dGVIb3N0
Q2hpbGRyZW4pOgorCiAyMDEyLTAzLTExICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHI5MzYxNCk6IHNjcm9sbGluZyBkaXYgZG9l
cyBub3QgcmVwYWludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCmluZGV4IGFlYzk5OGJkODA4
YTc0NGVjY2RlZThhOTUwNzk5ZmExZTBhNWI1NTkuLmE5NmZlZWZjNDJmZDU1ODExNjRkMWM1OWRi
NTFkM2IxNTA5NjQ3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKQEAgLTE3OCwxNSAr
MTc4LDE0IEBAIHZvaWQgU2hhZG93VHJlZTo6YXR0YWNoKCkKIHsKICAgICAvLyBDaGlsZHJlbiBv
ZiBtX3NlbGVjdG9yIGlzIHBvcHVsYXRlZCBsYXppbHkgaW4KICAgICAvLyBlbnN1cmVTZWxlY3Rv
cigpLCBhbmQgaGVyZSB3ZSBqdXN0IGVuc3VyZSB0aGF0IGl0IGlzIGluIGNsZWFuIHN0YXRlLgot
ICAgIEFTU0VSVCghc2VsZWN0b3IoKSB8fCAhc2VsZWN0b3IoKS0+aGFzQ2FuZGlkYXRlcygpKTsK
KyAgICBBU1NFUlQoIXNlbGVjdG9yKCkgfHwgIXNlbGVjdG9yKCktPmhhc1BvcHVsYXRlZCgpKTsK
IAorICAgIGVuc3VyZVNlbGVjdG9yKCktPndpbGxTZWxlY3QoKTsKICAgICBmb3IgKFNoYWRvd1Jv
b3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVy
U2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGlmICghcm9vdC0+YXR0YWNoZWQoKSkKICAgICAgICAg
ICAgIHJvb3QtPmF0dGFjaCgpOwogICAgIH0KLQotICAgIGlmIChIVE1MQ29udGVudFNlbGVjdG9y
KiBjb250ZW50U2VsZWN0b3IgPSBzZWxlY3RvcigpKQotICAgICAgICBjb250ZW50U2VsZWN0b3It
PmRpZFNlbGVjdCgpOworICAgIHNlbGVjdG9yKCktPmRpZFNlbGVjdCgpOwogfQogCiB2b2lkIFNo
YWRvd1RyZWU6OmF0dGFjaEhvc3QoRWxlbWVudCogaG9zdCkKQEAgLTMyMSw3ICszMjAsNiBAQCBI
VE1MQ29udGVudFNlbGVjdG9yKiBTaGFkb3dUcmVlOjplbnN1cmVTZWxlY3RvcigpCiB7CiAgICAg
aWYgKCFtX3NlbGVjdG9yKQogICAgICAgICBtX3NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEhUTUxD
b250ZW50U2VsZWN0b3IoKSk7Ci0gICAgbV9zZWxlY3Rvci0+d2lsbFNlbGVjdE92ZXIoaG9zdCgp
KTsKICAgICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVl
LmgKaW5kZXggNTRjNDFiYmU0MTlmNWMzYjEyZTc4NjgyYjZkNDkyMjVkNDZmOWI5MS4uM2MwZDQ4
ZmEwY2I2MDZjOGRhZTI2ODQ0ZjJlYTI1YmZiNDM0OGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJl
ZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBTaGFkb3dUcmVlKCk7CiAgICAgflNo
YWRvd1RyZWUoKTsKIAorICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKKwogICAgIGJvb2wgaGFz
U2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgp
IGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKQEAgLTgx
LDkgKzgzLDEwIEBAIHB1YmxpYzoKIAogICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9y
KCkgY29uc3Q7CiAgICAgSFRNTENvbnRlbnRTZWxlY3RvciogZW5zdXJlU2VsZWN0b3IoKTsKKyAg
ICB2b2lkIHBvcHVsYXRlKCk7CisgICAgYm9vbCBpc1BvcHVsYXRlZCgpOwogCiBwcml2YXRlOgot
ICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKIAogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93
Um9vdD4gbV9zaGFkb3dSb290czsKICAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rvcj4gbV9z
ZWxlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRT
ZWxlY3Rvci5jcHAKaW5kZXggOTUzOTViYzhiZjIyYmE4Mzk4ZmQ1NmU0NWQ4NjRkYTYzMTgyNjky
NC4uNGIwOGFhYzY1Njk1MGM4ZTY4NzlhYjlhMmZjMmM4YmQ0NmI1MGEyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKQEAgLTEw
MCw2ICsxMDAsOCBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdDo6YXBwZW5kKFBhc3NS
ZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNoaWxkKQogfQogCiBIVE1MQ29udGVudFNlbGVj
dG9yOjpIVE1MQ29udGVudFNlbGVjdG9yKCkKKyAgICA6IG1faXNTZWxlY3RpbmcoZmFsc2UpCisg
ICAgLCBtX2hhc1BvcHVsYXRlZChmYWxzZSkKIHsKIH0KIApAQCAtMTExLDYgKzExMyw3IEBAIEhU
TUxDb250ZW50U2VsZWN0b3I6On5IVE1MQ29udGVudFNlbGVjdG9yKCkKIHZvaWQgSFRNTENvbnRl
bnRTZWxlY3Rvcjo6c2VsZWN0KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgSFRNTENv
bnRlbnRTZWxlY3Rpb25MaXN0KiBzZWxlY3Rpb25zKQogewogICAgIEFTU0VSVChzZWxlY3Rpb25z
LT5pc0VtcHR5KCkpOworICAgIEFTU0VSVChoYXNQb3B1bGF0ZWQoKSk7CiAKICAgICBDb250ZW50
U2VsZWN0b3JRdWVyeSBxdWVyeShpbnNlcnRpb25Qb2ludCk7CiAKQEAgLTE0MSwxNiArMTQ0LDMy
IEBAIEhUTUxDb250ZW50U2VsZWN0aW9uKiBIVE1MQ29udGVudFNlbGVjdG9yOjpmaW5kRm9yKE5v
ZGUqIGtleSkgY29uc3QKICAgICByZXR1cm4gbV9zZWxlY3Rpb25TZXQuZmluZChrZXkpOwogfQog
Cit2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3QoKQoreworICAgIEFTU0VSVCgh
aXNTZWxlY3RpbmcoKSk7CisgICAgQVNTRVJUKCFoYXNQb3B1bGF0ZWQoKSk7CisKKyAgICBtX2lz
U2VsZWN0aW5nID0gdHJ1ZTsKK30KKwogdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxl
Y3QoKQogeworICAgIEFTU0VSVChpc1NlbGVjdGluZygpKTsKKworICAgIG1faXNTZWxlY3Rpbmcg
PSBmYWxzZTsKKyAgICBtX2hhc1BvcHVsYXRlZCA9IGZhbHNlOwogICAgIG1fY2FuZGlkYXRlcy5j
bGVhcigpOwogfQogCi12b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKEVs
ZW1lbnQqIHNoYWRvd0hvc3QpCit2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OnBvcHVsYXRlSWZO
ZWNlc3NhcnkoRWxlbWVudCogc2hhZG93SG9zdCkKIHsKLSAgICBpZiAoIW1fY2FuZGlkYXRlcy5p
c0VtcHR5KCkpCisgICAgaWYgKGhhc1BvcHVsYXRlZCgpKQogICAgICAgICByZXR1cm47CisKKyAg
ICBBU1NFUlQobV9jYW5kaWRhdGVzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKHNoYWRvd0hvc3Qp
OworCisgICAgbV9oYXNQb3B1bGF0ZWQgPSB0cnVlOwogICAgIGZvciAoTm9kZSogbm9kZSA9IHNo
YWRvd0hvc3QtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgIG1fY2FuZGlkYXRlcy5hcHBlbmQobm9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKaW5kZXggMTRlYTA1N2EwYTVl
ZDU3NDdjZGNhOTg5OGQyYTVlNWZhNTNjNTg3NC4uYTY0NzI3NzQ1NjdmNjExOWI4ZjcxNjY3M2Uz
ZWFkYjI5NjIzZDc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50U2VsZWN0b3IuaApAQCAtMTM0LDkgKzEzNCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
bnNlbGVjdChIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKICAgICBIVE1MQ29udGVudFNlbGVj
dGlvbiogZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0OwogCi0gICAgdm9pZCB3aWxsU2VsZWN0T3Zl
cihFbGVtZW50KiBzaGFkb3dIb3N0KTsKKyAgICB2b2lkIHdpbGxTZWxlY3QoKTsKKyAgICBib29s
IGlzU2VsZWN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1NlbGVjdGluZzsgfQogICAgIHZvaWQg
ZGlkU2VsZWN0KCk7Ci0gICAgYm9vbCBoYXNDYW5kaWRhdGVzKCkgY29uc3QgeyByZXR1cm4gIW1f
Y2FuZGlkYXRlcy5pc0VtcHR5KCk7IH0KKworICAgIHZvaWQgcG9wdWxhdGVJZk5lY2Vzc2FyeShF
bGVtZW50KiBzaGFkb3dIb3N0KTsKKyAgICBib29sIGhhc1BvcHVsYXRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzUG9wdWxhdGVkOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVGcm9tU2V0
KEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCopOwpAQCAtMTQ0LDYgKzE0Nyw4IEBAIHByaXZhdGU6
CiAKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9jYW5kaWRhdGVzOwogICAgIEhUTUxDb250
ZW50U2VsZWN0aW9uU2V0IG1fc2VsZWN0aW9uU2V0OworICAgIGJvb2wgbV9pc1NlbGVjdGluZzsK
KyAgICBib29sIG1faGFzUG9wdWxhdGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCmluZGV4IGViZDRiMjhjNDY0ODdjZDE0ODcyNmI4
ZTJkOTQxMjM3N2U3ZDA0NzQuLjRhMTZiNjJiM2NhMmU0NTAzYjc4YmVlYjUyNmJjN2FkYTJmNjdm
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAK
QEAgLTEwOSw5ICsxMDksMTUgQEAgYm9vbCBJbnNlcnRpb25Qb2ludDo6cmVuZGVyZXJJc05lZWRl
ZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKIAogaW5saW5lIHZvaWQgSW5z
ZXJ0aW9uUG9pbnQ6OmRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4oU2hhZG93VHJlZSogdHJlZSkKIHsK
LSAgICBIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvciA9IHRyZWUtPmVuc3VyZVNlbGVjdG9y
KCk7Ci0gICAgc2VsZWN0b3ItPnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwotICAgIHNlbGVjdG9y
LT5zZWxlY3QodGhpcywgJm1fc2VsZWN0aW9ucyk7CisgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0
b3IqIHNlbGVjdG9yID0gdHJlZS0+c2VsZWN0b3IoKSkgeworICAgICAgICBzZWxlY3Rvci0+cG9w
dWxhdGVJZk5lY2Vzc2FyeSh0cmVlLT5ob3N0KCkpOworICAgICAgICBzZWxlY3Rvci0+dW5zZWxl
Y3QoJm1fc2VsZWN0aW9ucyk7CisgICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgJm1fc2Vs
ZWN0aW9ucyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm90IHRyZWUt
PnNlbGVjdG9yKCksIGl0IG1lYW5zIEluc2VydGlvblBvaW50IGlzIGF0dGFjaGVkIGZyb20KKyAg
ICAgICAgLy8gbm9uLVNoYWRvd1RyZWUgbm9kZS4gVG8gcnVuIGRpc3RyaWJ1dGUgYWxnb3JpdGht
LCB3ZSBoYXZlIHRvIHJlYXR0YWNoIFNoYWRvd1RyZWUuCisgICAgICAgIHRyZWUtPnNldE5lZWRz
UmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICB9CiB9CiAKIGlubGluZSB2b2lk
IEluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlvbihTaGFkb3dUcmVlKiB0cmVlKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDBiMjlhMWM3MTc2MjhmNDhlNmY5ZWY5ZTU0YjYxMzAwODIxOGU3ZDAuLmMzM2ZhOTRhOGM4
ZDcxNjU5YTVmOGY0MTU0ODg5MWViYzRhZGVmNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0wMy0wOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW0NyYXNoXSBBZGRpbmcgPGNvbnRlbnQ+IGludG8gYSBTaGFkb3dSb290IGNhdXNlcyBjcmFz
aC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDIw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTAzLTExICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHI5MzYxNCk6IHNjcm9sbGluZyBkaXYgZG9lcyBub3QgcmVw
YWludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250
ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGU4OWYxM2ZjODg0
NjUwZTkwOTMwOTU3ZGQwMTI4MWU2NjNlOGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5TaGFkb3cgQ29udGVudCBFbGVtZW50IENyYXNoPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IGNvbmZpcm1zIGFkZGluZyBhIGNvbnRlbnQgZWxlbWVudCBpbnRvIGEgc2hh
ZG93IHJvb3QgZG9lcyBub3QgY2F1c2UgY3Jhc2guPC9wPgorCis8ZGl2PlBBU1M8ZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1jb250ZW50LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWNvbnRlbnQtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjJiMmU5YmY2NWU2MjA0MmE1NTQ2
MmIwNTMyYWQzNjFjZDdiYTY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5TaGFkb3cgQ29udGVudCBF
bGVtZW50IENyYXNoPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNvbmZp
cm1zIGFkZGluZyBhIGNvbnRlbnQgZWxlbWVudCBpbnRvIGEgc2hhZG93IHJvb3QgZG9lcyBub3Qg
Y2F1c2UgY3Jhc2guPC9wPgorCis8ZGl2IGlkPSdjb250YWluZXInPkZBSUw8L2Rpdj4KKworPHNj
cmlwdD4KK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Cit2
YXIgcm9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7Cityb290LmlubmVySFRNTCA9ICI8
Y29udGVudCBzZWxlY3Q9J3NwYW4nPlBBU1M8L2NvbnRlbnQ+IjsKKzwvc2NyaXB0PgorCis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131992</attachid>
            <date>2012-03-14 23:12:30 -0700</date>
            <delta_ts>2012-03-15 00:26:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120315151228.patch</filename>
            <type>text/plain</type>
            <size>10341</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmNWQxYzk5YjM1ZTdk
NTlhNjQ2NzhkMTY0Y2Q0Nzc3YmEzNDQyNy4uYTVlOWNhZjQ4NGZkOGVhNmE0NmI1MmNiODYzZjA5
MGRkNjRkNzk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTAzLTE0ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyA8Y29u
dGVudD4gdHJ5IHRvIHNlbGVjdCBob3N0IGNoaWxkcmVuIHRob3VnaCBpdCBpcyBub3QgcHJlcGFy
ZWQuCisgICAgICAgIFNpbmNlIHBvcHVsYXRpbmcgaG9zdCBjaGlsZHJlbiBmb3IgaW5zZXJ0aW9u
IHBvaW50cyBpcyBwZXJmb3JtZWQganVzdCBiZWZvcmUKKyAgICAgICAgYXR0YWNoaW5nIGEgc2hh
ZG93IHRyZWUsIHdlIHNob3VsZCByZWNhbGN1bGF0ZSB3aG9sZSBzaGFkb3cgdHJlZSBpZiA8Y29u
dGVudD4gaXMKKyAgICAgICAgYXBwZW5kZWQgYXMgYSBjaGlsZC4KKworICAgICAgICBIb3dldmVy
LCBlbGVtZW50LT5hcHBlbmRDaGlsZCgpIGRvZXMgbm90IGtub3cgdGhlIGVsZW1lbnQgaXMgaW4g
YSBzaGFkb3cgdHJlZSBvciBub3QuCisgICAgICAgIFdlIGhhdmUgdG8gZW5zdXJlIHJlYXR0YWNo
aW5nIHdob2xlIHNoYWRvdyB0cmVlIGhlcmUuCisKKyAgICAgICAgU28gdGhpcyBwYXRjaCBlbnN1
cmVzIEhUTUxDb250ZW50U2VsZWN0b3IgZXhpc3RzIG9ubHkgaWYgaXQgaXMgcHJlcGFyZWQuIElm
IG5vdCwKKyAgICAgICAgd2UgY2Fubm90IHNlbGVjdCBhbnl0aGluZywgYnV0IHdlIGhhdmUgdG8g
ZW5hYmxlIGEgZmxhZyB0byByZWF0dGFjaCB3aG9sZSBzaGFkb3cgdHJlZS4KKworICAgICAgICBU
ZXN0czogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1s
CisKKyAgICAgICAgKiBkb20vU2hhZG93VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dUcmVlOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93VHJlZTo6ZW5zdXJlU2Vs
ZWN0b3IpOgorICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmg6CisgICAgICAgIChTaGFkb3dUcmVl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OkhUTUxDb250ZW50U2VsZWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3QpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6cG9wdWxhdGVJZk5lY2Vz
c2FyeSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oOgorICAg
ICAgICAoSFRNTENvbnRlbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVu
dFNlbGVjdG9yOjppc1NlbGVjdGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6Omhhc1BvcHVsYXRlZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9u
UG9pbnQ6OmRpc3RyaWJ1dGVIb3N0Q2hpbGRyZW4pOgorCiAyMDEyLTAzLTE0ICBNYXR0IEZhbGtl
bmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBbGxvdyBwZXItc2NyaXB0
IGZvbnQgc2V0dGluZ3MgdG8gYmUgc3BlY2lmaWVkIGluIGxheW91dCB0ZXN0cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1RyZWUuY3BwCmluZGV4IGFlYzk5OGJkODA4YTc0NGVjY2RlZThhOTUwNzk5ZmExZTBh
NWI1NTkuLmE5NmZlZWZjNDJmZDU1ODExNjRkMWM1OWRiNTFkM2IxNTA5NjQ3NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93VHJlZS5jcHAKQEAgLTE3OCwxNSArMTc4LDE0IEBAIHZvaWQgU2hhZG93VHJl
ZTo6YXR0YWNoKCkKIHsKICAgICAvLyBDaGlsZHJlbiBvZiBtX3NlbGVjdG9yIGlzIHBvcHVsYXRl
ZCBsYXppbHkgaW4KICAgICAvLyBlbnN1cmVTZWxlY3RvcigpLCBhbmQgaGVyZSB3ZSBqdXN0IGVu
c3VyZSB0aGF0IGl0IGlzIGluIGNsZWFuIHN0YXRlLgotICAgIEFTU0VSVCghc2VsZWN0b3IoKSB8
fCAhc2VsZWN0b3IoKS0+aGFzQ2FuZGlkYXRlcygpKTsKKyAgICBBU1NFUlQoIXNlbGVjdG9yKCkg
fHwgIXNlbGVjdG9yKCktPmhhc1BvcHVsYXRlZCgpKTsKIAorICAgIGVuc3VyZVNlbGVjdG9yKCkt
PndpbGxTZWxlY3QoKTsKICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5b3VuZ2VzdFNoYWRv
d1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKSB7CiAgICAgICAg
IGlmICghcm9vdC0+YXR0YWNoZWQoKSkKICAgICAgICAgICAgIHJvb3QtPmF0dGFjaCgpOwogICAg
IH0KLQotICAgIGlmIChIVE1MQ29udGVudFNlbGVjdG9yKiBjb250ZW50U2VsZWN0b3IgPSBzZWxl
Y3RvcigpKQotICAgICAgICBjb250ZW50U2VsZWN0b3ItPmRpZFNlbGVjdCgpOworICAgIHNlbGVj
dG9yKCktPmRpZFNlbGVjdCgpOwogfQogCiB2b2lkIFNoYWRvd1RyZWU6OmF0dGFjaEhvc3QoRWxl
bWVudCogaG9zdCkKQEAgLTMyMSw3ICszMjAsNiBAQCBIVE1MQ29udGVudFNlbGVjdG9yKiBTaGFk
b3dUcmVlOjplbnN1cmVTZWxlY3RvcigpCiB7CiAgICAgaWYgKCFtX3NlbGVjdG9yKQogICAgICAg
ICBtX3NlbGVjdG9yID0gYWRvcHRQdHIobmV3IEhUTUxDb250ZW50U2VsZWN0b3IoKSk7Ci0gICAg
bV9zZWxlY3Rvci0+d2lsbFNlbGVjdE92ZXIoaG9zdCgpKTsKICAgICByZXR1cm4gbV9zZWxlY3Rv
ci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKaW5kZXggNTRjNDFiYmU0MTlmNWMz
YjEyZTc4NjgyYjZkNDkyMjVkNDZmOWI5MS4uN2YxNGY3MTMzZGQ3M2E0MDUwYzc2OWYyOTkwZmQ1
MTYwY2I3Zjg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1
YmxpYzoKICAgICBTaGFkb3dUcmVlKCk7CiAgICAgflNoYWRvd1RyZWUoKTsKIAorICAgIEVsZW1l
bnQqIGhvc3QoKSBjb25zdDsKKwogICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAg
IFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3Qq
IG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKQEAgLTgxLDkgKzgzLDcgQEAgcHVibGljOgogCiAg
ICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IoKSBjb25zdDsKICAgICBIVE1MQ29udGVu
dFNlbGVjdG9yKiBlbnN1cmVTZWxlY3RvcigpOwotCiBwcml2YXRlOgotICAgIEVsZW1lbnQqIGhv
c3QoKSBjb25zdDsKIAogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dS
b290czsKICAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rvcj4gbV9zZWxlY3RvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKaW5k
ZXggOTUzOTViYzhiZjIyYmE4Mzk4ZmQ1NmU0NWQ4NjRkYTYzMTgyNjkyNC4uMzM1YjlhNzVhN2Y2
ZTM0MmI2MDZmMjg5ZGNiM2NkNWEzOTQzMzhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKQEAgLTEwMCw2ICsxMDAsNyBAQCB2
b2lkIEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdDo6YXBwZW5kKFBhc3NSZWZQdHI8SFRNTENvbnRl
bnRTZWxlY3Rpb24+IGNoaWxkKQogfQogCiBIVE1MQ29udGVudFNlbGVjdG9yOjpIVE1MQ29udGVu
dFNlbGVjdG9yKCkKKyAgICA6IG1fcGhhc2UoTm90U3RhcnRlZFNlbGVjdGlvbikKIHsKIH0KIApA
QCAtMTEwLDYgKzExMSw3IEBAIEhUTUxDb250ZW50U2VsZWN0b3I6On5IVE1MQ29udGVudFNlbGVj
dG9yKCkKIAogdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpzZWxlY3QoSW5zZXJ0aW9uUG9pbnQq
IGluc2VydGlvblBvaW50LCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMpCiB7
CisgICAgQVNTRVJUKG1fcGhhc2UgPT0gUG9wdWxhdGVkSG9zdENoaWxkcmVuKTsKICAgICBBU1NF
UlQoc2VsZWN0aW9ucy0+aXNFbXB0eSgpKTsKIAogICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1
ZXJ5KGluc2VydGlvblBvaW50KTsKQEAgLTE0MSwxNiArMTQzLDMwIEBAIEhUTUxDb250ZW50U2Vs
ZWN0aW9uKiBIVE1MQ29udGVudFNlbGVjdG9yOjpmaW5kRm9yKE5vZGUqIGtleSkgY29uc3QKICAg
ICByZXR1cm4gbV9zZWxlY3Rpb25TZXQuZmluZChrZXkpOwogfQogCit2b2lkIEhUTUxDb250ZW50
U2VsZWN0b3I6OndpbGxTZWxlY3QoKQoreworICAgIEFTU0VSVChtX3BoYXNlID09IE5vdFN0YXJ0
ZWRTZWxlY3Rpb24pOworCisgICAgbV9waGFzZSA9IE5vdFBvcHVsYXRlZEhvc3RDaGlsZHJlbjsK
K30KKwogdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpkaWRTZWxlY3QoKQogeworICAgIEFTU0VS
VChtX3BoYXNlICE9IE5vdFN0YXJ0ZWRTZWxlY3Rpb24pOworICAgIG1fcGhhc2UgPSBOb3RTdGFy
dGVkU2VsZWN0aW9uOwogICAgIG1fY2FuZGlkYXRlcy5jbGVhcigpOwogfQogCi12b2lkIEhUTUxD
b250ZW50U2VsZWN0b3I6OndpbGxTZWxlY3RPdmVyKEVsZW1lbnQqIHNoYWRvd0hvc3QpCit2b2lk
IEhUTUxDb250ZW50U2VsZWN0b3I6OnBvcHVsYXRlSWZOZWNlc3NhcnkoRWxlbWVudCogc2hhZG93
SG9zdCkKIHsKLSAgICBpZiAoIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpCisgICAgaWYgKGhhc1Bv
cHVsYXRlZCgpKQogICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9jYW5kaWRhdGVzLmlz
RW1wdHkoKSk7CiAgICAgQVNTRVJUKHNoYWRvd0hvc3QpOworICAgIEFTU0VSVChtX3BoYXNlID09
IE5vdFBvcHVsYXRlZEhvc3RDaGlsZHJlbik7CisKKyAgICBtX3BoYXNlID0gUG9wdWxhdGVkSG9z
dENoaWxkcmVuOwogICAgIGZvciAoTm9kZSogbm9kZSA9IHNoYWRvd0hvc3QtPmZpcnN0Q2hpbGQo
KTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIG1fY2FuZGlkYXRl
cy5hcHBlbmQobm9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudFNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudFNlbGVjdG9yLmgKaW5kZXggMTRlYTA1N2EwYTVlZDU3NDdjZGNhOTg5OGQyYTVlNWZh
NTNjNTg3NC4uZTNkOGMwYzNkNWM3ZTZiY2YxMWYzMTM0NDAzMDE5NjViNDMyNDdlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaApAQCAt
MTM0LDE4ICsxMzQsMzggQEAgcHVibGljOgogICAgIHZvaWQgdW5zZWxlY3QoSFRNTENvbnRlbnRT
ZWxlY3Rpb25MaXN0Kik7CiAgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIGZpbmRGb3IoTm9kZSog
a2V5KSBjb25zdDsKIAotICAgIHZvaWQgd2lsbFNlbGVjdE92ZXIoRWxlbWVudCogc2hhZG93SG9z
dCk7CisgICAgdm9pZCB3aWxsU2VsZWN0KCk7CisgICAgYm9vbCBpc1NlbGVjdGluZygpIGNvbnN0
OwogICAgIHZvaWQgZGlkU2VsZWN0KCk7Ci0gICAgYm9vbCBoYXNDYW5kaWRhdGVzKCkgY29uc3Qg
eyByZXR1cm4gIW1fY2FuZGlkYXRlcy5pc0VtcHR5KCk7IH0KKworICAgIHZvaWQgcG9wdWxhdGVJ
Zk5lY2Vzc2FyeShFbGVtZW50KiBzaGFkb3dIb3N0KTsKKyAgICBib29sIGhhc1BvcHVsYXRlZCgp
IGNvbnN0OwogCiBwcml2YXRlOgorICAgIGVudW0gU2VsZWN0aW5nUGhhc2UgeworICAgICAgICBO
b3RTdGFydGVkU2VsZWN0aW9uLAorICAgICAgICBOb3RQb3B1bGF0ZWRIb3N0Q2hpbGRyZW4sCisg
ICAgICAgIFBvcHVsYXRlZEhvc3RDaGlsZHJlbiwKKyAgICB9OworCiAgICAgdm9pZCByZW1vdmVG
cm9tU2V0KEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCopOwogICAgIHZvaWQgYWRkVG9TZXQoSFRN
TENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CiAKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9j
YW5kaWRhdGVzOwogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uU2V0IG1fc2VsZWN0aW9uU2V0Owor
ICAgIFNlbGVjdGluZ1BoYXNlIG1fcGhhc2U7CiB9OwogCitpbmxpbmUgYm9vbCBIVE1MQ29udGVu
dFNlbGVjdG9yOjppc1NlbGVjdGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGhhc2UgIT0g
Tm90U3RhcnRlZFNlbGVjdGlvbjsKK30KKworaW5saW5lIGJvb2wgSFRNTENvbnRlbnRTZWxlY3Rv
cjo6aGFzUG9wdWxhdGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9waGFzZSA9PSBQb3B1bGF0
ZWRIb3N0Q2hpbGRyZW47Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKaW5kZXggZWJkNGIyOGM0NjQ4N2NkMTQ4NzI2Yjhl
MmQ5NDEyMzc3ZTdkMDQ3NC4uNGExNmI2MmIzY2EyZTQ1MDNiNzhiZWViNTI2YmM3YWRhMmY2N2Zh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcApA
QCAtMTA5LDkgKzEwOSwxNSBAQCBib29sIEluc2VydGlvblBvaW50OjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogCiBpbmxpbmUgdm9pZCBJbnNl
cnRpb25Qb2ludDo6ZGlzdHJpYnV0ZUhvc3RDaGlsZHJlbihTaGFkb3dUcmVlKiB0cmVlKQogewot
ICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gdHJlZS0+ZW5zdXJlU2VsZWN0b3Io
KTsKLSAgICBzZWxlY3Rvci0+dW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7Ci0gICAgc2VsZWN0b3It
PnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsKKyAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rv
ciogc2VsZWN0b3IgPSB0cmVlLT5zZWxlY3RvcigpKSB7CisgICAgICAgIHNlbGVjdG9yLT5wb3B1
bGF0ZUlmTmVjZXNzYXJ5KHRyZWUtPmhvc3QoKSk7CisgICAgICAgIHNlbGVjdG9yLT51bnNlbGVj
dCgmbV9zZWxlY3Rpb25zKTsKKyAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxl
Y3Rpb25zKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyBub3QgdHJlZS0+
c2VsZWN0b3IoKSwgaXQgbWVhbnMgSW5zZXJ0aW9uUG9pbnQgaXMgYXR0YWNoZWQgZnJvbQorICAg
ICAgICAvLyBub24tU2hhZG93VHJlZSBub2RlLiBUbyBydW4gZGlzdHJpYnV0ZSBhbGdvcml0aG0s
IHdlIGhhdmUgdG8gcmVhdHRhY2ggU2hhZG93VHJlZS4KKyAgICAgICAgdHJlZS0+c2V0TmVlZHNS
ZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIH0KIH0KIAogaW5saW5lIHZvaWQg
SW5zZXJ0aW9uUG9pbnQ6OmNsZWFyRGlzdHJpYnV0aW9uKFNoYWRvd1RyZWUqIHRyZWUpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMTgwYTgyOGFmYWVkM2JlM2FjMzFhZjllNmZmMGNhNzg2ZDRiM2I4Zi4uMGI5NDc3Mjc3ZGVk
ZDM2ZDg1OGJhOTFjMjg1YTI2NThmNDQyZDIwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTAzLTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbQ3Jhc2hdIEFkZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNo
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbDogQWRkZWQu
CisKIDIwMTItMDMtMTQgIE1hdHQgRmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEFsbG93IHBlci1zY3JpcHQgZm9udCBzZXR0aW5ncyB0byBiZSBzcGVjaWZpZWQg
aW4gbGF5b3V0IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJk
ZTg5ZjEzZmM4ODQ2NTBlOTA5MzA5NTdkZDAxMjgxZTY2M2U4ZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHRpdGxlPlNoYWRvdyBDb250ZW50IEVsZW1lbnQgQ3Jhc2g8L3RpdGxlPgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY29uZmlybXMgYWRkaW5nIGEgY29udGVudCBlbGVtZW50
IGludG8gYSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBjYXVzZSBjcmFzaC48L3A+CisKKzxkaXY+UEFT
UzxkaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMmIyZTliZjY1
ZTYyMDQyYTU1NDYyYjA1MzJhZDM2MWNkN2JhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbApAQCAtMCwwICsx
LDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlNoYWRv
dyBDb250ZW50IEVsZW1lbnQgQ3Jhc2g8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgY29uZmlybXMgYWRkaW5nIGEgY29udGVudCBlbGVtZW50IGludG8gYSBzaGFkb3cgcm9v
dCBkb2VzIG5vdCBjYXVzZSBjcmFzaC48L3A+CisKKzxkaXYgaWQ9J2NvbnRhaW5lcic+RkFJTDwv
ZGl2PgorCis8c2NyaXB0PgordmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKTsKK3ZhciByb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKK3Jvb3QuaW5u
ZXJIVE1MID0gIjxjb250ZW50IHNlbGVjdD0nc3Bhbic+UEFTUzwvY29udGVudD4iOworPC9zY3Jp
cHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131997</attachid>
            <date>2012-03-15 00:26:45 -0700</date>
            <delta_ts>2012-03-15 01:11:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80020-20120315162644.patch</filename>
            <type>text/plain</type>
            <size>12338</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmNWQxYzk5YjM1ZTdk
NTlhNjQ2NzhkMTY0Y2Q0Nzc3YmEzNDQyNy4uNmU0YTJlNjA3OTcxYTk4N2U3OWYxYTA3NWMzZTBl
OTQ0ZTEyYTY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAzLTE1ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyA8Y29u
dGVudD4gdHJpZXMgdG8gc2VsZWN0IGhvc3QgY2hpbGRyZW4gdGhvdWdoIGl0IGlzIG5vdCBwcmVw
YXJlZC4KKyAgICAgICAgU2luY2UgcG9wdWxhdGluZyBob3N0IGNoaWxkcmVuIGZvciBpbnNlcnRp
b24gcG9pbnRzIGlzIHBlcmZvcm1lZCBqdXN0IGJlZm9yZQorICAgICAgICBhdHRhY2hpbmcgYSBz
aGFkb3cgdHJlZSwgd2Ugc2hvdWxkIHJlY2FsY3VsYXRlIHdob2xlIHNoYWRvdyB0cmVlIGlmIDxj
b250ZW50PiBpcworICAgICAgICBhcHBlbmRlZCBhcyBhIGNoaWxkLgorCisgICAgICAgIEhvd2V2
ZXIsIGVsZW1lbnQtPmFwcGVuZENoaWxkKCkgZG9lcyBub3Qga25vdyB0aGUgZWxlbWVudCBpcyBp
biBhIHNoYWRvdyB0cmVlIG9yIG5vdC4KKyAgICAgICAgV2UgaGF2ZSB0byBlbnN1cmUgcmVhdHRh
Y2hpbmcgd2hvbGUgc2hhZG93IHRyZWUgaGVyZS4KKworICAgICAgICBTbyB0aGlzIHBhdGNoIGVu
c3VyZXMgSFRNTENvbnRlbnRTZWxlY3RvciBleGlzdHMgb25seSBpZiBpdCBpcyBwcmVwYXJlZC4g
SWYgbm90LAorICAgICAgICB3ZSBjYW5ub3Qgc2VsZWN0IGFueXRoaW5nLCBidXQgd2UgaGF2ZSB0
byBlbmFibGUgYSBmbGFnIHRvIHJlYXR0YWNoIHdob2xlIHNoYWRvdyB0cmVlLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0
bWwKKworICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1RyZWU6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjppbnNlcnRp
b25Qb2ludEZvcik6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoU2hhZG93VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVl
OjpzZWxlY3Rvcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpIVE1MQ29udGVudFNl
bGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OnNlbGVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6
ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OnBvcHVs
YXRlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0
b3IuaDoKKyAgICAgICAgKEhUTUxDb250ZW50U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENvbnRlbnRTZWxlY3Rvcjo6aXNTZWxlY3RpbmcpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpoYXNQb3B1bGF0ZWQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlvbik6CisKIDIwMTItMDMtMTQgIE1h
dHQgRmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFsbG93IHBl
ci1zY3JpcHQgZm9udCBzZXR0aW5ncyB0byBiZSBzcGVjaWZpZWQgaW4gbGF5b3V0IHRlc3RzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93VHJlZS5jcHAKaW5kZXggYWVjOTk4YmQ4MDhhNzQ0ZWNjZGVlOGE5NTA3
OTlmYTFlMGE1YjU1OS4uNzNkNTg3OGI4M2FlYTQ3MzNlOTQ3OWFjYmQzZDNiNDQ0NGNmYmIxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUg
IkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiSFRN
TFNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xNzgsMTUgKzE3NywxNCBA
QCB2b2lkIFNoYWRvd1RyZWU6OmF0dGFjaCgpCiB7CiAgICAgLy8gQ2hpbGRyZW4gb2YgbV9zZWxl
Y3RvciBpcyBwb3B1bGF0ZWQgbGF6aWx5IGluCiAgICAgLy8gZW5zdXJlU2VsZWN0b3IoKSwgYW5k
IGhlcmUgd2UganVzdCBlbnN1cmUgdGhhdCBpdCBpcyBpbiBjbGVhbiBzdGF0ZS4KLSAgICBBU1NF
UlQoIXNlbGVjdG9yKCkgfHwgIXNlbGVjdG9yKCktPmhhc0NhbmRpZGF0ZXMoKSk7CisgICAgQVNT
RVJUKCFzZWxlY3RvcigpLmhhc1BvcHVsYXRlZCgpKTsKIAorICAgIHNlbGVjdG9yKCkud2lsbFNl
bGVjdCgpOwogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAgaWYgKCFy
b290LT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7CiAgICAgfQotCi0g
ICAgaWYgKEhUTUxDb250ZW50U2VsZWN0b3IqIGNvbnRlbnRTZWxlY3RvciA9IHNlbGVjdG9yKCkp
Ci0gICAgICAgIGNvbnRlbnRTZWxlY3Rvci0+ZGlkU2VsZWN0KCk7CisgICAgc2VsZWN0b3IoKS5k
aWRTZWxlY3QoKTsKIH0KIAogdm9pZCBTaGFkb3dUcmVlOjphdHRhY2hIb3N0KEVsZW1lbnQqIGhv
c3QpCkBAIC0yMjIsOSArMjIwLDcgQEAgSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1RyZWU6Omluc2Vy
dGlvblBvaW50Rm9yKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
IAotICAgIGlmICghbV9zZWxlY3RvcikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgSFRNTENvbnRl
bnRTZWxlY3Rpb24qIGZvdW5kID0gbV9zZWxlY3Rvci0+ZmluZEZvcihub2RlKTsKKyAgICBIVE1M
Q29udGVudFNlbGVjdGlvbiogZm91bmQgPSBzZWxlY3RvcigpLmZpbmRGb3Iobm9kZSk7CiAgICAg
aWYgKCFmb3VuZCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGZvdW5kLT5pbnNlcnRp
b25Qb2ludCgpOwpAQCAtMzE3LDEyICszMTMsNCBAQCB2b2lkIFNoYWRvd1RyZWU6OnJlYXR0YWNo
SG9zdENoaWxkcmVuQW5kU2hhZG93KCkKICAgICBob3N0Tm9kZS0+YXR0YWNoQ2hpbGRyZW5JZk5l
ZWRlZCgpOwogfQogCi1IVE1MQ29udGVudFNlbGVjdG9yKiBTaGFkb3dUcmVlOjplbnN1cmVTZWxl
Y3RvcigpCi17Ci0gICAgaWYgKCFtX3NlbGVjdG9yKQotICAgICAgICBtX3NlbGVjdG9yID0gYWRv
cHRQdHIobmV3IEhUTUxDb250ZW50U2VsZWN0b3IoKSk7Ci0gICAgbV9zZWxlY3Rvci0+d2lsbFNl
bGVjdE92ZXIoaG9zdCgpKTsKLSAgICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCmluZGV4IDU0YzQxYmJlNDE5ZjVjM2Ix
MmU3ODY4MmI2ZDQ5MjI1ZDQ2ZjliOTEuLjU3MjIyMTgzYTI2MzE3NDQyZjg5MDdmZWVlOTJjY2Ez
Njc4ZDI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaApAQCAtMjgsNiArMjgsNyBAQAogI2Rl
ZmluZSBTaGFkb3dUcmVlX2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1
ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CkBAIC0zOCw3ICszOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTm9kZTsKIGNs
YXNzIEVsZW1lbnQ7Ci1jbGFzcyBIVE1MQ29udGVudFNlbGVjdG9yOwogY2xhc3MgSW5zZXJ0aW9u
UG9pbnQ7CiBjbGFzcyBUcmVlU2NvcGU7CiAKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogICAg
IFNoYWRvd1RyZWUoKTsKICAgICB+U2hhZG93VHJlZSgpOwogCisgICAgRWxlbWVudCogaG9zdCgp
IGNvbnN0OworCiAgICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9v
dCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogb2xkZXN0U2hh
ZG93Um9vdCgpIGNvbnN0OwpAQCAtNzksMTQgKzgxLDEzIEBAIHB1YmxpYzoKIAogICAgIEluc2Vy
dGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7CiAKLSAgICBIVE1MQ29u
dGVudFNlbGVjdG9yKiBzZWxlY3RvcigpIGNvbnN0OwotICAgIEhUTUxDb250ZW50U2VsZWN0b3Iq
IGVuc3VyZVNlbGVjdG9yKCk7CisgICAgSFRNTENvbnRlbnRTZWxlY3RvciYgc2VsZWN0b3IoKTsK
KyAgICBjb25zdCBIVE1MQ29udGVudFNlbGVjdG9yJiBzZWxlY3RvcigpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKIAogICAgIERvdWJseUxpbmtlZExpc3Q8
U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKLSAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rv
cj4gbV9zZWxlY3RvcjsKKyAgICBIVE1MQ29udGVudFNlbGVjdG9yIG1fc2VsZWN0b3I7CiAgICAg
Ym9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTaGFkb3dUcmVlKTsKIH07CkBAIC0xMDYsOSArMTA3LDE0IEBAIGlubGluZSBTaGFkb3dS
b290KiBTaGFkb3dUcmVlOjpvbGRlc3RTaGFkb3dSb290KCkgY29uc3QKICAgICByZXR1cm4gbV9z
aGFkb3dSb290cy50YWlsKCk7CiB9CiAKLWlubGluZSBIVE1MQ29udGVudFNlbGVjdG9yKiBTaGFk
b3dUcmVlOjpzZWxlY3RvcigpIGNvbnN0CitpbmxpbmUgSFRNTENvbnRlbnRTZWxlY3RvciYgU2hh
ZG93VHJlZTo6c2VsZWN0b3IoKQoreworICAgIHJldHVybiBtX3NlbGVjdG9yOworfQorCitpbmxp
bmUgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgU2hhZG93VHJlZTo6c2VsZWN0b3IoKSBjb25z
dAogewotICAgIHJldHVybiBtX3NlbGVjdG9yLmdldCgpOworICAgIHJldHVybiBtX3NlbGVjdG9y
OwogfQogCiBpbmxpbmUgdm9pZCBTaGFkb3dUcmVlOjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SFRNTENvbnRlbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudFNlbGVjdG9yLmNwcAppbmRleCA5NTM5NWJjOGJmMjJiYTgzOThmZDU2ZTQ1ZDg2NGRh
NjMxODI2OTI0Li44YjYyZDU2YTc3M2RiMzBkYjZkMzE4YWY3M2JkZDFjMGY4ZGJiNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNw
cApAQCAtMTAwLDYgKzEwMCw3IEBAIHZvaWQgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0OjphcHBl
bmQoUGFzc1JlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gY2hpbGQpCiB9CiAKIEhUTUxDb250
ZW50U2VsZWN0b3I6OkhUTUxDb250ZW50U2VsZWN0b3IoKQorICAgIDogbV9waGFzZShTZWxlY3Rp
b25QcmV2ZW50ZWQpCiB7CiB9CiAKQEAgLTExMCw2ICsxMTEsNyBAQCBIVE1MQ29udGVudFNlbGVj
dG9yOjp+SFRNTENvbnRlbnRTZWxlY3RvcigpCiAKIHZvaWQgSFRNTENvbnRlbnRTZWxlY3Rvcjo6
c2VsZWN0KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgSFRNTENvbnRlbnRTZWxlY3Rp
b25MaXN0KiBzZWxlY3Rpb25zKQogeworICAgIEFTU0VSVChtX3BoYXNlID09IEhvc3RDaGlsZHJl
blBvcHVsYXRlZCk7CiAgICAgQVNTRVJUKHNlbGVjdGlvbnMtPmlzRW1wdHkoKSk7CiAKICAgICBD
b250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShpbnNlcnRpb25Qb2ludCk7CkBAIC0xNDEsMTYgKzE0
MywyOCBAQCBIVE1MQ29udGVudFNlbGVjdGlvbiogSFRNTENvbnRlbnRTZWxlY3Rvcjo6ZmluZEZv
cihOb2RlKiBrZXkpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0aW9uU2V0LmZpbmQoa2V5KTsK
IH0KIAordm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0KCkKK3sKKyAgICBtX3Bo
YXNlID0gU2VsZWN0aW9uU3RhcnRlZDsKK30KKwogdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpk
aWRTZWxlY3QoKQogeworICAgIEFTU0VSVChtX3BoYXNlICE9IFNlbGVjdGlvblByZXZlbnRlZCk7
CisgICAgbV9waGFzZSA9IFNlbGVjdGlvblByZXZlbnRlZDsKICAgICBtX2NhbmRpZGF0ZXMuY2xl
YXIoKTsKIH0KIAotdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0T3ZlcihFbGVt
ZW50KiBzaGFkb3dIb3N0KQordm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpwb3B1bGF0ZUlmTmVj
ZXNzYXJ5KEVsZW1lbnQqIHNoYWRvd0hvc3QpCiB7Ci0gICAgaWYgKCFtX2NhbmRpZGF0ZXMuaXNF
bXB0eSgpKQorICAgIGlmIChoYXNQb3B1bGF0ZWQoKSkKICAgICAgICAgcmV0dXJuOworCisgICAg
QVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChzaGFkb3dIb3N0KTsK
KyAgICBBU1NFUlQobV9waGFzZSA9PSBTZWxlY3Rpb25TdGFydGVkKTsKKworICAgIG1fcGhhc2Ug
PSBIb3N0Q2hpbGRyZW5Qb3B1bGF0ZWQ7CiAgICAgZm9yIChOb2RlKiBub2RlID0gc2hhZG93SG9z
dC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkKICAgICAg
ICAgbV9jYW5kaWRhdGVzLmFwcGVuZChub2RlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaAppbmRleCAxNGVhMDU3YTBhNWVkNTc0N2Nk
Y2E5ODk4ZDJhNWU1ZmE1M2M1ODc0Li5lMDExODA1MDBiYWQxMjM0MjNhMTc1ODhhODE5MzJmMTgw
ZjE0YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRT
ZWxlY3Rvci5oCkBAIC0xMzQsMTggKzEzNCwzOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnNlbGVj
dChIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKICAgICBIVE1MQ29udGVudFNlbGVjdGlvbiog
ZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0OwogCi0gICAgdm9pZCB3aWxsU2VsZWN0T3ZlcihFbGVt
ZW50KiBzaGFkb3dIb3N0KTsKKyAgICB2b2lkIHdpbGxTZWxlY3QoKTsKKyAgICBib29sIGlzU2Vs
ZWN0aW5nKCkgY29uc3Q7CiAgICAgdm9pZCBkaWRTZWxlY3QoKTsKLSAgICBib29sIGhhc0NhbmRp
ZGF0ZXMoKSBjb25zdCB7IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQorCisgICAg
dm9pZCBwb3B1bGF0ZUlmTmVjZXNzYXJ5KEVsZW1lbnQqIHNoYWRvd0hvc3QpOworICAgIGJvb2wg
aGFzUG9wdWxhdGVkKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgZW51bSBTZWxlY3RpbmdQaGFz
ZSB7CisgICAgICAgIFNlbGVjdGlvblByZXZlbnRlZCwKKyAgICAgICAgU2VsZWN0aW9uU3RhcnRl
ZCwKKyAgICAgICAgSG9zdENoaWxkcmVuUG9wdWxhdGVkLAorICAgIH07CisKICAgICB2b2lkIHJl
bW92ZUZyb21TZXQoSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CiAgICAgdm9pZCBhZGRUb1Nl
dChIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4g
PiBtX2NhbmRpZGF0ZXM7CiAgICAgSFRNTENvbnRlbnRTZWxlY3Rpb25TZXQgbV9zZWxlY3Rpb25T
ZXQ7CisgICAgU2VsZWN0aW5nUGhhc2UgbV9waGFzZTsKIH07CiAKK2lubGluZSBib29sIEhUTUxD
b250ZW50U2VsZWN0b3I6OmlzU2VsZWN0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9waGFz
ZSAhPSBTZWxlY3Rpb25QcmV2ZW50ZWQ7Cit9CisKK2lubGluZSBib29sIEhUTUxDb250ZW50U2Vs
ZWN0b3I6Omhhc1BvcHVsYXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGhhc2UgPT0gSG9z
dENoaWxkcmVuUG9wdWxhdGVkOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCmluZGV4IGViZDRiMjhjNDY0ODdjZDE0ODcy
NmI4ZTJkOTQxMjM3N2U3ZDA0NzQuLjY0OWNmNTBjMTFlMTU5OTI0NmYwOTQ4ZDEzMjk2NzIzMGZm
YzhhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBv
aW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5j
cHAKQEAgLTEwOSwxNSArMTA5LDIxIEBAIGJvb2wgSW5zZXJ0aW9uUG9pbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCiAKIGlubGluZSB2b2lk
IEluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKFNoYWRvd1RyZWUqIHRyZWUp
CiB7Ci0gICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSB0cmVlLT5lbnN1cmVTZWxl
Y3RvcigpOwotICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKLSAgICBzZWxl
Y3Rvci0+c2VsZWN0KHRoaXMsICZtX3NlbGVjdGlvbnMpOworICAgIGlmICghdHJlZS0+c2VsZWN0
b3IoKS5pc1NlbGVjdGluZygpKSB7CisgICAgICAgIC8vIElmIEhUTUxDb250ZW50U2VsZWN0b3Ig
aXMgbm90IGludCBzZWxlY3RpbmcgcGhhc2UsIGl0IG1lYW5zIEluc2VydGlvblBvaW50IGlzIGF0
dGFjaGVkIGZyb20KKyAgICAgICAgLy8gbm9uLVNoYWRvd1RyZWUgbm9kZS4gVG8gcnVuIGRpc3Ry
aWJ1dGUgYWxnb3JpdGhtLCB3ZSBoYXZlIHRvIHJlYXR0YWNoIFNoYWRvd1RyZWUuCisgICAgICAg
IHRyZWUtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHRyZWUtPnNlbGVjdG9yKCkucG9wdWxhdGVJZk5lY2Vzc2Fy
eSh0cmVlLT5ob3N0KCkpOworICAgIHRyZWUtPnNlbGVjdG9yKCkudW5zZWxlY3QoJm1fc2VsZWN0
aW9ucyk7CisgICAgdHJlZS0+c2VsZWN0b3IoKS5zZWxlY3QodGhpcywgJm1fc2VsZWN0aW9ucyk7
CiB9CiAKIGlubGluZSB2b2lkIEluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlvbihTaGFk
b3dUcmVlKiB0cmVlKQogewotICAgIGlmIChIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvciA9
IHRyZWUtPnNlbGVjdG9yKCkpCi0gICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rp
b25zKTsKKyAgICB0cmVlLT5zZWxlY3RvcigpLnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwogfQog
CiBpbmxpbmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6YXR0YWNoRGlzdHJpYnV0ZWROb2RlKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAxODBhODI4YWZhZWQzYmUzYWMzMWFmOWU2ZmYwY2E3ODZkNGIzYjhmLi4wYjk0NzcyNzdk
ZWRkMzZkODU4YmE5MWMyODVhMjY1OGY0NDJkMjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDMtMTQgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtDcmFzaF0gQWRkaW5nIDxjb250ZW50PiBpbnRvIGEgU2hhZG93Um9vdCBjYXVzZXMgY3Jh
c2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDAy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sOiBBZGRl
ZC4KKwogMjAxMi0wMy0xNCAgTWF0dCBGYWxrZW5oYWdlbiAgPGZhbGtlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQWxsb3cgcGVyLXNjcmlwdCBmb250IHNldHRpbmdzIHRvIGJlIHNwZWNpZmll
ZCBpbiBsYXlvdXQgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmRlODlmMTNmYzg4NDY1MGU5MDkzMDk1N2RkMDEyODFlNjYzZThkNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBjb250ZW50IGVsZW1l
bnQgaW50byBhIHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwvcD4KKworPGRpdj5Q
QVNTPGRpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmYyYjJlOWJm
NjVlNjIwNDJhNTU0NjJiMDUzMmFkMzYxY2Q3YmE2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+U2hh
ZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBjb250ZW50IGVsZW1lbnQgaW50byBhIHNoYWRvdyBy
b290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwvcD4KKworPGRpdiBpZD0nY29udGFpbmVyJz5GQUlM
PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnRhaW5lcicpOwordmFyIHJvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOworcm9vdC5p
bm5lckhUTUwgPSAiPGNvbnRlbnQgc2VsZWN0PSdzcGFuJz5QQVNTPC9jb250ZW50PiI7Cis8L3Nj
cmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132000</attachid>
            <date>2012-03-15 01:11:45 -0700</date>
            <delta_ts>2012-03-15 20:20:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80020-20120315171144.patch</filename>
            <type>text/plain</type>
            <size>12400</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmNWQxYzk5YjM1ZTdk
NTlhNjQ2NzhkMTY0Y2Q0Nzc3YmEzNDQyNy4uMGIzODg0MmQ0OGM2ZjNhOGYzNWRjY2U5ZDU4Mjg2
YTI5MDRlYTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAzLTE1ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdIEFk
ZGluZyA8Y29udGVudD4gaW50byBhIFNoYWRvd1Jvb3QgY2F1c2VzIGNyYXNoLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIDxjb250
ZW50PiB0cmllcyB0byBzZWxlY3QgaG9zdCBjaGlsZHJlbiB0aG91Z2ggaXQgaXMgbm90IHByZXBh
cmVkLgorICAgICAgICBTaW5jZSBwb3B1bGF0aW5nIGhvc3QgY2hpbGRyZW4gZm9yIGluc2VydGlv
biBwb2ludHMgaXMgcGVyZm9ybWVkIGp1c3QgYmVmb3JlCisgICAgICAgIGF0dGFjaGluZyBhIHNo
YWRvdyB0cmVlLCB3ZSBzaG91bGQgcmVjYWxjdWxhdGUgd2hvbGUgc2hhZG93IHRyZWUgaWYgPGNv
bnRlbnQ+IGlzCisgICAgICAgIGFwcGVuZGVkIGFzIGEgY2hpbGQuCisKKyAgICAgICAgSG93ZXZl
ciwgZWxlbWVudC0+YXBwZW5kQ2hpbGQoKSBkb2VzIG5vdCBrbm93IHRoZSBlbGVtZW50IGlzIGlu
IGEgc2hhZG93IHRyZWUgb3Igbm90LgorICAgICAgICBXZSBoYXZlIHRvIGVuc3VyZSByZWF0dGFj
aGluZyB3aG9sZSBzaGFkb3cgdHJlZSBoZXJlLgorCisgICAgICAgIFNvIHRoaXMgcGF0Y2ggYWRk
cyBzb21lIHBoYXNlcyB0byBIVE1MQ29udGVudFNlbGVjdG9yIHNvIHRoYXQgd2UgY2FuIGNoZWNr
IG5vZGUKKyAgICAgICAgZGlzdHJpYnV0aW9uIGFsZ29yaWhtIGlzIGJlZ2luIHByb2Nlc3NlZCBv
ciBub3QuIElmIG5vdCB3ZSBjYW5ub3Qgc2VsZWN0IGFueXRoaW5nLAorICAgICAgICBidXQgd2Ug
aGF2ZSB0byBlbmFibGUgYSBmbGFnIHRvIHJlYXR0YWNoIHdob2xlIHNoYWRvdyB0cmVlLgorCisg
ICAgICAgIFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0
ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNy
YXNoLmh0bWwKKworICAgICAgICAqIGRvbS9TaGFkb3dUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1RyZWU6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dUcmVlOjpp
bnNlcnRpb25Qb2ludEZvcik6CisgICAgICAgICogZG9tL1NoYWRvd1RyZWUuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU2hhZG93VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dUcmVlOjpzZWxlY3Rvcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpIVE1MQ29u
dGVudFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6OnNl
bGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxl
Y3Rvcjo6ZGlkU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0b3I6
OnBvcHVsYXRlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50
U2VsZWN0b3IuaDoKKyAgICAgICAgKEhUTUxDb250ZW50U2VsZWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6aXNTZWxlY3RpbmcpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpoYXNQb3B1bGF0ZWQp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlvbik6CisKIDIwMTItMDMt
MTQgIE1hdHQgRmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFs
bG93IHBlci1zY3JpcHQgZm9udCBzZXR0aW5ncyB0byBiZSBzcGVjaWZpZWQgaW4gbGF5b3V0IHRl
c3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5jcHAKaW5kZXggYWVjOTk4YmQ4MDhhNzQ0ZWNjZGVl
OGE5NTA3OTlmYTFlMGE1YjU1OS4uNzNkNTg3OGI4M2FlYTQ3MzNlOTQ3OWFjYmQzZDNiNDQ0NGNm
YmIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVlLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2lu
Y2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xNzgsMTUgKzE3
NywxNCBAQCB2b2lkIFNoYWRvd1RyZWU6OmF0dGFjaCgpCiB7CiAgICAgLy8gQ2hpbGRyZW4gb2Yg
bV9zZWxlY3RvciBpcyBwb3B1bGF0ZWQgbGF6aWx5IGluCiAgICAgLy8gZW5zdXJlU2VsZWN0b3Io
KSwgYW5kIGhlcmUgd2UganVzdCBlbnN1cmUgdGhhdCBpdCBpcyBpbiBjbGVhbiBzdGF0ZS4KLSAg
ICBBU1NFUlQoIXNlbGVjdG9yKCkgfHwgIXNlbGVjdG9yKCktPmhhc0NhbmRpZGF0ZXMoKSk7Cisg
ICAgQVNTRVJUKCFzZWxlY3RvcigpLmhhc1BvcHVsYXRlZCgpKTsKIAorICAgIHNlbGVjdG9yKCku
d2lsbFNlbGVjdCgpOwogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAg
aWYgKCFyb290LT5hdHRhY2hlZCgpKQogICAgICAgICAgICAgcm9vdC0+YXR0YWNoKCk7CiAgICAg
fQotCi0gICAgaWYgKEhUTUxDb250ZW50U2VsZWN0b3IqIGNvbnRlbnRTZWxlY3RvciA9IHNlbGVj
dG9yKCkpCi0gICAgICAgIGNvbnRlbnRTZWxlY3Rvci0+ZGlkU2VsZWN0KCk7CisgICAgc2VsZWN0
b3IoKS5kaWRTZWxlY3QoKTsKIH0KIAogdm9pZCBTaGFkb3dUcmVlOjphdHRhY2hIb3N0KEVsZW1l
bnQqIGhvc3QpCkBAIC0yMjIsOSArMjIwLDcgQEAgSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1RyZWU6
Omluc2VydGlvblBvaW50Rm9yKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotICAgIGlmICghbV9zZWxlY3RvcikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgSFRN
TENvbnRlbnRTZWxlY3Rpb24qIGZvdW5kID0gbV9zZWxlY3Rvci0+ZmluZEZvcihub2RlKTsKKyAg
ICBIVE1MQ29udGVudFNlbGVjdGlvbiogZm91bmQgPSBzZWxlY3RvcigpLmZpbmRGb3Iobm9kZSk7
CiAgICAgaWYgKCFmb3VuZCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGZvdW5kLT5p
bnNlcnRpb25Qb2ludCgpOwpAQCAtMzE3LDEyICszMTMsNCBAQCB2b2lkIFNoYWRvd1RyZWU6OnJl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKICAgICBob3N0Tm9kZS0+YXR0YWNoQ2hpbGRy
ZW5JZk5lZWRlZCgpOwogfQogCi1IVE1MQ29udGVudFNlbGVjdG9yKiBTaGFkb3dUcmVlOjplbnN1
cmVTZWxlY3RvcigpCi17Ci0gICAgaWYgKCFtX3NlbGVjdG9yKQotICAgICAgICBtX3NlbGVjdG9y
ID0gYWRvcHRQdHIobmV3IEhUTUxDb250ZW50U2VsZWN0b3IoKSk7Ci0gICAgbV9zZWxlY3Rvci0+
d2lsbFNlbGVjdE92ZXIoaG9zdCgpKTsKLSAgICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93VHJlZS5oCmluZGV4IDU0YzQxYmJlNDE5
ZjVjM2IxMmU3ODY4MmI2ZDQ5MjI1ZDQ2ZjliOTEuLjU3MjIyMTgzYTI2MzE3NDQyZjg5MDdmZWVl
OTJjY2EzNjc4ZDI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dUcmVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1RyZWUuaApAQCAtMjgsNiArMjgsNyBA
QAogI2RlZmluZSBTaGFkb3dUcmVlX2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
I2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CkBAIC0zOCw3ICszOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTm9k
ZTsKIGNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBIVE1MQ29udGVudFNlbGVjdG9yOwogY2xhc3MgSW5z
ZXJ0aW9uUG9pbnQ7CiBjbGFzcyBUcmVlU2NvcGU7CiAKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGlj
OgogICAgIFNoYWRvd1RyZWUoKTsKICAgICB+U2hhZG93VHJlZSgpOwogCisgICAgRWxlbWVudCog
aG9zdCgpIGNvbnN0OworCiAgICAgYm9vbCBoYXNTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hh
ZG93Um9vdCogeW91bmdlc3RTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogb2xk
ZXN0U2hhZG93Um9vdCgpIGNvbnN0OwpAQCAtNzksMTQgKzgxLDEzIEBAIHB1YmxpYzoKIAogICAg
IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7CiAKLSAgICBI
VE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvcigpIGNvbnN0OwotICAgIEhUTUxDb250ZW50U2Vs
ZWN0b3IqIGVuc3VyZVNlbGVjdG9yKCk7CisgICAgSFRNTENvbnRlbnRTZWxlY3RvciYgc2VsZWN0
b3IoKTsKKyAgICBjb25zdCBIVE1MQ29udGVudFNlbGVjdG9yJiBzZWxlY3RvcigpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKIAogICAgIERvdWJseUxpbmtl
ZExpc3Q8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290czsKLSAgICBPd25QdHI8SFRNTENvbnRlbnRT
ZWxlY3Rvcj4gbV9zZWxlY3RvcjsKKyAgICBIVE1MQ29udGVudFNlbGVjdG9yIG1fc2VsZWN0b3I7
CiAgICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShTaGFkb3dUcmVlKTsKIH07CkBAIC0xMDYsOSArMTA3LDE0IEBAIGlubGluZSBT
aGFkb3dSb290KiBTaGFkb3dUcmVlOjpvbGRlc3RTaGFkb3dSb290KCkgY29uc3QKICAgICByZXR1
cm4gbV9zaGFkb3dSb290cy50YWlsKCk7CiB9CiAKLWlubGluZSBIVE1MQ29udGVudFNlbGVjdG9y
KiBTaGFkb3dUcmVlOjpzZWxlY3RvcigpIGNvbnN0CitpbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rv
ciYgU2hhZG93VHJlZTo6c2VsZWN0b3IoKQoreworICAgIHJldHVybiBtX3NlbGVjdG9yOworfQor
CitpbmxpbmUgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgU2hhZG93VHJlZTo6c2VsZWN0b3Io
KSBjb25zdAogewotICAgIHJldHVybiBtX3NlbGVjdG9yLmdldCgpOworICAgIHJldHVybiBtX3Nl
bGVjdG9yOwogfQogCiBpbmxpbmUgdm9pZCBTaGFkb3dUcmVlOjpjbGVhck5lZWRzUmVhdHRhY2hI
b3N0Q2hpbGRyZW5BbmRTaGFkb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcAppbmRleCA5NTM5NWJjOGJmMjJiYTgzOThmZDU2ZTQ1
ZDg2NGRhNjMxODI2OTI0Li44YjYyZDU2YTc3M2RiMzBkYjZkMzE4YWY3M2JkZDFjMGY4ZGJiNDY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVj
dG9yLmNwcApAQCAtMTAwLDYgKzEwMCw3IEBAIHZvaWQgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0
OjphcHBlbmQoUGFzc1JlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gY2hpbGQpCiB9CiAKIEhU
TUxDb250ZW50U2VsZWN0b3I6OkhUTUxDb250ZW50U2VsZWN0b3IoKQorICAgIDogbV9waGFzZShT
ZWxlY3Rpb25QcmV2ZW50ZWQpCiB7CiB9CiAKQEAgLTExMCw2ICsxMTEsNyBAQCBIVE1MQ29udGVu
dFNlbGVjdG9yOjp+SFRNTENvbnRlbnRTZWxlY3RvcigpCiAKIHZvaWQgSFRNTENvbnRlbnRTZWxl
Y3Rvcjo6c2VsZWN0KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgSFRNTENvbnRlbnRT
ZWxlY3Rpb25MaXN0KiBzZWxlY3Rpb25zKQogeworICAgIEFTU0VSVChtX3BoYXNlID09IEhvc3RD
aGlsZHJlblBvcHVsYXRlZCk7CiAgICAgQVNTRVJUKHNlbGVjdGlvbnMtPmlzRW1wdHkoKSk7CiAK
ICAgICBDb250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeShpbnNlcnRpb25Qb2ludCk7CkBAIC0xNDEs
MTYgKzE0MywyOCBAQCBIVE1MQ29udGVudFNlbGVjdGlvbiogSFRNTENvbnRlbnRTZWxlY3Rvcjo6
ZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0aW9uU2V0LmZpbmQo
a2V5KTsKIH0KIAordm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0KCkKK3sKKyAg
ICBtX3BoYXNlID0gU2VsZWN0aW9uU3RhcnRlZDsKK30KKwogdm9pZCBIVE1MQ29udGVudFNlbGVj
dG9yOjpkaWRTZWxlY3QoKQogeworICAgIEFTU0VSVChtX3BoYXNlICE9IFNlbGVjdGlvblByZXZl
bnRlZCk7CisgICAgbV9waGFzZSA9IFNlbGVjdGlvblByZXZlbnRlZDsKICAgICBtX2NhbmRpZGF0
ZXMuY2xlYXIoKTsKIH0KIAotdm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjp3aWxsU2VsZWN0T3Zl
cihFbGVtZW50KiBzaGFkb3dIb3N0KQordm9pZCBIVE1MQ29udGVudFNlbGVjdG9yOjpwb3B1bGF0
ZUlmTmVjZXNzYXJ5KEVsZW1lbnQqIHNoYWRvd0hvc3QpCiB7Ci0gICAgaWYgKCFtX2NhbmRpZGF0
ZXMuaXNFbXB0eSgpKQorICAgIGlmIChoYXNQb3B1bGF0ZWQoKSkKICAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChzaGFkb3dI
b3N0KTsKKyAgICBBU1NFUlQobV9waGFzZSA9PSBTZWxlY3Rpb25TdGFydGVkKTsKKworICAgIG1f
cGhhc2UgPSBIb3N0Q2hpbGRyZW5Qb3B1bGF0ZWQ7CiAgICAgZm9yIChOb2RlKiBub2RlID0gc2hh
ZG93SG9zdC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkK
ICAgICAgICAgbV9jYW5kaWRhdGVzLmFwcGVuZChub2RlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaAppbmRleCAxNGVhMDU3YTBhNWVk
NTc0N2NkY2E5ODk4ZDJhNWU1ZmE1M2M1ODc0Li5lMDExODA1MDBiYWQxMjM0MjNhMTc1ODhhODE5
MzJmMTgwZjE0YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRTZWxlY3Rvci5oCkBAIC0xMzQsMTggKzEzNCwzOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
bnNlbGVjdChIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKICAgICBIVE1MQ29udGVudFNlbGVj
dGlvbiogZmluZEZvcihOb2RlKiBrZXkpIGNvbnN0OwogCi0gICAgdm9pZCB3aWxsU2VsZWN0T3Zl
cihFbGVtZW50KiBzaGFkb3dIb3N0KTsKKyAgICB2b2lkIHdpbGxTZWxlY3QoKTsKKyAgICBib29s
IGlzU2VsZWN0aW5nKCkgY29uc3Q7CiAgICAgdm9pZCBkaWRTZWxlY3QoKTsKLSAgICBib29sIGhh
c0NhbmRpZGF0ZXMoKSBjb25zdCB7IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQor
CisgICAgdm9pZCBwb3B1bGF0ZUlmTmVjZXNzYXJ5KEVsZW1lbnQqIHNoYWRvd0hvc3QpOworICAg
IGJvb2wgaGFzUG9wdWxhdGVkKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgZW51bSBTZWxlY3Rp
bmdQaGFzZSB7CisgICAgICAgIFNlbGVjdGlvblByZXZlbnRlZCwKKyAgICAgICAgU2VsZWN0aW9u
U3RhcnRlZCwKKyAgICAgICAgSG9zdENoaWxkcmVuUG9wdWxhdGVkLAorICAgIH07CisKICAgICB2
b2lkIHJlbW92ZUZyb21TZXQoSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CiAgICAgdm9pZCBh
ZGRUb1NldChIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8
Tm9kZT4gPiBtX2NhbmRpZGF0ZXM7CiAgICAgSFRNTENvbnRlbnRTZWxlY3Rpb25TZXQgbV9zZWxl
Y3Rpb25TZXQ7CisgICAgU2VsZWN0aW5nUGhhc2UgbV9waGFzZTsKIH07CiAKK2lubGluZSBib29s
IEhUTUxDb250ZW50U2VsZWN0b3I6OmlzU2VsZWN0aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9waGFzZSAhPSBTZWxlY3Rpb25QcmV2ZW50ZWQ7Cit9CisKK2lubGluZSBib29sIEhUTUxDb250
ZW50U2VsZWN0b3I6Omhhc1BvcHVsYXRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGhhc2Ug
PT0gSG9zdENoaWxkcmVuUG9wdWxhdGVkOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCmluZGV4IGViZDRiMjhjNDY0ODdj
ZDE0ODcyNmI4ZTJkOTQxMjM3N2U3ZDA0NzQuLjY0OWNmNTBjMTFlMTU5OTI0NmYwOTQ4ZDEzMjk2
NzIzMGZmYzhhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2Vy
dGlvblBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Q
b2ludC5jcHAKQEAgLTEwOSwxNSArMTA5LDIxIEBAIGJvb2wgSW5zZXJ0aW9uUG9pbnQ6OnJlbmRl
cmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCiAKIGlubGlu
ZSB2b2lkIEluc2VydGlvblBvaW50OjpkaXN0cmlidXRlSG9zdENoaWxkcmVuKFNoYWRvd1RyZWUq
IHRyZWUpCiB7Ci0gICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSB0cmVlLT5lbnN1
cmVTZWxlY3RvcigpOwotICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKLSAg
ICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMsICZtX3NlbGVjdGlvbnMpOworICAgIGlmICghdHJlZS0+
c2VsZWN0b3IoKS5pc1NlbGVjdGluZygpKSB7CisgICAgICAgIC8vIElmIEhUTUxDb250ZW50U2Vs
ZWN0b3IgaXMgbm90IGludCBzZWxlY3RpbmcgcGhhc2UsIGl0IG1lYW5zIEluc2VydGlvblBvaW50
IGlzIGF0dGFjaGVkIGZyb20KKyAgICAgICAgLy8gbm9uLVNoYWRvd1RyZWUgbm9kZS4gVG8gcnVu
IGRpc3RyaWJ1dGUgYWxnb3JpdGhtLCB3ZSBoYXZlIHRvIHJlYXR0YWNoIFNoYWRvd1RyZWUuCisg
ICAgICAgIHRyZWUtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyZWUtPnNlbGVjdG9yKCkucG9wdWxhdGVJZk5l
Y2Vzc2FyeSh0cmVlLT5ob3N0KCkpOworICAgIHRyZWUtPnNlbGVjdG9yKCkudW5zZWxlY3QoJm1f
c2VsZWN0aW9ucyk7CisgICAgdHJlZS0+c2VsZWN0b3IoKS5zZWxlY3QodGhpcywgJm1fc2VsZWN0
aW9ucyk7CiB9CiAKIGlubGluZSB2b2lkIEluc2VydGlvblBvaW50OjpjbGVhckRpc3RyaWJ1dGlv
bihTaGFkb3dUcmVlKiB0cmVlKQogewotICAgIGlmIChIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxl
Y3RvciA9IHRyZWUtPnNlbGVjdG9yKCkpCi0gICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9z
ZWxlY3Rpb25zKTsKKyAgICB0cmVlLT5zZWxlY3RvcigpLnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMp
OwogfQogCiBpbmxpbmUgdm9pZCBJbnNlcnRpb25Qb2ludDo6YXR0YWNoRGlzdHJpYnV0ZWROb2Rl
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxODBhODI4YWZhZWQzYmUzYWMzMWFmOWU2ZmYwY2E3ODZkNGIzYjhmLi5kY2Yw
ZDE0Y2E1MTAwNjA5NDdlN2VlYmM4NmNjOTRhNmExNjFkMzRlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDMtMTQgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtDcmFzaF0gQWRkaW5nIDxjb250ZW50PiBpbnRvIGEgU2hhZG93Um9vdCBjYXVz
ZXMgY3Jhc2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDAyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWw6
IEFkZGVkLgorCiAyMDEyLTAzLTE0ICBNYXR0IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBBbGxvdyBwZXItc2NyaXB0IGZvbnQgc2V0dGluZ3MgdG8gYmUgc3Bl
Y2lmaWVkIGluIGxheW91dCB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2gtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZGU4OWYxM2ZjODg0NjUwZTkwOTMwOTU3ZGQwMTI4MWU2NjNlOGQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNo
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDx0aXRsZT5TaGFkb3cgQ29udGVudCBFbGVtZW50IENyYXNoPC90aXRsZT4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNvbmZpcm1zIGFkZGluZyBhIGNvbnRlbnQg
ZWxlbWVudCBpbnRvIGEgc2hhZG93IHJvb3QgZG9lcyBub3QgY2F1c2UgY3Jhc2guPC9wPgorCis8
ZGl2PlBBU1M8ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjJi
MmU5YmY2NWU2MjA0MmE1NTQ2MmIwNTMyYWQzNjFjZDdiYTY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLmh0bWwKQEAg
LTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5TaGFkb3cgQ29udGVudCBFbGVtZW50IENyYXNoPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0IGNvbmZpcm1zIGFkZGluZyBhIGNvbnRlbnQgZWxlbWVudCBpbnRvIGEgc2hh
ZG93IHJvb3QgZG9lcyBub3QgY2F1c2UgY3Jhc2guPC9wPgorCis8ZGl2IGlkPSdjb250YWluZXIn
PkZBSUw8L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJyk7Cit2YXIgcm9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGRpdik7City
b290LmlubmVySFRNTCA9ICI8Y29udGVudCBzZWxlY3Q9J3NwYW4nPlBBU1M8L2NvbnRlbnQ+IjsK
Kzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>