<?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>101116</bug_id>
          
          <creation_ts>2012-11-02 15:49:44 -0700</creation_ts>
          <short_desc>Text nodes in shadow roots don&apos;t inherit style properly</short_desc>
          <delta_ts>2012-12-11 22:25:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72352</blocked>
    
    <blocked>95528</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>shinyak</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757686</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-02 15:49:44 -0700</bug_when>
    <thetext>Test case:

shadow = new WebKitShadowRoot(document.body)
span = document.createElement(&apos;span&apos;)
span.textContent = &quot;foo&quot;;
shadow.appendChild(span);
shadow.appendChild(document.createTextNode(&quot;bar&quot;))
document.body.offsetTop; // cause a layout.
document.body.style.fontSize = &apos;5em&apos;;

You should see foo bar in big text, but you only see &quot;foo&quot; in big text.

The bug is here:

http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/Text.cpp&amp;exact_package=chromium&amp;l=259

and SVG has a hack for it:

http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/svg/SVGTRefElement.cpp&amp;exact_package=chromium&amp;q=SVGTRefElement&amp;type=cs&amp;l=156

This means text in a shadow root is broken for zooming and style changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759475</commentid>
    <comment_count>1</comment_count>
      <attachid>172539</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-06 03:09:27 -0800</bug_when>
    <thetext>Created attachment 172539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759612</commentid>
    <comment_count>2</comment_count>
      <attachid>172539</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-06 06:28:29 -0800</bug_when>
    <thetext>Comment on attachment 172539
Patch

Attachment 172539 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14747411</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759780</commentid>
    <comment_count>3</comment_count>
      <attachid>172539</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-06 09:37:41 -0800</bug_when>
    <thetext>Comment on attachment 172539
Patch

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

&gt; Source/WebCore/dom/Text.cpp:267
&gt; +        Node* parentForStyle = parent-&gt;isShadowRoot() ?
&gt; +            toShadowRoot(parent)-&gt;shadowHost() :
&gt; +            parent;

This should probably be just one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759795</commentid>
    <comment_count>4</comment_count>
      <attachid>172539</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-06 09:59:17 -0800</bug_when>
    <thetext>Comment on attachment 172539
Patch

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

When resetStyleInheritance is true we have no m_parentStyle in StyleResolver and then go down this code path: http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/css/StyleResolver.cpp&amp;exact_package=chromium&amp;q=StyleResolver.cpp&amp;type=cs&amp;l=1545

You need to have this same behavior for text nodes.

&gt; Source/WebCore/dom/Text.cpp:262
&gt;      // is a shadow root.

Remove this comment since it doesn&apos;t apply now.

&gt; Source/WebCore/dom/Text.cpp:268
&gt; +        renderer-&gt;setStyle(parentForStyle-&gt;renderStyle());

This is wrong if you have resetStyleInheritance set because you unconditionally inherit from the shadow host. You need to expose the default style from inside the StyleResolver, perhaps with some abstraction like document()-&gt;styleResolver()-&gt;styleForText(this) that models the existing styleForElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759853</commentid>
    <comment_count>5</comment_count>
      <attachid>172539</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-06 10:44:30 -0800</bug_when>
    <thetext>Comment on attachment 172539
Patch

Thanks for looking this over, Elliot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771451</commentid>
    <comment_count>6</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 21:01:26 -0800</bug_when>
    <thetext>Thank you for reviewing.

I missed reset-style-inheritance. I agree that I have to think about this.

So.. however I would like to confirm what style we should apply to resetted text nodes. The reason why I&apos;m thinking about this is:
(1) we cannot directly apply any styles to text nodes.
(2) if we have to check reset-style-inheritance flag, we have to modify NodeRendererFactory::createRendererIfNeeded() too, i.e.

---- before -----
    Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
    if (element)
        m_context.setStyle(element-&gt;styleForRenderer());
    else if (RenderObject* parentRenderer = m_context.parentRenderer())
        m_context.setStyle(parentRenderer-&gt;style());
---- after ----
    Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
    if (element)
        m_context.setStyle(element-&gt;styleForRenderer());
    else if (node-&gt;isTextNode())
        m_context.setStyle(document()-&gt;styleResolver()-&gt;styleForText(node); // added
    else if (RenderObject* parentRenderer = m_context.parentRenderer())
        m_context.setStyle(parentRenderer-&gt;style());

Since for each text node we have to use NodeRenderingContext to check reset-style-inheritance, I&apos;m afraid of performance regression. Is this allowable regression?

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771462</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-19 21:18:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Thank you for reviewing.
&gt; 
&gt; I missed reset-style-inheritance. I agree that I have to think about this.
&gt; 
&gt; So.. however I would like to confirm what style we should apply to resetted text nodes. The reason why I&apos;m thinking about this is:
&gt; (1) we cannot directly apply any styles to text nodes.
&gt; (2) if we have to check reset-style-inheritance flag, we have to modify NodeRendererFactory::createRendererIfNeeded() too, i.e.
&gt; 
&gt; ---- before -----
&gt;     Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
&gt;     if (element)
&gt;         m_context.setStyle(element-&gt;styleForRenderer());
&gt;     else if (RenderObject* parentRenderer = m_context.parentRenderer())
&gt;         m_context.setStyle(parentRenderer-&gt;style());
&gt; ---- after ----
&gt;     Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
&gt;     if (element)
&gt;         m_context.setStyle(element-&gt;styleForRenderer());
&gt;     else if (node-&gt;isTextNode())
&gt;         m_context.setStyle(document()-&gt;styleResolver()-&gt;styleForText(node); // added
&gt;     else if (RenderObject* parentRenderer = m_context.parentRenderer())
&gt;         m_context.setStyle(parentRenderer-&gt;style());
&gt; 
&gt; Since for each text node we have to use NodeRenderingContext to check reset-style-inheritance, I&apos;m afraid of performance regression. Is this allowable regression?

First of all, let&apos;s measure it. Our PerformanceTests has some parser-related tests which exercise
not only the parser but also the style computation. It would be a good starting point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771488</commentid>
    <comment_count>8</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-19 21:44:07 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; ...
&gt; Since for each text node we have to use NodeRenderingContext to check reset-style-inheritance, I&apos;m afraid of performance regression. Is this allowable regression?

isShadowRoot and isTextNode are bitfield checks and we only need this special case for text nodes that are direct descendants of shadow roots.

Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
if (element)
  m_context.setStyle(element-&gt;styleForRenderer());
else if (node-&gt;isTextNode() &amp;&amp; node-&gt;parentOrHostNode()-&gt;isShadowRoot())
  m_context.setStyle(document()-&gt;styleResolver()-&gt;styleForText(node);
else
  m_context.setStyle(m_context.parentRenderer()-&gt;style());

The last check is simplified as in Bug 102765 and since the conditional is on a bitfield it seems very unlikely there&apos;s a perf regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771542</commentid>
    <comment_count>9</comment_count>
      <attachid>175145</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 22:56:29 -0800</bug_when>
    <thetext>Created attachment 175145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771554</commentid>
    <comment_count>10</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:07:08 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; ...
&gt; &gt; Since for each text node we have to use NodeRenderingContext to check reset-style-inheritance, I&apos;m afraid of performance regression. Is this allowable regression?
&gt; 
&gt; isShadowRoot and isTextNode are bitfield checks and we only need this special case for text nodes that are direct descendants of shadow roots.
&gt; 
&gt; Element* element = node-&gt;isElementNode() ? toElement(node) : 0;
&gt; if (element)
&gt;   m_context.setStyle(element-&gt;styleForRenderer());
&gt; else if (node-&gt;isTextNode() &amp;&amp; node-&gt;parentOrHostNode()-&gt;isShadowRoot())
&gt;   m_context.setStyle(document()-&gt;styleResolver()-&gt;styleForText(node);
&gt; else
&gt;   m_context.setStyle(m_context.parentRenderer()-&gt;style());
&gt; 
&gt; The last check is simplified as in Bug 102765 and since the conditional is on a bitfield it seems very unlikely there&apos;s a perf regression.

Thank you.
I will recreate a new patch and upload.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771562</commentid>
    <comment_count>11</comment_count>
      <attachid>175150</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:18:01 -0800</bug_when>
    <thetext>Created attachment 175150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771564</commentid>
    <comment_count>12</comment_count>
      <attachid>175151</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:19:49 -0800</bug_when>
    <thetext>Created attachment 175151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771565</commentid>
    <comment_count>13</comment_count>
      <attachid>175152</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:22:06 -0800</bug_when>
    <thetext>Created attachment 175152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771566</commentid>
    <comment_count>14</comment_count>
      <attachid>175145</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-19 23:22:25 -0800</bug_when>
    <thetext>Comment on attachment 175145
Patch

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

We can make createRendererIfNeeded faster by not creating a whole new NodeRenderingContext and skipping the parent traversal using an overload and passing in the context from NodeRenderFactory:

StyleResolver::styleForText(Node* textNode, NodeRenderingContext&amp; context) { ... }
StyleResolver::styleForText(Node* textNode)
{
  NodeRenderingContext context(textNode);
  return styleForText(textNode, context);
}

I&apos;m not sure this optimization is needed, but what you have right now does traverse the parents repeatedly.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Use NodeRenderingContext to solve styles of text nodes.

resolve

&gt; Source/WebCore/ChangeLog:9
&gt; +        If text nodes are direct chilren of shadow roots, the text nodes

children

&gt; Source/WebCore/css/StyleResolver.cpp:1795
&gt; +    NodeRenderingContext context(textNode);

It seems kind of silly to create a whole new rendering context and do the ComposedShadowTreeWalker::findParent traversal during createRendererIfNeeded() when we already have all that information in createRendererIfNeeded. It might not actually matter for performance though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771583</commentid>
    <comment_count>15</comment_count>
      <attachid>175156</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:39:32 -0800</bug_when>
    <thetext>Created attachment 175156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771588</commentid>
    <comment_count>16</comment_count>
      <attachid>175145</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-19 23:41:30 -0800</bug_when>
    <thetext>Comment on attachment 175145
Patch

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

Thank you for quickly reviewing.

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Use NodeRenderingContext to solve styles of text nodes.
&gt; 
&gt; resolve

Done. Thanks.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        If text nodes are direct chilren of shadow roots, the text nodes
&gt; 
&gt; children

Done.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1795
&gt;&gt; +    NodeRenderingContext context(textNode);
&gt; 
&gt; It seems kind of silly to create a whole new rendering context and do the ComposedShadowTreeWalker::findParent traversal during createRendererIfNeeded() when we already have all that information in createRendererIfNeeded. It might not actually matter for performance though.

I see. I added styleForElement(Node*, NodeRenderingContext&amp;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771601</commentid>
    <comment_count>17</comment_count>
      <attachid>175156</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-19 23:46:09 -0800</bug_when>
    <thetext>Comment on attachment 175156
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771726</commentid>
    <comment_count>18</comment_count>
      <attachid>175183</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-20 03:50:06 -0800</bug_when>
    <thetext>Created attachment 175183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771727</commentid>
    <comment_count>19</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-20 03:52:58 -0800</bug_when>
    <thetext>I modified the condition in createRendererIfNeeded, because I think, m_context.insertionPoint() is a little better than isShadowHost(node-&gt;parentOrHostNode()).

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771752</commentid>
    <comment_count>20</comment_count>
      <attachid>175189</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-20 04:44:03 -0800</bug_when>
    <thetext>Created attachment 175189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771761</commentid>
    <comment_count>21</comment_count>
      <attachid>175189</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-20 04:59:22 -0800</bug_when>
    <thetext>Comment on attachment 175189
Patch

Attachment 175189 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14894596</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772512</commentid>
    <comment_count>22</comment_count>
      <attachid>175347</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-20 23:41:34 -0800</bug_when>
    <thetext>Created attachment 175347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772514</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-20 23:43:13 -0800</bug_when>
    <thetext>What about performance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772516</commentid>
    <comment_count>24</comment_count>
      <attachid>175347</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-20 23:48:21 -0800</bug_when>
    <thetext>Comment on attachment 175347
Patch

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

This looks good to me, but I&apos;m not a reviewer so I can&apos;t r+. Perhaps someone else can do that. :)

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:252
&gt; +        m_context.setStyle(node-&gt;document()-&gt;styleResolver()-&gt;styleForText(m_context));

You can just move the Document* document = node-&gt;document(); line back to the top of the function again if you want too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772521</commentid>
    <comment_count>25</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-20 23:52:15 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; What about performance?

To test performance of this use the html5-full-render.html perf test. It&apos;s a good test of createRendererIfNeeded() and recalcTextStyle().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772538</commentid>
    <comment_count>26</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-21 00:18:04 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; What about performance?
&gt; 
&gt; To test performance of this use the html5-full-render.html perf test. It&apos;s a good test of createRendererIfNeeded() and recalcTextStyle().

Thank you. I looked at PerfTest/Parser/*.

So I found that this patch makes Parser/tiny-innerHTML much slower (10%-20% slower).
The test updates innerHTML again and again:

PerfTestRunner.measureRunsPerSecond({run:function() {
    var testDiv = document.createElement(&quot;div&quot;);
    testDiv.style.display = &quot;none&quot;;
    document.body.appendChild(testDiv);
    for (var x = 0; x &lt; 100000; x++) {
        testDiv.innerHTML = &quot;This is a tiny HTML document&quot;;
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    }
    document.body.removeChild(testDiv);
}});

So the newly added &quot;if&quot; , i.e.

 + else if (node-&gt;isTextNode() &amp;&amp; (node-&gt;parentOrHostNode()-&gt;isShadowRoot() || m_context.insertionPoint()))
 +       m_context.setStyle(node-&gt;document()-&gt;styleResolver()-&gt;styleForText(m_context));

is checked every time testDiv.innerHTML is updated. I couldn&apos;t find the way to avoid this performance regression.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773229</commentid>
    <comment_count>27</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-11-21 13:32:37 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; What about performance?
&gt; &gt; 
&gt; &gt; To test performance of this use the html5-full-render.html perf test. It&apos;s a good test of createRendererIfNeeded() and recalcTextStyle().
&gt; 
&gt; Thank you. I looked at PerfTest/Parser/*.
&gt; 
&gt; So I found that this patch makes Parser/tiny-innerHTML much slower (10%-20% slower).
&gt; The test updates innerHTML again and again:
&gt; 

Can you try this test but with ENABLE(DIALOG_ELEMENT) turned off and ENABLE(FULLSCREEN_API) turned off?  It seems very suspicious that adding this check is such a big perf regression but those two feature flags don&apos;t cause similarly massive perf regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773372</commentid>
    <comment_count>28</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-21 15:48:28 -0800</bug_when>
    <thetext>
&gt; 
&gt; Can you try this test but with ENABLE(DIALOG_ELEMENT) turned off and ENABLE(FULLSCREEN_API) turned off?  It seems very suspicious that adding this check is such a big perf regression but those two feature flags don&apos;t cause similarly massive perf regressions.

Another thing we can try is to use pprof and see the difference
between before and after the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776481</commentid>
    <comment_count>29</comment_count>
      <attachid>176199</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-27 01:41:11 -0800</bug_when>
    <thetext>Created attachment 176199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776530</commentid>
    <comment_count>30</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-27 02:29:11 -0800</bug_when>
    <thetext>Thank you for advising, Elliott and Morita-san.

Today I rebased my patch. So I found no big performance regression...

I measured by using the command, &quot;Tools/Scripts/run-perf-tests --release --no-build Parser/\*&quot; and I used the Patch(2012-11-27 01:41 PST).

So I&apos;m now trying to use pperf.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778813</commentid>
    <comment_count>31</comment_count>
      <attachid>176674</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-29 01:20:46 -0800</bug_when>
    <thetext>Created attachment 176674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778819</commentid>
    <comment_count>32</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-29 01:25:33 -0800</bug_when>
    <thetext>I created a spreadsheet for Parser/tiny-innerHTML, Parser/html5-full-render, Parser/html-parser:
https://docs.google.com/spreadsheet/ccc?key=0AtdkWCxGaEc2dDhUcTlFanprMUR0cGU0QlB1eWNoMWc

I guess, someone&apos;s refactoring would probably hide my change.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779132</commentid>
    <comment_count>33</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-29 10:15:42 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; I guess, someone&apos;s refactoring would probably hide my change.

Not sure what this means :) Can you elaborate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781307</commentid>
    <comment_count>34</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-03 03:40:05 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; I guess, someone&apos;s refactoring would probably hide my change.
&gt; 
&gt; Not sure what this means :) Can you elaborate?

I found that some one changed createRendererIfNeeded in NodeRenderingContext.cpp. 
My first patch was for updating NodeRendererFactory::createRendererIfNeeded.
But now NodeRenderingContext::createRendererForTextIfNeeded was implemented for just creating a renderer for a text node. I recreated my patch to update the createRendererForTextIfNeeded.
I think, this change affected number of &quot;if&quot; (or ...) when testDiv.innerHTML = &quot;This is a tiny HTML document&quot; is executed.
 
Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784530</commentid>
    <comment_count>35</comment_count>
      <attachid>176674</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-05 20:39:03 -0800</bug_when>
    <thetext>Comment on attachment 176674
Patch

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

&gt; Source/WebCore/dom/Text.cpp:292
&gt; +            renderer-&gt;setStyle(parent-&gt;renderer()-&gt;style());

Having these tricky condition in two places is unfortunate and error prone.
Can we put this inside StyleResolver::styleForText() somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785587</commentid>
    <comment_count>36</comment_count>
      <attachid>178150</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-06 20:40:09 -0800</bug_when>
    <thetext>Created attachment 178150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785589</commentid>
    <comment_count>37</comment_count>
      <attachid>176674</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-06 20:42:41 -0800</bug_when>
    <thetext>Comment on attachment 176674
Patch

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

&gt;&gt; Source/WebCore/dom/Text.cpp:292
&gt;&gt; +            renderer-&gt;setStyle(parent-&gt;renderer()-&gt;style());
&gt; 
&gt; Having these tricky condition in two places is unfortunate and error prone.
&gt; Can we put this inside StyleResolver::styleForText() somehow?

I see. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785593</commentid>
    <comment_count>38</comment_count>
      <attachid>178150</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-06 20:55:43 -0800</bug_when>
    <thetext>Comment on attachment 178150
Patch

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

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:285
&gt; +    if (m_node-&gt;parentOrHostNode()-&gt;isShadowRoot() || insertionPoint())

Apparently this check also can be part of styleForText().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785658</commentid>
    <comment_count>39</comment_count>
      <attachid>178166</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-06 22:53:39 -0800</bug_when>
    <thetext>Created attachment 178166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785696</commentid>
    <comment_count>40</comment_count>
      <attachid>178166</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-07 00:22:15 -0800</bug_when>
    <thetext>Comment on attachment 178166
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:1809
&gt; +        m_style-&gt;font().update(0);

This empty style creation code looks like being copied from styleForElement(). can we share this between two method?

&gt; Source/WebCore/css/StyleResolver.cpp:1821
&gt; +        return parentNode-&gt;renderStyle();

This code is so cryptic and hard to see its correctness. 
Is it possible to just let stleForText(NodeRenderingContext) do this? 
Is it so slow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785698</commentid>
    <comment_count>41</comment_count>
      <attachid>178172</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 00:25:38 -0800</bug_when>
    <thetext>Created attachment 178172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785726</commentid>
    <comment_count>42</comment_count>
      <attachid>178176</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 01:13:28 -0800</bug_when>
    <thetext>Created attachment 178176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785728</commentid>
    <comment_count>43</comment_count>
      <attachid>178177</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 01:16:06 -0800</bug_when>
    <thetext>Created attachment 178177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785730</commentid>
    <comment_count>44</comment_count>
      <attachid>178166</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 01:17:13 -0800</bug_when>
    <thetext>Comment on attachment 178166
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1809
&gt;&gt; +        m_style-&gt;font().update(0);
&gt; 
&gt; This empty style creation code looks like being copied from styleForElement(). can we share this between two method?

I see. Done.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1821
&gt;&gt; +        return parentNode-&gt;renderStyle();
&gt; 
&gt; This code is so cryptic and hard to see its correctness. 
&gt; Is it possible to just let stleForText(NodeRenderingContext) do this? 
&gt; Is it so slow?

I agree that this code looks not-good.
I heard that NodeRenderingContext is a little slow. So this code is to creating a fast path, i.e. avoiding creating NodeRenderingContext.
If always using NodeRenderingContext here is ok, I would like to remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785739</commentid>
    <comment_count>45</comment_count>
      <attachid>178180</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 01:27:18 -0800</bug_when>
    <thetext>Created attachment 178180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785740</commentid>
    <comment_count>46</comment_count>
      <attachid>178166</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-07 01:29:25 -0800</bug_when>
    <thetext>Comment on attachment 178166
Patch

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

&gt;&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1821
&gt;&gt;&gt; +        return parentNode-&gt;renderStyle();
&gt;&gt; 
&gt;&gt; This code is so cryptic and hard to see its correctness. 
&gt;&gt; Is it possible to just let stleForText(NodeRenderingContext) do this? 
&gt;&gt; Is it so slow?
&gt; 
&gt; I agree that this code looks not-good.
&gt; I heard that NodeRenderingContext is a little slow. So this code is to creating a fast path, i.e. avoiding creating NodeRenderingContext.
&gt; If always using NodeRenderingContext here is ok, I would like to remove this.

Done.
I removed the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785748</commentid>
    <comment_count>47</comment_count>
      <attachid>178180</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-12-07 01:38:31 -0800</bug_when>
    <thetext>Comment on attachment 178180
Patch

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

Looks awesome :)

&gt; Source/WebCore/css/StyleResolver.cpp:1781
&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::defaultStyleForElement()

defaultStyleForNode() ? Text are not Elements.

&gt; Source/WebCore/css/StyleResolver.cpp:1794
&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::styleForText(Node* textNode)

This should just take Text* and you can remove the isTextNode() assert below.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:285
&gt; +    if (UNLIKELY(resetStyleInheritance()))

Does the UNLIKELY actually make a difference? ojan has said it doesn&apos;t usually matter (and produces identical assembly).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785908</commentid>
    <comment_count>48</comment_count>
      <attachid>178180</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-07 08:57:21 -0800</bug_when>
    <thetext>Comment on attachment 178180
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1781
&gt;&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::defaultStyleForElement()
&gt; 
&gt; defaultStyleForNode() ? Text are not Elements.

In this context, he&apos;s just initializing defaults for element style resolution.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1794
&gt;&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::styleForText(Node* textNode)
&gt; 
&gt; This should just take Text* and you can remove the isTextNode() assert below.

Good point!

&gt;&gt; Source/WebCore/dom/NodeRenderingContext.cpp:285
&gt;&gt; +    if (UNLIKELY(resetStyleInheritance()))
&gt; 
&gt; Does the UNLIKELY actually make a difference? ojan has said it doesn&apos;t usually matter (and produces identical assembly).

It&apos;s called UNLIKELY, because it is unlikely to have any effect on your code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789145</commentid>
    <comment_count>49</comment_count>
      <attachid>178955</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 20:46:46 -0800</bug_when>
    <thetext>Created attachment 178955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789156</commentid>
    <comment_count>50</comment_count>
      <attachid>178180</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 20:55:46 -0800</bug_when>
    <thetext>Comment on attachment 178180
Patch

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

&gt;&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1781
&gt;&gt;&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::defaultStyleForElement()
&gt;&gt; 
&gt;&gt; defaultStyleForNode() ? Text are not Elements.
&gt; 
&gt; In this context, he&apos;s just initializing defaults for element style resolution.

Yes. Thank you Dimitri. I would like to say so.

&gt;&gt;&gt; Source/WebCore/css/StyleResolver.cpp:1794
&gt;&gt;&gt; +PassRefPtr&lt;RenderStyle&gt; StyleResolver::styleForText(Node* textNode)
&gt;&gt; 
&gt;&gt; This should just take Text* and you can remove the isTextNode() assert below.
&gt; 
&gt; Good point!

Thanks. Done.

&gt;&gt;&gt; Source/WebCore/dom/NodeRenderingContext.cpp:285
&gt;&gt;&gt; +    if (UNLIKELY(resetStyleInheritance()))
&gt;&gt; 
&gt;&gt; Does the UNLIKELY actually make a difference? ojan has said it doesn&apos;t usually matter (and produces identical assembly).
&gt; 
&gt; It&apos;s called UNLIKELY, because it is unlikely to have any effect on your code.

I removed UNLIKELY. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789157</commentid>
    <comment_count>51</comment_count>
      <attachid>178955</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-12-11 21:00:38 -0800</bug_when>
    <thetext>Comment on attachment 178955
Patch

Looks good now. Thanks for the fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789210</commentid>
    <comment_count>52</comment_count>
      <attachid>178955</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 22:25:34 -0800</bug_when>
    <thetext>Comment on attachment 178955
Patch

Clearing flags on attachment: 178955

Committed r137418: &lt;http://trac.webkit.org/changeset/137418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789211</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 22:25:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172539</attachid>
            <date>2012-11-06 03:09:27 -0800</date>
            <delta_ts>2012-11-19 22:56:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121106200740.patch</filename>
            <type>text/plain</type>
            <size>3910</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFiMjFkNGQ5ZGYxMGM0
MGQ2YmQ5YzQ3Nzk2YjcxZGZmN2MyYjRjOC4uMmIzMzIzOGJlZDJhY2RkYTFmY2MxMWE5ZGVmODhl
ZDdlNjJlMWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTA2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXh0IG5vZGVzIHRoYXQgYXJlIGRp
cmVjdCBjaGlscmVuIG9mIHNoYWRvdyByb290cyBzaG91bGQgYmUgaW5oZXJpdGVkCisgICAgICAg
IHN0eWxlcyBmcm9tIHRoZWlyIHNoYWRvdyBob3N0cy4gYy5mLiB0aGUgc3R5bGVzIG9mIHRoZSBz
aGFkb3cgaG9zdCBhcmUKKyAgICAgICAgaW5oZXJpdGVkIGJ5IHRoZSBjaGlsZHJlbiBvZiB0aGUg
c2hhZG93IHJvb3QuCisgICAgICAgIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRz
L3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9pbmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRl
c3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAq
IGRvbS9UZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnJlY2FsY1RleHRTdHlsZSk6
CisKIDIwMTItMTEtMDYgIE5pa2l0YSBWYXNpbHlldiAgPG1lQGVsdjFzLnJ1PgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IENvbnNvbGU6IHdyYXAgbG9uZyBVUkxzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5k
ZXggM2ZkMGYxNWVhMGYyMTkxN2Q5N2FkNGFjOGFiNDYyNDk2NTliYTIzYi4uYjhmMGFmODI3ODVj
ZTY0OTRlZTVjMGE4NDgyZWY2NGU1ZDhjNzg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMjYwLDgg
KzI2MCwxMyBAQCB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2Up
CiAKICAgICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBhcmVu
dCBkb2Vzbid0IGlzIGlmIG91ciBwYXJlbnQKICAgICAvLyBpcyBhIHNoYWRvdyByb290LgotICAg
IGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIgJiYgIXBhcmVudE5vZGUoKS0+aXNT
aGFkb3dSb290KCkpCi0gICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwYXJlbnROb2RlKCktPnJl
bmRlcmVyKCktPnN0eWxlKCkpOworICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVy
ZXIpIHsKKyAgICAgICAgTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpOworICAgICAgICBOb2Rl
KiBwYXJlbnRGb3JTdHlsZSA9IHBhcmVudC0+aXNTaGFkb3dSb290KCkgPworICAgICAgICAgICAg
dG9TaGFkb3dSb290KHBhcmVudCktPnNoYWRvd0hvc3QoKSA6CisgICAgICAgICAgICBwYXJlbnQ7
CisgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwYXJlbnRGb3JTdHlsZS0+cmVuZGVyU3R5bGUo
KSk7CisgICAgfQogCiAgICAgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICBpZiAo
cmVuZGVyZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhMTU2NGJkZGE5ZTE5Yjc4NjY3YjRlZTgxMzU2MGFkNzFkMmMx
MDk0Li4xZjk0MTFhMDE2ZWJmMmJmNGExOTE1MDA0ZDA3YzBlNDE0ZWJmYmNhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTItMTEtMDYgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cu
aHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgbW9ybmluZyBnYXJkZW5pbmcsIHNr
aXAgbmV3IGZhaWxpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMzQ2ZjQ4OTExNmM3ZWIzYWQyNGZmYzcyODE2NmIyNjFiMGY0ZDcwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9k
eSBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij4KKyAgPHNwYW4+Zm9vPC9zcGFuPmJhcgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQt
bm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiMDQxYTU3ZjUyZGMwMWIyODUwZDI4YWUw
ODhlY2IwNzA3NWM3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7Cisg
ICAgc2hhZG93ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZG9jdW1lbnQuYm9keSkKKyAgICBzcGFu
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCisgICAgc3Bhbi50ZXh0Q29udGVudCA9
ICJmb28iOworICAgIHNoYWRvdy5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3cuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKQorICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0VG9wOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICA8IS0tIFti
dWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxl
IHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDExMTYgLS0+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175145</attachid>
            <date>2012-11-19 22:56:29 -0800</date>
            <delta_ts>2012-11-19 23:41:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120155419.patch</filename>
            <type>text/plain</type>
            <size>9986</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uMGM1MzVjMmZhNjdmYmNlNjQwZDQ1MTQ3MjJiMmRl
MjgyMWExNDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gc29sdmUgc3R5bGVzIG9mIHRleHQgbm9kZXMuCisgICAgICAgIElmIHRleHQgbm9kZXMg
YXJlIGRpcmVjdCBjaGlscmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAgICAg
ICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMuCisg
ICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRoZSB0
ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4dCBu
b2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sgd2hl
dGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0
YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6Ly9k
dmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9pbmRl
eC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
aW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVzZSBO
b2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUgZnJv
bSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBmb3Vu
ZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRoZSBn
aXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAgICAg
ICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVyd2lz
ZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAg
ICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNlIHN0
eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAgICBw
YXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBhcnNl
ciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJkZjUz
MGE3ZWJjYTAuLmIwODJiNGI5MjkzYjgxNzVhMDZkMzZmYmQzYTFhZjIzNzYzMzQ5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywyNiBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJ
bmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sK
KyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgp
KTsKKworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIE5v
ZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgp
OworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpICYmIHBhcmVu
dE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAg
bV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBpZiAoU2V0dGluZ3MqIHNldHRp
bmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGluaXRpYWxpemVGb250U3R5bGUo
c2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcigp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKworICAg
IHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2lj
TWFyZ2lucyhSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2
YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2
NmY2OWU2N2YzYWMxZTY4YmY3ODJiYmIuLmE3NjQ3Nzk2MmU0YmU2NWJmYTFiMTg5NzJhNDdkNmMx
MDcxN2EzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVs
ZW1lbnQoUHNldWRvSWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAg
ICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwor
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCos
IENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMjFmMWMzZjg5OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNh
ODE5ZC4uZGEyMzEwMWEzMDczMjJkMzE4MjQ2YTk1MDNiNDg3OGU4MWZjNWNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC0yMzYsNiArMjM3LDgg
QEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5v
ZGUpIDogMDsKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKGVs
ZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CisgICAgZWxzZSBpZiAobm9kZS0+aXNUZXh0Tm9k
ZSgpKQorICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIo
KS0+c3R5bGVGb3JUZXh0KG5vZGUpKTsKICAgICBlbHNlIGlmIChSZW5kZXJPYmplY3QqIHBhcmVu
dFJlbmRlcmVyID0gbV9jb250ZXh0LnBhcmVudFJlbmRlcmVyKCkpCiAgICAgICAgIG1fY29udGV4
dC5zZXRTdHlsZShwYXJlbnRSZW5kZXJlci0+c3R5bGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRl
eCAzZmQwZjE1ZWEwZjIxOTE3ZDk3YWQ0YWM4YWI0NjI0OTY1OWJhMjNiLi43NDNiYWQ2ZGJkMjEy
NGZkMGE2ZjkyYzkwODk3MDFlOWZmYmM3Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0yNjAsOCArMjYxLDggQEAgdm9p
ZCBUZXh0OjpyZWNhbGNUZXh0U3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogCiAgICAgLy8gVGhl
IG9ubHkgdGltZSB3ZSBoYXZlIGEgcmVuZGVyZXIgYW5kIG91ciBwYXJlbnQgZG9lc24ndCBpcyBp
ZiBvdXIgcGFyZW50CiAgICAgLy8gaXMgYSBzaGFkb3cgcm9vdC4KLSAgICBpZiAoY2hhbmdlICE9
IE5vQ2hhbmdlICYmIHJlbmRlcmVyICYmICFwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKQot
ICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpLT5zdHls
ZSgpKTsKKyAgICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHJlbmRlcmVyKQorICAgICAgICBy
ZW5kZXJlci0+c2V0U3R5bGUoZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvclRl
eHQodGhpcykpOwogCiAgICAgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICBpZiAo
cmVuZGVyZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5Zjc3ZjFkZTU0MzAwODEwNDYxNmM3YTIyOTExMzEwMzllZmY4
M2Q0Li4yOGEwYzI3MGIwNzk5NWFkZWMwODM0ODgyZjU4ZGRjMWRiOTgyNjI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMTEtMTkgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cu
aHRtbDogQWRkZWQuCisgICAgICAgIEZvdXIgdGVzdCBjYXNlcywgb25lIGlzIGZvciB0ZXN0aW5n
IGEgdGV4dCBub2RlIHdoaWNoIGlzIGEgZGlyZWN0CisgICAgICAgIGNoaWxkIG9mIGEgc2hhZG93
IHJvb3Qgd2l0aG91dCByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4KKyAgICAgICAgT25lIGlzIHdp
dGggcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyBmb3IgdGVzdGluZyBh
IHRleHQgbm9kZSB3aGljaCBpcyBhIGRpc3RyaWJ1dGVkIG5vZGUgYW5kIGl0cworICAgICAgICBp
bnNlcnRpb24gcG9pbnQgZG9lc24ndCBoYXZlIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIHNldCB0
byBiZSB0cnVlLgorICAgICAgICBUaGUgb3RoZXIgb25lIGlzIGFsbW9zdCB0aGUgc2FtZSBhcyB0
aGUgcHJldmlvdXMgb25lIGV4Y2VwdAorICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4K
KwogMjAxMi0xMS0xOSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBNdXRhdGlvbk9ic2VydmVyIHdyYXBwZXIgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgd2hpbGUg
c3RpbGwgb2JzZXJ2aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYz
MDkyNjU1YTRiOGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAg
PGRpdiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFyPC9kaXY+Cisg
IDxkaXY+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2
ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog
NWVtOyI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5Gb288c3Bhbj5C
YXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5YTMzYTE2MDc4
M2U3Nzc4NzcwMDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICB0ZXh0
LWFsaWduOiB0b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENoaWxk
VGV4dE9mU2hhZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJob3N0Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCho
b3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAg
IHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNw
YW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImJhciIpKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5m
b250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290
V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAgdmFyIHNoYWRv
d1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsK
KyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0
OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gdGVzdERp
c3RyaWJ1dGVkVGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9
J3NwYW4xJz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5m
b250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOworICAg
IHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+
PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVu
dCIpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9u
dFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdGVzdENoaWxk
VGV4dE9mU2hhZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOworICAgIHRl
c3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0gW2J1ZyAxMDEx
MTZdIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVy
bHkgLS0+CisgIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTExNiAtLT4KKyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0
eWxlSW5oZXJpdGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+
Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVy
aXRhbmNlV2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175150</attachid>
            <date>2012-11-19 23:18:01 -0800</date>
            <delta_ts>2012-11-19 23:19:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120161550.patch</filename>
            <type>text/plain</type>
            <size>9986</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uMGM1MzVjMmZhNjdmYmNlNjQwZDQ1MTQ3MjJiMmRl
MjgyMWExNDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gc29sdmUgc3R5bGVzIG9mIHRleHQgbm9kZXMuCisgICAgICAgIElmIHRleHQgbm9kZXMg
YXJlIGRpcmVjdCBjaGlscmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAgICAg
ICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMuCisg
ICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRoZSB0
ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4dCBu
b2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sgd2hl
dGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0
YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6Ly9k
dmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9pbmRl
eC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
aW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVzZSBO
b2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUgZnJv
bSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBmb3Vu
ZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRoZSBn
aXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAgICAg
ICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVyd2lz
ZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAg
ICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNlIHN0
eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAgICBw
YXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBhcnNl
ciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJkZjUz
MGE3ZWJjYTAuLmIwODJiNGI5MjkzYjgxNzVhMDZkMzZmYmQzYTFhZjIzNzYzMzQ5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywyNiBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJ
bmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sK
KyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgp
KTsKKworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIE5v
ZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgp
OworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpICYmIHBhcmVu
dE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAg
bV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBpZiAoU2V0dGluZ3MqIHNldHRp
bmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGluaXRpYWxpemVGb250U3R5bGUo
c2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcigp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKworICAg
IHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2lj
TWFyZ2lucyhSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2
YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2
NmY2OWU2N2YzYWMxZTY4YmY3ODJiYmIuLmE3NjQ3Nzk2MmU0YmU2NWJmYTFiMTg5NzJhNDdkNmMx
MDcxN2EzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVs
ZW1lbnQoUHNldWRvSWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAg
ICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwor
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCos
IENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMjFmMWMzZjg5OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNh
ODE5ZC4uZGEyMzEwMWEzMDczMjJkMzE4MjQ2YTk1MDNiNDg3OGU4MWZjNWNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC0yMzYsNiArMjM3LDgg
QEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5v
ZGUpIDogMDsKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKGVs
ZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CisgICAgZWxzZSBpZiAobm9kZS0+aXNUZXh0Tm9k
ZSgpKQorICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIo
KS0+c3R5bGVGb3JUZXh0KG5vZGUpKTsKICAgICBlbHNlIGlmIChSZW5kZXJPYmplY3QqIHBhcmVu
dFJlbmRlcmVyID0gbV9jb250ZXh0LnBhcmVudFJlbmRlcmVyKCkpCiAgICAgICAgIG1fY29udGV4
dC5zZXRTdHlsZShwYXJlbnRSZW5kZXJlci0+c3R5bGUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRl
eCAzZmQwZjE1ZWEwZjIxOTE3ZDk3YWQ0YWM4YWI0NjI0OTY1OWJhMjNiLi43NDNiYWQ2ZGJkMjEy
NGZkMGE2ZjkyYzkwODk3MDFlOWZmYmM3Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0yNjAsOCArMjYxLDggQEAgdm9p
ZCBUZXh0OjpyZWNhbGNUZXh0U3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogCiAgICAgLy8gVGhl
IG9ubHkgdGltZSB3ZSBoYXZlIGEgcmVuZGVyZXIgYW5kIG91ciBwYXJlbnQgZG9lc24ndCBpcyBp
ZiBvdXIgcGFyZW50CiAgICAgLy8gaXMgYSBzaGFkb3cgcm9vdC4KLSAgICBpZiAoY2hhbmdlICE9
IE5vQ2hhbmdlICYmIHJlbmRlcmVyICYmICFwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKQot
ICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpLT5zdHls
ZSgpKTsKKyAgICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHJlbmRlcmVyKQorICAgICAgICBy
ZW5kZXJlci0+c2V0U3R5bGUoZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvclRl
eHQodGhpcykpOwogCiAgICAgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICBpZiAo
cmVuZGVyZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5Zjc3ZjFkZTU0MzAwODEwNDYxNmM3YTIyOTExMzEwMzllZmY4
M2Q0Li4yOGEwYzI3MGIwNzk5NWFkZWMwODM0ODgyZjU4ZGRjMWRiOTgyNjI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMTEtMTkgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cu
aHRtbDogQWRkZWQuCisgICAgICAgIEZvdXIgdGVzdCBjYXNlcywgb25lIGlzIGZvciB0ZXN0aW5n
IGEgdGV4dCBub2RlIHdoaWNoIGlzIGEgZGlyZWN0CisgICAgICAgIGNoaWxkIG9mIGEgc2hhZG93
IHJvb3Qgd2l0aG91dCByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4KKyAgICAgICAgT25lIGlzIHdp
dGggcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyBmb3IgdGVzdGluZyBh
IHRleHQgbm9kZSB3aGljaCBpcyBhIGRpc3RyaWJ1dGVkIG5vZGUgYW5kIGl0cworICAgICAgICBp
bnNlcnRpb24gcG9pbnQgZG9lc24ndCBoYXZlIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIHNldCB0
byBiZSB0cnVlLgorICAgICAgICBUaGUgb3RoZXIgb25lIGlzIGFsbW9zdCB0aGUgc2FtZSBhcyB0
aGUgcHJldmlvdXMgb25lIGV4Y2VwdAorICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4K
KwogMjAxMi0xMS0xOSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBNdXRhdGlvbk9ic2VydmVyIHdyYXBwZXIgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgd2hpbGUg
c3RpbGwgb2JzZXJ2aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYz
MDkyNjU1YTRiOGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAg
PGRpdiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFyPC9kaXY+Cisg
IDxkaXY+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2
ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog
NWVtOyI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5Gb288c3Bhbj5C
YXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5YTMzYTE2MDc4
M2U3Nzc4NzcwMDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICB0ZXh0
LWFsaWduOiB0b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENoaWxk
VGV4dE9mU2hhZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJob3N0Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdCho
b3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAg
IHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNw
YW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImJhciIpKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5m
b250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290
V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAgdmFyIHNoYWRv
d1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsK
KyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFkb3dSb290LnJl
c2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0
OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gdGVzdERp
c3RyaWJ1dGVkVGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9
J3NwYW4xJz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5m
b250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOworICAg
IHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+
PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVu
dCIpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9u
dFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdGVzdENoaWxk
VGV4dE9mU2hhZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOworICAgIHRl
c3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0gW2J1ZyAxMDEx
MTZdIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVy
bHkgLS0+CisgIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTExNiAtLT4KKyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0
eWxlSW5oZXJpdGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+
Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVy
aXRhbmNlV2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175151</attachid>
            <date>2012-11-19 23:19:49 -0800</date>
            <delta_ts>2012-11-19 23:22:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120161738.patch</filename>
            <type>text/plain</type>
            <size>10074</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uMGM1MzVjMmZhNjdmYmNlNjQwZDQ1MTQ3MjJiMmRl
MjgyMWExNDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gc29sdmUgc3R5bGVzIG9mIHRleHQgbm9kZXMuCisgICAgICAgIElmIHRleHQgbm9kZXMg
YXJlIGRpcmVjdCBjaGlscmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAgICAg
ICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMuCisg
ICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRoZSB0
ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4dCBu
b2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sgd2hl
dGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0
YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6Ly9k
dmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9pbmRl
eC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
aW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVzZSBO
b2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUgZnJv
bSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBmb3Vu
ZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRoZSBn
aXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAgICAg
ICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVyd2lz
ZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAg
ICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNlIHN0
eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAgICBw
YXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBhcnNl
ciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJkZjUz
MGE3ZWJjYTAuLmIwODJiNGI5MjkzYjgxNzVhMDZkMzZmYmQzYTFhZjIzNzYzMzQ5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywyNiBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJ
bmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sK
KyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgp
KTsKKworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIE5v
ZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgp
OworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpICYmIHBhcmVu
dE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAg
bV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBpZiAoU2V0dGluZ3MqIHNldHRp
bmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGluaXRpYWxpemVGb250U3R5bGUo
c2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcigp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKworICAg
IHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2lj
TWFyZ2lucyhSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2
YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2
NmY2OWU2N2YzYWMxZTY4YmY3ODJiYmIuLmE3NjQ3Nzk2MmU0YmU2NWJmYTFiMTg5NzJhNDdkNmMx
MDcxN2EzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVs
ZW1lbnQoUHNldWRvSWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAg
ICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwor
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCos
IENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMjFmMWMzZjg5OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNh
ODE5ZC4uMTY3YjIyYWNmY2QzNTViODU0MmZiNjg4MmI3ZjBlMjFkNjI5ZGI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC0yMzYsNiArMjM3LDgg
QEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5v
ZGUpIDogMDsKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKGVs
ZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CisgICAgZWxzZSBpZiAobm9kZS0+aXNUZXh0Tm9k
ZSgpICYmIChub2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmlzU2hhZG93Um9vdCgpIHx8IGlzU2hh
ZG93SG9zdChub2RlLT5wYXJlbnRPckhvc3ROb2RlKCkpKSkKKyAgICAgICAgbV9jb250ZXh0LnNl
dFN0eWxlKGRvY3VtZW50LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dChub2RlKSk7CiAg
ICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IG1fY29udGV4dC5wYXJl
bnRSZW5kZXJlcigpKQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUocGFyZW50UmVuZGVyZXIt
PnN0eWxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggM2ZkMGYxNWVhMGYyMTkxN2Q5N2FkNGFj
OGFiNDYyNDk2NTliYTIzYi4uNzQzYmFkNmRiZDIxMjRmZDBhNmY5MmM5MDg5NzAxZTlmZmJjN2Ni
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRl
ICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIApAQCAtMjYwLDggKzI2MSw4IEBAIHZvaWQgVGV4dDo6cmVjYWxjVGV4dFN0eWxlKFN0
eWxlQ2hhbmdlIGNoYW5nZSkKIAogICAgIC8vIFRoZSBvbmx5IHRpbWUgd2UgaGF2ZSBhIHJlbmRl
cmVyIGFuZCBvdXIgcGFyZW50IGRvZXNuJ3QgaXMgaWYgb3VyIHBhcmVudAogICAgIC8vIGlzIGEg
c2hhZG93IHJvb3QuCi0gICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlciAmJiAh
cGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKGNoYW5nZSAhPSBO
b0NoYW5nZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50
KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVk
c1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWY3N2Yx
ZGU1NDMwMDgxMDQ2MTZjN2EyMjkxMTMxMDM5ZWZmODNkNC4uMjhhMGMyNzBiMDc5OTVhZGVjMDgz
NDg4MmY1OGRkYzFkYjk4MjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTE5ICBU
YWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVz
IGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90
ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICBGb3Vy
IHRlc3QgY2FzZXMsIG9uZSBpcyBmb3IgdGVzdGluZyBhIHRleHQgbm9kZSB3aGljaCBpcyBhIGRp
cmVjdAorICAgICAgICBjaGlsZCBvZiBhIHNoYWRvdyByb290IHdpdGhvdXQgcmVzZXQtc3R5bGUt
aW5oZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyB3aXRoIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNl
LgorICAgICAgICBPbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2ggaXMgYSBkaXN0
cmlidXRlZCBub2RlIGFuZCBpdHMKKyAgICAgICAgaW5zZXJ0aW9uIHBvaW50IGRvZXNuJ3QgaGF2
ZSByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBzZXQgdG8gYmUgdHJ1ZS4KKyAgICAgICAgVGhlIG90
aGVyIG9uZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSBleGNlcHQKKyAg
ICAgICAgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisKIDIwMTItMTEtMTkgIEFkYW0gS2xlaW4g
IDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTXV0YXRpb25PYnNlcnZlciB3cmFwcGVy
IHNob3VsZCBub3QgYmUgY29sbGVjdGVkIHdoaWxlIHN0aWxsIG9ic2VydmluZwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNiM2Y0NDgy
YzY1Y2ExZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNWVt
OyI+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bhbj5iYXI8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2Pgor
ICA8ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwvc3Bhbj48
L3NwYW4+PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQxN2ExNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWlu
LXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9zdHlsZT4K
KworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKSB7CisgICAg
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAgIHZhciBzaGFk
b3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7
CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVu
Y3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5
bGVJbmhlcml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykK
KyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJiYXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVl
OworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXpl
ID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7CisgICAgdmFy
IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRpb24iKTsK
KyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9jb250ZW50
Pjwvc3Bhbj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3Qu
Z2V0RWxlbWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVu
Y3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7Cisg
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhl
cml0YW5jZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJL
aXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlk
PSdzcGFuMic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+IgorICAgIHNo
YWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290Lmdl
dEVsZW1lbnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0
aW9uIHJ1blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsKKyAgICB0
ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAg
IHRlc3REaXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyBy
b290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9Imhvc3Qi
PjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rpdj4KKyAg
PGRpdiBpZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4K
KyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iPkZv
bzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175152</attachid>
            <date>2012-11-19 23:22:06 -0800</date>
            <delta_ts>2012-11-19 23:39:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120161955.patch</filename>
            <type>text/plain</type>
            <size>10125</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uMGM1MzVjMmZhNjdmYmNlNjQwZDQ1MTQ3MjJiMmRl
MjgyMWExNDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gc29sdmUgc3R5bGVzIG9mIHRleHQgbm9kZXMuCisgICAgICAgIElmIHRleHQgbm9kZXMg
YXJlIGRpcmVjdCBjaGlscmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAgICAg
ICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMuCisg
ICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRoZSB0
ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4dCBu
b2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sgd2hl
dGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhlcml0
YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6Ly9k
dmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9pbmRl
eC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
aW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVzZSBO
b2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUgZnJv
bSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBmb3Vu
ZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRoZSBn
aXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAgICAg
ICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVyd2lz
ZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAg
ICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
UmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNlIHN0
eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAgICBw
YXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBhcnNl
ciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJkZjUz
MGE3ZWJjYTAuLmIwODJiNGI5MjkzYjgxNzVhMDZkMzZmYmQzYTFhZjIzNzYzMzQ5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywyNiBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJ
bmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sK
KyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgp
KTsKKworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIE5v
ZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgp
OworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpICYmIHBhcmVu
dE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAg
bV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBpZiAoU2V0dGluZ3MqIHNldHRp
bmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGluaXRpYWxpemVGb250U3R5bGUo
c2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rvcigp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKworICAg
IHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2lj
TWFyZ2lucyhSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2
YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2
NmY2OWU2N2YzYWMxZTY4YmY3ODJiYmIuLmE3NjQ3Nzk2MmU0YmU2NWJmYTFiMTg5NzJhNDdkNmMx
MDcxN2EzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVs
ZW1lbnQoUHNldWRvSWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAg
ICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwor
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCos
IENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMjFmMWMzZjg5OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNh
ODE5ZC4uMTY3YjIyYWNmY2QzNTViODU0MmZiNjg4MmI3ZjBlMjFkNjI5ZGI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC0yMzYsNiArMjM3LDgg
QEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5v
ZGUpIDogMDsKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKGVs
ZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CisgICAgZWxzZSBpZiAobm9kZS0+aXNUZXh0Tm9k
ZSgpICYmIChub2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmlzU2hhZG93Um9vdCgpIHx8IGlzU2hh
ZG93SG9zdChub2RlLT5wYXJlbnRPckhvc3ROb2RlKCkpKSkKKyAgICAgICAgbV9jb250ZXh0LnNl
dFN0eWxlKGRvY3VtZW50LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dChub2RlKSk7CiAg
ICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IG1fY29udGV4dC5wYXJl
bnRSZW5kZXJlcigpKQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUocGFyZW50UmVuZGVyZXIt
PnN0eWxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggM2ZkMGYxNWVhMGYyMTkxN2Q5N2FkNGFj
OGFiNDYyNDk2NTliYTIzYi4uMjRmYjZkODlkMGMwOTQ3ZmVkMzEwMjUxZDkxOWZmMDdkYzdhMTU4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRl
ICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIApAQCAtMjU4LDEwICsyNTksOCBAQCB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHlsZShT
dHlsZUNoYW5nZSBjaGFuZ2UpCiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+
cmVuZGVyZXIoKTsKIAotICAgIC8vIFRoZSBvbmx5IHRpbWUgd2UgaGF2ZSBhIHJlbmRlcmVyIGFu
ZCBvdXIgcGFyZW50IGRvZXNuJ3QgaXMgaWYgb3VyIHBhcmVudAotICAgIC8vIGlzIGEgc2hhZG93
IHJvb3QuCi0gICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlciAmJiAhcGFyZW50
Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBhcmVu
dE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5n
ZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50KCktPnN0
eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVkc1N0eWxl
UmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWY3N2YxZGU1NDMw
MDgxMDQ2MTZjN2EyMjkxMTMxMDM5ZWZmODNkNC4uMjhhMGMyNzBiMDc5OTVhZGVjMDgzNDg4MmY1
OGRkYzFkYjk4MjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTE5ICBUYWthc2hp
IFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGluIHNo
YWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3No
YWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICBGb3VyIHRlc3Qg
Y2FzZXMsIG9uZSBpcyBmb3IgdGVzdGluZyBhIHRleHQgbm9kZSB3aGljaCBpcyBhIGRpcmVjdAor
ICAgICAgICBjaGlsZCBvZiBhIHNoYWRvdyByb290IHdpdGhvdXQgcmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UuCisgICAgICAgIE9uZSBpcyB3aXRoIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorICAg
ICAgICBPbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2ggaXMgYSBkaXN0cmlidXRl
ZCBub2RlIGFuZCBpdHMKKyAgICAgICAgaW5zZXJ0aW9uIHBvaW50IGRvZXNuJ3QgaGF2ZSByZXNl
dC1zdHlsZS1pbmhlcml0YW5jZSBzZXQgdG8gYmUgdHJ1ZS4KKyAgICAgICAgVGhlIG90aGVyIG9u
ZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSBleGNlcHQKKyAgICAgICAg
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisKIDIwMTItMTEtMTkgIEFkYW0gS2xlaW4gIDxhZGFt
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTXV0YXRpb25PYnNlcnZlciB3cmFwcGVyIHNob3Vs
ZCBub3QgYmUgY29sbGVjdGVkIHdoaWxlIHN0aWxsIG9ic2VydmluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNiM2Y0NDgyYzY1Y2Ex
ZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0
LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+PHNw
YW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bhbj5iYXI8L3NwYW4+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorICA8ZGl2
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwvc3Bhbj48L3NwYW4+
PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQxN2ExNDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRv
dy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9zdHlsZT4KKworPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKSB7CisgICAgdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAgIHZhciBzaGFkb3dSb290
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24g
dGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7Cisg
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhl
cml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9z
dCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBz
cGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFu
KTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJi
YXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAg
IGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXplID0gJzZl
bSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7CisgICAgdmFyIGhvc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2
YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9jb250ZW50Pjwvc3Bh
bj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24g
dGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFy
IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5j
ZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFk
b3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFu
Mic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+IgorICAgIHNoYWRvd1Jv
b3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVl
OworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVsZW1l
bnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsKKyAgICB0ZXN0Q2hp
bGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIHRlc3RE
aXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBk
b24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9Imhvc3QiPjwvZGl2
PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rpdj4KKyAgPGRpdiBp
ZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKyAgPGRp
diBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFu
PkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175156</attachid>
            <date>2012-11-19 23:39:32 -0800</date>
            <delta_ts>2012-11-20 03:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120163721.patch</filename>
            <type>text/plain</type>
            <size>10425</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uNzI1ZDI1OTBiMjliNWZmYWVkYjViYzdiNjZkYmY1
ZTk4MjZkNGM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNl
IHN0eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAg
ICBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBh
cnNlciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJk
ZjUzMGE3ZWJjYTAuLjMwNmRmOGZiYTg5NzZiOTQ1NzRkOGRjMGQxNmYwMmY4YWE1MWNmNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywzMyBAQCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBh
Z2VJbmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSwg
Tm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCit7CisgICAgQVNTRVJUKHRleHROb2RlKTsK
KyAgICBBU1NFUlQodGV4dE5vZGUtPmlzVGV4dE5vZGUoKSk7CisKKyAgICBOb2RlKiBwYXJlbnRO
b2RlID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBpZiAo
IXNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZShjb250ZXh0KSAmJiBwYXJlbnROb2RlKQorICAg
ICAgICByZXR1cm4gcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsKKworICAgIG1fc3R5bGUgPSBS
ZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3Vt
ZW50U2V0dGluZ3MoKSkgeworICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsK
KyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9z
dHlsZS5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2
ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUp
OworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKyAgICBOb2RlUmVuZGVyaW5n
Q29udGV4dCBjb250ZXh0KHRleHROb2RlKTsKKyAgICByZXR1cm4gc3R5bGVGb3JUZXh0KHRleHRO
b2RlLCBjb250ZXh0KTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2ljTWFyZ2lucyhSZW5k
ZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2YWx1ZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2NmY2OWU2N2YzYWMx
ZTY4YmY3ODJiYmIuLmZlZTYwNDcxYmZjNjM1NzNiNTk1MDFmMjMxOWQzYzhhYmM0ZmI5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw4IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNldWRv
SWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAgICAgUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOworICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKiwgTm9kZVJlbmRlcmluZ0NvbnRleHQm
KTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwogCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9jdW1l
bnQqLCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDIxZjFjM2Y4OTlmYjA5M2ZiZmZiODI0NjFhYzFlMGM1
YjUzYTgxOWQuLjM3YTI4NjUxYzMyYzEwZTc2MjhiZWIxZWI0ZmRlNGY2OTFlY2Y3YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMjM2LDYgKzIz
Nyw4IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgp
CiAgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVu
dChub2RlKSA6IDA7CiAgICAgaWYgKGVsZW1lbnQpCiAgICAgICAgIG1fY29udGV4dC5zZXRTdHls
ZShlbGVtZW50LT5zdHlsZUZvclJlbmRlcmVyKCkpOworICAgIGVsc2UgaWYgKG5vZGUtPmlzVGV4
dE5vZGUoKSAmJiAobm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSB8fCBp
c1NoYWRvd0hvc3Qobm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpKSkpCisgICAgICAgIG1fY29udGV4
dC5zZXRTdHlsZShkb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvclRleHQobm9kZSwg
bV9jb250ZXh0KSk7CiAgICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9
IG1fY29udGV4dC5wYXJlbnRSZW5kZXJlcigpKQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUo
cGFyZW50UmVuZGVyZXItPnN0eWxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggM2ZkMGYxNWVh
MGYyMTkxN2Q5N2FkNGFjOGFiNDYyNDk2NTliYTIzYi4uMjRmYjZkODlkMGMwOTQ3ZmVkMzEwMjUx
ZDkxOWZmMDdkYzdhMTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2Vu
ZGlmCiAKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMjU4LDEwICsyNTksOCBAQCB2b2lkIFRleHQ6OnJl
Y2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAKICAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKIAotICAgIC8vIFRoZSBvbmx5IHRpbWUgd2UgaGF2
ZSBhIHJlbmRlcmVyIGFuZCBvdXIgcGFyZW50IGRvZXNuJ3QgaXMgaWYgb3VyIHBhcmVudAotICAg
IC8vIGlzIGEgc2hhZG93IHJvb3QuCi0gICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5k
ZXJlciAmJiAhcGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVuZGVyZXIt
PnNldFN0eWxlKHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKGNo
YW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAg
IGlmIChuZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggOWY3N2YxZGU1NDMwMDgxMDQ2MTZjN2EyMjkxMTMxMDM5ZWZmODNkNC4uMjhhMGMyNzBiMDc5
OTVhZGVjMDgzNDg4MmY1OGRkYzFkYjk4MjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEy
LTExLTE5ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBU
ZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorICAg
ICAgICBGb3VyIHRlc3QgY2FzZXMsIG9uZSBpcyBmb3IgdGVzdGluZyBhIHRleHQgbm9kZSB3aGlj
aCBpcyBhIGRpcmVjdAorICAgICAgICBjaGlsZCBvZiBhIHNoYWRvdyByb290IHdpdGhvdXQgcmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyB3aXRoIHJlc2V0LXN0eWxlLWlu
aGVyaXRhbmNlLgorICAgICAgICBPbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2gg
aXMgYSBkaXN0cmlidXRlZCBub2RlIGFuZCBpdHMKKyAgICAgICAgaW5zZXJ0aW9uIHBvaW50IGRv
ZXNuJ3QgaGF2ZSByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBzZXQgdG8gYmUgdHJ1ZS4KKyAgICAg
ICAgVGhlIG90aGVyIG9uZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSBl
eGNlcHQKKyAgICAgICAgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisKIDIwMTItMTEtMTkgIEFk
YW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTXV0YXRpb25PYnNlcnZl
ciB3cmFwcGVyIHNob3VsZCBub3QgYmUgY29sbGVjdGVkIHdoaWxlIHN0aWxsIG9ic2VydmluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFk
b3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
aW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRl
ODNiM2Y0NDgyYzY1Y2ExZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQt
c2l6ZTogNWVtOyI+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwv
c3Bhbj5iYXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFu
PjwvZGl2PgorICA8ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJh
cjwvc3Bhbj48L3NwYW4+PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4t
c2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNo
YWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQx
N2ExNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4
dC1ub2RlLWluLXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQor
PC9zdHlsZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3Qo
KSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAg
IHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50
ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsK
K30KKworZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9z
dFJlc2V0U3R5bGVJbmhlcml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktp
dFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxl
LmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7
CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmli
dXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3Qp
OworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+
PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNo
YWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsK
K30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFu
Y2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0
U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
IjxzcGFuIGlkPSdzcGFuMic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+
IgorICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFk
b3dSb290LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3Qo
KTsKKyAgICB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworICAgIHRlc3REaXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0
V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYg
aWQ9Imhvc3QiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48
L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bh
bj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmli
dXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175183</attachid>
            <date>2012-11-20 03:50:06 -0800</date>
            <delta_ts>2012-11-20 04:44:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120204755.patch</filename>
            <type>text/plain</type>
            <size>10413</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBmYzI4MTQyNWU2ODE5
NWQ5YjI0N2EyNWQxNDM3MWUxZjcyNWVlOS4uNzI1ZDI1OTBiMjliNWZmYWVkYjViYzdiNjZkYmY1
ZTk4MjZkNGM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNl
IHN0eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAg
ICBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbiB0aGUgSURMIHBh
cnNlciwgd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDVmODMwOWZiYjE2MTQxMmVkNTY3NjI2OWFjZTJk
ZjUzMGE3ZWJjYTAuLjMwNmRmOGZiYTg5NzZiOTQ1NzRkOGRjMGQxNmYwMmY4YWE1MWNmNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODcsNiArMTc4NywzMyBAQCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBh
Z2VJbmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSwg
Tm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCit7CisgICAgQVNTRVJUKHRleHROb2RlKTsK
KyAgICBBU1NFUlQodGV4dE5vZGUtPmlzVGV4dE5vZGUoKSk7CisKKyAgICBOb2RlKiBwYXJlbnRO
b2RlID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBpZiAo
IXNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZShjb250ZXh0KSAmJiBwYXJlbnROb2RlKQorICAg
ICAgICByZXR1cm4gcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsKKworICAgIG1fc3R5bGUgPSBS
ZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3Vt
ZW50U2V0dGluZ3MoKSkgeworICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsK
KyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBl
bHNlCisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9z
dHlsZS5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2
ZXI6OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUp
OworICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKyAgICBOb2RlUmVuZGVyaW5n
Q29udGV4dCBjb250ZXh0KHRleHROb2RlKTsKKyAgICByZXR1cm4gc3R5bGVGb3JUZXh0KHRleHRO
b2RlLCBjb250ZXh0KTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmluc2ljTWFyZ2lucyhSZW5k
ZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdpbiB2YWx1ZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGYxMjY2YzJmZTBlNDU3MTc2NmY2OWU2N2YzYWMx
ZTY4YmY3ODJiYmIuLmZlZTYwNDcxYmZjNjM1NzNiNTk1MDFmMjMxOWQzYzhhYmM0ZmI5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1MSw4IEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNldWRv
SWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwogCiAgICAgUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOworICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKiwgTm9kZVJlbmRlcmluZ0NvbnRleHQm
KTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwogCiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9jdW1l
bnQqLCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDIxZjFjM2Y4OTlmYjA5M2ZiZmZiODI0NjFhYzFlMGM1
YjUzYTgxOWQuLjkxZjVlNTcwOWYwYjEzZjUzZDYzODM2YTg1OTRjYmZiZmNjZDExMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMjM2LDYgKzIz
Nyw4IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgp
CiAgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVu
dChub2RlKSA6IDA7CiAgICAgaWYgKGVsZW1lbnQpCiAgICAgICAgIG1fY29udGV4dC5zZXRTdHls
ZShlbGVtZW50LT5zdHlsZUZvclJlbmRlcmVyKCkpOworICAgIGVsc2UgaWYgKG5vZGUtPmlzVGV4
dE5vZGUoKSAmJiAobm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSB8fCBt
X2NvbnRleHQuaW5zZXJ0aW9uUG9pbnQoKSkpCisgICAgICAgIG1fY29udGV4dC5zZXRTdHlsZShk
b2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvclRleHQobm9kZSwgbV9jb250ZXh0KSk7
CiAgICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IG1fY29udGV4dC5w
YXJlbnRSZW5kZXJlcigpKQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUocGFyZW50UmVuZGVy
ZXItPnN0eWxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggM2ZkMGYxNWVhMGYyMTkxN2Q5N2Fk
NGFjOGFiNDYyNDk2NTliYTIzYi4uMjRmYjZkODlkMGMwOTQ3ZmVkMzEwMjUxZDkxOWZmMDdkYzdh
MTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIApAQCAtMjU4LDEwICsyNTksOCBAQCB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhp
cy0+cmVuZGVyZXIoKTsKIAotICAgIC8vIFRoZSBvbmx5IHRpbWUgd2UgaGF2ZSBhIHJlbmRlcmVy
IGFuZCBvdXIgcGFyZW50IGRvZXNuJ3QgaXMgaWYgb3VyIHBhcmVudAotICAgIC8vIGlzIGEgc2hh
ZG93IHJvb3QuCi0gICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlciAmJiAhcGFy
ZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBh
cmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7CisgICAgaWYgKGNoYW5nZSAhPSBOb0No
YW5nZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50KCkt
PnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVkc1N0
eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWY3N2YxZGU1
NDMwMDgxMDQ2MTZjN2EyMjkxMTMxMDM5ZWZmODNkNC4uMjhhMGMyNzBiMDc5OTVhZGVjMDgzNDg4
MmY1OGRkYzFkYjk4MjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90ZXh0
LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICBGb3VyIHRl
c3QgY2FzZXMsIG9uZSBpcyBmb3IgdGVzdGluZyBhIHRleHQgbm9kZSB3aGljaCBpcyBhIGRpcmVj
dAorICAgICAgICBjaGlsZCBvZiBhIHNoYWRvdyByb290IHdpdGhvdXQgcmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyB3aXRoIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgor
ICAgICAgICBPbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2ggaXMgYSBkaXN0cmli
dXRlZCBub2RlIGFuZCBpdHMKKyAgICAgICAgaW5zZXJ0aW9uIHBvaW50IGRvZXNuJ3QgaGF2ZSBy
ZXNldC1zdHlsZS1pbmhlcml0YW5jZSBzZXQgdG8gYmUgdHJ1ZS4KKyAgICAgICAgVGhlIG90aGVy
IG9uZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSBleGNlcHQKKyAgICAg
ICAgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisKIDIwMTItMTEtMTkgIEFkYW0gS2xlaW4gIDxh
ZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTXV0YXRpb25PYnNlcnZlciB3cmFwcGVyIHNo
b3VsZCBub3QgYmUgY29sbGVjdGVkIHdoaWxlIHN0aWxsIG9ic2VydmluZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNiM2Y0NDgyYzY1
Y2ExZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90
ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+
PHNwYW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bhbj5iYXI8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorICA8
ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwvc3Bhbj48L3Nw
YW4+PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQxN2ExNDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNo
YWRvdy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9zdHlsZT4KKwor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKSB7CisgICAgdmFy
IGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAgIHZhciBzaGFkb3dS
b290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7Cisg
ICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rp
b24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7
CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJ
bmhlcml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
aG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAg
ICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChz
cGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJiYXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwor
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXplID0g
JzZlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7CisgICAgdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRpb24iKTsKKyAg
ICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9jb250ZW50Pjwv
c3Bhbj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0
RWxlbWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rp
b24gdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAg
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0
YW5jZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdz
cGFuMic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+IgorICAgIHNoYWRv
d1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0
cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsKKyAgICB0ZXN0
Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIHRl
c3REaXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290
cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9Imhvc3QiPjwv
ZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rpdj4KKyAgPGRp
diBpZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKyAg
PGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iPkZvbzxz
cGFuPkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175189</attachid>
            <date>2012-11-20 04:44:03 -0800</date>
            <delta_ts>2012-11-20 23:41:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121120214152.patch</filename>
            <type>text/plain</type>
            <size>10374</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkzZjBmNDYwNzVmYjll
ODhhZDMyZDVkMmMxOTM4ZDRjYjlmNmZkNC4uYmU1ZGY4M2YxNTgyNDdmZDYyNGM2MDg0YWE5NjRm
NTIyMzc5YzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNl
IHN0eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAg
ICBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTE5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2xsZWN0IHVzZXIgc3R5
bGUgc2hlZXRzIGluIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCAwNzY3MDQxZmExNmI3NmI0OWUyNjYyMWVhOWU3MzEyNTFj
NGJlMWRlLi43NzI1MWNjMmZiZjc3NjNlOWY2NTMxYTVkMGZlNmM4YjA3ZTIzYWRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNzc0LDYgKzE3NzQsMzMgQEAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5k
ZXgpCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPFJlbmRl
clN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclRleHQoTm9kZSogdGV4dE5vZGUsIE5vZGVS
ZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Tm9kZSk7CisgICAg
QVNTRVJUKHRleHROb2RlLT5pc1RleHROb2RlKCkpOworCisgICAgTm9kZSogcGFyZW50Tm9kZSA9
IGNvbnRleHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CisgICAgaWYgKCFzaG91
bGRSZXNldFN0eWxlSW5oZXJpdGFuY2UoY29udGV4dCkgJiYgcGFyZW50Tm9kZSkKKyAgICAgICAg
cmV0dXJuIHBhcmVudE5vZGUtPnJlbmRlclN0eWxlKCk7CisKKyAgICBtX3N0eWxlID0gUmVuZGVy
U3R5bGU6OmNyZWF0ZSgpOworICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNl
dHRpbmdzKCkpIHsKKyAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShzZXR0aW5ncyk7CisgICAg
ICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworICAgIH0gZWxzZQor
ICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOworCisgICAgcmV0dXJuIG1fc3R5bGUu
cmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpz
dHlsZUZvclRleHQoTm9kZSogdGV4dE5vZGUpCit7CisgICAgQVNTRVJUKHRleHROb2RlKTsKKyAg
ICBBU1NFUlQodGV4dE5vZGUtPmlzVGV4dE5vZGUoKSk7CisgICAgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgY29udGV4dCh0ZXh0Tm9kZSk7CisgICAgcmV0dXJuIHN0eWxlRm9yVGV4dCh0ZXh0Tm9kZSwg
Y29udGV4dCk7Cit9CisKIHN0YXRpYyB2b2lkIGFkZEludHJpbnNpY01hcmdpbnMoUmVuZGVyU3R5
bGUqIHN0eWxlKQogewogICAgIC8vIEludHJpbnNpYyBtYXJnaW4gdmFsdWUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuaAppbmRleCAwNTVkODEzZWRiNTZiMDUwY2I2MTMzNzI0NTQ4NTExZGM2
MGZiMjJiLi43MjhjYmY2OWZjMjk0ZGM2YWFkNzlhMWY0NWFjZmFhNGY3ODcxYzZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTE1MSw2ICsxNTEsOCBAQCBwdWJsaWM6CiAgICAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkLCBF
bGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKIAogICAgIFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KTsKKyAgICBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSosIE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7Cisg
ICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JUZXh0KE5vZGUqKTsKIAogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckRvY3VtZW50KERvY3VtZW50Kiwg
Q1NTRm9udFNlbGVjdG9yKiA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCA3Yjc5YmUwZDNlMmNmNTU4MDUzNzJkZmIwMWExM2RlNmM2MWE1
ZWFjLi4zYjdiYTVmYzQxNTRlNjA1YjZlYmMzNWFhOTJhNmQwOWYxNmZkM2JjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1
ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIAog
I2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTI1MCw2ICsyNTEsOCBA
QCB2b2lkIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9k
ZSkgOiAwOwogICAgIGlmIChlbGVtZW50KQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZWxl
bWVudC0+c3R5bGVGb3JSZW5kZXJlcigpKTsKKyAgICBlbHNlIGlmIChub2RlLT5pc1RleHROb2Rl
KCkgJiYgKG5vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+aXNTaGFkb3dSb290KCkgfHwgbV9jb250
ZXh0Lmluc2VydGlvblBvaW50KCkpKQorICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZG9jdW1l
bnQtPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KG5vZGUsIG1fY29udGV4dCkpOwogICAg
IGVsc2UKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKG1fY29udGV4dC5wYXJlbnRSZW5kZXJl
cigpLT5zdHlsZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDNmZDBmMTVlYTBmMjE5MTdkOTdh
ZDRhYzhhYjQ2MjQ5NjU5YmEyM2IuLjI0ZmI2ZDg5ZDBjMDk0N2ZlZDMxMDI1MWQ5MTlmZjA3ZGM3
YTE1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNlbmRpZgogCiAjaW5j
bHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKQEAgLTI1OCwxMCArMjU5LDggQEAgdm9pZCBUZXh0OjpyZWNhbGNUZXh0U3R5
bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCk7CiAKLSAgICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSByZW5kZXJl
ciBhbmQgb3VyIHBhcmVudCBkb2Vzbid0IGlzIGlmIG91ciBwYXJlbnQKLSAgICAvLyBpcyBhIHNo
YWRvdyByb290LgotICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIgJiYgIXBh
cmVudE5vZGUoKS0+aXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShw
YXJlbnROb2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgIGlmIChjaGFuZ2UgIT0gTm9D
aGFuZ2UgJiYgcmVuZGVyZXIpCisgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShkb2N1bWVudCgp
LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dCh0aGlzKSk7CiAKICAgICBpZiAobmVlZHNT
dHlsZVJlY2FsYygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc1MDUwOGJk
MTg4ZmRkMWY5YmNhNGEwOTQ1YjJjYzdjNmI3MjgzYjcuLjk5ZjliZjViMjcyZDdlZjRiZmQ3Y2M0
YzUzNzVmODc4YTgwOTA0N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0xOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGV4dCBub2RlcyBp
biBzaGFkb3cgcm9vdHMgZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4
dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgRm91ciB0
ZXN0IGNhc2VzLCBvbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2ggaXMgYSBkaXJl
Y3QKKyAgICAgICAgY2hpbGQgb2YgYSBzaGFkb3cgcm9vdCB3aXRob3V0IHJlc2V0LXN0eWxlLWlu
aGVyaXRhbmNlLgorICAgICAgICBPbmUgaXMgd2l0aCByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4K
KyAgICAgICAgT25lIGlzIGZvciB0ZXN0aW5nIGEgdGV4dCBub2RlIHdoaWNoIGlzIGEgZGlzdHJp
YnV0ZWQgbm9kZSBhbmQgaXRzCisgICAgICAgIGluc2VydGlvbiBwb2ludCBkb2Vzbid0IGhhdmUg
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ugc2V0IHRvIGJlIHRydWUuCisgICAgICAgIFRoZSBvdGhl
ciBvbmUgaXMgYWxtb3N0IHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBvbmUgZXhjZXB0CisgICAg
ICAgIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorCiAyMDEyLTExLTIwICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIE1hcmsgaW5z
cGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3Iu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1p
bi1zaGFkb3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0
LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0Yjhj
MmQ2NTRlODNiM2Y0NDgyYzY1Y2ExZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9
ImZvbnQtc2l6ZTogNWVtOyI+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFu
PmZvbzwvc3Bhbj5iYXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7
PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxz
cGFuPkJhcjwvc3Bhbj48L3NwYW4+PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2Rl
LWluLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4
ZDU3ZjQxN2ExNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9w
OworfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRv
d1Jvb3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIp
OworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAg
dmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRD
b250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7Cisg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAn
NWVtJzsKK30KKworZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0
eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3
IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0
LnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRl
eHQoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhE
aXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290
KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNv
bnRlbnQ+PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owor
ICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAn
NWVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5o
ZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9z
dFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gIjxzcGFuIGlkPSdzcGFuMic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48
L3NwYW4+IgorICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0
eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAg
ICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZl
bSc7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRv
d1Jvb3QoKTsKKyAgICB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhl
cml0YW5jZSgpOworICAgIHRlc3REaXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0
ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5v
ZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8
IS0tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+Cisg
IDxkaXYgaWQ9Imhvc3QiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRh
bmNlIj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJh
cjwvc3Bhbj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhE
aXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175347</attachid>
            <date>2012-11-20 23:41:34 -0800</date>
            <delta_ts>2012-11-27 01:41:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121121163921.patch</filename>
            <type>text/plain</type>
            <size>10525</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U4MTVlNmUwNjVmMTA0
YTc1MWFjMDU3ZTMyNjk4N2QwMDBjZmNiNC4uMmUwMWE5MTg5NTg4NWFkYmIyZTRlZmFiODcxMWMz
ODY0NGEwMjJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAg
ICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgVXNl
IHN0eWxlRm9yVGV4dCdzIHJlc3VsdHMgZm9yIHRleHQgbm9kZXMgaW5zdGVhZCBvZgorICAgICAg
ICBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcy4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorCiAyMDEyLTExLTIwICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBNb3Zl
IGNvbnRyb2wgb2YgdHJhbnNhY3Rpb24gY29tcGxldGlvbiB0byBmcm9udCBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAwNzY3MDQxZmExNmI3NmI0OWUyNjYyMWVhOWU3
MzEyNTFjNGJlMWRlLi5lNTNkYTcxMzM0ZTY5OGU0OTljMjY3YTYzYWIwN2Y5ZDAzNjI5ZTI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNzc0LDYgKzE3NzQsMzMgQEAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBw
YWdlSW5kZXgpCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclRleHQoTm9kZVJlbmRlcmluZ0Nv
bnRleHQmIGNvbnRleHQpCit7CisgICAgQVNTRVJUKGNvbnRleHQubm9kZSgpKTsKKyAgICBBU1NF
UlQoY29udGV4dC5ub2RlKCktPmlzVGV4dE5vZGUoKSk7CisKKyAgICBOb2RlKiBwYXJlbnROb2Rl
ID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBpZiAoIXNo
b3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZShjb250ZXh0KSAmJiBwYXJlbnROb2RlKQorICAgICAg
ICByZXR1cm4gcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsKKworICAgIG1fc3R5bGUgPSBSZW5k
ZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50
U2V0dGluZ3MoKSkgeworICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAg
ICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBlbHNl
CisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9zdHls
ZS5yZWxlYXNlKCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6
OnN0eWxlRm9yVGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUpOwor
ICAgIEFTU0VSVCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKyAgICBOb2RlUmVuZGVyaW5nQ29u
dGV4dCBjb250ZXh0KHRleHROb2RlKTsKKyAgICByZXR1cm4gc3R5bGVGb3JUZXh0KGNvbnRleHQp
OworfQorCiBzdGF0aWMgdm9pZCBhZGRJbnRyaW5zaWNNYXJnaW5zKFJlbmRlclN0eWxlKiBzdHls
ZSkKIHsKICAgICAvLyBJbnRyaW5zaWMgbWFyZ2luIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKaW5kZXggMDU1ZDgxM2VkYjU2YjA1MGNiNjEzMzcyNDU0ODUxMWRjNjBmYjIyYi4u
ODAwYjhhYWI1ZTg2NWQyMjMxMjYxYjYxNjA2ZTZmZDc4ZTNiZjA1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCkBAIC0xNTEsNiArMTUxLDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlRm9yRWxlbWVudChQc2V1ZG9JZCwgRWxlbWVudCos
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSk7CiAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGVGb3JUZXh0KE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CisgICAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGVGb3JUZXh0KE5vZGUqKTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiwgQ1NTRm9udFNlbGVjdG9y
KiA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCAyN2VkMjE0ZjM0ZWUxMWVlMjg3ZDAwMGU3MTQ2ZTMwMzJjYWNmMDg0Li42MTc3ODEzNDhh
MGRlMzg0MjA3ZTM3ZDUxNjk3MDkyZDUzOTc4NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJp
dGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIAogI2lmIEVOQUJMRShTVkcp
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTI0Nyw2ICsyNDgsOCBAQCB2b2lkIE5vZGVSZW5k
ZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSkgOiAwOwogICAgIGlm
IChlbGVtZW50KQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZWxlbWVudC0+c3R5bGVGb3JS
ZW5kZXJlcigpKTsKKyAgICBlbHNlIGlmIChub2RlLT5pc1RleHROb2RlKCkgJiYgKG5vZGUtPnBh
cmVudE9ySG9zdE5vZGUoKS0+aXNTaGFkb3dSb290KCkgfHwgbV9jb250ZXh0Lmluc2VydGlvblBv
aW50KCkpKQorICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUobm9kZS0+ZG9jdW1lbnQoKS0+c3R5
bGVSZXNvbHZlcigpLT5zdHlsZUZvclRleHQobV9jb250ZXh0KSk7CiAgICAgZWxzZQogICAgICAg
ICBtX2NvbnRleHQuc2V0U3R5bGUobV9jb250ZXh0LnBhcmVudFJlbmRlcmVyKCktPnN0eWxlKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAKaW5kZXggM2ZkMGYxNWVhMGYyMTkxN2Q5N2FkNGFjOGFiNDYyNDk2
NTliYTIzYi4uZDkzNTIxMzQ1ODI2NjM0ODMyMTZiODM4YTkzOWUyOTVkYzc0Y2UzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJTdHlsZUlu
aGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApA
QCAtMjU4LDEwICsyNTksMTMgQEAgdm9pZCBUZXh0OjpyZWNhbGNUZXh0U3R5bGUoU3R5bGVDaGFu
Z2UgY2hhbmdlKQogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVy
KCk7CiAKLSAgICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBh
cmVudCBkb2Vzbid0IGlzIGlmIG91ciBwYXJlbnQKLSAgICAvLyBpcyBhIHNoYWRvdyByb290Lgot
ICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIgJiYgIXBhcmVudE5vZGUoKS0+
aXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwYXJlbnROb2RlKCkt
PnJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVu
ZGVyZXIpIHsKKyAgICAgICAgTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpOworICAgICAgICBp
ZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSB8fCBpc1NoYWRvd0hvc3QocGFyZW50KSkKKyAgICAg
ICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyKCktPnN0
eWxlRm9yVGV4dCh0aGlzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlbmRlcmVyLT5z
ZXRTdHlsZShwYXJlbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkpOworICAgIH0KIAogICAgIGlmIChu
ZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjBl
MGU0OWEyODM3MjBmMjk2MTZhZTU4NzZjOWZmOTI2MDM5NDQzOC4uN2ZiNTFjZTMxMTFlMGI1ZGE1
ZGVkZTk1Njg1NTUwOGVlOGQ4MDUwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTE5
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5v
ZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICBG
b3VyIHRlc3QgY2FzZXMsIG9uZSBpcyBmb3IgdGVzdGluZyBhIHRleHQgbm9kZSB3aGljaCBpcyBh
IGRpcmVjdAorICAgICAgICBjaGlsZCBvZiBhIHNoYWRvdyByb290IHdpdGhvdXQgcmVzZXQtc3R5
bGUtaW5oZXJpdGFuY2UuCisgICAgICAgIE9uZSBpcyB3aXRoIHJlc2V0LXN0eWxlLWluaGVyaXRh
bmNlLgorICAgICAgICBPbmUgaXMgZm9yIHRlc3RpbmcgYSB0ZXh0IG5vZGUgd2hpY2ggaXMgYSBk
aXN0cmlidXRlZCBub2RlIGFuZCBpdHMKKyAgICAgICAgaW5zZXJ0aW9uIHBvaW50IGRvZXNuJ3Qg
aGF2ZSByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBzZXQgdG8gYmUgdHJ1ZS4KKyAgICAgICAgVGhl
IG90aGVyIG9uZSBpcyBhbG1vc3QgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSBleGNlcHQK
KyAgICAgICAgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisKIDIwMTItMTEtMjAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTMxMTA2KTog
bWFnbml0dWRlLXBlcmYuanMgY2FsbHMgYmluZCBvbiB1bmRlZmluZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNjMwOTI2NTVhNGI4YzJkNjU0ZTgzYjNmNDQ4MmM2NWNh
MWQ4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4
dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDVlbTsiPjxz
cGFuPmZvbzwvc3Bhbj5iYXI8L2Rpdj4KKyAgPGRpdj48c3Bhbj5mb288L3NwYW4+YmFyPC9zcGFu
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKyAgPGRp
dj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij5Gb288c3Bhbj5CYXI8L3NwYW4+PC9zcGFu
PjwvZGl2PgorICA8ZGl2PkZvbzxzcGFuPkJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xOWIwYmVhZTlhMzNhMTYwNzgzZTc3Nzg3NzAwOGQ1N2Y0MTdhMTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFk
b3cuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CitzcGFuIHsKKyAgIHRleHQtYWxpZ246IHRvcDsKK30KKzwvc3R5bGU+CisKKzxz
Y3JpcHQ+CitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290KCkgeworICAgIHZhciBo
b3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKKyAgICB2YXIgc2hhZG93Um9v
dCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHZhciBzcGFuID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpCisgICAgc3Bhbi50ZXh0Q29udGVudCA9ICJmb28iOworICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYmFyIikpOworICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXplID0gJzVlbSc7Cit9CisKK2Z1bmN0aW9u
IHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgewor
ICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RSZXNldFN0eWxlSW5o
ZXJpdGFuY2UiKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhv
c3QpOworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCisgICAg
c3Bhbi50ZXh0Q29udGVudCA9ICJmb28iOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc3Bh
bik7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YmFyIikpOworICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9ICc2
ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0KCkgeworICAgIHZhciBob3N0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RXaXRoRGlzdHJpYnV0aW9uIik7CisgICAg
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nc3BhbjEnPjxjb250ZW50PjwvY29udGVudD48L3Nw
YW4+IgorICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCJzcGFuMSIpLnN0eWxlLmZvbnRTaXplID0gJzVlbSc7Cit9CisKK2Z1bmN0aW9u
IHRlc3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZh
ciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RSZXNldFN0eWxlSW5oZXJpdGFu
Y2VXaXRoRGlzdHJpYnV0aW9uIik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hh
ZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nc3Bh
bjInPjxjb250ZW50IGlkPSdjb250ZW50Jz48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBzaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCJjb250ZW50IikucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1
ZTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVt
ZW50QnlJZCgic3BhbjIiKS5zdHlsZS5mb250U2l6ZSA9ICc2ZW0nOworfQorCitmdW5jdGlvbiBy
dW5UZXN0cygpIHsKKyAgICB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290KCk7CisgICAgdGVzdENo
aWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICB0ZXN0
RGlzdHJpYnV0ZWRUZXh0KCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxl
SW5oZXJpdGFuY2UoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0cygpIj4KKyAgPCEtLSBbYnVnIDEwMTExNl0gVGV4dCBub2RlcyBpbiBzaGFkb3cgcm9vdHMg
ZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJseSAtLT4KKyAgPCEtLSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE2IC0tPgorICA8ZGl2IGlkPSJob3N0Ij48L2Rp
dj4KKyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZSI+PC9kaXY+CisgIDxkaXYg
aWQ9Imhvc3RXaXRoRGlzdHJpYnV0aW9uIj5Gb288c3Bhbj5CYXI8L3NwYW4+PC9kaXY+CisgIDxk
aXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoRGlzdHJpYnV0aW9uIj5Gb288c3Bh
bj5CYXI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176199</attachid>
            <date>2012-11-27 01:41:11 -0800</date>
            <delta_ts>2012-11-29 01:20:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121127183848.patch</filename>
            <type>text/plain</type>
            <size>10550</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVhM2EwYzY1NzQyMGQz
ZTczN2FhMTUyNzJhN2UyNGI2YzA5OGU3OC4uMzQ1NDk1ZWU5ZWQwODA0NWQ0MjhjYjk3ZDNhODZl
M2QwZWU0ZDFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZv
clRleHRJZk5lZWRlZCk6CisgICAgICAgIFVzZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJl
bnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUgZ2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEg
ZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJvb3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFk
b3cKKyAgICAgICAgaG9zdC4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorICAgICAgICBEaXR0by4KKwogMjAxMi0xMS0y
NiAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUE5HIGRl
Y29kZSBwZXJmb3JtYW5jZTogYXZvaWQgdXNpbmcgZnJhbWUgYnVmZmVyLnNldFJHQkEoeCx5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGNiZjZjOGE3NTFhZGRiZDQ2Y2Mx
MGIyYmIwZThmZWZjNzI0ZTkyZDcuLjg5MzYzNGNmYmIyOGQ1MDYyOTI5ZTM1Y2IzNDJlNDlkMTEz
MTEyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3NDAsNiArMTc0
MCwzMCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBh
Z2UoaW50IHBhZ2VJbmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChOb2RlUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBOb2RlKiBwYXJlbnROb2RlID0gY29udGV4
dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICBpZiAoIXNob3VsZFJlc2V0
U3R5bGVJbmhlcml0YW5jZShjb250ZXh0KSAmJiBwYXJlbnROb2RlKQorICAgICAgICByZXR1cm4g
cGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsKKworICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y3JlYXRlKCk7CisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50U2V0dGluZ3Mo
KSkgeworICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAgICAgICAgbV9z
dHlsZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBlbHNlCisgICAgICAg
IG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNl
KCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9y
VGV4dChOb2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VS
VCh0ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKyAgICBOb2RlUmVuZGVyaW5nQ29udGV4dCBjb250
ZXh0KHRleHROb2RlKTsKKyAgICByZXR1cm4gc3R5bGVGb3JUZXh0KGNvbnRleHQpOworfQorCiBz
dGF0aWMgdm9pZCBhZGRJbnRyaW5zaWNNYXJnaW5zKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAg
ICAvLyBJbnRyaW5zaWMgbWFyZ2luIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
aW5kZXggMDU1ZDgxM2VkYjU2YjA1MGNiNjEzMzcyNDU0ODUxMWRjNjBmYjIyYi4uODAwYjhhYWI1
ZTg2NWQyMjMxMjYxYjYxNjA2ZTZmZDc4ZTNiZjA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oCkBAIC0xNTEsNiArMTUxLDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IHBzZXVkb1N0eWxlRm9yRWxlbWVudChQc2V1ZG9JZCwgRWxlbWVudCosIFJlbmRlclN0
eWxlKiBwYXJlbnRTdHlsZSk7CiAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZv
clBhZ2UoaW50IHBhZ2VJbmRleCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVG
b3JUZXh0KE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGVGb3JUZXh0KE5vZGUqKTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiwgQ1NTRm9udFNlbGVjdG9yKiA9IDApOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA5YmJm
NjBhYmFiOGNhOWZlZTIxMGFlZTk4NmRmMWE5YzllMmM2NWI2Li5hYzNjOWZmZTE5ZjBlMzg1MDdj
YzliYTU2ZjkzMDU4MWEzNzllYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5o
IgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKICNpZiBF
TkFCTEUoU1ZHKQpAQCAtMjYwLDEzICsyNjEsMTggQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQogCiAgICAgaWYgKCFzaG91bGRDcmVh
dGVSZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CisKICAgICBSZW5kZXJPYmplY3QqIHBhcmVu
dFJlbmRlcmVyID0gdGhpcy0+cGFyZW50UmVuZGVyZXIoKTsKICAgICBBU1NFUlQocGFyZW50UmVu
ZGVyZXIpOwotICAgIG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChtX25vZGUt
PnBhcmVudE9ySG9zdE5vZGUoKS0+aXNTaGFkb3dSb290KCkgfHwgaW5zZXJ0aW9uUG9pbnQoKSkK
KyAgICAgICAgbV9zdHlsZSA9IGRvY3VtZW50LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4
dCgqdGhpcyk7CisgICAgZWxzZQorICAgICAgICBtX3N0eWxlID0gcGFyZW50UmVuZGVyZXItPnN0
eWxlKCk7CiAKICAgICBpZiAoIXRleHROb2RlLT50ZXh0UmVuZGVyZXJJc05lZWRlZCgqdGhpcykp
CiAgICAgICAgIHJldHVybjsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9j
dW1lbnQoKTsKICAgICBSZW5kZXJUZXh0KiBuZXdSZW5kZXJlciA9IHRleHROb2RlLT5jcmVhdGVU
ZXh0UmVuZGVyZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCksIG1fc3R5bGUuZ2V0KCkpOwogICAg
IGlmICghbmV3UmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA2
NzM3YWZmZWM3OGEwNmQ0YjBlNDhmYjhmMTlmMTA0YmVjZTYwN2M4Li4yZTAxZjhjMWQ1Y2MyN2Uw
MDRlMDI0MmQ1YzQ2YmJhY2ZlYzJiZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUg
IlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0yODIsMTUgKzI4MywxMyBAQCB2b2lk
IFRleHQ6OmF0dGFjaCgpCiB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSBj
aGFuZ2UpCiB7CiAgICAgUmVuZGVyVGV4dCogcmVuZGVyZXIgPSB0b1JlbmRlclRleHQodGhpcy0+
cmVuZGVyZXIoKSk7Ci0gICAgLy8gVGhlIG9ubHkgdGltZSB3ZSBoYXZlIGEgcmVuZGVyZXIgYW5k
IG91ciBwYXJlbnQgZG9lc24ndCBpcyBpZiBvdXIgcGFyZW50Ci0gICAgLy8gaXMgYSBzaGFkb3cg
cm9vdC4KKwogICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIpIHsKLSAgICAg
ICAgaWYgKCFwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnNldFN0eWxlKHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0jaWYgRU5B
QkxFKFNWRykKLSAgICAgICAgZWxzZSBpZiAoaXNTVkdTaGFkb3dUZXh0KHRoaXMpKQotICAgICAg
ICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHRvU2hhZG93Um9vdChwYXJlbnROb2RlKCkpLT5ob3N0
KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOwotI2VuZGlmCisgICAgICAgIE5vZGUqIHBhcmVudCA9
IHBhcmVudE5vZGUoKTsKKyAgICAgICAgaWYgKHBhcmVudC0+aXNTaGFkb3dSb290KCkgfHwgaXNT
aGFkb3dIb3N0KHBhcmVudCkpCisgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUoZG9jdW1l
bnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvclRleHQodGhpcykpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocGFyZW50LT5yZW5kZXJlcigpLT5zdHls
ZSgpKTsKICAgICB9CiAKICAgICBpZiAobmVlZHNTdHlsZVJlY2FsYygpKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgx
ODk2MGQwZmNkMzU0Zjg4ZTU4YTFlMjNhMjdkNzNlMDA4ZjU4NC4uYzhhZWU5ODViMjc4M2VjMmQ5
ZjRmM2IzMTk1ZjI1NjhmMDhjMjNhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTI3
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5v
ZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEx
LTI2ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBKYXZhU2Ny
aXB0IGZhaWxzIHRvIGhhbmRsZSBTdHJpbmcucmVwbGFjZSgpIHdpdGggbGFyZ2UgcmVwbGFjZW1l
bnQgc3RyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1u
b2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYzMDkyNjU1
YTRiOGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAgPGRpdiBz
dHlsZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFyPC9kaXY+CisgIDxkaXY+
PHNwYW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4m
bmJzcDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+
Rm9vPHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5Gb288c3Bhbj5CYXI8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Rl
eHQtbm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0
LW5vZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5YTMzYTE2MDc4M2U3Nzc4
NzcwMDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICB0ZXh0LWFsaWdu
OiB0b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9m
U2hhZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJo
b3N0Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsK
KyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4u
dGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOwor
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIp
KTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5mb250U2l6
ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAgdmFyIHNoYWRvd1Jvb3Qg
PSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5
bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAg
IGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1
dGVkVGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0
V2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRv
d1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4x
Jz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExl
ZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5mb250U2l6
ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5
bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBz
aGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5p
bm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+PC9jb250
ZW50Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnJl
c2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0
OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9udFNpemUg
PSAnNmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdGVzdENoaWxkVGV4dE9m
U2hhZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHls
ZUluaGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOworICAgIHRlc3REaXN0
cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0gW2J1ZyAxMDExMTZdIFRl
eHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkgLS0+
CisgIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNiAt
LT4KKyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5o
ZXJpdGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNw
YW4+QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNl
V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176674</attachid>
            <date>2012-11-29 01:20:46 -0800</date>
            <delta_ts>2012-12-06 20:42:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121129181820.patch</filename>
            <type>text/plain</type>
            <size>10593</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmMTMzM2UxNTI2ZDBl
MDNjNzA5ZTc0Y2M3M2Q2ZjUyYWJhOWEwZi4uZGNlMDE3MzVjNThiN2I0YTBiOWI3NzVmMDQ1ODE0
YTVjNjA0ODA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZv
clRleHRJZk5lZWRlZCk6CisgICAgICAgIFVzZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJl
bnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUgZ2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEg
ZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJvb3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFk
b3cKKyAgICAgICAgaG9zdC4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorICAgICAgICBEaXR0by4KKwogMjAxMi0xMS0y
OCAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm9kZTo6Y29t
cGFyZURvY3VtZW50UG9zaXRpb24gcmV0dXJucyB3cm9uZyB2YWx1ZSBmb3IgYSBub2RlIGluIHRo
ZSBkaWZmZXJlbnQgc2hhZG93IHRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
aW5kZXggNmM4NDFlNDk4ZDg3NWEzOWEzN2Y4YWU1Yzk4Y2Y0YmZiMWFmNzBmYy4uZTlhZjMyYmU0
ZmFmNzE0ZjYwZmEzMzdhODhhNzU4NDU1MDUwNWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcApAQCAtMTc0MCw2ICsxNzQwLDMwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIHJldHVybiBt
X3N0eWxlLnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNv
bHZlcjo6c3R5bGVGb3JUZXh0KE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQoreworICAg
IE5vZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSgpOworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpICYmIHBh
cmVudE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisg
ICAgbV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBpZiAoU2V0dGluZ3MqIHNl
dHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGluaXRpYWxpemVGb250U3R5
bGUoc2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3Rv
cigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKwor
ICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKworUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5vZGUqIHRleHROb2RlKQoreworICAgIEFT
U0VSVCh0ZXh0Tm9kZSk7CisgICAgQVNTRVJUKHRleHROb2RlLT5pc1RleHROb2RlKCkpOworICAg
IE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIHJldHVybiBzdHls
ZUZvclRleHQoY29udGV4dCk7Cit9CisKIHN0YXRpYyB2b2lkIGFkZEludHJpbnNpY01hcmdpbnMo
UmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIC8vIEludHJpbnNpYyBtYXJnaW4gdmFsdWUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAwNTVkODEzZWRiNTZiMDUwY2I2MTMzNzI0
NTQ4NTExZGM2MGZiMjJiLi44MDBiOGFhYjVlODY1ZDIyMzEyNjFiNjE2MDZlNmZkNzhlM2JmMDU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTE1MSw2ICsxNTEsOCBAQCBwdWJs
aWM6CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGVGb3JFbGVtZW50KFBz
ZXVkb0lkLCBFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKIAogICAgIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KTsKKyAgICBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZVJlbmRlcmluZ0NvbnRleHQmKTsK
KyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
LCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IGM1ZDI3MDExZWE1NzI1ZTg2MWZhM2IwMGJkNzljMmRhZGQ0
MDhhM2EuLmFhOGVjNTNiYmM1ZWUwY2FhN2VmOWM2OTY3YTNhMjYzNjAzNWY0MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDIsNiArNDIsNyBA
QAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgog
I2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0yNjMsMTMgKzI2NCwxOCBA
QCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRl
ZCgpCiAKICAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybjsK
KwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJlbnRSZW5kZXJl
cigpOwogICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0gICAgbV9zdHlsZSA9IHBhcmVudFJl
bmRlcmVyLT5zdHlsZSgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRleHROb2RlLT5kb2N1
bWVudCgpOworCisgICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpLT5pc1NoYWRvd1Jv
b3QoKSB8fCBpbnNlcnRpb25Qb2ludCgpKQorICAgICAgICBtX3N0eWxlID0gZG9jdW1lbnQtPnN0
eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1f
c3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKIAogICAgIGlmICghdGV4dE5vZGUtPnRl
eHRSZW5kZXJlcklzTmVlZGVkKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRleHROb2RlLT5kb2N1bWVudCgpOwogICAgIFJlbmRlclRleHQqIG5ld1Jl
bmRlcmVyID0gdGV4dE5vZGUtPmNyZWF0ZVRleHRSZW5kZXJlcihkb2N1bWVudC0+cmVuZGVyQXJl
bmEoKSwgbV9zdHlsZS5nZXQoKSk7CiAgICAgaWYgKCFuZXdSZW5kZXJlcikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDY3MzdhZmZlYzc4YTA2ZDRiMGU0OGZiOGYxOWYxMDRi
ZWNlNjA3YzguLjJlMDFmOGMxZDVjYzI3ZTAwNGUwMjQyZDVjNDZiYmFjZmVjMmJmZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiU3R5bGVJ
bmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
QEAgLTI4MiwxNSArMjgzLDEzIEBAIHZvaWQgVGV4dDo6YXR0YWNoKCkKIHZvaWQgVGV4dDo6cmVj
YWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBSZW5kZXJUZXh0KiByZW5k
ZXJlciA9IHRvUmVuZGVyVGV4dCh0aGlzLT5yZW5kZXJlcigpKTsKLSAgICAvLyBUaGUgb25seSB0
aW1lIHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBhcmVudCBkb2Vzbid0IGlzIGlmIG91ciBw
YXJlbnQKLSAgICAvLyBpcyBhIHNoYWRvdyByb290LgorCiAgICAgaWYgKGNoYW5nZSAhPSBOb0No
YW5nZSAmJiByZW5kZXJlcikgewotICAgICAgICBpZiAoIXBhcmVudE5vZGUoKS0+aXNTaGFkb3dS
b290KCkpCi0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocGFyZW50Tm9kZSgpLT5yZW5k
ZXJlcigpLT5zdHlsZSgpKTsKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBlbHNlIGlmIChpc1NW
R1NoYWRvd1RleHQodGhpcykpCi0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUodG9TaGFk
b3dSb290KHBhcmVudE5vZGUoKSktPmhvc3QoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0jZW5k
aWYKKyAgICAgICAgTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZSgpOworICAgICAgICBpZiAocGFy
ZW50LT5pc1NoYWRvd1Jvb3QoKSB8fCBpc1NoYWRvd0hvc3QocGFyZW50KSkKKyAgICAgICAgICAg
IHJlbmRlcmVyLT5zZXRTdHlsZShkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9y
VGV4dCh0aGlzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHls
ZShwYXJlbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkpOwogICAgIH0KIAogICAgIGlmIChuZWVkc1N0
eWxlUmVjYWxjKCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZDc4ZjgwNzY1YmQ4Zjg4YWRiN2Q5NDMwYzQ3ZjM5OGRm
NjQ5ODhhLi4zMmI4MjYxOTJjOGYyMjgwZmMzMWJlN2U2Y2UwYmVkOTI0MWY1YzJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMjcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVy
aXQgc3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFk
b3cuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjggIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHJldHVybnMg
d3JvbmcgdmFsdWUgZm9yIGEgbm9kZSBpbiB0aGUgZGlmZmVyZW50IHNoYWRvdyB0cmVlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ct
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4t
c2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNi
M2Y0NDgyYzY1Y2ExZDg1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6
ZTogNWVtOyI+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bh
bj5iYXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwv
ZGl2PgorICA8ZGl2PjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwv
c3Bhbj48L3NwYW4+PC9kaXY+CisgIDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hh
ZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRv
dy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE5YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQxN2Ex
NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1u
b2RlLWluLXNoYWRvdy5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9z
dHlsZT4KKworPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKSB7
CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAgIHZh
ciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0g
ImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30K
KworZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJl
c2V0U3R5bGVJbmhlcml0YW5jZSIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNo
YWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJiYXIiKSk7CisgICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZv
bnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7Cisg
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRp
b24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOwor
ICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9j
b250ZW50Pjwvc3Bhbj4iCisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRv
d1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30K
KworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5
bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5l
dyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxz
cGFuIGlkPSdzcGFuMic+PGNvbnRlbnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+Igor
ICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJp
dGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsK
KyAgICB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
OworICAgIHRlc3REaXN0cmlidXRlZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0
aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3RzKCkiPgorICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNo
YWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9
Imhvc3QiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rp
dj4KKyAgPGRpdiBpZD0iaG9zdFdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48
L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRp
b24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178150</attachid>
            <date>2012-12-06 20:40:09 -0800</date>
            <delta_ts>2012-12-06 22:53:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207133733.patch</filename>
            <type>text/plain</type>
            <size>10555</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uYzhjYjc3Y2UyYzUyMmE2Njg3ZTcwMmVlZTM3MThk
MDM0MGUwNWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZv
clRleHRJZk5lZWRlZCk6CisgICAgICAgIFVzZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJl
bnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUgZ2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEg
ZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJvb3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFk
b3cKKyAgICAgICAgaG9zdC4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorICAgICAgICBEaXR0by4KKwogMjAxMi0xMi0w
NiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWxl
bWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKaW5kZXggNzI2MzMyMzllMzJlZDc0OTkzYjE3MGIyNWY4MzlkODM5MmMy
NDg0Mi4uZmExYjUyM2Q4ZWZhYmUzZWY2Nzg4ODVjZTQxMGU4ZmIwYzFjZWE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTc5NSw2ICsxNzk1LDM1IEBAIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4
KQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5vZGVSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0KQoreworICAgIE5vZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZSgpOworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNl
KGNvbnRleHQpICYmIHBhcmVudE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5k
ZXJTdHlsZSgpOworCisgICAgbV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBp
ZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGlu
aXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBk
YXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgp
LnVwZGF0ZSgwKTsKKworICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKworUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5vZGUqIHRleHRO
b2RlKQoreworICAgIEFTU0VSVCh0ZXh0Tm9kZSk7CisgICAgQVNTRVJUKHRleHROb2RlLT5pc1Rl
eHROb2RlKCkpOworCisgICAgTm9kZSogcGFyZW50Tm9kZSA9IHRleHROb2RlLT5wYXJlbnROb2Rl
KCk7CisgICAgaWYgKCFwYXJlbnROb2RlLT5pc1NoYWRvd1Jvb3QoKSAmJiAhaXNTaGFkb3dIb3N0
KHBhcmVudE5vZGUpKQorICAgICAgICByZXR1cm4gcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsK
KworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIHJldHVy
biBzdHlsZUZvclRleHQoY29udGV4dCk7Cit9CisKIHN0YXRpYyB2b2lkIGFkZEludHJpbnNpY01h
cmdpbnMoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIC8vIEludHJpbnNpYyBtYXJnaW4gdmFs
dWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBjZWViNzQxMzM2ZGFhYTQ4ZDUw
YzM4MDYyMDMxOTFiNGQxNzEyOWJlLi5kY2ZjNGJlNjM0Y2QyNTVjNGIxMDU2YWM3NTI3NGJhZDZk
OGJjNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTE1MSw2ICsxNTEsOCBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGVGb3JFbGVt
ZW50KFBzZXVkb0lkLCBFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKIAogICAg
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KTsKKyAg
ICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZVJlbmRlcmluZ0NvbnRl
eHQmKTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwog
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9j
dW1lbnQqLCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDQ2NDZjZDg0YTNkOWMwYjY2YmYzMjAzMzZiZDUx
Mzk5NTljNGE0YzcuLmE2NGM3Y2NhYmY1ZDAxNjc2ZTNlN2M4ZThiY2Q1NTgxZGE1OWE0OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZl
ci5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0yNzYsMTMgKzI3
NywxOCBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJ
Zk5lZWRlZCgpCiAKICAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybjsKKwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJlbnRS
ZW5kZXJlcigpOwogICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0gICAgbV9zdHlsZSA9IHBh
cmVudFJlbmRlcmVyLT5zdHlsZSgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRleHROb2Rl
LT5kb2N1bWVudCgpOworCisgICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpLT5pc1No
YWRvd1Jvb3QoKSB8fCBpbnNlcnRpb25Qb2ludCgpKQorICAgICAgICBtX3N0eWxlID0gZG9jdW1l
bnQtPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KCp0aGlzKTsKKyAgICBlbHNlCisgICAg
ICAgIG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKIAogICAgIGlmICghdGV4dE5v
ZGUtPnRleHRSZW5kZXJlcklzTmVlZGVkKCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwotICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IHRleHROb2RlLT5kb2N1bWVudCgpOwogICAgIFJlbmRlclRleHQq
IG5ld1JlbmRlcmVyID0gdGV4dE5vZGUtPmNyZWF0ZVRleHRSZW5kZXJlcihkb2N1bWVudC0+cmVu
ZGVyQXJlbmEoKSwgbV9zdHlsZS5nZXQoKSk7CiAgICAgaWYgKCFuZXdSZW5kZXJlcikKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IDY3MzdhZmZlYzc4YTA2ZDRiMGU0OGZiOGYx
OWYxMDRiZWNlNjA3YzguLmUxNzhlNWY2NWFiZmY5MWY5YjBjZGQ0MGU4NTBjN2ZkZjYxNTkyZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVGV4dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAi
U3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKQEAgLTI4MiwxNiArMjgzLDkgQEAgdm9pZCBUZXh0OjphdHRhY2goKQogdm9pZCBUZXh0
OjpyZWNhbGNUZXh0U3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogewogICAgIFJlbmRlclRleHQq
IHJlbmRlcmVyID0gdG9SZW5kZXJUZXh0KHRoaXMtPnJlbmRlcmVyKCkpOwotICAgIC8vIFRoZSBv
bmx5IHRpbWUgd2UgaGF2ZSBhIHJlbmRlcmVyIGFuZCBvdXIgcGFyZW50IGRvZXNuJ3QgaXMgaWYg
b3VyIHBhcmVudAotICAgIC8vIGlzIGEgc2hhZG93IHJvb3QuCi0gICAgaWYgKGNoYW5nZSAhPSBO
b0NoYW5nZSAmJiByZW5kZXJlcikgewotICAgICAgICBpZiAoIXBhcmVudE5vZGUoKS0+aXNTaGFk
b3dSb290KCkpCi0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocGFyZW50Tm9kZSgpLT5y
ZW5kZXJlcigpLT5zdHlsZSgpKTsKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBlbHNlIGlmIChp
c1NWR1NoYWRvd1RleHQodGhpcykpCi0gICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUodG9T
aGFkb3dSb290KHBhcmVudE5vZGUoKSktPmhvc3QoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0j
ZW5kaWYKLSAgICB9CisKKyAgICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHJlbmRlcmVyKQor
ICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUoZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5z
dHlsZUZvclRleHQodGhpcykpOwogCiAgICAgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAg
ICAgICBpZiAocmVuZGVyZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmIwNTFlZDViNjY3MDgzNGFhNGQzYzI2YWNlNjM0
ZjAzOWFkODZlNS4uNjcyODg5MThjMzRiZmFiYTY0NTBiNDE4MTJmY2EzZjM3ZTQxNzBiMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTI3ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtA
Z29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBp
bmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4t
c2hhZG93Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTA2ICBEb21pbmljIENvb25leSAgPGRvbWlu
aWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbGVtZW50LnBzZXVkbyBwcm9wZXJ0eSBzaG91
bGQgYmUgcHJlZml4ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90
ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNjMw
OTI2NTVhNGI4YzJkNjU0ZTgzYjNmNDQ4MmM2NWNhMWQ4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICA8
ZGl2IHN0eWxlPSJmb250LXNpemU6IDVlbTsiPjxzcGFuPmZvbzwvc3Bhbj5iYXI8L2Rpdj4KKyAg
PGRpdj48c3Bhbj5mb288L3NwYW4+YmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDZl
bTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KKyAgPGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA1
ZW07Ij5Gb288c3Bhbj5CYXI8L3NwYW4+PC9zcGFuPjwvZGl2PgorICA8ZGl2PkZvbzxzcGFuPkJh
cjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWIwYmVhZTlhMzNhMTYwNzgz
ZTc3Nzg3NzAwOGQ1N2Y0MTdhMTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbApAQCAtMCwwICsxLDY3IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitzcGFuIHsKKyAgIHRleHQt
YWxpZ246IHRvcDsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0Q2hpbGRU
ZXh0T2ZTaGFkb3dSb290KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImhvc3QiKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhv
c3QpOworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCisgICAg
c3Bhbi50ZXh0Q29udGVudCA9ICJmb28iOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc3Bh
bik7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
YmFyIikpOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZv
bnRTaXplID0gJzVlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RX
aXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiKTsKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHZhciBzcGFuID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc3BhbicpCisgICAgc3Bhbi50ZXh0Q29udGVudCA9ICJmb28iOwor
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc3Bhbik7CisgICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiYmFyIikpOworICAgIHNoYWRvd1Jvb3QucmVz
ZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7
CisgICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9ICc2ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlz
dHJpYnV0ZWRUZXh0KCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Imhvc3RXaXRoRGlzdHJpYnV0aW9uIik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0
U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8c3BhbiBpZD0n
c3BhbjEnPjxjb250ZW50PjwvY29udGVudD48L3NwYW4+IgorICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJzcGFuMSIpLnN0eWxlLmZv
bnRTaXplID0gJzVlbSc7Cit9CisKK2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHRXaXRoUmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgeworICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoRGlzdHJpYnV0aW9uIik7CisgICAg
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nc3BhbjInPjxjb250ZW50IGlkPSdjb250ZW50Jz48
L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjb250ZW50
IikucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5zdHlsZS5mb250
U2l6ZSA9ICc2ZW0nOworfQorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICB0ZXN0Q2hpbGRU
ZXh0T2ZTaGFkb3dSb290KCk7CisgICAgdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdFdpdGhSZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0KCk7CisgICAgdGVz
dERpc3RyaWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKyAgPCEtLSBbYnVnIDEwMTEx
Nl0gVGV4dCBub2RlcyBpbiBzaGFkb3cgcm9vdHMgZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJs
eSAtLT4KKyAgPCEtLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
MTE2IC0tPgorICA8ZGl2IGlkPSJob3N0Ij48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFJlc2V0U3R5
bGVJbmhlcml0YW5jZSI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RXaXRoRGlzdHJpYnV0aW9uIj5G
b288c3Bhbj5CYXI8L3NwYW4+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJp
dGFuY2VXaXRoRGlzdHJpYnV0aW9uIj5Gb288c3Bhbj5CYXI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178166</attachid>
            <date>2012-12-06 22:53:39 -0800</date>
            <delta_ts>2012-12-07 01:29:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207155103.patch</filename>
            <type>text/plain</type>
            <size>10565</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uYzhjYjc3Y2UyYzUyMmE2Njg3ZTcwMmVlZTM3MThk
MDM0MGUwNWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVz
ZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBmaW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUg
ZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBm
b3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRo
ZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAg
ICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVybnMgYW4gZW1wdHkgUmVuZGVyU3R5bGUuIE90aGVy
d2lzZSwganVzdCByZXR1cm5zCisgICAgICAgIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZv
clRleHRJZk5lZWRlZCk6CisgICAgICAgIFVzZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJl
bnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUgZ2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEg
ZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJvb3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFk
b3cKKyAgICAgICAgaG9zdC4KKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpyZWNhbGNUZXh0U3R5bGUpOgorICAgICAgICBEaXR0by4KKwogMjAxMi0xMi0w
NiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWxl
bWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKaW5kZXggNzI2MzMyMzllMzJlZDc0OTkzYjE3MGIyNWY4MzlkODM5MmMy
NDg0Mi4uZmExYjUyM2Q4ZWZhYmUzZWY2Nzg4ODVjZTQxMGU4ZmIwYzFjZWE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTc5NSw2ICsxNzk1LDM1IEBAIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4
KQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5vZGVSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0KQoreworICAgIE5vZGUqIHBhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZSgpOworICAgIGlmICghc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNl
KGNvbnRleHQpICYmIHBhcmVudE5vZGUpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5k
ZXJTdHlsZSgpOworCisgICAgbV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAgICBp
ZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAgIGlu
aXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCkudXBk
YXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9udCgp
LnVwZGF0ZSgwKTsKKworICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKworUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5vZGUqIHRleHRO
b2RlKQoreworICAgIEFTU0VSVCh0ZXh0Tm9kZSk7CisgICAgQVNTRVJUKHRleHROb2RlLT5pc1Rl
eHROb2RlKCkpOworCisgICAgTm9kZSogcGFyZW50Tm9kZSA9IHRleHROb2RlLT5wYXJlbnROb2Rl
KCk7CisgICAgaWYgKCFwYXJlbnROb2RlLT5pc1NoYWRvd1Jvb3QoKSAmJiAhaXNTaGFkb3dIb3N0
KHBhcmVudE5vZGUpKQorICAgICAgICByZXR1cm4gcGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKTsK
KworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5vZGUpOworICAgIHJldHVy
biBzdHlsZUZvclRleHQoY29udGV4dCk7Cit9CisKIHN0YXRpYyB2b2lkIGFkZEludHJpbnNpY01h
cmdpbnMoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIC8vIEludHJpbnNpYyBtYXJnaW4gdmFs
dWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBjZWViNzQxMzM2ZGFhYTQ4ZDUw
YzM4MDYyMDMxOTFiNGQxNzEyOWJlLi5kY2ZjNGJlNjM0Y2QyNTVjNGIxMDU2YWM3NTI3NGJhZDZk
OGJjNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTE1MSw2ICsxNTEsOCBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcHNldWRvU3R5bGVGb3JFbGVt
ZW50KFBzZXVkb0lkLCBFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKTsKIAogICAg
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KTsKKyAg
ICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZVJlbmRlcmluZ0NvbnRl
eHQmKTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwog
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9j
dW1lbnQqLCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDQ2NDZjZDg0YTNkOWMwYjY2YmYzMjAzMzZiZDUx
Mzk5NTljNGE0YzcuLjY3MTk0NmFjOTZjZTBkODcwZWM0ZTg3MzJjYjI2Yjg4NjI1NDUzYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZl
ci5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0yNzYsMTMgKzI3
NywxOCBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJ
Zk5lZWRlZCgpCiAKICAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybjsKKwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJlbnRS
ZW5kZXJlcigpOwogICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0gICAgbV9zdHlsZSA9IHBh
cmVudFJlbmRlcmVyLT5zdHlsZSgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRleHROb2Rl
LT5kb2N1bWVudCgpOworCisgICAgaWYgKFVOTElLRUxZKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9k
ZSgpLT5pc1NoYWRvd1Jvb3QoKSB8fCBpbnNlcnRpb25Qb2ludCgpKSkKKyAgICAgICAgbV9zdHls
ZSA9IGRvY3VtZW50LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dCgqdGhpcyk7CisgICAg
ZWxzZQorICAgICAgICBtX3N0eWxlID0gcGFyZW50UmVuZGVyZXItPnN0eWxlKCk7CiAKICAgICBp
ZiAoIXRleHROb2RlLT50ZXh0UmVuZGVyZXJJc05lZWRlZCgqdGhpcykpCiAgICAgICAgIHJldHVy
bjsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKICAgICBS
ZW5kZXJUZXh0KiBuZXdSZW5kZXJlciA9IHRleHROb2RlLT5jcmVhdGVUZXh0UmVuZGVyZXIoZG9j
dW1lbnQtPnJlbmRlckFyZW5hKCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmV3UmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA2NzM3YWZmZWM3OGEwNmQ0
YjBlNDhmYjhmMTlmMTA0YmVjZTYwN2M4Li5lMTc4ZTVmNjVhYmZmOTFmOWIwY2RkNDBlODUwYzdm
ZGY2MTU5MmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjZW5kaWYKIAog
I2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCkBAIC0yODIsMTYgKzI4Myw5IEBAIHZvaWQgVGV4dDo6YXR0YWNoKCkK
IHZvaWQgVGV4dDo6cmVjYWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBS
ZW5kZXJUZXh0KiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dCh0aGlzLT5yZW5kZXJlcigpKTsKLSAg
ICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBhcmVudCBkb2Vz
bid0IGlzIGlmIG91ciBwYXJlbnQKLSAgICAvLyBpcyBhIHNoYWRvdyByb290LgotICAgIGlmIChj
aGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIpIHsKLSAgICAgICAgaWYgKCFwYXJlbnROb2Rl
KCktPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBhcmVu
dE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0jaWYgRU5BQkxFKFNWRykKLSAgICAgICAg
ZWxzZSBpZiAoaXNTVkdTaGFkb3dUZXh0KHRoaXMpKQotICAgICAgICAgICAgcmVuZGVyZXItPnNl
dFN0eWxlKHRvU2hhZG93Um9vdChwYXJlbnROb2RlKCkpLT5ob3N0KCktPnJlbmRlcmVyKCktPnN0
eWxlKCkpOwotI2VuZGlmCi0gICAgfQorCisgICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiBy
ZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50KCktPnN0eWxlUmVz
b2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVkc1N0eWxlUmVjYWxj
KCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZiMDUxZWQ1YjY2NzA4MzRhYTRk
M2MyNmFjZTYzNGYwMzlhZDg2ZTUuLjY3Mjg4OTE4YzM0YmZhYmE2NDUwYjQxODEyZmNhM2YzN2U0
MTcwYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMS0yNyAgVGFrYXNoaSBTYWthbW90
byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGV4dCBub2RlcyBpbiBzaGFkb3cgcm9v
dHMgZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNo
YWRvdy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4
dC1ub2RlLWluLXNoYWRvdy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0wNiAgRG9taW5pYyBDb29u
ZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWxlbWVudC5wc2V1ZG8gcHJv
cGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YjYzMDkyNjU1YTRiOGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ct
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFy
PC9kaXY+CisgIDxkaXY+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTogNWVtOyI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5G
b288c3Bhbj5CYXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9z
cGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5
YTMzYTE2MDc4M2U3Nzc4NzcwMDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCAr
MSw2NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7
CisgICB0ZXh0LWFsaWduOiB0b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24g
dGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hh
ZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImJhciIpKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9z
dC5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZT
aGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAg
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3Bh
biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQg
PSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFk
b3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rp
b24gdGVzdERpc3RyaWJ1dGVkVGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAi
PHNwYW4gaWQ9J3NwYW4xJz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEi
KS5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRU
ZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlv
biIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7Cisg
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0n
Y29udGVudCc+PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIiku
c3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAg
dGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jv
b3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgp
OworICAgIHRlc3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0g
W2J1ZyAxMDExMTZdIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5
bGUgcHJvcGVybHkgLS0+CisgIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNiAtLT4KKyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhv
c3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3Ry
aWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRT
dHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178172</attachid>
            <date>2012-12-07 00:25:38 -0800</date>
            <delta_ts>2012-12-07 01:13:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207172301.patch</filename>
            <type>text/plain</type>
            <size>13442</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uY2JhMDhiNzYxNmEyY2NmZGJlNjliODkwMDdlNTAx
YjBmYzI2NDI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEyLTA3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUpOgorICAg
ICAgICBSZW1vdmVkIHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZSwgYmVjYXVzZSBub3cgTm9k
ZVJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgdGFrZXMg
Y2FyZSBvZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBvZgorICAgICAgICBib3RoIHNoYWRvdyBy
b290cyBhbmQgaW5zZXJ0aW9uIHBvaW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OmRlZmF1bHRTdHlsZUZvclRleHQpOgorICAgICAgICBBZGRlZCB0byBjcmVhdGUgYSBkZWZh
dWx0IHN0eWxlIGZvciB0ZXh0IG5vZGVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvclRleHQpOgorICAgICAgICBVc2UgTm9kZVJl
bmRlcmluZ0NvbnRleHQgdG8gZmluZCB0aGUgcGFyZW50IG5vZGUgZm9yIHN0eWxlIGZyb20gdGhl
CisgICAgICAgIGdpdmVuIHRleHQgbm9kZS4gSWYgbm8gcGFyZW50IG5vZGUgaXMgZm91bmQgb3Ig
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UKKyAgICAgICAgaXMgdHJ1ZSAoaS5lLiB0aGUgZ2l2ZW4g
bm9kZSBpcyBhIGRpc3RyaWJ1dGVkIG5vZGUgb3IgZGlyZWN0IGNoaWxkIG9mCisgICAgICAgIGEg
c2hhZG93IHJvb3QpLCByZXR1cm5zIGEgZGVmYXVsdCBzdHlsZSAoaS5lLiBlbXB0eSByZW5kZXIg
c3R5bGUpLgorICAgICAgICBPdGhlcndpc2UsIGp1c3QgcmV0dXJucyB0aGUgZm91bmQgbm9kZSdz
IHN0eWxlLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVJl
c29sdmVyKToKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6UGFyZW50VHJhdmVyc2Fs
RGV0YWlsczo6ZGlkVHJhdmVyc2VJbnNlcnRpb25Qb2ludCk6CisgICAgICAgIE1vZGlmeSB0byBj
b25zaWRlciBpbnNlcnRpb24gcG9pbnQncyByZXNldFN0eWxlSW5oZXJpdGFuY2UuCisgICAgICAg
ICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5lZWRlZCk6CisgICAgICAg
IFNpbmNlIE5vZGVSZW5kZXJpbmdDb250ZXh0IGhhcyBhbHJlYWR5IGZvdW5kIGEgcGFyZW50IG5v
ZGUgZm9yCisgICAgICAgIHJlbmRlcmluZyBhbmQgc3R5bGUgYW5kIGEgcGFyZW50UmVuZGVyZXIg
aXMganVzdCB0aGUgZm91bmQgbm9kZSdzCisgICAgICAgIHJlbmRlcmVyLCB3ZSBoYXZlIHRvIG9u
bHkgY2hlY2sgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuCisgICAgICAgIElmIHJlc2V0LCB1c2Ug
ZGVmYXVsdCBzdHlsZS4gT3RoZXJ3aXNlLCB0aGUgcGFyZW50UmVuZGVyZXIncyBzdHlsZS4KKyAg
ICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0OjpyZWNhbGNUZXh0
U3R5bGUpOgorICAgICAgICBVc2Ugc3R5bGVGb3JUZXh0IGluc3RlYWQgb2YgcGFyZW50UmVuZGVy
ZXIncyBzdHlsZXMgaWYgdGhlIGdpdmVuIHRleHQKKyAgICAgICAgbm9kZSBpcyBhIGRpcmVjdCBj
aGlsZCBvZiBhIHNoYWRvdyByb290IG9yIGEgZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93CisgICAg
ICAgIGhvc3QuCisKIDIwMTItMTItMDYgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEVsZW1lbnQucHNldWRvIHByb3BlcnR5IHNob3VsZCBiZSBwcmVm
aXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDcyNjMzMjM5ZTMyZWQ3
NDk5M2IxNzBiMjVmODM5ZDgzOTJjMjQ4NDIuLjY4NGExMDJiZGVlY2I5YjYxZGI5MjM1ZTMzMjBj
NWEwOThiZDQ0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTk2Niwx
NyArOTY2LDYgQEAgaW5saW5lIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdEVsZW1lbnQoRWxlbWVu
dCogZSkKICAgICB9CiB9CiAKLWlubGluZSBib29sIHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5j
ZShOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBpZiAoY29udGV4dC5yZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoSW5z
ZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50ID0gY29udGV4dC5pbnNlcnRpb25Qb2ludCgpKQot
ICAgICAgICByZXR1cm4gaW5zZXJ0aW9uUG9pbnQtPnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOwot
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0
Rm9yU3R5bGVSZXNvbHZlKEVsZW1lbnQqIGUsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUHNl
dWRvSWQgcHNldWRvSUQpCiB7CiAgICAgbV9wc2V1ZG9TdHlsZSA9IHBzZXVkb0lEOwpAQCAtOTg0
LDcgKzk3Myw3IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29s
dmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0CiAgICAgaWYgKGUpIHsKICAgICAg
ICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dChlKTsKICAgICAgICAgbV9wYXJlbnROb2Rl
ID0gY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKLSAgICAgICAgbV9w
YXJlbnRTdHlsZSA9IHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZShjb250ZXh0KSA/IDAgOgor
ICAgICAgICBtX3BhcmVudFN0eWxlID0gY29udGV4dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKSA/
IDAgOgogICAgICAgICAgICAgcGFyZW50U3R5bGUgPyBwYXJlbnRTdHlsZSA6CiAgICAgICAgICAg
ICBtX3BhcmVudE5vZGUgPyBtX3BhcmVudE5vZGUtPnJlbmRlclN0eWxlKCkgOiAwOwogICAgICAg
ICBtX2Rpc3RyaWJ1dGVkVG9JbnNlcnRpb25Qb2ludCA9IGNvbnRleHQuaW5zZXJ0aW9uUG9pbnQo
KTsKQEAgLTE3OTUsNiArMTc4NCwzNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJl
c29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKICAgICByZXR1cm4gbV9zdHlsZS5y
ZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OmRl
ZmF1bHRTdHlsZUZvclRleHQoKQoreworICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRl
KCk7CisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50U2V0dGluZ3MoKSkgewor
ICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAgICAgICAgbV9zdHlsZS0+
Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG1fc3R5
bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7Cit9
CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4dChO
b2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0ZXh0
Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKworICAgIE5vZGUqIHBhcmVudE5vZGUgPSB0ZXh0Tm9kZS0+
cGFyZW50Tm9kZSgpOworICAgIC8vIElmIHRoZSBwYXJlbnQgbm9kZSBpcyBuZWl0aGVyIHNoYWRv
dyByb290IG9yIHNoYWRvdworICAgIC8vIGhvc3QsIHdlIGNhbiB1c2UganVzdCB0aGUgcGFyZW50
IG5vZGUncyBzdHlsZSAoaS5lLgorICAgIC8vIG5vIHJlLWRpc3RyaWJ1dGlvbiBhbmQgbm8gcmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UpLgorICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSB0byBmaW5k
IGEgcGFyZW50IG5vZGUgZm9yIHJlbmRlcmluZyBhbmQKKyAgICAvLyBzdHlsZS4KKyAgICBpZiAo
IXBhcmVudE5vZGUtPmlzU2hhZG93Um9vdCgpICYmICFpc1NoYWRvd0hvc3QocGFyZW50Tm9kZSkp
CisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAgTm9kZVJl
bmRlcmluZ0NvbnRleHQgY29udGV4dCh0ZXh0Tm9kZSk7CisgICAgcmV0dXJuIGNvbnRleHQucmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCkgPyBkZWZhdWx0U3R5bGVGb3JUZXh0KCkgOgorICAgICAgICBj
b250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpLT5yZW5kZXJTdHlsZSgpOwor
fQorCiBzdGF0aWMgdm9pZCBhZGRJbnRyaW5zaWNNYXJnaW5zKFJlbmRlclN0eWxlKiBzdHlsZSkK
IHsKICAgICAvLyBJbnRyaW5zaWMgbWFyZ2luIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKaW5kZXggY2VlYjc0MTMzNmRhYWE0OGQ1MGMzODA2MjAzMTkxYjRkMTcxMjliZS4uZWQ1
MDlhZjc2NTA0OWMwOTM3ZGIwOTIyYWE3ZTg4ZmNiMzFkOGQ4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCkBAIC0xNTEsNiArMTUxLDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlRm9yRWxlbWVudChQc2V1ZG9JZCwgRWxlbWVudCosIFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSk7CiAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBz
dHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
ZGVmYXVsdFN0eWxlRm9yVGV4dCgpOworICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxl
Rm9yVGV4dChOb2RlKik7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5
bGVGb3JEb2N1bWVudChEb2N1bWVudCosIENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAppbmRleCBhOWJl
OTUzNzY5MmU1ZmRlMDUzMGJjMDYwMTc2ZmY1MzBhOTNmMWY3Li43MGRlZjc0Yzg4ODBlZDFlMTVm
YmU3NTZlNjVjNWJjMTA5OTIxNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAtNzEsOCArNzEsMTAgQEAgc3RhdGljIGlubGluZSBi
b29sIG5vZGVDYW5CZURpc3RyaWJ1dGVkKGNvbnN0IE5vZGUqIG5vZGUpCiAKIGlubGluZSB2b2lk
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6UGFyZW50VHJhdmVyc2FsRGV0YWlsczo6ZGlkVHJh
dmVyc2VJbnNlcnRpb25Qb2ludChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQpCiB7Ci0g
ICAgaWYgKCFtX2luc2VydGlvblBvaW50KQorICAgIGlmICghbV9pbnNlcnRpb25Qb2ludCkgewog
ICAgICAgICBtX2luc2VydGlvblBvaW50ID0gaW5zZXJ0aW9uUG9pbnQ7CisgICAgICAgIG1fcmVz
ZXRTdHlsZUluaGVyaXRhbmNlICA9IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHx8IGluc2VydGlv
blBvaW50LT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICB9CiB9CiAKIGlubGluZSB2b2lk
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6UGFyZW50VHJhdmVyc2FsRGV0YWlsczo6ZGlkVHJh
dmVyc2VTaGFkb3dSb290KGNvbnN0IFNoYWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0NjQ2Y2Q4NGEzZDljMGI2NmJmMzIw
MzM2YmQ1MTM5OTU5YzRhNGM3Li5hZDE1M2EwY2IzZjdhYzkwNzJjNTI5NDUwYzZlNTY2MDFmYjVi
NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAg
LTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMjc2
LDEzICsyNzcsMTggQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJG
b3JUZXh0SWZOZWVkZWQoKQogCiAgICAgaWYgKCFzaG91bGRDcmVhdGVSZW5kZXJlcigpKQogICAg
ICAgICByZXR1cm47CisKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gdGhpcy0+
cGFyZW50UmVuZGVyZXIoKTsKICAgICBBU1NFUlQocGFyZW50UmVuZGVyZXIpOwotICAgIG1fc3R5
bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChVTkxJS0VMWShyZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSkpCisgICAgICAgIG1fc3R5bGUgPSBkb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5k
ZWZhdWx0U3R5bGVGb3JUZXh0KCk7CisgICAgZWxzZQorICAgICAgICBtX3N0eWxlID0gcGFyZW50
UmVuZGVyZXItPnN0eWxlKCk7CiAKICAgICBpZiAoIXRleHROb2RlLT50ZXh0UmVuZGVyZXJJc05l
ZWRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0
ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKICAgICBSZW5kZXJUZXh0KiBuZXdSZW5kZXJlciA9IHRleHRO
b2RlLT5jcmVhdGVUZXh0UmVuZGVyZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCksIG1fc3R5bGUu
Z2V0KCkpOwogICAgIGlmICghbmV3UmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0
LmNwcAppbmRleCA2NzM3YWZmZWM3OGEwNmQ0YjBlNDhmYjhmMTlmMTA0YmVjZTYwN2M4Li5lMTc4
ZTVmNjVhYmZmOTFmOWIwY2RkNDBlODUwYzdmZGY2MTU5MmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5o
IgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0yODIsMTYgKzI4
Myw5IEBAIHZvaWQgVGV4dDo6YXR0YWNoKCkKIHZvaWQgVGV4dDo6cmVjYWxjVGV4dFN0eWxlKFN0
eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBSZW5kZXJUZXh0KiByZW5kZXJlciA9IHRvUmVuZGVy
VGV4dCh0aGlzLT5yZW5kZXJlcigpKTsKLSAgICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSBy
ZW5kZXJlciBhbmQgb3VyIHBhcmVudCBkb2Vzbid0IGlzIGlmIG91ciBwYXJlbnQKLSAgICAvLyBp
cyBhIHNoYWRvdyByb290LgotICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIp
IHsKLSAgICAgICAgaWYgKCFwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAg
ICAgcmVuZGVyZXItPnNldFN0eWxlKHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7
Ci0jaWYgRU5BQkxFKFNWRykKLSAgICAgICAgZWxzZSBpZiAoaXNTVkdTaGFkb3dUZXh0KHRoaXMp
KQotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHRvU2hhZG93Um9vdChwYXJlbnROb2Rl
KCkpLT5ob3N0KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOwotI2VuZGlmCi0gICAgfQorCisgICAg
aWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNl
dFN0eWxlKGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsK
IAogICAgIGlmIChuZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDZiMDUxZWQ1YjY2NzA4MzRhYTRkM2MyNmFjZTYzNGYwMzlhZDg2ZTUuLjA5MGFlM2Y4
NWIwZWViMzllN2ViMzQ5ZGY5ZDNhYTE0OWZhYzg5NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0xMi0wNyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgVGV4dCBub2RlcyBpbiBzaGFkb3cgcm9vdHMgZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sOiBBZGRlZC4K
KwogMjAxMi0xMi0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgRWxlbWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1z
aGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYzMDkyNjU1YTRiOGMyZDY1NGU4M2Iz
ZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1zaXpl
OiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFyPC9kaXY+CisgIDxkaXY+PHNwYW4+Zm9vPC9zcGFu
PmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9k
aXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+Rm9vPHNwYW4+QmFyPC9z
cGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5Gb288c3Bhbj5CYXI8L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFk
b3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5YTMzYTE2MDc4M2U3Nzc4NzcwMDhkNTdmNDE3YTE0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICB0ZXh0LWFsaWduOiB0b3A7Cit9Cis8L3N0
eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpIHsK
KyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7CisgICAgdmFy
IHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAi
Zm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3Qu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBkb2N1bWVu
dC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQor
CitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0
YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVz
ZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hh
ZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9u
dFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dCgpIHsKKyAg
ICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0V2l0aERpc3RyaWJ1dGlv
biIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7Cisg
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4xJz48Y29udGVudD48L2Nv
bnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgc2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQor
CitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
IHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHls
ZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3
IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNw
YW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+PC9jb250ZW50Pjwvc3Bhbj4iCisg
ICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnJlc2V0U3R5bGVJbmhlcml0
YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jv
b3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpOwor
ICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7
CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOworICAgIHRlc3REaXN0cmlidXRlZFRleHRXaXRo
UmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0gW2J1ZyAxMDExMTZdIFRleHQgbm9kZXMgaW4gc2hh
ZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkgLS0+CisgIDwhLS0gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNiAtLT4KKyAgPGRpdiBpZD0i
aG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiPjwvZGl2
PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwv
ZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlv
biI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178176</attachid>
            <date>2012-12-07 01:13:28 -0800</date>
            <delta_ts>2012-12-07 01:15:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207181052.patch</filename>
            <type>text/plain</type>
            <size>14651</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uZDY3NWQxMTc4YmE4ZDg2OTNhZDg1ODc1OGFkZTRj
ZDkzZDRkNmYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTA3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IG5vZGVzIGlu
IHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0IHN0eWxlIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgTm9kZVJlbmRlcmluZ0NvbnRl
eHQgdG8gcmVzb2x2ZSBzdHlsZXMgb2YgdGV4dCBub2Rlcy4KKyAgICAgICAgSWYgdGV4dCBub2Rl
cyBhcmUgZGlyZWN0IGNoaWxkcmVuIG9mIHNoYWRvdyByb290cywgdGhlIHRleHQgbm9kZXMKKyAg
ICAgICAgc2hvdWxkIGJlIGluaGVyaXRlZCBzdHlsZXMgZnJvbSB0aGVpciBzaGFkb3cgaG9zdHMu
CisgICAgICAgIEJ1dCBpZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBmbGFnIGlzIHRydWUsIHRo
ZSB0ZXh0IG5vZGVzIHNob3VsZAorICAgICAgICBub3QgYmUgaW5oZXJpdGVkLiBBbmQgaWYgdGV4
dCBub2RlcyBhcmUgZGlzdHJpYnV0ZWQgbm9kZXMsCisgICAgICAgIHdlIGhhdmUgdG8gY2hlY2sg
d2hldGhlciB0aGVpciBpbnNlcnRpb24gcG9pbnQncworICAgICAgICByZXNldC1zdHlsZS1pbmhl
cml0YW5jZS4KKyAgICAgICAgYy5mLiBzaGFkb3cgZG9tIHNwZWMgaXM6CisgICAgICAgIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy93ZWJjb21wb25lbnRzL3Jhdy1maWxlL3RpcC9zcGVjL3NoYWRvdy9p
bmRleC5odG1sI3N0eWxlcworCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudCk6CisgICAgICAg
IE1vZGlmaWVkIHRvIHVzZSBkZWZhdWx0U3R5bGVGb3JFbGVtZW50IGlmIHRoZSBnaXZlbiBlbGVt
ZW50IGhhcworICAgICAgICBubyBwYXJlbnQgc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjppbml0Rm9yU3R5bGVSZXNvbHZlKToKKyAgICAgICAgUmVtb3ZlZCBzaG91bGRS
ZXNldFN0eWxlSW5oZXJpdGFuY2UsIGJlY2F1c2Ugbm93IE5vZGVSZW5kZXJpbmdDb250ZXh0Cisg
ICAgICAgIHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHRha2VzIGNhcmUgb2YgcmVzZXQtc3R5bGUt
aW5oZXJpdGFuY2Ugb2YKKyAgICAgICAgYm90aCBzaGFkb3cgcm9vdHMgYW5kIGluc2VydGlvbiBw
b2ludHMuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkZWZhdWx0U3R5bGVGb3JF
bGVtZW50KToKKyAgICAgICAgQWRkZWQgdG8gY3JlYXRlIGEgZGVmYXVsdCBzdHlsZSBmb3IgZWxl
bWVudHMuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OnN0eWxlRm9yVGV4dCk6CisgICAgICAgIFVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byBm
aW5kIHRoZSBwYXJlbnQgbm9kZSBmb3Igc3R5bGUgZnJvbSB0aGUKKyAgICAgICAgZ2l2ZW4gdGV4
dCBub2RlLiBJZiBubyBwYXJlbnQgbm9kZSBpcyBmb3VuZCBvciByZXNldC1zdHlsZS1pbmhlcml0
YW5jZQorICAgICAgICBpcyB0cnVlIChpLmUuIHRoZSBnaXZlbiBub2RlIGlzIGEgZGlzdHJpYnV0
ZWQgbm9kZSBvciBkaXJlY3QgY2hpbGQgb2YKKyAgICAgICAgYSBzaGFkb3cgcm9vdCksIHJldHVy
bnMgYSBkZWZhdWx0IHN0eWxlIChpLmUuIGVtcHR5IHJlbmRlciBzdHlsZSkuCisgICAgICAgIE90
aGVyd2lzZSwganVzdCByZXR1cm5zIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAq
IGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpQYXJlbnRUcmF2ZXJzYWxEZXRhaWxzOjpkaWRUcmF2ZXJz
ZUluc2VydGlvblBvaW50KToKKyAgICAgICAgTW9kaWZ5IHRvIGNvbnNpZGVyIGluc2VydGlvbiBw
b2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKToKKyAgICAgICAgU2luY2UgTm9kZVJlbmRlcmlu
Z0NvbnRleHQgaGFzIGFscmVhZHkgZm91bmQgYSBwYXJlbnQgbm9kZSBmb3IKKyAgICAgICAgcmVu
ZGVyaW5nIGFuZCBzdHlsZSBhbmQgYSBwYXJlbnRSZW5kZXJlciBpcyBqdXN0IHRoZSBmb3VuZCBu
b2RlJ3MKKyAgICAgICAgcmVuZGVyZXIsIHdlIGhhdmUgdG8gb25seSBjaGVjayByZXNldC1zdHls
ZS1pbmhlcml0YW5jZS4KKyAgICAgICAgSWYgcmVzZXQsIHVzZSBkZWZhdWx0IHN0eWxlLiBPdGhl
cndpc2UsIHRoZSBwYXJlbnRSZW5kZXJlcidzIHN0eWxlLgorICAgICAgICAqIGRvbS9UZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnJlY2FsY1RleHRTdHlsZSk6CisgICAgICAgIFVz
ZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUg
Z2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEgZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJv
b3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFkb3cKKyAgICAgICAgaG9zdC4KKwogMjAxMi0x
Mi0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
RWxlbWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNzI2MzMyMzllMzJlZDc0OTkzYjE3MGIyNWY4MzlkODM5
MmMyNDg0Mi4uZDJmOGFiNDQyMDdmZDhkODA0MjEzODg5NzU5YjZhZmFlNmEyOGUxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtOTY2LDE3ICs5NjYsNiBAQCBpbmxpbmUg
dm9pZCBTdHlsZVJlc29sdmVyOjppbml0RWxlbWVudChFbGVtZW50KiBlKQogICAgIH0KIH0KIAot
aW5saW5lIGJvb2wgc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKE5vZGVSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0KQotewotICAgIGlmIChjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0
aW9uUG9pbnQgPSBjb250ZXh0Lmluc2VydGlvblBvaW50KCkpCi0gICAgICAgIHJldHVybiBpbnNl
cnRpb25Qb2ludC0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxl
bWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCBwc2V1ZG9JRCkKIHsK
ICAgICBtX3BzZXVkb1N0eWxlID0gcHNldWRvSUQ7CkBAIC05ODQsNyArOTczLDcgQEAgaW5saW5l
IHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiBlLCBSZW5k
ZXJTdHlsZSogcGFyZW50U3QKICAgICBpZiAoZSkgewogICAgICAgICBOb2RlUmVuZGVyaW5nQ29u
dGV4dCBjb250ZXh0KGUpOwogICAgICAgICBtX3BhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5v
ZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwotICAgICAgICBtX3BhcmVudFN0eWxlID0gc2hvdWxk
UmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpID8gMCA6CisgICAgICAgIG1fcGFyZW50U3R5
bGUgPSBjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpID8gMCA6CiAgICAgICAgICAgICBw
YXJlbnRTdHlsZSA/IHBhcmVudFN0eWxlIDoKICAgICAgICAgICAgIG1fcGFyZW50Tm9kZSA/IG1f
cGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDA7CiAgICAgICAgIG1fZGlzdHJpYnV0ZWRUb0lu
c2VydGlvblBvaW50ID0gY29udGV4dC5pbnNlcnRpb25Qb2ludCgpOwpAQCAtMTU0OCwxOSArMTUz
NywxMyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgICAgICAgICAgcmV0dXJuIHNoYXJl
ZFN0eWxlOwogICAgIH0KIAotICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0K
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGNsb25lRm9yUGFyZW50OwogCi0gICAgaWYgKG1fcGFy
ZW50U3R5bGUpCisgICAgaWYgKG1fcGFyZW50U3R5bGUpIHsKKyAgICAgICAgbV9zdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGUoKTsKICAgICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20obV9wYXJl
bnRTdHlsZSwgaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hh
ZG93Qm91bmRhcnkgOiBSZW5kZXJTdHlsZTo6Tm90QXRTaGFkb3dCb3VuZGFyeSk7Ci0gICAgZWxz
ZSB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdl
IGRvbid0IGluaGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCi0gICAgICAgIGlmIChT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCkpIHsKLSAgICAgICAgICAgIGlu
aXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOwotICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgp
LnVwZGF0ZShmb250U2VsZWN0b3IoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9z
dHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3N0eWxlID0g
ZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgpOwogICAgICAgICBjbG9uZUZvclBhcmVudCA9IFJlbmRl
clN0eWxlOjpjbG9uZShzdHlsZSgpKTsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNsb25lRm9y
UGFyZW50LmdldCgpOwogICAgIH0KQEAgLTE3OTUsNiArMTc3OCwzOCBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKICAg
ICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQoKQoreworICAgIG1fc3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMg
YXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0IGluaGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQg
c3R5bGUuCisgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50U2V0dGluZ3MoKSkg
eworICAgICAgICBpbml0aWFsaXplRm9udFN0eWxlKHNldHRpbmdzKTsKKyAgICAgICAgbV9zdHls
ZS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG1f
c3R5bGUtPmZvbnQoKS51cGRhdGUoMCk7CisKKyAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7
Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yVGV4
dChOb2RlKiB0ZXh0Tm9kZSkKK3sKKyAgICBBU1NFUlQodGV4dE5vZGUpOworICAgIEFTU0VSVCh0
ZXh0Tm9kZS0+aXNUZXh0Tm9kZSgpKTsKKworICAgIE5vZGUqIHBhcmVudE5vZGUgPSB0ZXh0Tm9k
ZS0+cGFyZW50Tm9kZSgpOworICAgIC8vIElmIHRoZSBwYXJlbnQgbm9kZSBpcyBuZWl0aGVyIHNo
YWRvdyByb290IG9yIHNoYWRvdworICAgIC8vIGhvc3QsIHdlIGNhbiB1c2UganVzdCB0aGUgcGFy
ZW50IG5vZGUncyBzdHlsZSAoaS5lLgorICAgIC8vIG5vIHJlLWRpc3RyaWJ1dGlvbiBhbmQgbm8g
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UpLgorICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSB0byBm
aW5kIGEgcGFyZW50IG5vZGUgZm9yIHJlbmRlcmluZyBhbmQKKyAgICAvLyBzdHlsZS4KKyAgICBp
ZiAoIXBhcmVudE5vZGUtPmlzU2hhZG93Um9vdCgpICYmICFpc1NoYWRvd0hvc3QocGFyZW50Tm9k
ZSkpCisgICAgICAgIHJldHVybiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworCisgICAgTm9k
ZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dCh0ZXh0Tm9kZSk7CisgICAgcmV0dXJuIGNvbnRleHQu
cmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgPyBkZWZhdWx0U3R5bGVGb3JFbGVtZW50KCkgOgorICAg
ICAgICBjb250ZXh0LnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpLT5yZW5kZXJTdHls
ZSgpOworfQorCiBzdGF0aWMgdm9pZCBhZGRJbnRyaW5zaWNNYXJnaW5zKFJlbmRlclN0eWxlKiBz
dHlsZSkKIHsKICAgICAvLyBJbnRyaW5zaWMgbWFyZ2luIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmgKaW5kZXggY2VlYjc0MTMzNmRhYWE0OGQ1MGMzODA2MjAzMTkxYjRkMTcxMjli
ZS4uZTdkNTQ0NWU1ZjMzOWZiMWU5Yzk0ZjcxNmZlZTNmMDFjNjA5NDRiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5oCkBAIC0xNTEsNiArMTUxLDggQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlRm9yRWxlbWVudChQc2V1ZG9JZCwgRWxlbWVu
dCosIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSk7CiAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgpOworICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCosIENTU0ZvbnRTZWxlY3RvciogPSAwKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApp
bmRleCBhOWJlOTUzNzY5MmU1ZmRlMDUzMGJjMDYwMTc2ZmY1MzBhOTNmMWY3Li43MGRlZjc0Yzg4
ODBlZDFlMTVmYmU3NTZlNjVjNWJjMTA5OTIxNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAtNzEsOCArNzEsMTAgQEAgc3RhdGlj
IGlubGluZSBib29sIG5vZGVDYW5CZURpc3RyaWJ1dGVkKGNvbnN0IE5vZGUqIG5vZGUpCiAKIGlu
bGluZSB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6UGFyZW50VHJhdmVyc2FsRGV0YWls
czo6ZGlkVHJhdmVyc2VJbnNlcnRpb25Qb2ludChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9p
bnQpCiB7Ci0gICAgaWYgKCFtX2luc2VydGlvblBvaW50KQorICAgIGlmICghbV9pbnNlcnRpb25Q
b2ludCkgewogICAgICAgICBtX2luc2VydGlvblBvaW50ID0gaW5zZXJ0aW9uUG9pbnQ7CisgICAg
ICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlICA9IG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHx8
IGluc2VydGlvblBvaW50LT5yZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKKyAgICB9CiB9CiAKIGlu
bGluZSB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6UGFyZW50VHJhdmVyc2FsRGV0YWls
czo6ZGlkVHJhdmVyc2VTaGFkb3dSb290KGNvbnN0IFNoYWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0NjQ2Y2Q4NGEzZDlj
MGI2NmJmMzIwMzM2YmQ1MTM5OTU5YzRhNGM3Li5hMDhkYjM3ZDA4OGYzNjI5ZGY0ZWE0ZDk3OWU3
Y2ZhYzg2ZWI4MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1
ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKICNpZiBFTkFCTEUoU1ZH
KQpAQCAtMjc2LDEzICsyNzcsMTggQEAgdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
UmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQogCiAgICAgaWYgKCFzaG91bGRDcmVhdGVSZW5kZXJl
cigpKQogICAgICAgICByZXR1cm47CisKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVy
ID0gdGhpcy0+cGFyZW50UmVuZGVyZXIoKTsKICAgICBBU1NFUlQocGFyZW50UmVuZGVyZXIpOwot
ICAgIG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKKyAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChVTkxJS0VMWShyZXNldFN0
eWxlSW5oZXJpdGFuY2UoKSkpCisgICAgICAgIG1fc3R5bGUgPSBkb2N1bWVudC0+c3R5bGVSZXNv
bHZlcigpLT5kZWZhdWx0U3R5bGVGb3JFbGVtZW50KCk7CisgICAgZWxzZQorICAgICAgICBtX3N0
eWxlID0gcGFyZW50UmVuZGVyZXItPnN0eWxlKCk7CiAKICAgICBpZiAoIXRleHROb2RlLT50ZXh0
UmVuZGVyZXJJc05lZWRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKICAgICBSZW5kZXJUZXh0KiBuZXdSZW5k
ZXJlciA9IHRleHROb2RlLT5jcmVhdGVUZXh0UmVuZGVyZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmV3UmVuZGVyZXIpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UZXh0LmNwcAppbmRleCA2NzM3YWZmZWM3OGEwNmQ0YjBlNDhmYjhmMTlmMTA0YmVj
ZTYwN2M4Li5lMTc4ZTVmNjVhYmZmOTFmOWIwY2RkNDBlODUwYzdmZGY2MTU5MmVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIlN0eWxlSW5o
ZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBA
IC0yODIsMTYgKzI4Myw5IEBAIHZvaWQgVGV4dDo6YXR0YWNoKCkKIHZvaWQgVGV4dDo6cmVjYWxj
VGV4dFN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBSZW5kZXJUZXh0KiByZW5kZXJl
ciA9IHRvUmVuZGVyVGV4dCh0aGlzLT5yZW5kZXJlcigpKTsKLSAgICAvLyBUaGUgb25seSB0aW1l
IHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBhcmVudCBkb2Vzbid0IGlzIGlmIG91ciBwYXJl
bnQKLSAgICAvLyBpcyBhIHNoYWRvdyByb290LgotICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2Ug
JiYgcmVuZGVyZXIpIHsKLSAgICAgICAgaWYgKCFwYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgp
KQotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBhcmVudE5vZGUoKS0+cmVuZGVyZXIo
KS0+c3R5bGUoKSk7Ci0jaWYgRU5BQkxFKFNWRykKLSAgICAgICAgZWxzZSBpZiAoaXNTVkdTaGFk
b3dUZXh0KHRoaXMpKQotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHRvU2hhZG93Um9v
dChwYXJlbnROb2RlKCkpLT5ob3N0KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOwotI2VuZGlmCi0g
ICAgfQorCisgICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5nZSAmJiByZW5kZXJlcikKKyAgICAgICAg
cmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JU
ZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgaWYg
KHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDZiMDUxZWQ1YjY2NzA4MzRhYTRkM2MyNmFjZTYzNGYwMzlhZDg2
ZTUuLjA5MGFlM2Y4NWIwZWViMzllN2ViMzQ5ZGY5ZDNhYTE0OWZhYzg5NDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0xMi0wNyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgVGV4dCBub2RlcyBpbiBzaGFkb3cgcm9vdHMgZG9uJ3QgaW5oZXJpdCBz
dHlsZSBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMi0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgRWxlbWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHBy
ZWZpeGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2Rl
LWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Rl
eHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjYzMDkyNjU1YTRi
OGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKyAgPGRpdiBzdHls
ZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3NwYW4+YmFyPC9kaXY+CisgIDxkaXY+PHNw
YW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJz
cDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+Rm9v
PHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAgPGRpdj5Gb288c3Bhbj5CYXI8L3NwYW4+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQt
bm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5v
ZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTliMGJlYWU5YTMzYTE2MDc4M2U3Nzc4Nzcw
MDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorc3BhbiB7CisgICB0ZXh0LWFsaWduOiB0
b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hh
ZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0
Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAg
ICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4
dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsK
KyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9
ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0
U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBu
ZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhv
c3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVk
VGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0V2l0
aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jv
b3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4xJz48
Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7
CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5mb250U2l6ZSA9
ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJ
bmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJo
b3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFk
b3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+PC9jb250ZW50
Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnJlc2V0
U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owor
ICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9udFNpemUgPSAn
NmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdGVzdENoaWxkVGV4dE9mU2hh
ZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUlu
aGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOworICAgIHRlc3REaXN0cmli
dXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgIDwhLS0gW2J1ZyAxMDExMTZdIFRleHQg
bm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkgLS0+Cisg
IDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNiAtLT4K
KyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJp
dGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+
QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0
aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178177</attachid>
            <date>2012-12-07 01:16:06 -0800</date>
            <delta_ts>2012-12-07 01:27:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207181329.patch</filename>
            <type>text/plain</type>
            <size>14619</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMDgyMmE5MTMxODliNzdiZWMyMDQ0OWVjYTJjYTZhMzgyMzdiZDg3Li5k
Njc1ZDExNzhiYThkODY5M2FkODU4NzU4YWRlNGNkOTNkNGQ2ZjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTYgQEAKKzIwMTItMTItMDcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byByZXNvbHZlIHN0eWxlcyBvZiB0ZXh0
IG5vZGVzLgorICAgICAgICBJZiB0ZXh0IG5vZGVzIGFyZSBkaXJlY3QgY2hpbGRyZW4gb2Ygc2hh
ZG93IHJvb3RzLCB0aGUgdGV4dCBub2RlcworICAgICAgICBzaG91bGQgYmUgaW5oZXJpdGVkIHN0
eWxlcyBmcm9tIHRoZWlyIHNoYWRvdyBob3N0cy4KKyAgICAgICAgQnV0IGlmIHJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlIGZsYWcgaXMgdHJ1ZSwgdGhlIHRleHQgbm9kZXMgc2hvdWxkCisgICAgICAg
IG5vdCBiZSBpbmhlcml0ZWQuIEFuZCBpZiB0ZXh0IG5vZGVzIGFyZSBkaXN0cmlidXRlZCBub2Rl
cywKKyAgICAgICAgd2UgaGF2ZSB0byBjaGVjayB3aGV0aGVyIHRoZWlyIGluc2VydGlvbiBwb2lu
dCdzCisgICAgICAgIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorICAgICAgICBjLmYuIHNoYWRv
dyBkb20gc3BlYyBpczoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNvbXBvbmVu
dHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc3R5bGVzCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbAorCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGRlZmF1bHRTdHls
ZUZvckVsZW1lbnQgaWYgdGhlIGdpdmVuIGVsZW1lbnQgaGFzCisgICAgICAgIG5vIHBhcmVudCBz
dHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29s
dmUpOgorICAgICAgICBSZW1vdmVkIHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZSwgYmVjYXVz
ZSBub3cgTm9kZVJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRhbmNl
KCkgdGFrZXMgY2FyZSBvZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBvZgorICAgICAgICBib3Ro
IHNoYWRvdyByb290cyBhbmQgaW5zZXJ0aW9uIHBvaW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQpOgorICAgICAgICBBZGRlZCB0byBj
cmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciBlbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KToKKyAgICAgICAg
VXNlIE5vZGVSZW5kZXJpbmdDb250ZXh0IHRvIGZpbmQgdGhlIHBhcmVudCBub2RlIGZvciBzdHls
ZSBmcm9tIHRoZQorICAgICAgICBnaXZlbiB0ZXh0IG5vZGUuIElmIG5vIHBhcmVudCBub2RlIGlz
IGZvdW5kIG9yIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlCisgICAgICAgIGlzIHRydWUgKGkuZS4g
dGhlIGdpdmVuIG5vZGUgaXMgYSBkaXN0cmlidXRlZCBub2RlIG9yIGRpcmVjdCBjaGlsZCBvZgor
ICAgICAgICBhIHNoYWRvdyByb290KSwgcmV0dXJucyBhIGRlZmF1bHQgc3R5bGUgKGkuZS4gZW1w
dHkgcmVuZGVyIHN0eWxlKS4KKyAgICAgICAgT3RoZXJ3aXNlLCBqdXN0IHJldHVybnMgdGhlIGZv
dW5kIG5vZGUncyBzdHlsZS4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAg
ICAoU3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OlBhcmVu
dFRyYXZlcnNhbERldGFpbHM6OmRpZFRyYXZlcnNlSW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICBN
b2RpZnkgdG8gY29uc2lkZXIgaW5zZXJ0aW9uIHBvaW50J3MgcmVzZXRTdHlsZUluaGVyaXRhbmNl
LgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQp
OgorICAgICAgICBTaW5jZSBOb2RlUmVuZGVyaW5nQ29udGV4dCBoYXMgYWxyZWFkeSBmb3VuZCBh
IHBhcmVudCBub2RlIGZvcgorICAgICAgICByZW5kZXJpbmcgYW5kIHN0eWxlIGFuZCBhIHBhcmVu
dFJlbmRlcmVyIGlzIGp1c3QgdGhlIGZvdW5kIG5vZGUncworICAgICAgICByZW5kZXJlciwgd2Ug
aGF2ZSB0byBvbmx5IGNoZWNrIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorICAgICAgICBJZiBy
ZXNldCwgdXNlIGRlZmF1bHQgc3R5bGUuIE90aGVyd2lzZSwgdGhlIHBhcmVudFJlbmRlcmVyJ3Mg
c3R5bGUuCisgICAgICAgICogZG9tL1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6
cmVjYWxjVGV4dFN0eWxlKToKKyAgICAgICAgVXNlIHN0eWxlRm9yVGV4dCBpbnN0ZWFkIG9mIHBh
cmVudFJlbmRlcmVyJ3Mgc3R5bGVzIGlmIHRoZSBnaXZlbiB0ZXh0CisgICAgICAgIG5vZGUgaXMg
YSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFkb3cgcm9vdCBvciBhIGRpcmVjdCBjaGlsZCBvZiBhIHNo
YWRvdworICAgICAgICBob3N0LgorCiAyMDEyLTEyLTA2ICBEb21pbmljIENvb25leSAgPGRvbWlu
aWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbGVtZW50LnBzZXVkbyBwcm9wZXJ0eSBzaG91
bGQgYmUgcHJlZml4ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3MjYz
MzIzOWUzMmVkNzQ5OTNiMTcwYjI1ZjgzOWQ4MzkyYzI0ODQyLi41ZGUxMjRjOGQwNDZlNDI0NGEw
MzZiNGMyMGVhNmQ1ZmEwMmY4ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC05NjYsMTcgKzk2Niw2IEBAIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRFbGVt
ZW50KEVsZW1lbnQqIGUpCiAgICAgfQogfQogCi1pbmxpbmUgYm9vbCBzaG91bGRSZXNldFN0eWxl
SW5oZXJpdGFuY2UoTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgaWYgKGNv
bnRleHQucmVzZXRTdHlsZUluaGVyaXRhbmNlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgaWYgKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCA9IGNvbnRleHQuaW5zZXJ0aW9u
UG9pbnQoKSkKLSAgICAgICAgcmV0dXJuIGluc2VydGlvblBvaW50LT5yZXNldFN0eWxlSW5oZXJp
dGFuY2UoKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogaW5saW5lIHZvaWQgU3R5bGVSZXNv
bHZlcjo6aW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSogcGFyZW50
U3R5bGUsIFBzZXVkb0lkIHBzZXVkb0lEKQogewogICAgIG1fcHNldWRvU3R5bGUgPSBwc2V1ZG9J
RDsKQEAgLTk4NCw3ICs5NzMsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0Rm9y
U3R5bGVSZXNvbHZlKEVsZW1lbnQqIGUsIFJlbmRlclN0eWxlKiBwYXJlbnRTdAogICAgIGlmIChl
KSB7CiAgICAgICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQoZSk7CiAgICAgICAgIG1f
cGFyZW50Tm9kZSA9IGNvbnRleHQucGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7Ci0g
ICAgICAgIG1fcGFyZW50U3R5bGUgPSBzaG91bGRSZXNldFN0eWxlSW5oZXJpdGFuY2UoY29udGV4
dCkgPyAwIDoKKyAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNvbnRleHQucmVzZXRTdHlsZUluaGVy
aXRhbmNlKCkgPyAwIDoKICAgICAgICAgICAgIHBhcmVudFN0eWxlID8gcGFyZW50U3R5bGUgOgog
ICAgICAgICAgICAgbV9wYXJlbnROb2RlID8gbV9wYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpIDog
MDsKICAgICAgICAgbV9kaXN0cmlidXRlZFRvSW5zZXJ0aW9uUG9pbnQgPSBjb250ZXh0Lmluc2Vy
dGlvblBvaW50KCk7CkBAIC0xNTQ4LDE5ICsxNTM3LDEzIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5k
ZXJTCiAgICAgICAgICAgICByZXR1cm4gc2hhcmVkU3R5bGU7CiAgICAgfQogCi0gICAgbV9zdHls
ZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKLQogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY2xv
bmVGb3JQYXJlbnQ7CiAKLSAgICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICBpZiAobV9wYXJlbnRT
dHlsZSkgeworICAgICAgICBtX3N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwogICAgICAg
ICBtX3N0eWxlLT5pbmhlcml0RnJvbShtX3BhcmVudFN0eWxlLCBpc0F0U2hhZG93Qm91bmRhcnko
ZWxlbWVudCkgPyBSZW5kZXJTdHlsZTo6QXRTaGFkb3dCb3VuZGFyeSA6IFJlbmRlclN0eWxlOjpO
b3RBdFNoYWRvd0JvdW5kYXJ5KTsKLSAgICBlbHNlIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIG91
ciBmb250cyBhcmUgaW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0aGVtIGZyb20gb3Vy
IHBhcmVudCBzdHlsZS4KLSAgICAgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50
U2V0dGluZ3MoKSkgewotICAgICAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShzZXR0aW5ncyk7
Ci0gICAgICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOworICAg
IH0gZWxzZSB7CisgICAgICAgIG1fc3R5bGUgPSBkZWZhdWx0U3R5bGVGb3JFbGVtZW50KCk7CiAg
ICAgICAgIGNsb25lRm9yUGFyZW50ID0gUmVuZGVyU3R5bGU6OmNsb25lKHN0eWxlKCkpOwogICAg
ICAgICBtX3BhcmVudFN0eWxlID0gY2xvbmVGb3JQYXJlbnQuZ2V0KCk7CiAgICAgfQpAQCAtMTc5
NSw2ICsxNzc4LDM4IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0
eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsK
IH0KIAorUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6ZGVmYXVsdFN0eWxl
Rm9yRWxlbWVudCgpCit7CisgICAgbV9zdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKKyAg
ICAvLyBNYWtlIHN1cmUgb3VyIGZvbnRzIGFyZSBpbml0aWFsaXplZCBpZiB3ZSBkb24ndCBpbmhl
cml0IHRoZW0gZnJvbSBvdXIgcGFyZW50IHN0eWxlLgorICAgIGlmIChTZXR0aW5ncyogc2V0dGlu
Z3MgPSBkb2N1bWVudFNldHRpbmdzKCkpIHsKKyAgICAgICAgaW5pdGlhbGl6ZUZvbnRTdHlsZShz
ZXR0aW5ncyk7CisgICAgICAgIG1fc3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkp
OworICAgIH0gZWxzZQorICAgICAgICBtX3N0eWxlLT5mb250KCkudXBkYXRlKDApOworCisgICAg
cmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOworfQorCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBT
dHlsZVJlc29sdmVyOjpzdHlsZUZvclRleHQoTm9kZSogdGV4dE5vZGUpCit7CisgICAgQVNTRVJU
KHRleHROb2RlKTsKKyAgICBBU1NFUlQodGV4dE5vZGUtPmlzVGV4dE5vZGUoKSk7CisKKyAgICBO
b2RlKiBwYXJlbnROb2RlID0gdGV4dE5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAvLyBJZiB0aGUg
cGFyZW50IG5vZGUgaXMgbmVpdGhlciBzaGFkb3cgcm9vdCBvciBzaGFkb3cKKyAgICAvLyBob3N0
LCB3ZSBjYW4gdXNlIGp1c3QgdGhlIHBhcmVudCBub2RlJ3Mgc3R5bGUgKGkuZS4KKyAgICAvLyBu
byByZS1kaXN0cmlidXRpb24gYW5kIG5vIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlKS4KKyAgICAv
LyBPdGhlcndpc2UsIHdlIGhhdmUgdG8gZmluZCBhIHBhcmVudCBub2RlIGZvciByZW5kZXJpbmcg
YW5kCisgICAgLy8gc3R5bGUuCisgICAgaWYgKCFwYXJlbnROb2RlLT5pc1NoYWRvd1Jvb3QoKSAm
JiAhaXNTaGFkb3dIb3N0KHBhcmVudE5vZGUpKQorICAgICAgICByZXR1cm4gcGFyZW50Tm9kZS0+
cmVuZGVyU3R5bGUoKTsKKworICAgIE5vZGVSZW5kZXJpbmdDb250ZXh0IGNvbnRleHQodGV4dE5v
ZGUpOworICAgIHJldHVybiBjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpID8gZGVmYXVs
dFN0eWxlRm9yRWxlbWVudCgpIDoKKyAgICAgICAgY29udGV4dC5wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKTsKK30KKwogc3RhdGljIHZvaWQgYWRkSW50cmlu
c2ljTWFyZ2lucyhSZW5kZXJTdHlsZSogc3R5bGUpCiB7CiAgICAgLy8gSW50cmluc2ljIG1hcmdp
biB2YWx1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGNlZWI3NDEzMzZkYWFh
NDhkNTBjMzgwNjIwMzE5MWI0ZDE3MTI5YmUuLmU3ZDU0NDVlNWYzMzlmYjFlOWM5NGY3MTZmZWUz
ZjAxYzYwOTQ0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTUxLDYgKzE1
MSw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9TdHlsZUZv
ckVsZW1lbnQoUHNldWRvSWQsIEVsZW1lbnQqLCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUpOwog
CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgp
OworICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGRlZmF1bHRTdHlsZUZvckVsZW1lbnQoKTsK
KyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclRleHQoTm9kZSopOwogCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
LCBDU1NGb250U2VsZWN0b3IqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggYTliZTk1Mzc2OTJlNWZkZTA1MzBiYzA2MDE3
NmZmNTMwYTkzZjFmNy4uNzBkZWY3NGM4ODgwZWQxZTE1ZmJlNzU2ZTY1YzViYzEwOTkyMTVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAK
QEAgLTcxLDggKzcxLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBub2RlQ2FuQmVEaXN0cmlidXRl
ZChjb25zdCBOb2RlKiBub2RlKQogCiBpbmxpbmUgdm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OlBhcmVudFRyYXZlcnNhbERldGFpbHM6OmRpZFRyYXZlcnNlSW5zZXJ0aW9uUG9pbnQoSW5z
ZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KQogewotICAgIGlmICghbV9pbnNlcnRpb25Qb2lu
dCkKKyAgICBpZiAoIW1faW5zZXJ0aW9uUG9pbnQpIHsKICAgICAgICAgbV9pbnNlcnRpb25Qb2lu
dCA9IGluc2VydGlvblBvaW50OworICAgICAgICBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSAgPSBt
X3Jlc2V0U3R5bGVJbmhlcml0YW5jZSB8fCBpbnNlcnRpb25Qb2ludC0+cmVzZXRTdHlsZUluaGVy
aXRhbmNlKCk7CisgICAgfQogfQogCiBpbmxpbmUgdm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OlBhcmVudFRyYXZlcnNhbERldGFpbHM6OmRpZFRyYXZlcnNlU2hhZG93Um9vdChjb25zdCBT
aGFkb3dSb290KiByb290KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5jcHAKaW5kZXggNDY0NmNkODRhM2Q5YzBiNjZiZjMyMDMzNmJkNTEzOTk1OWM0YTRjNy4uYTA4
ZGIzN2QwODhmMzYyOWRmNGVhNGQ5NzllN2NmYWM4NmViODI2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTdHls
ZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTI3NiwxMyArMjc3LDE4IEBAIHZvaWQgTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKCkKIAogICAg
IGlmICghc2hvdWxkQ3JlYXRlUmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgUmVu
ZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IHRoaXMtPnBhcmVudFJlbmRlcmVyKCk7CiAgICAg
QVNTRVJUKHBhcmVudFJlbmRlcmVyKTsKLSAgICBtX3N0eWxlID0gcGFyZW50UmVuZGVyZXItPnN0
eWxlKCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGV4dE5vZGUtPmRvY3VtZW50KCk7CisK
KyAgICBpZiAoVU5MSUtFTFkocmVzZXRTdHlsZUluaGVyaXRhbmNlKCkpKQorICAgICAgICBtX3N0
eWxlID0gZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKS0+ZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgp
OworICAgIGVsc2UKKyAgICAgICAgbV9zdHlsZSA9IHBhcmVudFJlbmRlcmVyLT5zdHlsZSgpOwog
CiAgICAgaWYgKCF0ZXh0Tm9kZS0+dGV4dFJlbmRlcmVySXNOZWVkZWQoKnRoaXMpKQogICAgICAg
ICByZXR1cm47Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGV4dE5vZGUtPmRvY3VtZW50KCk7
CiAgICAgUmVuZGVyVGV4dCogbmV3UmVuZGVyZXIgPSB0ZXh0Tm9kZS0+Y3JlYXRlVGV4dFJlbmRl
cmVyKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpLCBtX3N0eWxlLmdldCgpKTsKICAgICBpZiAoIW5l
d1JlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNjczN2FmZmVj
NzhhMDZkNGIwZTQ4ZmI4ZjE5ZjEwNGJlY2U2MDdjOC4uZTE3OGU1ZjY1YWJmZjkxZjliMGNkZDQw
ZTg1MGM3ZmRmNjE1OTJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2Vu
ZGlmCiAKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMjgyLDE2ICsyODMsOSBAQCB2b2lkIFRleHQ6OmF0
dGFjaCgpCiB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiB7
CiAgICAgUmVuZGVyVGV4dCogcmVuZGVyZXIgPSB0b1JlbmRlclRleHQodGhpcy0+cmVuZGVyZXIo
KSk7Ci0gICAgLy8gVGhlIG9ubHkgdGltZSB3ZSBoYXZlIGEgcmVuZGVyZXIgYW5kIG91ciBwYXJl
bnQgZG9lc24ndCBpcyBpZiBvdXIgcGFyZW50Ci0gICAgLy8gaXMgYSBzaGFkb3cgcm9vdC4KLSAg
ICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHJlbmRlcmVyKSB7Ci0gICAgICAgIGlmICghcGFy
ZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHls
ZShwYXJlbnROb2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOwotI2lmIEVOQUJMRShTVkcpCi0g
ICAgICAgIGVsc2UgaWYgKGlzU1ZHU2hhZG93VGV4dCh0aGlzKSkKLSAgICAgICAgICAgIHJlbmRl
cmVyLT5zZXRTdHlsZSh0b1NoYWRvd1Jvb3QocGFyZW50Tm9kZSgpKS0+aG9zdCgpLT5yZW5kZXJl
cigpLT5zdHlsZSgpKTsKLSNlbmRpZgotICAgIH0KKworICAgIGlmIChjaGFuZ2UgIT0gTm9DaGFu
Z2UgJiYgcmVuZGVyZXIpCisgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShkb2N1bWVudCgpLT5z
dHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dCh0aGlzKSk7CiAKICAgICBpZiAobmVlZHNTdHls
ZVJlY2FsYygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YjA1MWVkNWI2Njcw
ODM0YWE0ZDNjMjZhY2U2MzRmMDM5YWQ4NmU1Li4wOTBhZTNmODViMGVlYjM5ZTdlYjM0OWRmOWQz
YWExNDlmYWM4OTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTItMDcgIFRha2FzaGkg
U2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hh
ZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQtbm9k
ZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMDYgIERvbWlu
aWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVsZW1lbnQucHNl
dWRvIHByb3BlcnR5IHNob3VsZCBiZSBwcmVmaXhlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNiM2Y0NDgyYzY1Y2ExZDg1OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4t
c2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+PHNwYW4+Zm9vPC9z
cGFuPmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bhbj5iYXI8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuIHN0
eWxlPSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwvc3Bhbj48L3NwYW4+PC9kaXY+Cisg
IDxkaXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDZlbTsiPiZu
YnNwOzwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5
YjBiZWFlOWEzM2ExNjA3ODNlNzc3ODc3MDA4ZDU3ZjQxN2ExNDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCkBA
IC0wLDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
K3NwYW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2Z1
bmN0aW9uIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdl
YktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owor
ICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24gdGVzdENoaWxk
VGV4dE9mU2hhZG93Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZSIp
OworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAg
dmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRD
b250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7Cisg
ICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50
LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisK
K2Z1bmN0aW9uIHRlc3REaXN0cmlidXRlZFRleHQoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gIjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9jb250ZW50Pjwvc3Bhbj4iCisgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQo
InNwYW4xIikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3Ry
aWJ1dGVkVGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0
cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhv
c3QpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMic+PGNvbnRl
bnQgaWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+IgorICAgIHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJz
cGFuMiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkg
eworICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsKKyAgICB0ZXN0Q2hpbGRUZXh0T2ZT
aGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIHRlc3REaXN0cmlidXRl
ZFRleHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5j
ZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgor
ICA8IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhl
cml0IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9Imhvc3QiPjwvZGl2PgorICA8ZGl2
IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFdp
dGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9z
dFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bh
bj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178180</attachid>
            <date>2012-12-07 01:27:18 -0800</date>
            <delta_ts>2012-12-11 20:55:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121207182442.patch</filename>
            <type>text/plain</type>
            <size>14162</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMDgyMmE5MTMxODliNzdiZWMyMDQ0OWVjYTJjYTZhMzgyMzdiZDg3Li4z
ODJiNDIxZjlkOTQxNmRjNjVjNWI3Y2VlOGVmNjExMThiNmQ0NTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTUgQEAKKzIwMTItMTItMDcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byByZXNvbHZlIHN0eWxlcyBvZiB0ZXh0
IG5vZGVzLgorICAgICAgICBJZiB0ZXh0IG5vZGVzIGFyZSBkaXJlY3QgY2hpbGRyZW4gb2Ygc2hh
ZG93IHJvb3RzLCB0aGUgdGV4dCBub2RlcworICAgICAgICBzaG91bGQgYmUgaW5oZXJpdGVkIHN0
eWxlcyBmcm9tIHRoZWlyIHNoYWRvdyBob3N0cy4KKyAgICAgICAgQnV0IGlmIHJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlIGZsYWcgaXMgdHJ1ZSwgdGhlIHRleHQgbm9kZXMgc2hvdWxkCisgICAgICAg
IG5vdCBiZSBpbmhlcml0ZWQuIEFuZCBpZiB0ZXh0IG5vZGVzIGFyZSBkaXN0cmlidXRlZCBub2Rl
cywKKyAgICAgICAgd2UgaGF2ZSB0byBjaGVjayB3aGV0aGVyIHRoZWlyIGluc2VydGlvbiBwb2lu
dCdzCisgICAgICAgIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorICAgICAgICBjLmYuIHNoYWRv
dyBkb20gc3BlYyBpczoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNvbXBvbmVu
dHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc3R5bGVzCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbAorCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGRlZmF1bHRTdHls
ZUZvckVsZW1lbnQgaWYgdGhlIGdpdmVuIGVsZW1lbnQgaGFzCisgICAgICAgIG5vIHBhcmVudCBz
dHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29s
dmUpOgorICAgICAgICBSZW1vdmVkIHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZSwgYmVjYXVz
ZSBub3cgTm9kZVJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRhbmNl
KCkgdGFrZXMgY2FyZSBvZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBvZgorICAgICAgICBib3Ro
IHNoYWRvdyByb290cyBhbmQgaW5zZXJ0aW9uIHBvaW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQpOgorICAgICAgICBBZGRlZCB0byBj
cmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciBlbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KToKKyAgICAgICAg
VXNlIE5vZGVSZW5kZXJpbmdDb250ZXh0IHRvIGZpbmQgdGhlIHBhcmVudCBub2RlIGZvciBzdHls
ZSBmcm9tIHRoZQorICAgICAgICBnaXZlbiB0ZXh0IG5vZGUuIElmIG5vIHBhcmVudCBub2RlIGlz
IGZvdW5kIG9yIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlCisgICAgICAgIGlzIHRydWUsIHJldHVy
bnMgYSBkZWZhdWx0IHN0eWxlIChpLmUuIGVtcHR5IHJlbmRlciBzdHlsZSkuCisgICAgICAgIE90
aGVyd2lzZSwganVzdCByZXR1cm5zIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAq
IGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpQYXJlbnRUcmF2ZXJzYWxEZXRhaWxzOjpkaWRUcmF2ZXJz
ZUluc2VydGlvblBvaW50KToKKyAgICAgICAgTW9kaWZ5IHRvIGNvbnNpZGVyIGluc2VydGlvbiBw
b2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKToKKyAgICAgICAgU2luY2UgTm9kZVJlbmRlcmlu
Z0NvbnRleHQgaGFzIGFscmVhZHkgZm91bmQgYSBwYXJlbnQgbm9kZSBmb3IKKyAgICAgICAgcmVu
ZGVyaW5nIGFuZCBzdHlsZSBhbmQgYSBwYXJlbnRSZW5kZXJlciBpcyBqdXN0IHRoZSBmb3VuZCBu
b2RlJ3MKKyAgICAgICAgcmVuZGVyZXIsIHdlIGhhdmUgdG8gb25seSBjaGVjayByZXNldC1zdHls
ZS1pbmhlcml0YW5jZS4KKyAgICAgICAgSWYgcmVzZXQsIHVzZSBkZWZhdWx0IHN0eWxlLiBPdGhl
cndpc2UsIHRoZSBwYXJlbnRSZW5kZXJlcidzIHN0eWxlLgorICAgICAgICAqIGRvbS9UZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnJlY2FsY1RleHRTdHlsZSk6CisgICAgICAgIFVz
ZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUg
Z2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEgZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJv
b3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFkb3cKKyAgICAgICAgaG9zdC4KKwogMjAxMi0x
Mi0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
RWxlbWVudC5wc2V1ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNzI2MzMyMzllMzJlZDc0OTkzYjE3MGIyNWY4MzlkODM5
MmMyNDg0Mi4uNzAxMDVmYjNlZGZmZGNjMTQ1MTQyYjk1M2UxN2QxMGRiZjIxODcyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtOTY2LDE3ICs5NjYsNiBAQCBpbmxpbmUg
dm9pZCBTdHlsZVJlc29sdmVyOjppbml0RWxlbWVudChFbGVtZW50KiBlKQogICAgIH0KIH0KIAot
aW5saW5lIGJvb2wgc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKE5vZGVSZW5kZXJpbmdDb250
ZXh0JiBjb250ZXh0KQotewotICAgIGlmIChjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0
aW9uUG9pbnQgPSBjb250ZXh0Lmluc2VydGlvblBvaW50KCkpCi0gICAgICAgIHJldHVybiBpbnNl
cnRpb25Qb2ludC0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxl
bWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCBwc2V1ZG9JRCkKIHsK
ICAgICBtX3BzZXVkb1N0eWxlID0gcHNldWRvSUQ7CkBAIC05ODQsNyArOTczLDcgQEAgaW5saW5l
IHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiBlLCBSZW5k
ZXJTdHlsZSogcGFyZW50U3QKICAgICBpZiAoZSkgewogICAgICAgICBOb2RlUmVuZGVyaW5nQ29u
dGV4dCBjb250ZXh0KGUpOwogICAgICAgICBtX3BhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5v
ZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwotICAgICAgICBtX3BhcmVudFN0eWxlID0gc2hvdWxk
UmVzZXRTdHlsZUluaGVyaXRhbmNlKGNvbnRleHQpID8gMCA6CisgICAgICAgIG1fcGFyZW50U3R5
bGUgPSBjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpID8gMCA6CiAgICAgICAgICAgICBw
YXJlbnRTdHlsZSA/IHBhcmVudFN0eWxlIDoKICAgICAgICAgICAgIG1fcGFyZW50Tm9kZSA/IG1f
cGFyZW50Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDA7CiAgICAgICAgIG1fZGlzdHJpYnV0ZWRUb0lu
c2VydGlvblBvaW50ID0gY29udGV4dC5pbnNlcnRpb25Qb2ludCgpOwpAQCAtMTU0OCwxOSArMTUz
NywxMyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgICAgICAgICAgcmV0dXJuIHNoYXJl
ZFN0eWxlOwogICAgIH0KIAotICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0K
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGNsb25lRm9yUGFyZW50OwogCi0gICAgaWYgKG1fcGFy
ZW50U3R5bGUpCisgICAgaWYgKG1fcGFyZW50U3R5bGUpIHsKKyAgICAgICAgbV9zdHlsZSA9IFJl
bmRlclN0eWxlOjpjcmVhdGUoKTsKICAgICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20obV9wYXJl
bnRTdHlsZSwgaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hh
ZG93Qm91bmRhcnkgOiBSZW5kZXJTdHlsZTo6Tm90QXRTaGFkb3dCb3VuZGFyeSk7Ci0gICAgZWxz
ZSB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdl
IGRvbid0IGluaGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCi0gICAgICAgIGlmIChT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCkpIHsKLSAgICAgICAgICAgIGlu
aXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOwotICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgp
LnVwZGF0ZShmb250U2VsZWN0b3IoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9z
dHlsZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3N0eWxlID0g
ZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgpOwogICAgICAgICBjbG9uZUZvclBhcmVudCA9IFJlbmRl
clN0eWxlOjpjbG9uZShzdHlsZSgpKTsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNsb25lRm9y
UGFyZW50LmdldCgpOwogICAgIH0KQEAgLTE3OTUsNiArMTc3OCwzMCBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKICAg
ICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQoKQoreworICAgIG1fc3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgLy8gTWFrZSBzdXJlIG91ciBmb250cyBhcmUg
aW5pdGlhbGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0aGVtIGZyb20gb3VyIHBhcmVudCBzdHls
ZS4KKyAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7Cisg
ICAgICAgIGluaXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5m
b250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHls
ZS0+Zm9udCgpLnVwZGF0ZSgwKTsKKworICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30K
KworUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KE5v
ZGUqIHRleHROb2RlKQoreworICAgIEFTU0VSVCh0ZXh0Tm9kZSk7CisgICAgQVNTRVJUKHRleHRO
b2RlLT5pc1RleHROb2RlKCkpOworCisgICAgTm9kZVJlbmRlcmluZ0NvbnRleHQgY29udGV4dCh0
ZXh0Tm9kZSk7CisgICAgTm9kZSogcGFyZW50Tm9kZSA9IGNvbnRleHQucGFyZW50Tm9kZUZvclJl
bmRlcmluZ0FuZFN0eWxlKCk7CisgICAgcmV0dXJuIGNvbnRleHQucmVzZXRTdHlsZUluaGVyaXRh
bmNlKCkgfHwgIXBhcmVudE5vZGUgPworICAgICAgICBkZWZhdWx0U3R5bGVGb3JFbGVtZW50KCkg
OiBwYXJlbnROb2RlLT5yZW5kZXJTdHlsZSgpOworfQorCiBzdGF0aWMgdm9pZCBhZGRJbnRyaW5z
aWNNYXJnaW5zKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKICAgICAvLyBJbnRyaW5zaWMgbWFyZ2lu
IHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggY2VlYjc0MTMzNmRhYWE0
OGQ1MGMzODA2MjAzMTkxYjRkMTcxMjliZS4uZTdkNTQ0NWU1ZjMzOWZiMWU5Yzk0ZjcxNmZlZTNm
MDFjNjA5NDRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0xNTEsNiArMTUx
LDggQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHBzZXVkb1N0eWxlRm9y
RWxlbWVudChQc2V1ZG9JZCwgRWxlbWVudCosIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSk7CiAK
ICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCk7
CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gZGVmYXVsdFN0eWxlRm9yRWxlbWVudCgpOwor
ICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yVGV4dChOb2RlKik7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JEb2N1bWVudChEb2N1bWVudCos
IENTU0ZvbnRTZWxlY3RvciogPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAppbmRleCBhOWJlOTUzNzY5MmU1ZmRlMDUzMGJjMDYwMTc2
ZmY1MzBhOTNmMWY3Li43MGRlZjc0Yzg4ODBlZDFlMTVmYmU3NTZlNjVjNWJjMTA5OTIxNWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApA
QCAtNzEsOCArNzEsMTAgQEAgc3RhdGljIGlubGluZSBib29sIG5vZGVDYW5CZURpc3RyaWJ1dGVk
KGNvbnN0IE5vZGUqIG5vZGUpCiAKIGlubGluZSB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6UGFyZW50VHJhdmVyc2FsRGV0YWlsczo6ZGlkVHJhdmVyc2VJbnNlcnRpb25Qb2ludChJbnNl
cnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQpCiB7Ci0gICAgaWYgKCFtX2luc2VydGlvblBvaW50
KQorICAgIGlmICghbV9pbnNlcnRpb25Qb2ludCkgewogICAgICAgICBtX2luc2VydGlvblBvaW50
ID0gaW5zZXJ0aW9uUG9pbnQ7CisgICAgICAgIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlICA9IG1f
cmVzZXRTdHlsZUluaGVyaXRhbmNlIHx8IGluc2VydGlvblBvaW50LT5yZXNldFN0eWxlSW5oZXJp
dGFuY2UoKTsKKyAgICB9CiB9CiAKIGlubGluZSB2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6UGFyZW50VHJhdmVyc2FsRGV0YWlsczo6ZGlkVHJhdmVyc2VTaGFkb3dSb290KGNvbnN0IFNo
YWRvd1Jvb3QqIHJvb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcAppbmRleCA0NjQ2Y2Q4NGEzZDljMGI2NmJmMzIwMzM2YmQ1MTM5OTU5YzRhNGM3Li5hMDhk
YjM3ZDA4OGYzNjI5ZGY0ZWE0ZDk3OWU3Y2ZhYzg2ZWI4MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxl
SW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMjc2LDEzICsyNzcsMTggQEAgdm9pZCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUmVuZGVyZXJGb3JUZXh0SWZOZWVkZWQoKQogCiAgICAg
aWYgKCFzaG91bGRDcmVhdGVSZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CisKICAgICBSZW5k
ZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gdGhpcy0+cGFyZW50UmVuZGVyZXIoKTsKICAgICBB
U1NFUlQocGFyZW50UmVuZGVyZXIpOwotICAgIG1fc3R5bGUgPSBwYXJlbnRSZW5kZXJlci0+c3R5
bGUoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsKKwor
ICAgIGlmIChVTkxJS0VMWShyZXNldFN0eWxlSW5oZXJpdGFuY2UoKSkpCisgICAgICAgIG1fc3R5
bGUgPSBkb2N1bWVudC0+c3R5bGVSZXNvbHZlcigpLT5kZWZhdWx0U3R5bGVGb3JFbGVtZW50KCk7
CisgICAgZWxzZQorICAgICAgICBtX3N0eWxlID0gcGFyZW50UmVuZGVyZXItPnN0eWxlKCk7CiAK
ICAgICBpZiAoIXRleHROb2RlLT50ZXh0UmVuZGVyZXJJc05lZWRlZCgqdGhpcykpCiAgICAgICAg
IHJldHVybjsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKTsK
ICAgICBSZW5kZXJUZXh0KiBuZXdSZW5kZXJlciA9IHRleHROb2RlLT5jcmVhdGVUZXh0UmVuZGVy
ZXIoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIGlmICghbmV3
UmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA2NzM3YWZmZWM3
OGEwNmQ0YjBlNDhmYjhmMTlmMTA0YmVjZTYwN2M4Li5lMTc4ZTVmNjVhYmZmOTFmOWIwY2RkNDBl
ODUwYzdmZGY2MTU5MmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjZW5k
aWYKIAogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlUmVz
b2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0yODIsMTYgKzI4Myw5IEBAIHZvaWQgVGV4dDo6YXR0
YWNoKCkKIHZvaWQgVGV4dDo6cmVjYWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsK
ICAgICBSZW5kZXJUZXh0KiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dCh0aGlzLT5yZW5kZXJlcigp
KTsKLSAgICAvLyBUaGUgb25seSB0aW1lIHdlIGhhdmUgYSByZW5kZXJlciBhbmQgb3VyIHBhcmVu
dCBkb2Vzbid0IGlzIGlmIG91ciBwYXJlbnQKLSAgICAvLyBpcyBhIHNoYWRvdyByb290LgotICAg
IGlmIChjaGFuZ2UgIT0gTm9DaGFuZ2UgJiYgcmVuZGVyZXIpIHsKLSAgICAgICAgaWYgKCFwYXJl
bnROb2RlKCktPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0jaWYgRU5BQkxFKFNWRykKLSAg
ICAgICAgZWxzZSBpZiAoaXNTVkdTaGFkb3dUZXh0KHRoaXMpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnNldFN0eWxlKHRvU2hhZG93Um9vdChwYXJlbnROb2RlKCkpLT5ob3N0KCktPnJlbmRlcmVy
KCktPnN0eWxlKCkpOwotI2VuZGlmCi0gICAgfQorCisgICAgaWYgKGNoYW5nZSAhPSBOb0NoYW5n
ZSAmJiByZW5kZXJlcikKKyAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKGRvY3VtZW50KCktPnN0
eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JUZXh0KHRoaXMpKTsKIAogICAgIGlmIChuZWVkc1N0eWxl
UmVjYWxjKCkpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZiMDUxZWQ1YjY2NzA4
MzRhYTRkM2MyNmFjZTYzNGYwMzlhZDg2ZTUuLjA5MGFlM2Y4NWIwZWViMzllN2ViMzQ5ZGY5ZDNh
YTE0OWZhYzg5NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMi0wNyAgVGFrYXNoaSBT
YWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGV4dCBub2RlcyBpbiBzaGFk
b3cgcm9vdHMgZG9uJ3QgaW5oZXJpdCBzdHlsZSBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2Rl
LWluLXNoYWRvdy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0wNiAgRG9taW5p
YyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWxlbWVudC5wc2V1
ZG8gcHJvcGVydHkgc2hvdWxkIGJlIHByZWZpeGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YjYzMDkyNjU1YTRiOGMyZDY1NGU4M2IzZjQ0ODJjNjVjYTFkODU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1z
aGFkb3ctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKyAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij48c3Bhbj5mb288L3Nw
YW4+YmFyPC9kaXY+CisgIDxkaXY+PHNwYW4+Zm9vPC9zcGFuPmJhcjwvc3Bhbj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTogNWVtOyI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvc3Bhbj48L2Rpdj4KKyAg
PGRpdj5Gb288c3Bhbj5CYXI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogNmVtOyI+Jm5i
c3A7PC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTli
MGJlYWU5YTMzYTE2MDc4M2U3Nzc4NzcwMDhkNTdmNDE3YTE0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwKQEAg
LTAsMCArMSw2NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
c3BhbiB7CisgICB0ZXh0LWFsaWduOiB0b3A7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Cisg
ICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0Q2hpbGRU
ZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7
CisgICAgdmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKKyAgICB2
YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQorICAgIHNwYW4udGV4dENv
bnRlbnQgPSAiZm9vIjsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOworICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKKyAg
ICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKwor
ZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dCgpIHsKKyAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dS
b290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAiPHNwYW4gaWQ9J3NwYW4xJz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKKyAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgi
c3BhbjEiKS5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOworfQorCitmdW5jdGlvbiB0ZXN0RGlzdHJp
YnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKKyAgICB2YXIgaG9zdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3Ry
aWJ1dGlvbiIpOworICAgIHZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9z
dCk7CisgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48Y29udGVu
dCBpZD0nY29udGVudCc+PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgc2hhZG93Um9vdC5nZXRFbGVt
ZW50QnlJZCgiY29udGVudCIpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7CisgICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNw
YW4yIikuc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CisgICAgdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpOworICAgIHRlc3RDaGlsZFRleHRPZlNo
YWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7CisgICAgdGVzdERpc3RyaWJ1dGVk
VGV4dCgpOworICAgIHRlc3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNl
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cisg
IDwhLS0gW2J1ZyAxMDExMTZdIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVy
aXQgc3R5bGUgcHJvcGVybHkgLS0+CisgIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTExNiAtLT4KKyAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+CisgIDxkaXYg
aWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0V2l0
aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgorICA8ZGl2IGlkPSJob3N0
UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFu
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178955</attachid>
            <date>2012-12-11 20:46:46 -0800</date>
            <delta_ts>2012-12-11 22:25:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101116-20121212134407.patch</filename>
            <type>text/plain</type>
            <size>14160</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMWJkMGY4NDEzN2QxMGQ1OGQ4MTFiM2ZmZWU5YzNjNzIxMjU4MGU3Li43
MTkyMjcyYjQwMGQzZWM3YmUxNjRiOWYyYWI4YmE4MWI0Yjg3NzdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTUgQEAKKzIwMTItMTItMDcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQg
c3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBOb2RlUmVuZGVyaW5nQ29udGV4dCB0byByZXNvbHZlIHN0eWxlcyBvZiB0ZXh0
IG5vZGVzLgorICAgICAgICBJZiB0ZXh0IG5vZGVzIGFyZSBkaXJlY3QgY2hpbGRyZW4gb2Ygc2hh
ZG93IHJvb3RzLCB0aGUgdGV4dCBub2RlcworICAgICAgICBzaG91bGQgYmUgaW5oZXJpdGVkIHN0
eWxlcyBmcm9tIHRoZWlyIHNoYWRvdyBob3N0cy4KKyAgICAgICAgQnV0IGlmIHJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlIGZsYWcgaXMgdHJ1ZSwgdGhlIHRleHQgbm9kZXMgc2hvdWxkCisgICAgICAg
IG5vdCBiZSBpbmhlcml0ZWQuIEFuZCBpZiB0ZXh0IG5vZGVzIGFyZSBkaXN0cmlidXRlZCBub2Rl
cywKKyAgICAgICAgd2UgaGF2ZSB0byBjaGVjayB3aGV0aGVyIHRoZWlyIGluc2VydGlvbiBwb2lu
dCdzCisgICAgICAgIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLgorICAgICAgICBjLmYuIHNoYWRv
dyBkb20gc3BlYyBpczoKKyAgICAgICAgaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmNvbXBvbmVu
dHMvcmF3LWZpbGUvdGlwL3NwZWMvc2hhZG93L2luZGV4Lmh0bWwjc3R5bGVzCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbAorCisgICAgICAg
ICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6c3R5bGVGb3JFbGVtZW50KToKKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGRlZmF1bHRTdHls
ZUZvckVsZW1lbnQgaWYgdGhlIGdpdmVuIGVsZW1lbnQgaGFzCisgICAgICAgIG5vIHBhcmVudCBz
dHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29s
dmUpOgorICAgICAgICBSZW1vdmVkIHNob3VsZFJlc2V0U3R5bGVJbmhlcml0YW5jZSwgYmVjYXVz
ZSBub3cgTm9kZVJlbmRlcmluZ0NvbnRleHQKKyAgICAgICAgcmVzZXRTdHlsZUluaGVyaXRhbmNl
KCkgdGFrZXMgY2FyZSBvZiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBvZgorICAgICAgICBib3Ro
IHNoYWRvdyByb290cyBhbmQgaW5zZXJ0aW9uIHBvaW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQpOgorICAgICAgICBBZGRlZCB0byBj
cmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciBlbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KToKKyAgICAgICAg
VXNlIE5vZGVSZW5kZXJpbmdDb250ZXh0IHRvIGZpbmQgdGhlIHBhcmVudCBub2RlIGZvciBzdHls
ZSBmcm9tIHRoZQorICAgICAgICBnaXZlbiB0ZXh0IG5vZGUuIElmIG5vIHBhcmVudCBub2RlIGlz
IGZvdW5kIG9yIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlCisgICAgICAgIGlzIHRydWUsIHJldHVy
bnMgYSBkZWZhdWx0IHN0eWxlIChpLmUuIGVtcHR5IHJlbmRlciBzdHlsZSkuCisgICAgICAgIE90
aGVyd2lzZSwganVzdCByZXR1cm5zIHRoZSBmb3VuZCBub2RlJ3Mgc3R5bGUuCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAq
IGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpQYXJlbnRUcmF2ZXJzYWxEZXRhaWxzOjpkaWRUcmF2ZXJz
ZUluc2VydGlvblBvaW50KToKKyAgICAgICAgTW9kaWZ5IHRvIGNvbnNpZGVyIGluc2VydGlvbiBw
b2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZS4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVJlbmRlcmVyRm9yVGV4dElmTmVlZGVkKToKKyAgICAgICAgU2luY2UgTm9kZVJlbmRlcmlu
Z0NvbnRleHQgaGFzIGFscmVhZHkgZm91bmQgYSBwYXJlbnQgbm9kZSBmb3IKKyAgICAgICAgcmVu
ZGVyaW5nIGFuZCBzdHlsZSBhbmQgYSBwYXJlbnRSZW5kZXJlciBpcyBqdXN0IHRoZSBmb3VuZCBu
b2RlJ3MKKyAgICAgICAgcmVuZGVyZXIsIHdlIGhhdmUgdG8gb25seSBjaGVjayByZXNldC1zdHls
ZS1pbmhlcml0YW5jZS4KKyAgICAgICAgSWYgcmVzZXQsIHVzZSBkZWZhdWx0IHN0eWxlLiBPdGhl
cndpc2UsIHRoZSBwYXJlbnRSZW5kZXJlcidzIHN0eWxlLgorICAgICAgICAqIGRvbS9UZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnJlY2FsY1RleHRTdHlsZSk6CisgICAgICAgIFVz
ZSBzdHlsZUZvclRleHQgaW5zdGVhZCBvZiBwYXJlbnRSZW5kZXJlcidzIHN0eWxlcyBpZiB0aGUg
Z2l2ZW4gdGV4dAorICAgICAgICBub2RlIGlzIGEgZGlyZWN0IGNoaWxkIG9mIGEgc2hhZG93IHJv
b3Qgb3IgYSBkaXJlY3QgY2hpbGQgb2YgYSBzaGFkb3cKKyAgICAgICAgaG9zdC4KKwogMjAxMi0x
Mi0xMSAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggMzhjNGU3OTJkNGVjZTMxMmExMGUyOTcwOTU2MjA3OTk2NjgzYjdk
Zi4uNjQ5MWE4ZGViY2IyZjg0YzdhZWIzMDJjNGZjYjk5ZjMwYjk0MzA3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtOTY2LDE3ICs5NjYsNiBAQCBpbmxpbmUgdm9pZCBT
dHlsZVJlc29sdmVyOjppbml0RWxlbWVudChFbGVtZW50KiBlKQogICAgIH0KIH0KIAotaW5saW5l
IGJvb2wgc2hvdWxkUmVzZXRTdHlsZUluaGVyaXRhbmNlKE5vZGVSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0KQotewotICAgIGlmIChjb250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9p
bnQgPSBjb250ZXh0Lmluc2VydGlvblBvaW50KCkpCi0gICAgICAgIHJldHVybiBpbnNlcnRpb25Q
b2ludC0+cmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IGlubGluZSB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCog
ZSwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCBwc2V1ZG9JRCkKIHsKICAgICBt
X3BzZXVkb1N0eWxlID0gcHNldWRvSUQ7CkBAIC05ODQsNyArOTczLDcgQEAgaW5saW5lIHZvaWQg
U3R5bGVSZXNvbHZlcjo6aW5pdEZvclN0eWxlUmVzb2x2ZShFbGVtZW50KiBlLCBSZW5kZXJTdHls
ZSogcGFyZW50U3QKICAgICBpZiAoZSkgewogICAgICAgICBOb2RlUmVuZGVyaW5nQ29udGV4dCBj
b250ZXh0KGUpOwogICAgICAgICBtX3BhcmVudE5vZGUgPSBjb250ZXh0LnBhcmVudE5vZGVGb3JS
ZW5kZXJpbmdBbmRTdHlsZSgpOwotICAgICAgICBtX3BhcmVudFN0eWxlID0gc2hvdWxkUmVzZXRT
dHlsZUluaGVyaXRhbmNlKGNvbnRleHQpID8gMCA6CisgICAgICAgIG1fcGFyZW50U3R5bGUgPSBj
b250ZXh0LnJlc2V0U3R5bGVJbmhlcml0YW5jZSgpID8gMCA6CiAgICAgICAgICAgICBwYXJlbnRT
dHlsZSA/IHBhcmVudFN0eWxlIDoKICAgICAgICAgICAgIG1fcGFyZW50Tm9kZSA/IG1fcGFyZW50
Tm9kZS0+cmVuZGVyU3R5bGUoKSA6IDA7CiAgICAgICAgIG1fZGlzdHJpYnV0ZWRUb0luc2VydGlv
blBvaW50ID0gY29udGV4dC5pbnNlcnRpb25Qb2ludCgpOwpAQCAtMTU1MywxOSArMTU0MiwxMyBA
QCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCwgUmVuZGVyUwogICAgICAgICAgICAgcmV0dXJuIHNoYXJlZFN0eWxl
OwogICAgIH0KIAotICAgIG1fc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlKCk7Ci0KICAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IGNsb25lRm9yUGFyZW50OwogCi0gICAgaWYgKG1fcGFyZW50U3R5
bGUpCisgICAgaWYgKG1fcGFyZW50U3R5bGUpIHsKKyAgICAgICAgbV9zdHlsZSA9IFJlbmRlclN0
eWxlOjpjcmVhdGUoKTsKICAgICAgICAgbV9zdHlsZS0+aW5oZXJpdEZyb20obV9wYXJlbnRTdHls
ZSwgaXNBdFNoYWRvd0JvdW5kYXJ5KGVsZW1lbnQpID8gUmVuZGVyU3R5bGU6OkF0U2hhZG93Qm91
bmRhcnkgOiBSZW5kZXJTdHlsZTo6Tm90QXRTaGFkb3dCb3VuZGFyeSk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIC8vIE1ha2Ugc3VyZSBvdXIgZm9udHMgYXJlIGluaXRpYWxpemVkIGlmIHdlIGRvbid0
IGluaGVyaXQgdGhlbSBmcm9tIG91ciBwYXJlbnQgc3R5bGUuCi0gICAgICAgIGlmIChTZXR0aW5n
cyogc2V0dGluZ3MgPSBkb2N1bWVudFNldHRpbmdzKCkpIHsKLSAgICAgICAgICAgIGluaXRpYWxp
emVGb250U3R5bGUoc2V0dGluZ3MpOwotICAgICAgICAgICAgbV9zdHlsZS0+Zm9udCgpLnVwZGF0
ZShmb250U2VsZWN0b3IoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9zdHlsZS0+
Zm9udCgpLnVwZGF0ZSgwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3N0eWxlID0gZGVmYXVs
dFN0eWxlRm9yRWxlbWVudCgpOwogICAgICAgICBjbG9uZUZvclBhcmVudCA9IFJlbmRlclN0eWxl
OjpjbG9uZShzdHlsZSgpKTsKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IGNsb25lRm9yUGFyZW50
LmdldCgpOwogICAgIH0KQEAgLTE4MDgsNiArMTc5MSwyOSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKICAgICByZXR1
cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxl
UmVzb2x2ZXI6OmRlZmF1bHRTdHlsZUZvckVsZW1lbnQoKQoreworICAgIG1fc3R5bGUgPSBSZW5k
ZXJTdHlsZTo6Y3JlYXRlKCk7CisgICAgLy8gTWFrZSBzdXJlIG91ciBmb250cyBhcmUgaW5pdGlh
bGl6ZWQgaWYgd2UgZG9uJ3QgaW5oZXJpdCB0aGVtIGZyb20gb3VyIHBhcmVudCBzdHlsZS4KKyAg
ICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnRTZXR0aW5ncygpKSB7CisgICAgICAg
IGluaXRpYWxpemVGb250U3R5bGUoc2V0dGluZ3MpOworICAgICAgICBtX3N0eWxlLT5mb250KCku
dXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9zdHlsZS0+Zm9u
dCgpLnVwZGF0ZSgwKTsKKworICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKK30KKworUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JUZXh0KFRleHQqIHRl
eHROb2RlKQoreworICAgIEFTU0VSVCh0ZXh0Tm9kZSk7CisKKyAgICBOb2RlUmVuZGVyaW5nQ29u
dGV4dCBjb250ZXh0KHRleHROb2RlKTsKKyAgICBOb2RlKiBwYXJlbnROb2RlID0gY29udGV4dC5w
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICByZXR1cm4gY29udGV4dC5yZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKSB8fCAhcGFyZW50Tm9kZSA/CisgICAgICAgIGRlZmF1bHRTdHls
ZUZvckVsZW1lbnQoKSA6IHBhcmVudE5vZGUtPnJlbmRlclN0eWxlKCk7Cit9CisKIHN0YXRpYyB2
b2lkIGFkZEludHJpbnNpY01hcmdpbnMoUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIC8vIElu
dHJpbnNpYyBtYXJnaW4gdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBk
YzdhYzhhMmI4NDQzMTRkZjJkYWY0YjhiY2JhOWIyODc3ZjBjZDlhLi42NGI2MGQ3NTJiZWFkYjQy
YjlkM2E5MmJmOTU4ZDVjMTIzMTM3Y2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
QEAgLTE1Miw2ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkLCBFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBh
cmVudFN0eWxlKTsKIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUGFnZShp
bnQgcGFnZUluZGV4KTsKKyAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBkZWZhdWx0U3R5bGVG
b3JFbGVtZW50KCk7CisgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JUZXh0KFRl
eHQqKTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckRvY3Vt
ZW50KERvY3VtZW50KiwgQ1NTRm9udFNlbGVjdG9yKiA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCmluZGV4IDEyNDg2YTkxN2E5ZTM2
Y2Q4NDM2ZmNjNjlhNmIwNDZlY2E2Njc5OGMuLmYwMGYyZWZiNDlhMWE0ZTM3MGMzYWZkOTkxOGVh
YzBiMTdkOWI2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuY3BwCkBAIC03Miw4ICs3MiwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbm9kZUNh
bkJlRGlzdHJpYnV0ZWQoY29uc3QgTm9kZSogbm9kZSkKIAogaW5saW5lIHZvaWQgQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjpQYXJlbnRUcmF2ZXJzYWxEZXRhaWxzOjpkaWRUcmF2ZXJzZUluc2Vy
dGlvblBvaW50KEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCkKIHsKLSAgICBpZiAoIW1f
aW5zZXJ0aW9uUG9pbnQpCisgICAgaWYgKCFtX2luc2VydGlvblBvaW50KSB7CiAgICAgICAgIG1f
aW5zZXJ0aW9uUG9pbnQgPSBpbnNlcnRpb25Qb2ludDsKKyAgICAgICAgbV9yZXNldFN0eWxlSW5o
ZXJpdGFuY2UgID0gbV9yZXNldFN0eWxlSW5oZXJpdGFuY2UgfHwgaW5zZXJ0aW9uUG9pbnQtPnJl
c2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIH0KIH0KIAogaW5saW5lIHZvaWQgQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjpQYXJlbnRUcmF2ZXJzYWxEZXRhaWxzOjpkaWRUcmF2ZXJzZVNoYWRv
d1Jvb3QoY29uc3QgU2hhZG93Um9vdCogcm9vdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDJjODlhODhkOWZkNDg2YWJjMTEwNzY5ZGQ2OWQ1ZDE3
ZjU5MTI0ZTAuLjEzMTg3YjU2Y2FlYTg2MWNhNjY1YjdjYWQwOTE5ZWY5M2NhZmQyN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTVkcpCkBAIC0yNjUsMTMgKzI2Niwx
OCBAQCB2b2lkIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVSZW5kZXJlckZvclRleHRJZk5l
ZWRlZCgpCiAKICAgICBpZiAoIXNob3VsZENyZWF0ZVJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVy
bjsKKwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSB0aGlzLT5wYXJlbnRSZW5k
ZXJlcigpOwogICAgIEFTU0VSVChwYXJlbnRSZW5kZXJlcik7Ci0gICAgbV9zdHlsZSA9IHBhcmVu
dFJlbmRlcmVyLT5zdHlsZSgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRleHROb2RlLT5k
b2N1bWVudCgpOworCisgICAgaWYgKHJlc2V0U3R5bGVJbmhlcml0YW5jZSgpKQorICAgICAgICBt
X3N0eWxlID0gZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXIoKS0+ZGVmYXVsdFN0eWxlRm9yRWxlbWVu
dCgpOworICAgIGVsc2UKKyAgICAgICAgbV9zdHlsZSA9IHBhcmVudFJlbmRlcmVyLT5zdHlsZSgp
OwogCiAgICAgaWYgKCF0ZXh0Tm9kZS0+dGV4dFJlbmRlcmVySXNOZWVkZWQoKnRoaXMpKQogICAg
ICAgICByZXR1cm47Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGV4dE5vZGUtPmRvY3VtZW50
KCk7CiAgICAgUmVuZGVyVGV4dCogbmV3UmVuZGVyZXIgPSB0ZXh0Tm9kZS0+Y3JlYXRlVGV4dFJl
bmRlcmVyKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpLCBtX3N0eWxlLmdldCgpKTsKICAgICBpZiAo
IW5ld1JlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNjczN2Fm
ZmVjNzhhMDZkNGIwZTQ4ZmI4ZjE5ZjEwNGJlY2U2MDdjOC4uZTE3OGU1ZjY1YWJmZjkxZjliMGNk
ZDQwZTg1MGM3ZmRmNjE1OTJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAog
I2VuZGlmCiAKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKKyNpbmNsdWRlICJTdHls
ZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtMjgyLDE2ICsyODMsOSBAQCB2b2lkIFRleHQ6
OmF0dGFjaCgpCiB2b2lkIFRleHQ6OnJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2Up
CiB7CiAgICAgUmVuZGVyVGV4dCogcmVuZGVyZXIgPSB0b1JlbmRlclRleHQodGhpcy0+cmVuZGVy
ZXIoKSk7Ci0gICAgLy8gVGhlIG9ubHkgdGltZSB3ZSBoYXZlIGEgcmVuZGVyZXIgYW5kIG91ciBw
YXJlbnQgZG9lc24ndCBpcyBpZiBvdXIgcGFyZW50Ci0gICAgLy8gaXMgYSBzaGFkb3cgcm9vdC4K
LSAgICBpZiAoY2hhbmdlICE9IE5vQ2hhbmdlICYmIHJlbmRlcmVyKSB7Ci0gICAgICAgIGlmICgh
cGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRT
dHlsZShwYXJlbnROb2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCkpOwotI2lmIEVOQUJMRShTVkcp
Ci0gICAgICAgIGVsc2UgaWYgKGlzU1ZHU2hhZG93VGV4dCh0aGlzKSkKLSAgICAgICAgICAgIHJl
bmRlcmVyLT5zZXRTdHlsZSh0b1NoYWRvd1Jvb3QocGFyZW50Tm9kZSgpKS0+aG9zdCgpLT5yZW5k
ZXJlcigpLT5zdHlsZSgpKTsKLSNlbmRpZgotICAgIH0KKworICAgIGlmIChjaGFuZ2UgIT0gTm9D
aGFuZ2UgJiYgcmVuZGVyZXIpCisgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShkb2N1bWVudCgp
LT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yVGV4dCh0aGlzKSk7CiAKICAgICBpZiAobmVlZHNT
dHlsZVJlY2FsYygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NjA2N2E1ZjE2
NDUzYTA2OGZmOWNmYTc4ZGMyOGJhOWM1ZWU0MmMxLi40NjUwYmM4NzQyZWQ4YmZjYTRjZDFlNTcz
ZjNhMGMyZmI2YTZkMjdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTItMDcgIFRha2Fz
aGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRleHQgbm9kZXMgaW4g
c2hhZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3RleHQt
bm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3cuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTEgIENo
cmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgT2Zm
bGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93LWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2I2MzA5MjY1NWE0YjhjMmQ2NTRlODNiM2Y0NDgyYzY1Y2ExZDg1OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hh
ZG93LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGJvZHk+CisgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNWVtOyI+PHNwYW4+Zm9vPC9zcGFu
PmJhcjwvZGl2PgorICA8ZGl2PjxzcGFuPmZvbzwvc3Bhbj5iYXI8L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTogNmVtOyI+Jm5ic3A7PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuIHN0eWxl
PSJmb250LXNpemU6IDVlbTsiPkZvbzxzcGFuPkJhcjwvc3Bhbj48L3NwYW4+PC9kaXY+CisgIDxk
aXY+Rm9vPHNwYW4+QmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDZlbTsiPiZuYnNw
Ozwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZjRh
NzJkZGZiMWVmOTUxYTZmODAzNTBiNjIxYjQ1OTA5YzA0ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCkBAIC0w
LDAgKzEsNjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3Nw
YW4geworICAgdGV4dC1hbGlnbjogdG9wOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RDaGls
ZFRleHRPZlNoYWRvd1Jvb3QoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaG9zdCIpOworICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykK
KyAgICBzcGFuLnRleHRDb250ZW50ID0gImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChzcGFuKTsKKyAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJiYXIiKSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworICAgIGhvc3Quc3R5
bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93
Um9vdFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZSIpOworICAgIHZhciBz
aGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CisgICAgdmFyIHNwYW4g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykKKyAgICBzcGFuLnRleHRDb250ZW50ID0g
ImZvbyI7CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJiYXIiKSk7CisgICAgc2hhZG93
Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3VtZW50LmJvZHkub2Zm
c2V0TGVmdDsKKyAgICBob3N0LnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9u
IHRlc3REaXN0cmlidXRlZFRleHQoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaG9zdFdpdGhEaXN0cmlidXRpb24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
IjxzcGFuIGlkPSdzcGFuMSc+PGNvbnRlbnQ+PC9jb250ZW50Pjwvc3Bhbj4iCisgICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRMZWZ0OworICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4x
Iikuc3R5bGUuZm9udFNpemUgPSAnNWVtJzsKK30KKworZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVk
VGV4dFdpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7CisgICAgdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaG9zdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRp
b24iKTsKKyAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OworICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzcGFuMic+PGNvbnRlbnQg
aWQ9J2NvbnRlbnQnPjwvY29udGVudD48L3NwYW4+IgorICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0TGVmdDsKKyAgICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJzcGFu
MiIpLnN0eWxlLmZvbnRTaXplID0gJzZlbSc7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgewor
ICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3QoKTsKKyAgICB0ZXN0Q2hpbGRUZXh0T2ZTaGFk
b3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpOworICAgIHRlc3REaXN0cmlidXRlZFRl
eHQoKTsKKyAgICB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorICA8
IS0tIFtidWcgMTAxMTE2XSBUZXh0IG5vZGVzIGluIHNoYWRvdyByb290cyBkb24ndCBpbmhlcml0
IHN0eWxlIHByb3Blcmx5IC0tPgorICA8IS0tIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDExMTYgLS0+CisgIDxkaXYgaWQ9Imhvc3QiPjwvZGl2PgorICA8ZGl2IGlk
PSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFdpdGhE
aXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48L2Rpdj4KKyAgPGRpdiBpZD0iaG9zdFJl
c2V0U3R5bGVJbmhlcml0YW5jZVdpdGhEaXN0cmlidXRpb24iPkZvbzxzcGFuPkJhcjwvc3Bhbj48
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>