<?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>99520</bug_id>
          
          <creation_ts>2012-10-16 16:03:52 -0700</creation_ts>
          <short_desc>Context menu generated from touch gestures on textareas has context of the cursor position instead of the position where the event occurs.</short_desc>
          <delta_ts>2012-10-23 17:26:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100019</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Varun Jain">varunjain</reporter>
          <assigned_to name="Varun Jain">varunjain</assigned_to>
          <cc>abarth</cc>
    
    <cc>olilan</cc>
    
    <cc>rjkroege</cc>
    
    <cc>rniwa</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743658</commentid>
    <comment_count>0</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-16 16:03:52 -0700</bug_when>
    <thetext>[chromium] Context menu generated from touch gestures on textareas has context of the cursor position instead of the position where the event occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743661</commentid>
    <comment_count>1</comment_count>
      <attachid>169047</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-16 16:06:29 -0700</bug_when>
    <thetext>Created attachment 169047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743668</commentid>
    <comment_count>2</comment_count>
      <attachid>169048</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-16 16:12:27 -0700</bug_when>
    <thetext>Created attachment 169048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743754</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-16 18:00:07 -0700</bug_when>
    <thetext>Looks reasonable, but I&apos;m not an expert on this code code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744444</commentid>
    <comment_count>4</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 11:21:56 -0700</bug_when>
    <thetext>Describing the bug a bit more as requested by reviewers:

in a textarea, type a mis-spelled word, then move the cursor to some other word in the same area, then summon context menu by doing a touch gesture on the mis-spelled word. The context menu does not contain spelling suggestions because its the menu for the word where the cursor is, not where the gesture was made.

This is chromium specific. the chromium bug is here: https://code.google.com/p/chromium/issues/detail?id=152783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744449</commentid>
    <comment_count>5</comment_count>
      <attachid>169223</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 11:25:49 -0700</bug_when>
    <thetext>Created attachment 169223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744451</commentid>
    <comment_count>6</comment_count>
      <attachid>169048</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-17 11:26:29 -0700</bug_when>
    <thetext>Comment on attachment 169048
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:2527
&gt; +    case PlatformEvent::GestureTwoFingerTap:
&gt; +        return handleGestureTwoFingerTap(gestureEvent);

This is clearly not a Chromium-specific bug given that you&apos;re modifying platform-agnostic code in WebCore.

&gt; Source/WebCore/page/EventHandler.cpp:2799
&gt; +    handleMousePressEvent(mouseEvent);

Why are we adding this?

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Please use HTML5 style DOCTYPE: &lt;!DOCTYPE html&gt;

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:4
&gt; +&lt;script src=&quot;../../../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

Why are we including js-test-pre if we&apos;re not using any of its features?

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:6
&gt; +&lt;body onload=&quot;test()&quot;&gt;

Do we really need to wait until load event fires?

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:24
&gt; +    if (text.selectionStart)
&gt; +        return text.selectionStart;

All ports ship with selectionStart IDL property. There&apos;s no need for this function to exist.

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:32
&gt; +    if (text.setSelectionRange) {

All ports ship with setSelectionRange. There&apos;s no need to check this condition.

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:37
&gt; +    } else {
&gt; +        debug(&quot;setSelectionRange not supported by this platform&quot;);
&gt; +    }

No curly brackets around a single statement.

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:51
&gt; +        if (longPressTested &amp;&amp; getCursorPosition() == 63) {
&gt; +            document.getElementById(&quot;result&quot;).innerHTML = &quot;PASS&quot;;
&gt; +        }

Ditto.

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:68
&gt; +    if (eventSender.gestureLongPress) {
&gt; +        eventSender.gestureLongPress(x, y);
&gt; +    } else {

Ditto.

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:74
&gt; +    if (eventSender.gestureTwoFingerTap) {
&gt; +        eventSender.gestureTwoFingerTap(x + 20, y);
&gt; +    } else {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744457</commentid>
    <comment_count>7</comment_count>
      <attachid>169223</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-17 11:36:22 -0700</bug_when>
    <thetext>Comment on attachment 169223
Patch

Please see my previous comment for why I&apos;m r-ing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744538</commentid>
    <comment_count>8</comment_count>
      <attachid>169241</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 13:11:47 -0700</bug_when>
    <thetext>Created attachment 169241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744541</commentid>
    <comment_count>9</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 13:14:54 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 169048 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169048&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2527
&gt; &gt; +    case PlatformEvent::GestureTwoFingerTap:
&gt; &gt; +        return handleGestureTwoFingerTap(gestureEvent);
&gt; 
&gt; This is clearly not a Chromium-specific bug given that you&apos;re modifying platform-agnostic code in WebCore.

Done.

&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2799
&gt; &gt; +    handleMousePressEvent(mouseEvent);
&gt; 
&gt; Why are we adding this?

This makes gesture-driven context menu behave exactly like right-click context menu. For right click, we send a mouse press event before the context menu. This does any tasks necessary before getting the context menu, including placing the cursor at the right place so we can get the correct context.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; Please use HTML5 style DOCTYPE: &lt;!DOCTYPE html&gt;
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:4
&gt; &gt; +&lt;script src=&quot;../../../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Why are we including js-test-pre if we&apos;re not using any of its features?
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:6
&gt; &gt; +&lt;body onload=&quot;test()&quot;&gt;
&gt; 
&gt; Do we really need to wait until load event fires?
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:24
&gt; &gt; +    if (text.selectionStart)
&gt; &gt; +        return text.selectionStart;
&gt; 
&gt; All ports ship with selectionStart IDL property. There&apos;s no need for this function to exist.
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:32
&gt; &gt; +    if (text.setSelectionRange) {
&gt; 
&gt; All ports ship with setSelectionRange. There&apos;s no need to check this condition.
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:37
&gt; &gt; +    } else {
&gt; &gt; +        debug(&quot;setSelectionRange not supported by this platform&quot;);
&gt; &gt; +    }
&gt; 
&gt; No curly brackets around a single statement.
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:51
&gt; &gt; +        if (longPressTested &amp;&amp; getCursorPosition() == 63) {
&gt; &gt; +            document.getElementById(&quot;result&quot;).innerHTML = &quot;PASS&quot;;
&gt; &gt; +        }
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:68
&gt; &gt; +    if (eventSender.gestureLongPress) {
&gt; &gt; +        eventSender.gestureLongPress(x, y);
&gt; &gt; +    } else {
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:74
&gt; &gt; +    if (eventSender.gestureTwoFingerTap) {
&gt; &gt; +        eventSender.gestureTwoFingerTap(x + 20, y);
&gt; &gt; +    } else {
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744543</commentid>
    <comment_count>10</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 13:16:07 -0700</bug_when>
    <thetext>clicked &quot;commit&quot; without replying to your other comments :(

(In reply to comment #6)
&gt; (From update of attachment 169048 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169048&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2527
&gt; &gt; +    case PlatformEvent::GestureTwoFingerTap:
&gt; &gt; +        return handleGestureTwoFingerTap(gestureEvent);
&gt; 
&gt; This is clearly not a Chromium-specific bug given that you&apos;re modifying platform-agnostic code in WebCore.
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2799
&gt; &gt; +    handleMousePressEvent(mouseEvent);
&gt; 
&gt; Why are we adding this?
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; Please use HTML5 style DOCTYPE: &lt;!DOCTYPE html&gt;
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:4
&gt; &gt; +&lt;script src=&quot;../../../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Why are we including js-test-pre if we&apos;re not using any of its features?
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:6
&gt; &gt; +&lt;body onload=&quot;test()&quot;&gt;
&gt; 
&gt; Do we really need to wait until load event fires?

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:24
&gt; &gt; +    if (text.selectionStart)
&gt; &gt; +        return text.selectionStart;
&gt; 
&gt; All ports ship with selectionStart IDL property. There&apos;s no need for this function to exist.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:32
&gt; &gt; +    if (text.setSelectionRange) {
&gt; 
&gt; All ports ship with setSelectionRange. There&apos;s no need to check this condition.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:37
&gt; &gt; +    } else {
&gt; &gt; +        debug(&quot;setSelectionRange not supported by this platform&quot;);
&gt; &gt; +    }
&gt; 
&gt; No curly brackets around a single statement.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:51
&gt; &gt; +        if (longPressTested &amp;&amp; getCursorPosition() == 63) {
&gt; &gt; +            document.getElementById(&quot;result&quot;).innerHTML = &quot;PASS&quot;;
&gt; &gt; +        }
&gt; 
&gt; Ditto.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:68
&gt; &gt; +    if (eventSender.gestureLongPress) {
&gt; &gt; +        eventSender.gestureLongPress(x, y);
&gt; &gt; +    } else {
&gt; 
&gt; Ditto.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:74
&gt; &gt; +    if (eventSender.gestureTwoFingerTap) {
&gt; &gt; +        eventSender.gestureTwoFingerTap(x + 20, y);
&gt; &gt; +    } else {
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744550</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-17 13:20:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #6)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/EventHandler.cpp:2799
&gt; &gt; &gt; +    handleMousePressEvent(mouseEvent);
&gt; &gt; 
&gt; &gt; Why are we adding this?
&gt; 
&gt; This makes gesture-driven context menu behave exactly like right-click context menu. For right click, we send a mouse press event before the context menu. This does any tasks necessary before getting the context menu, including placing the cursor at the right place so we can get the correct context.

I&apos;m sorry but I don&apos;t think I can review this patch. I don&apos;t know enough about this code to tell the consequences of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744661</commentid>
    <comment_count>12</comment_count>
      <attachid>169241</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 14:58:01 -0700</bug_when>
    <thetext>Comment on attachment 169241
Patch

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

Please fix my comments before landing

&gt; Source/WebKit/chromium/ChangeLog:13
&gt; +        * src/WebViewImpl.cpp:
&gt; +        (WebKit::WebViewImpl::handleGestureEvent):

I would write that you are now using the same code path as WebInputEvent::GestureLongPress

&gt; Source/WebCore/page/EventHandler.cpp:2799
&gt; +    handleMousePressEvent(mouseEvent);

I would add a comment why mouse release it not needed

&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:7
&gt; +This test checks that on long press gesture in a text area, the cursor is

or two finger?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744707</commentid>
    <comment_count>13</comment_count>
      <attachid>169275</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 15:32:19 -0700</bug_when>
    <thetext>Created attachment 169275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744708</commentid>
    <comment_count>14</comment_count>
      <attachid>169241</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-17 15:32:59 -0700</bug_when>
    <thetext>Comment on attachment 169241
Patch

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

&gt;&gt; Source/WebKit/chromium/ChangeLog:13
&gt;&gt; +        (WebKit::WebViewImpl::handleGestureEvent):
&gt; 
&gt; I would write that you are now using the same code path as WebInputEvent::GestureLongPress

Done.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2799
&gt;&gt; +    handleMousePressEvent(mouseEvent);
&gt; 
&gt; I would add a comment why mouse release it not needed

Done.

&gt;&gt; LayoutTests/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html:7
&gt;&gt; +This test checks that on long press gesture in a text area, the cursor is
&gt; 
&gt; or two finger?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745272</commentid>
    <comment_count>15</comment_count>
      <attachid>169275</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-10-18 08:22:03 -0700</bug_when>
    <thetext>Comment on attachment 169275
Patch

Code looks reasonable. I would replace &apos;fake&apos; by &apos;synthetic&apos; throughout though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745274</commentid>
    <comment_count>16</comment_count>
      <attachid>169417</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-18 08:26:51 -0700</bug_when>
    <thetext>Created attachment 169417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745275</commentid>
    <comment_count>17</comment_count>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-18 08:27:05 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 169275 [details])
&gt; Code looks reasonable. I would replace &apos;fake&apos; by &apos;synthetic&apos; throughout though.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747770</commentid>
    <comment_count>18</comment_count>
      <attachid>169417</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 12:21:13 -0700</bug_when>
    <thetext>Comment on attachment 169417
Patch

Clearing flags on attachment: 169417

Committed r132119: &lt;http://trac.webkit.org/changeset/132119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747771</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 12:21:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747813</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 13:16:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 100019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749087</commentid>
    <comment_count>21</comment_count>
      <attachid>170258</attachid>
    <who name="Varun Jain">varunjain</who>
    <bug_when>2012-10-23 16:01:24 -0700</bug_when>
    <thetext>Created attachment 170258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749151</commentid>
    <comment_count>22</comment_count>
      <attachid>170258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 17:26:29 -0700</bug_when>
    <thetext>Comment on attachment 170258
Patch

Clearing flags on attachment: 170258

Committed r132283: &lt;http://trac.webkit.org/changeset/132283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749152</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 17:26:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169047</attachid>
            <date>2012-10-16 16:06:29 -0700</date>
            <delta_ts>2012-10-16 16:12:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121016190517.patch</filename>
            <type>text/plain</type>
            <size>10210</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uZDNmMzJhNDU2YjU4OThiODFlYzJmZWE3Y2M3MmYw
YjA1ZjA5MmU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENv
bnRleHQgbWVudSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFz
CisgICAgICAgIGNvbnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBw
b3NpdGlvbiB3aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIGZha2UgbW91c2UgZG93biBldmVudCBmb3IgY29u
dGV4dCBtZW51LXN1bW1vbmluZy1nZXN0dXJlIGV2ZW50cyBzbworICAgICAgICB0aGF0IHRleHRh
cmVhcyBjYW4gY29ycmVjdGx5IHNldCBjdXJzb3JzIGJlZm9yZSByZWNlaXZpbmcgdGhlIGNvbnRl
eHQgbWVudSBldmVudC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1s
CisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXApOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9y
R2VzdHVyZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50
SGFuZGxlcik6CisKIDIwMTItMTAtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3drMl0gSW1wbGVtZW50IFBERlBsdWdpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA1MzI0M2NhYTVlZTJjYzFmMGY1ZjhlN2FhODBiZTkyODU0N2U1YzVm
Li42MDMzNmI2YmY2NWZiMTJjZTg5MDU3YjdkNDA1MzllMDhlOGIzMDlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE2ICBWYXJ1biBKYWluICA8
dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENvbnRleHQgbWVu
dSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAg
IGNvbnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3
aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIGZha2UgbW91c2UgZG93biBldmVudCBmb3IgY29udGV4dCBtZW51
LXN1bW1vbmluZy1nZXN0dXJlIGV2ZW50cyBzbworICAgICAgICB0aGF0IHRleHRhcmVhcyBjYW4g
Y29ycmVjdGx5IHNldCBjdXJzb3JzIGJlZm9yZSByZWNlaXZpbmcgdGhlIGNvbnRleHQgbWVudSBl
dmVudC4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorCiAyMDEyLTEwLTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdXNl
ZCBmcmFtZUZvckVudGVyZWRDb250ZXh0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDVlZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjU3ZjE1
ODdjMjVlMmZiYmY4YTUwOWRlODE4ZGFjMWI1YzZmNDg2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTI1MjMsNiArMjUyMyw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVu
dCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUYXBEb3duKCk7CiAgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICByZXR1cm4gaGFuZGxlR2VzdHVy
ZUxvbmdQcmVzcyhnZXN0dXJlRXZlbnQpOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVR3b0ZpbmdlclRhcDoKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAo
Z2VzdHVyZUV2ZW50KTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6
CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKQEAgLTI1ODksNiArMjU5MSwxNSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1
cmVFdmVudCYgZ2VzdHVyZUV2ZQogI2VuZGlmCiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVHZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJl
RXZlbnQpCit7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgcmV0dXJuIHNlbmRDb250
ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShnZXN0dXJlRXZlbnQpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVTY3Jv
bGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKICAg
ICByZXR1cm4gaGFuZGxlR2VzdHVyZVNjcm9sbENvcmUoZ2VzdHVyZUV2ZW50LCBTY3JvbGxCeVBp
eGVsV2hlZWxFdmVudCwgdHJ1ZSk7CkBAIC0yNzg0LDcgKzI3OTUsOCBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50JiBldgogICAgIGlmICghZXZlbnQuYXJlYSgpLmlzRW1wdHkoKSkKICAgICAgICAgYWRq
dXN0R2VzdHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1c3RlZFBvaW50KTsKICNlbmRpZgotICAgIFBs
YXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCkpOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3Vz
ZUV2ZW50KGV2ZW50LnBvc2l0aW9uKCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIFJpZ2h0QnV0
dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6OmN1cnJl
bnRUaW1lKCkpOworICAgIGhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBy
ZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiB9CiAjZW5kaWYgLy8gRU5B
QkxFKEdFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggYTYw
NGRhMmM4NDBlMzIxYjZkN2QxYzg1MTAyMjU5NzJkYThiMTg4YS4uOWEzNjFmMmRhYzQyZDExNzdm
NmJhNGI5MmQ4ZGYzZWQ4MDQxN2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBA
IC0xNjgsNiArMTY4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlVGFwKGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlTG9uZ1By
ZXNzKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVHZXN0dXJl
VHdvRmluZ2VyVGFwKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5k
bGVHZXN0dXJlU2Nyb2xsVXBkYXRlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGMx
YzljODJjMmQ4MTIyNDgxZTU1YzA3ZTBjOGU5YWJlNGUyN2VlNTUuLjJkNDliODlmYTRiYjYxODIx
NmY1ZjU3ZWE3MGY4YmM2OTYzZGRhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKQEAgLTc0MiwxOCArNzQyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFu
ZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRh
cDogewotICAgICAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5m
cmFtZVZpZXcoKSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIG1fcGFnZS0+Y29udGV4
dE1lbnVDb250cm9sbGVyKCktPmNsZWFyQ29udGV4dE1lbnUoKTsKLSAgICAgICAgbV9jb250ZXh0
TWVudUFsbG93ZWQgPSB0cnVlOwotICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIg
cGxhdGZvcm1FdmVudChtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAg
ICAgIGV2ZW50U3dhbGxvd2VkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRs
ZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlKHBsYXRmb3JtRXZlbnQpOwotICAg
ICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IGZhbHNlOwotCi0gICAgICAgIGJyZWFrOwotICAg
IH0KKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOiB7CiAgICAgICAgIGlmICghbWFpbkZy
YW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZDdiZDI1NjcwZmMyYjIzZTdiY2ZkMzRkNDllNzc4NjUzMDVmMmI4ZC4u
ZDQ4YmY3ZTc4Yjk2OTZkODJjZmVmYmZjMGUwMzY2YjFhYWMzYzI5NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTEwLTE2ICBWYXJ1biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbY2hyb21pdW1dIENvbnRleHQgbWVudSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBn
ZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAgIGNvbnRleHQgb2YgdGhlIGN1cnNvciBw
b3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIGZha2Ug
bW91c2UgZG93biBldmVudCBmb3IgY29udGV4dCBtZW51LXN1bW1vbmluZy1nZXN0dXJlIGV2ZW50
cyBzbyB0aGF0CisgICAgICAgIHRleHRhcmVhcyBjYW4gY29ycmVjdGx5IHNldCBjdXJzb3JzIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIGNvbnRleHQgbWVudSBldmVudC4KKworICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1j
b3JyZWN0LXBvc2l0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNv
ci1hdC1jb3JyZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMTAtMTIg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdh
cmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdl
c3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
N2RmODczMDEzNGJlNGYwZmQ0M2ZiZWRkZTdkYjYxMTE1MmQ1OTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1
cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsODEgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwPgorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IG9uIGxvbmcgcHJlc3MgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwgdGhl
IGN1cnNvciBpcworZmlyc3Qgc2V0IHRvIHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25l
IGJ5IHNlbmRpbmcgYSByaWdodCBtb3VzZSBidXR0b24KK2Rvd24gZXZlbnQganVzdCBiZWZvcmUg
bG9uZyBwcmVzcykuCis8L3A+Cis8dGV4dGFyZWEgaWQ9InRleHQiIHJvd3M9IjUiIGNvbHM9IjMx
Ij4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBvbiBsb25nIHByZXNzIGdlc3R1cmUgaW4gYSB0ZXh0
IGFyZWEsIHRoZSBjdXJzb3IgaXMKK2ZpcnN0IHNldCB0byB0aGUgcmlnaHQgcG9zaXRpb24gKHRo
aXMgaXMgZG9uZSBieSBzZW5kaW5nIGEgcmlnaHQgbW91c2UgYnV0dG9uCitkb3duIGV2ZW50IGp1
c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorPC90ZXh0YXJlYT4KKzxkaXYgaWQ9InRleHQiPlRlc3Rp
bmc8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IGdldEN1cnNvclBvc2l0aW9uKCkKK3sKKyAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Iik7CisgICAgaWYgKHRleHQuc2VsZWN0aW9uU3RhcnQpCisgICAgICAgIHJl
dHVybiB0ZXh0LnNlbGVjdGlvblN0YXJ0OworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIDA7Cit9
CisKK2Z1bmN0aW9uIHNldEN1cnNvclBvc2l0aW9uKHBvc2l0aW9uKQoreworICAgIHZhciB0ZXh0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKyAgICBpZiAodGV4dC5zZXRTZWxl
Y3Rpb25SYW5nZSkgeworICAgICAgICB0ZXh0LmZvY3VzKCk7CisgICAgICAgIHRleHQuc2V0U2Vs
ZWN0aW9uUmFuZ2UocG9zaXRpb24sIHBvc2l0aW9uKTsKKyAgICB9IGVsc2UgeworICAgICAgICBk
ZWJ1Zygic2V0U2VsZWN0aW9uUmFuZ2Ugbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtIik7
CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgc2V0Q3Vyc29yUG9z
aXRpb24oMCk7CisKKyAgICB2YXIgbG9uZ1ByZXNzVGVzdGVkID0gZmFsc2U7CisgICAgZG9jdW1l
bnQub25jb250ZXh0bWVudSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAobG9uZ1ByZXNzVGVz
dGVkICYmIGdldEN1cnNvclBvc2l0aW9uKCkgPT0gNjMpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIWxvbmdQcmVzc1Rlc3RlZCAmJiBnZXRDdXJzb3JQb3NpdGlvbigpID09
IDYxKSB7CisgICAgICAgICAgICBzZXRDdXJzb3JQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGxv
bmdQcmVzc1Rlc3RlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgdGV4dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisKKyAgICB2YXIgeCA9IHRleHQub2Zm
c2V0TGVmdCArIDEwOworICAgIHZhciB5ID0gdGV4dC5vZmZzZXRUb3AgKyA0MDsKKworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGV2ZW50U2Vu
ZGVyLmdlc3R1cmVMb25nUHJlc3MpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQ
cmVzcyh4LCB5KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1ZygiZ2VzdHVyZUxvbmdQcmVz
cyBub3QgaW1wbGVtZW50ZWQgYnkgdGhpcyBwbGF0Zm9ybSIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlVHdvRmluZ2VyVGFwKSB7CisgICAgICAg
IGV2ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXAoeCArIDIwLCB5KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBkZWJ1ZygiZ2VzdHVyZVR3b0ZpbmdlclRhcCBub3QgaW1wbGVtZW50ZWQgYnkg
dGhpcyBwbGF0Zm9ybSIpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJz
b3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVz
LXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWYwZGYxYWEwOTFmMDBkNTI0MjEwZGYzMTFiNzM4MDYwNjFiNjEyZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1
cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBvbiBsb25n
IHByZXNzIGdlc3R1cmUgaW4gYSB0ZXh0IGFyZWEsIHRoZSBjdXJzb3IgaXMgZmlyc3Qgc2V0IHRv
IHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodCBtb3Vz
ZSBidXR0b24gZG93biBldmVudCBqdXN0IGJlZm9yZSBsb25nIHByZXNzKS4KKworCitUZXN0aW5n
CitQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169048</attachid>
            <date>2012-10-16 16:12:27 -0700</date>
            <delta_ts>2012-10-17 13:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121016191115.patch</filename>
            <type>text/plain</type>
            <size>10023</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uZDNmMzJhNDU2YjU4OThiODFlYzJmZWE3Y2M3MmYw
YjA1ZjA5MmU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENv
bnRleHQgbWVudSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFz
CisgICAgICAgIGNvbnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBw
b3NpdGlvbiB3aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIGZha2UgbW91c2UgZG93biBldmVudCBmb3IgY29u
dGV4dCBtZW51LXN1bW1vbmluZy1nZXN0dXJlIGV2ZW50cyBzbworICAgICAgICB0aGF0IHRleHRh
cmVhcyBjYW4gY29ycmVjdGx5IHNldCBjdXJzb3JzIGJlZm9yZSByZWNlaXZpbmcgdGhlIGNvbnRl
eHQgbWVudSBldmVudC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1s
CisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXApOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9y
R2VzdHVyZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50
SGFuZGxlcik6CisKIDIwMTItMTAtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW3drMl0gSW1wbGVtZW50IFBERlBsdWdpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA1MzI0M2NhYTVlZTJjYzFmMGY1ZjhlN2FhODBiZTkyODU0N2U1YzVm
Li42MDMzNmI2YmY2NWZiMTJjZTg5MDU3YjdkNDA1MzllMDhlOGIzMDlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE2ICBWYXJ1biBKYWluICA8
dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENvbnRleHQgbWVu
dSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAg
IGNvbnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3
aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZW5kIGZha2UgbW91c2UgZG93biBldmVudCBmb3IgY29udGV4dCBtZW51
LXN1bW1vbmluZy1nZXN0dXJlIGV2ZW50cyBzbworICAgICAgICB0aGF0IHRleHRhcmVhcyBjYW4g
Y29ycmVjdGx5IHNldCBjdXJzb3JzIGJlZm9yZSByZWNlaXZpbmcgdGhlIGNvbnRleHQgbWVudSBl
dmVudC4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorCiAyMDEyLTEwLTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdXNl
ZCBmcmFtZUZvckVudGVyZWRDb250ZXh0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDVlZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLmYyODI0
YzQ0ZGFjNDQxMTNlNGFiYzFjYjYwN2Q3OGM5YzQ1M2M4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTI1MjMsNiArMjUyMyw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVu
dCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUYXBEb3duKCk7CiAgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICByZXR1cm4gaGFuZGxlR2VzdHVy
ZUxvbmdQcmVzcyhnZXN0dXJlRXZlbnQpOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZVR3b0ZpbmdlclRhcDoKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAo
Z2VzdHVyZUV2ZW50KTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6
CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKICAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKQEAgLTI1ODksNiArMjU5MSwxNSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1
cmVFdmVudCYgZ2VzdHVyZUV2ZQogI2VuZGlmCiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVHZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJl
RXZlbnQpCit7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgcmV0dXJuIHNlbmRDb250
ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShnZXN0dXJlRXZlbnQpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVTY3Jv
bGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKICAg
ICByZXR1cm4gaGFuZGxlR2VzdHVyZVNjcm9sbENvcmUoZ2VzdHVyZUV2ZW50LCBTY3JvbGxCeVBp
eGVsV2hlZWxFdmVudCwgdHJ1ZSk7CkBAIC0yNzg1LDYgKzI3OTYsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50JiBldgogICAgICAgICBhZGp1c3RHZXN0dXJlUG9zaXRpb24oZXZlbnQsIGFkanVzdGVk
UG9pbnQpOwogI2VuZGlmCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoYWRqdXN0
ZWRQb2ludCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSk7CisgICAg
aGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwogICAgIHJldHVybiBzZW5kQ29udGV4
dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBhNjA0ZGEyYzg0MGUzMjFiNmQ3
ZDFjODUxMDIyNTk3MmRhOGIxODhhLi45YTM2MWYyZGFjNDJkMTE3N2Y2YmE0YjkyZDhkZjNlZDgw
NDE3YTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE2OCw2ICsxNjgsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0
dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVUYXAoY29uc3QgUGxhdGZvcm1HZXN0
dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVMb25nUHJlc3MoY29uc3QgUGxhdGZv
cm1HZXN0dXJlRXZlbnQmKTsKKyAgICBib29sIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVTY3JvbGxV
cGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYzFjOWM4MmMyZDgxMjI0ODFl
NTVjMDdlMGM4ZTlhYmU0ZTI3ZWU1NS4uMmQ0OWI4OWZhNGJiNjE4MjE2ZjVmNTdlYTcwZjhiYzY5
NjNkZGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtNzQyLDE4ICs3NDIsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQo
Y29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIAogICAgICAgICBicmVhazsKICAgICB9Ci0g
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOiB7Ci0gICAgICAgIGlm
ICghbWFpbkZyYW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQotICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgbV9wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS0+Y2xlYXJDb250ZXh0TWVudSgpOwotICAgICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IHRy
dWU7Ci0gICAgICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1h
aW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKLSAgICAgICAgZXZlbnRTd2FsbG93
ZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4
dE1lbnVFdmVudEZvckdlc3R1cmUocGxhdGZvcm1FdmVudCk7Ci0gICAgICAgIG1fY29udGV4dE1l
bnVBbGxvd2VkID0gZmFsc2U7Ci0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIGNhc2UgV2Vi
SW5wdXRFdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVMb25nUHJlc3M6IHsKICAgICAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwgIW1h
aW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBk
N2JkMjU2NzBmYzJiMjNlN2JjZmQzNGQ0OWU3Nzg2NTMwNWYyYjhkLi5kNDhiZjdlNzhiOTY5NmQ4
MmNmZWZiZmMwZTAzNjZiMWFhYzNjMjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAt
MTYgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJv
bWl1bV0gQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9tIHRvdWNoIGdlc3R1cmVzIG9uIHRleHRh
cmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUgY3Vyc29yIHBvc2l0aW9uIGluc3RlYWQg
b2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBvY2N1cnMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTUyMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgZmFrZSBtb3VzZSBkb3duIGV2ZW50
IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZlbnRzIHNvIHRoYXQKKyAgICAg
ICAgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMgYmVmb3JlIHJlY2VpdmluZyB0
aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZ2Vz
dHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9z
aXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1n
ZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNv
ci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA3ZGY4NzMwMTM0YmU0ZjBm
ZDQzZmJlZGRlN2RiNjExMTUyZDU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1h
dC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
b24gbG9uZyBwcmVzcyBnZXN0dXJlIGluIGEgdGV4dCBhcmVhLCB0aGUgY3Vyc29yIGlzCitmaXJz
dCBzZXQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uICh0aGlzIGlzIGRvbmUgYnkgc2VuZGluZyBhIHJp
Z2h0IG1vdXNlIGJ1dHRvbgorZG93biBldmVudCBqdXN0IGJlZm9yZSBsb25nIHByZXNzKS4KKzwv
cD4KKzx0ZXh0YXJlYSBpZD0idGV4dCIgcm93cz0iNSIgY29scz0iMzEiPgorVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IG9uIGxvbmcgcHJlc3MgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwgdGhlIGN1cnNv
ciBpcworZmlyc3Qgc2V0IHRvIHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5IHNl
bmRpbmcgYSByaWdodCBtb3VzZSBidXR0b24KK2Rvd24gZXZlbnQganVzdCBiZWZvcmUgbG9uZyBw
cmVzcykuCis8L3RleHRhcmVhPgorPGRpdiBpZD0idGV4dCI+VGVzdGluZzwvZGl2PgorPGRpdiBp
ZD0icmVzdWx0Ij5GQUlMPC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gZ2V0Q3Vyc29yUG9zaXRp
b24oKQoreworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsK
KyAgICBpZiAodGV4dC5zZWxlY3Rpb25TdGFydCkKKyAgICAgICAgcmV0dXJuIHRleHQuc2VsZWN0
aW9uU3RhcnQ7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gc2V0
Q3Vyc29yUG9zaXRpb24ocG9zaXRpb24pCit7CisgICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGV4dCIpOworICAgIGlmICh0ZXh0LnNldFNlbGVjdGlvblJhbmdlKSB7Cisg
ICAgICAgIHRleHQuZm9jdXMoKTsKKyAgICAgICAgdGV4dC5zZXRTZWxlY3Rpb25SYW5nZShwb3Np
dGlvbiwgcG9zaXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKCJzZXRTZWxlY3Rp
b25SYW5nZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0iKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBzZXRDdXJzb3JQb3NpdGlvbigwKTsKKworICAg
IHZhciBsb25nUHJlc3NUZXN0ZWQgPSBmYWxzZTsKKyAgICBkb2N1bWVudC5vbmNvbnRleHRtZW51
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGlmIChsb25nUHJlc3NUZXN0ZWQgJiYgZ2V0Q3Vyc29y
UG9zaXRpb24oKSA9PSA2MykgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
bG9uZ1ByZXNzVGVzdGVkICYmIGdldEN1cnNvclBvc2l0aW9uKCkgPT0gNjEpIHsKKyAgICAgICAg
ICAgIHNldEN1cnNvclBvc2l0aW9uKDApOworICAgICAgICAgICAgbG9uZ1ByZXNzVGVzdGVkID0g
dHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRleHQiKTsKKworICAgIHZhciB4ID0gdGV4dC5vZmZzZXRMZWZ0ICsgMTA7Cisg
ICAgdmFyIHkgPSB0ZXh0Lm9mZnNldFRvcCArIDQwOworCisgICAgaWYgKCF3aW5kb3cuZXZlbnRT
ZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQ
cmVzcykgeworICAgICAgICBldmVudFNlbmRlci5nZXN0dXJlTG9uZ1ByZXNzKHgsIHkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRl
ZCBieSB0aGlzIHBsYXRmb3JtIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGV2
ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXApIHsKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2Vz
dHVyZVR3b0ZpbmdlclRhcCh4ICsgMjAsIHkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVn
KCJnZXN0dXJlVHdvRmluZ2VyVGFwIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBsYXRmb3JtIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3Rv
dWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBv
c2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1j
b3JyZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjBkZjFhYTA5MWYwMGQ1
MjQyMTBkZjMxMWI3MzgwNjA2MWI2MTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1n
ZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG9uIGxvbmcgcHJlc3MgZ2VzdHVyZSBp
biBhIHRleHQgYXJlYSwgdGhlIGN1cnNvciBpcyBmaXJzdCBzZXQgdG8gdGhlIHJpZ2h0IHBvc2l0
aW9uICh0aGlzIGlzIGRvbmUgYnkgc2VuZGluZyBhIHJpZ2h0IG1vdXNlIGJ1dHRvbiBkb3duIGV2
ZW50IGp1c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorCisKK1Rlc3RpbmcKK1BBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169223</attachid>
            <date>2012-10-17 11:25:49 -0700</date>
            <delta_ts>2012-10-17 13:11:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121017142436.patch</filename>
            <type>text/plain</type>
            <size>9990</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uOWNjNzZmYmIyY2NhYWEwOGM1NTAwOWU4ZWE5MjYy
OTEwNDAzNTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250ZXh0IG1lbnUg
Z2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcworICAgICAgICBj
b250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24gd2hl
cmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VuZCBmYWtlIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRleHQgbWVudS1z
dW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28KKyAgICAgICAgdGhhdCB0ZXh0YXJlYXMgY2FuIGNv
cnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0IG1lbnUgZXZl
bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGlj
ay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbAorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgor
CiAyMDEyLTEwLTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFt3azJdIEltcGxlbWVudCBQREZQbHVnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNTMyNDNjYWE1ZWUyY2MxZjBmNWY4ZTdhYTgwYmU5Mjg1NDdlNWM1Zi4uZWFjNzJiNzI0
Y2U1ZmU3OGI4NDYwOGRmYjIxY2IwMGMyMjFlMDBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9tIHRvdWNo
IGdlc3R1cmVzIG9uIHRleHRhcmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUgY3Vyc29y
IHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBvY2N1cnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTUyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgZmFr
ZSBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZl
bnRzIHNvCisgICAgICAgIHRoYXQgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMg
YmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdl
c3R1cmVFdmVudCk6CisKIDIwMTItMTAtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSB1c2VkIGZyYW1lRm9yRW50ZXJlZENvbnRl
eHQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNWVmMGM2MWRhOTNk
MGMxNjRhYmVmNzRlZGZjNmYwZGUwZjc3NjIxMS4uZjI4MjRjNDRkYWM0NDExM2U0YWJjMWNiNjA3
ZDc4YzljNDUzYzgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjUy
Myw2ICsyNTIzLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25z
dCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgICAgICByZXR1cm4gaGFu
ZGxlR2VzdHVyZVRhcERvd24oKTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25n
UHJlc3M6CiAgICAgICAgIHJldHVybiBoYW5kbGVHZXN0dXJlTG9uZ1ByZXNzKGdlc3R1cmVFdmVu
dCk7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOgorICAgICAg
ICByZXR1cm4gaGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcChnZXN0dXJlRXZlbnQpOwogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBp
bmNoRW5kOgpAQCAtMjU4OSw2ICsyNTkxLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVH
ZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlCiAj
ZW5kaWYKIH0KIAorYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAo
Y29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKK3sKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJl
KGdlc3R1cmVFdmVudCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVNjcm9sbFVwZGF0ZShjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogewogICAgIHJldHVybiBoYW5kbGVHZXN0dXJl
U2Nyb2xsQ29yZShnZXN0dXJlRXZlbnQsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCB0cnVlKTsK
QEAgLTI3ODUsNiArMjc5Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVF
dmVudEZvckdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2CiAgICAgICAgIGFk
anVzdEdlc3R1cmVQb3NpdGlvbihldmVudCwgYWRqdXN0ZWRQb2ludCk7CiAjZW5kaWYKICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBldmVudC5nbG9iYWxQ
b3NpdGlvbigpLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICBoYW5kbGVNb3VzZVByZXNzRXZlbnQo
bW91c2VFdmVudCk7CiAgICAgcmV0dXJuIHNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQp
OwogfQogI2VuZGlmIC8vIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IGE2MDRkYTJjODQwZTMyMWI2ZDdkMWM4NTEwMjI1OTcyZGE4YjE4OGEu
LjlhMzYxZjJkYWM0MmQxMTc3ZjZiYTRiOTJkOGRmM2VkODA0MTdhNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhh
bmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlR2VzdHVyZVRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOworICAg
IGJvb2wgaGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYpOwogICAgIGJvb2wgaGFuZGxlR2VzdHVyZVNjcm9sbFVwZGF0ZShjb25zdCBQbGF0Zm9ybUdl
c3R1cmVFdmVudCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCBjMWM5YzgyYzJkODEyMjQ4MWU1NWMwN2UwYzhlOWFiZTRlMjdlZTU1
Li4yZDQ5Yjg5ZmE0YmI2MTgyMTZmNWY1N2VhNzBmOGJjNjk2M2RkYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC03NDIsMTggKzc0Miw3IEBAIGJv
b2wgV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQm
IGV2ZW50KQogCiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUd29GaW5nZXJUYXA6IHsKLSAgICAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwg
IW1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpCi0gICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICBtX3BhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7
Ci0gICAgICAgIG1fY29udGV4dE1lbnVBbGxvd2VkID0gdHJ1ZTsKLSAgICAgICAgUGxhdGZvcm1H
ZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZp
ZXcoKSwgZXZlbnQpOwotICAgICAgICBldmVudFN3YWxsb3dlZCA9IG1haW5GcmFtZUltcGwoKS0+
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShw
bGF0Zm9ybUV2ZW50KTsKLSAgICAgICAgbV9jb250ZXh0TWVudUFsbG93ZWQgPSBmYWxzZTsKLQot
ICAgICAgICBicmVhazsKLSAgICB9CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdv
RmluZ2VyVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczogewog
ICAgICAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZp
ZXcoKSkKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YmQyNTY3MGZjMmIyM2U3YmNmZDM0
ZDQ5ZTc3ODY1MzA1ZjJiOGQuLmEwNTZhMDE4NzNkZmE0Y2EzMWQwNTNiYjk0Nzg5NTllNmQ4NGQ2
NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAgVmFydW4gSmFpbiAgPHZhcnVu
amFpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9t
IHRvdWNoIGdlc3R1cmVzIG9uIHRleHRhcmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUg
Y3Vyc29yIHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBv
Y2N1cnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
OTUyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNl
bmQgZmFrZSBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1
cmUgZXZlbnRzIHNvIHRoYXQKKyAgICAgICAgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1
cnNvcnMgYmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vy
c29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1z
ZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAx
Mi0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9z
aXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQt
Y2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA3ZGY4NzMwMTM0YmU0ZjBmZDQzZmJlZGRlN2RiNjExMTUyZDU5NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xp
Y2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKQEAgLTAsMCAr
MSw4MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHA+
CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gbG9uZyBwcmVzcyBnZXN0dXJlIGluIGEgdGV4dCBh
cmVhLCB0aGUgY3Vyc29yIGlzCitmaXJzdCBzZXQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uICh0aGlz
IGlzIGRvbmUgYnkgc2VuZGluZyBhIHJpZ2h0IG1vdXNlIGJ1dHRvbgorZG93biBldmVudCBqdXN0
IGJlZm9yZSBsb25nIHByZXNzKS4KKzwvcD4KKzx0ZXh0YXJlYSBpZD0idGV4dCIgcm93cz0iNSIg
Y29scz0iMzEiPgorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG9uIGxvbmcgcHJlc3MgZ2VzdHVyZSBp
biBhIHRleHQgYXJlYSwgdGhlIGN1cnNvciBpcworZmlyc3Qgc2V0IHRvIHRoZSByaWdodCBwb3Np
dGlvbiAodGhpcyBpcyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodCBtb3VzZSBidXR0b24KK2Rvd24g
ZXZlbnQganVzdCBiZWZvcmUgbG9uZyBwcmVzcykuCis8L3RleHRhcmVhPgorPGRpdiBpZD0idGV4
dCI+VGVzdGluZzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gZ2V0Q3Vyc29yUG9zaXRpb24oKQoreworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKyAgICBpZiAodGV4dC5zZWxlY3Rpb25TdGFydCkKKyAg
ICAgICAgcmV0dXJuIHRleHQuc2VsZWN0aW9uU3RhcnQ7CisgICAgZWxzZQorICAgICAgICByZXR1
cm4gMDsKK30KKworZnVuY3Rpb24gc2V0Q3Vyc29yUG9zaXRpb24ocG9zaXRpb24pCit7CisgICAg
dmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworICAgIGlmICh0ZXh0
LnNldFNlbGVjdGlvblJhbmdlKSB7CisgICAgICAgIHRleHQuZm9jdXMoKTsKKyAgICAgICAgdGV4
dC5zZXRTZWxlY3Rpb25SYW5nZShwb3NpdGlvbiwgcG9zaXRpb24pOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGRlYnVnKCJzZXRTZWxlY3Rpb25SYW5nZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxh
dGZvcm0iKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBzZXRD
dXJzb3JQb3NpdGlvbigwKTsKKworICAgIHZhciBsb25nUHJlc3NUZXN0ZWQgPSBmYWxzZTsKKyAg
ICBkb2N1bWVudC5vbmNvbnRleHRtZW51ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGlmIChsb25n
UHJlc3NUZXN0ZWQgJiYgZ2V0Q3Vyc29yUG9zaXRpb24oKSA9PSA2MykgeworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICghbG9uZ1ByZXNzVGVzdGVkICYmIGdldEN1cnNvclBvc2l0
aW9uKCkgPT0gNjEpIHsKKyAgICAgICAgICAgIHNldEN1cnNvclBvc2l0aW9uKDApOworICAgICAg
ICAgICAgbG9uZ1ByZXNzVGVzdGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZh
ciB0ZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKworICAgIHZhciB4ID0g
dGV4dC5vZmZzZXRMZWZ0ICsgMTA7CisgICAgdmFyIHkgPSB0ZXh0Lm9mZnNldFRvcCArIDQwOwor
CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
ZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQcmVzcykgeworICAgICAgICBldmVudFNlbmRlci5nZXN0
dXJlTG9uZ1ByZXNzKHgsIHkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKCJnZXN0dXJl
TG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBsYXRmb3JtIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKGV2ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXApIHsK
KyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0ZpbmdlclRhcCh4ICsgMjAsIHkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGRlYnVnKCJnZXN0dXJlVHdvRmluZ2VyVGFwIG5vdCBpbXBsZW1l
bnRlZCBieSB0aGlzIHBsYXRmb3JtIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMt
c2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2st
Z2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZjBkZjFhYTA5MWYwMGQ1MjQyMTBkZjMxMWI3MzgwNjA2MWI2MTJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9z
aXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IG9uIGxvbmcgcHJlc3MgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwgdGhlIGN1cnNvciBpcyBmaXJz
dCBzZXQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uICh0aGlzIGlzIGRvbmUgYnkgc2VuZGluZyBhIHJp
Z2h0IG1vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGp1c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorCisK
K1Rlc3RpbmcKK1BBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169241</attachid>
            <date>2012-10-17 13:11:47 -0700</date>
            <delta_ts>2012-10-18 08:26:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121017161034.patch</filename>
            <type>text/plain</type>
            <size>9442</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uOWNjNzZmYmIyY2NhYWEwOGM1NTAwOWU4ZWE5MjYy
OTEwNDAzNTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250ZXh0IG1lbnUg
Z2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcworICAgICAgICBj
b250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24gd2hl
cmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VuZCBmYWtlIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRleHQgbWVudS1z
dW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28KKyAgICAgICAgdGhhdCB0ZXh0YXJlYXMgY2FuIGNv
cnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0IG1lbnUgZXZl
bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGlj
ay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbAorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgor
CiAyMDEyLTEwLTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFt3azJdIEltcGxlbWVudCBQREZQbHVnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNTMyNDNjYWE1ZWUyY2MxZjBmNWY4ZTdhYTgwYmU5Mjg1NDdlNWM1Zi4uZWFjNzJiNzI0
Y2U1ZmU3OGI4NDYwOGRmYjIxY2IwMGMyMjFlMDBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9tIHRvdWNo
IGdlc3R1cmVzIG9uIHRleHRhcmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUgY3Vyc29y
IHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBvY2N1cnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTUyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgZmFr
ZSBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZl
bnRzIHNvCisgICAgICAgIHRoYXQgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMg
YmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUdl
c3R1cmVFdmVudCk6CisKIDIwMTItMTAtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSB1c2VkIGZyYW1lRm9yRW50ZXJlZENvbnRl
eHQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNWVmMGM2MWRhOTNk
MGMxNjRhYmVmNzRlZGZjNmYwZGUwZjc3NjIxMS4uZjI4MjRjNDRkYWM0NDExM2U0YWJjMWNiNjA3
ZDc4YzljNDUzYzgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjUy
Myw2ICsyNTIzLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25z
dCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgICAgICByZXR1cm4gaGFu
ZGxlR2VzdHVyZVRhcERvd24oKTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVMb25n
UHJlc3M6CiAgICAgICAgIHJldHVybiBoYW5kbGVHZXN0dXJlTG9uZ1ByZXNzKGdlc3R1cmVFdmVu
dCk7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOgorICAgICAg
ICByZXR1cm4gaGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcChnZXN0dXJlRXZlbnQpOwogICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBp
bmNoRW5kOgpAQCAtMjU4OSw2ICsyNTkxLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVH
ZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlCiAj
ZW5kaWYKIH0KIAorYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAo
Y29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKK3sKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJl
KGdlc3R1cmVFdmVudCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVNjcm9sbFVwZGF0ZShjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogewogICAgIHJldHVybiBoYW5kbGVHZXN0dXJl
U2Nyb2xsQ29yZShnZXN0dXJlRXZlbnQsIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCB0cnVlKTsK
QEAgLTI3ODUsNiArMjc5Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVF
dmVudEZvckdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2CiAgICAgICAgIGFk
anVzdEdlc3R1cmVQb3NpdGlvbihldmVudCwgYWRqdXN0ZWRQb2ludCk7CiAjZW5kaWYKICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBldmVudC5nbG9iYWxQ
b3NpdGlvbigpLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICBoYW5kbGVNb3VzZVByZXNzRXZlbnQo
bW91c2VFdmVudCk7CiAgICAgcmV0dXJuIHNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQp
OwogfQogI2VuZGlmIC8vIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCmluZGV4IGE2MDRkYTJjODQwZTMyMWI2ZDdkMWM4NTEwMjI1OTcyZGE4YjE4OGEu
LjlhMzYxZjJkYWM0MmQxMTc3ZjZiYTRiOTJkOGRmM2VkODA0MTdhNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhh
bmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlR2VzdHVyZVRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOworICAg
IGJvb2wgaGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCYpOwogICAgIGJvb2wgaGFuZGxlR2VzdHVyZVNjcm9sbFVwZGF0ZShjb25zdCBQbGF0Zm9ybUdl
c3R1cmVFdmVudCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCBjMWM5YzgyYzJkODEyMjQ4MWU1NWMwN2UwYzhlOWFiZTRlMjdlZTU1
Li4yZDQ5Yjg5ZmE0YmI2MTgyMTZmNWY1N2VhNzBmOGJjNjk2M2RkYTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC03NDIsMTggKzc0Miw3IEBAIGJv
b2wgV2ViVmlld0ltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQm
IGV2ZW50KQogCiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVUd29GaW5nZXJUYXA6IHsKLSAgICAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwg
IW1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpCi0gICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICBtX3BhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7
Ci0gICAgICAgIG1fY29udGV4dE1lbnVBbGxvd2VkID0gdHJ1ZTsKLSAgICAgICAgUGxhdGZvcm1H
ZXN0dXJlRXZlbnRCdWlsZGVyIHBsYXRmb3JtRXZlbnQobWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZp
ZXcoKSwgZXZlbnQpOwotICAgICAgICBldmVudFN3YWxsb3dlZCA9IG1haW5GcmFtZUltcGwoKS0+
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShw
bGF0Zm9ybUV2ZW50KTsKLSAgICAgICAgbV9jb250ZXh0TWVudUFsbG93ZWQgPSBmYWxzZTsKLQot
ICAgICAgICBicmVhazsKLSAgICB9CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdv
RmluZ2VyVGFwOgogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczogewog
ICAgICAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZp
ZXcoKSkKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3YmQyNTY3MGZjMmIyM2U3YmNmZDM0
ZDQ5ZTc3ODY1MzA1ZjJiOGQuLmEwNTZhMDE4NzNkZmE0Y2EzMWQwNTNiYjk0Nzg5NTllNmQ4NGQ2
NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAgVmFydW4gSmFpbiAgPHZhcnVu
amFpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9t
IHRvdWNoIGdlc3R1cmVzIG9uIHRleHRhcmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUg
Y3Vyc29yIHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBv
Y2N1cnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
OTUyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNl
bmQgZmFrZSBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1
cmUgZXZlbnRzIHNvIHRoYXQKKyAgICAgICAgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1
cnNvcnMgYmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vy
c29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1z
ZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAx
Mi0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9z
aXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQt
Y2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjk2NzJlODA2YzBmOGQyNmVlMmUyMjJjNzFmZWEzYjkwYTI1MzUzMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xp
Y2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKQEAgLTAsMCAr
MSw2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+
Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBvbiBsb25nIHByZXNzIGdlc3R1cmUgaW4gYSB0
ZXh0IGFyZWEsIHRoZSBjdXJzb3IgaXMKK2ZpcnN0IHNldCB0byB0aGUgcmlnaHQgcG9zaXRpb24g
KHRoaXMgaXMgZG9uZSBieSBzZW5kaW5nIGEgcmlnaHQgbW91c2UgYnV0dG9uCitkb3duIGV2ZW50
IGp1c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorPC9wPgorPHRleHRhcmVhIGlkPSJ0ZXh0IiByb3dz
PSI1IiBjb2xzPSIzMSI+CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gbG9uZyBwcmVzcyBnZXN0
dXJlIGluIGEgdGV4dCBhcmVhLCB0aGUgY3Vyc29yIGlzCitmaXJzdCBzZXQgdG8gdGhlIHJpZ2h0
IHBvc2l0aW9uICh0aGlzIGlzIGRvbmUgYnkgc2VuZGluZyBhIHJpZ2h0IG1vdXNlIGJ1dHRvbgor
ZG93biBldmVudCBqdXN0IGJlZm9yZSBsb25nIHByZXNzKS4KKzwvdGV4dGFyZWE+Cis8ZGl2IGlk
PSJ0ZXh0Ij5UZXN0aW5nPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPkZBSUw8L2Rpdj4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBzZXRDdXJzb3JQb3NpdGlvbihwb3NpdGlvbikKK3sKKyAgICB2YXIgdGV4
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisgICAgdGV4dC5mb2N1cygpOwor
ICAgIHRleHQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zaXRpb24sIHBvc2l0aW9uKTsKK30KKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCit2YXIg
dGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisKK3NldEN1cnNvclBvc2l0
aW9uKDApOworCit2YXIgbG9uZ1ByZXNzVGVzdGVkID0gZmFsc2U7Citkb2N1bWVudC5vbmNvbnRl
eHRtZW51ID0gZnVuY3Rpb24oKSB7CisgICAgaWYgKGxvbmdQcmVzc1Rlc3RlZCAmJiB0ZXh0LnNl
bGVjdGlvblN0YXJ0ID09IDYzKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVz
dWx0IikuaW5uZXJIVE1MID0gIlBBU1MiOworCisgICAgaWYgKCFsb25nUHJlc3NUZXN0ZWQgJiYg
dGV4dC5zZWxlY3Rpb25TdGFydCA9PSA2MSkgeworICAgICAgICBzZXRDdXJzb3JQb3NpdGlvbigw
KTsKKyAgICAgICAgbG9uZ1ByZXNzVGVzdGVkID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZhciB0ZXh0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKwordmFyIHggPSB0ZXh0Lm9mZnNl
dExlZnQgKyAxMDsKK3ZhciB5ID0gdGV4dC5vZmZzZXRUb3AgKyA0MDsKKworaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlTG9uZ1ByZXNzKQorICAg
ICAgICBldmVudFNlbmRlci5nZXN0dXJlTG9uZ1ByZXNzKHgsIHkpOworICAgIGVsc2UKKyAgICAg
ICAgZGVidWcoImdlc3R1cmVMb25nUHJlc3Mgbm90IGltcGxlbWVudGVkIGJ5IHRoaXMgcGxhdGZv
cm0iKTsKKworICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlVHdvRmluZ2VyVGFwKQorICAgICAg
ICBldmVudFNlbmRlci5nZXN0dXJlVHdvRmluZ2VyVGFwKHggKyAyMCwgeSk7CisgICAgZWxzZQor
ICAgICAgICBkZWJ1ZygiZ2VzdHVyZVR3b0ZpbmdlclRhcCBub3QgaW1wbGVtZW50ZWQgYnkgdGhp
cyBwbGF0Zm9ybSIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3Vj
aC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3Np
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYwZGYxYWEwOTFmMDBkNTI0MjEwZGYzMTFi
NzM4MDYwNjFiNjEyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0
LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhhdCBvbiBsb25nIHByZXNzIGdlc3R1cmUgaW4gYSB0ZXh0IGFy
ZWEsIHRoZSBjdXJzb3IgaXMgZmlyc3Qgc2V0IHRvIHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBp
cyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodCBtb3VzZSBidXR0b24gZG93biBldmVudCBqdXN0IGJl
Zm9yZSBsb25nIHByZXNzKS4KKworCitUZXN0aW5nCitQQVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169275</attachid>
            <date>2012-10-17 15:32:19 -0700</date>
            <delta_ts>2012-10-18 08:26:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121017183106.patch</filename>
            <type>text/plain</type>
            <size>9987</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uOWNjNzZmYmIyY2NhYWEwOGM1NTAwOWU4ZWE5MjYy
OTEwNDAzNTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250ZXh0IG1lbnUg
Z2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcworICAgICAgICBj
b250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24gd2hl
cmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VuZCBmYWtlIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRleHQgbWVudS1z
dW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28KKyAgICAgICAgdGhhdCB0ZXh0YXJlYXMgY2FuIGNv
cnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0IG1lbnUgZXZl
bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGlj
ay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbAorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgor
CiAyMDEyLTEwLTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFt3azJdIEltcGxlbWVudCBQREZQbHVnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggNTMyNDNjYWE1ZWUyY2MxZjBmNWY4ZTdhYTgwYmU5Mjg1NDdlNWM1Zi4uYzc5YjdjMDQx
ZWRiNmM2N2MxMjJmNzM2OWM3YzNjM2E3YjYyYzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMC0xNiAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGV4dCBtZW51IGdlbmVyYXRlZCBmcm9tIHRvdWNo
IGdlc3R1cmVzIG9uIHRleHRhcmVhcyBoYXMKKyAgICAgICAgY29udGV4dCBvZiB0aGUgY3Vyc29y
IHBvc2l0aW9uIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBldmVudCBvY2N1cnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTUyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgZmFr
ZSBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZl
bnRzIHNvCisgICAgICAgIHRoYXQgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMg
YmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBtZW51IGV2ZW50LgorICAgICAgICBBbHNvIGlu
IHRoaXMgY2hhbmdlLCBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwIG5vdyBmb2xs
b3dzIHRoZSBzYW1lCisgICAgICAgIGNvZGUgcGF0aCBhcyBXZWJJbnB1dEV2ZW50OjpHZXN0dXJl
TG9uZ1ByZXNzLCBoZW5jZSBmaXhpbmcgdGhpcyBidWcgZm9yIGJvdGggZ2VzdHVyZXMuCisKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKwogMjAxMi0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZlIHVzZWQgZnJhbWVGb3JF
bnRlcmVkQ29udGV4dCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1
ZWYwYzYxZGE5M2QwYzE2NGFiZWY3NGVkZmM2ZjBkZTBmNzc2MjExLi4wOWZiMGE5MjM0NDBiYzRh
NTA5YjE3ZjVjYjVhMzc3YWEwMzNkZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0yNTIzLDYgKzI1MjMsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgICAg
IHJldHVybiBoYW5kbGVHZXN0dXJlVGFwRG93bigpOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
R2VzdHVyZUxvbmdQcmVzczoKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVMb25nUHJlc3Mo
Z2VzdHVyZUV2ZW50KTsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJU
YXA6CisgICAgICAgIHJldHVybiBoYW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKGdlc3R1cmVFdmVu
dCk7CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgogICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlUGluY2hFbmQ6CkBAIC0yNTg5LDYgKzI1OTEsMTUgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZUdlc3R1cmVMb25nUHJlc3MoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdl
c3R1cmVFdmUKICNlbmRpZgogfQogCitib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVR3
b0ZpbmdlclRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQorewor
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHJldHVybiBzZW5kQ29udGV4dE1lbnVFdmVu
dEZvckdlc3R1cmUoZ2VzdHVyZUV2ZW50KTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlU2Nyb2xsVXBkYXRlKGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiB7CiAgICAgcmV0dXJuIGhh
bmRsZUdlc3R1cmVTY3JvbGxDb3JlKGdlc3R1cmVFdmVudCwgU2Nyb2xsQnlQaXhlbFdoZWVsRXZl
bnQsIHRydWUpOwpAQCAtMjc4NSw3ICsyNzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5k
Q29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2
CiAgICAgICAgIGFkanVzdEdlc3R1cmVQb3NpdGlvbihldmVudCwgYWRqdXN0ZWRQb2ludCk7CiAj
ZW5kaWYKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBl
dmVudC5nbG9iYWxQb3NpdGlvbigpLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICAvLyBUbyBzaW11
bGF0ZSByaWdodC1jbGljayBiZWhhdmlvciwgd2Ugc2VuZCBhIHJpZ2h0IG1vdXNlIGRvd24gYW5k
IHRoZW4KKyAgICAvLyBjb250ZXh0IG1lbnUgZXZlbnQuCisgICAgaGFuZGxlTW91c2VQcmVzc0V2
ZW50KG1vdXNlRXZlbnQpOwogICAgIHJldHVybiBzZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2
ZW50KTsKKyAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBzZW5kIGEgY29ycmVzcG9uZGluZyBtb3Vz
ZSByZWxlYXNlIGJlY2F1c2UgaW4gY2FzZSBvZgorICAgIC8vIHJpZ2h0LWNsaWNrLCB0aGUgY29u
dGV4dCBtZW51IHRha2VzIGNhcHR1cmUgYW5kIGNvbnN1bWVzIGFsbCBldmVudHMuCiB9CiAjZW5k
aWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01F
TlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggYTYwNGRhMmM4NDBlMzIxYjZk
N2QxYzg1MTAyMjU5NzJkYThiMTg4YS4uOWEzNjFmMmRhYzQyZDExNzdmNmJhNGI5MmQ4ZGYzZWQ4
MDQxN2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0xNjgsNiArMTY4LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2Vz
dHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlVGFwKGNvbnN0IFBsYXRmb3JtR2Vz
dHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlTG9uZ1ByZXNzKGNvbnN0IFBsYXRm
b3JtR2VzdHVyZUV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKGNv
bnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlU2Nyb2xs
VXBkYXRlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGMxYzljODJjMmQ4MTIyNDgx
ZTU1YzA3ZTBjOGU5YWJlNGUyN2VlNTUuLjJkNDliODlmYTRiYjYxODIxNmY1ZjU3ZWE3MGY4YmM2
OTYzZGRhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTc0MiwxOCArNzQyLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAKICAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDogewotICAgICAgICBp
ZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKLSAg
ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIG1fcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVy
KCktPmNsZWFyQ29udGV4dE1lbnUoKTsKLSAgICAgICAgbV9jb250ZXh0TWVudUFsbG93ZWQgPSB0
cnVlOwotICAgICAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIgcGxhdGZvcm1FdmVudCht
YWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCk7Ci0gICAgICAgIGV2ZW50U3dhbGxv
d2VkID0gbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRl
eHRNZW51RXZlbnRGb3JHZXN0dXJlKHBsYXRmb3JtRXZlbnQpOwotICAgICAgICBtX2NvbnRleHRN
ZW51QWxsb3dlZCA9IGZhbHNlOwotCi0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXA6CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50
OjpHZXN0dXJlTG9uZ1ByZXNzOiB7CiAgICAgICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFt
YWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDdiZDI1NjcwZmMyYjIzZTdiY2ZkMzRkNDllNzc4NjUzMDVmMmI4ZC4uYTA1NmEwMTg3M2RmYTRj
YTMxZDA1M2JiOTQ3ODk1OWU2ZDg0ZDY0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEw
LTE2ICBWYXJ1biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250
ZXh0IG1lbnUgZ2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcwor
ICAgICAgICBjb250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9z
aXRpb24gd2hlcmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2VuZCBmYWtlIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRl
eHQgbWVudS1zdW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28gdGhhdAorICAgICAgICB0ZXh0YXJl
YXMgY2FuIGNvcnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0
IG1lbnUgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0
LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEwLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNl
dC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJl
Y3QtcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTNkZjJlMTgyNjk1N2QzYmI1MDU0NjE4MzJh
ZTA1ZjM0M2FiMjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3Qt
cG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG9uIGEg
bG9uZyBwcmVzcyBvciBhIHR3byBmaW5nZXIgdGFwIGdlc3R1cmUgaW4gYSB0ZXh0IGFyZWEsCit0
aGUgY3Vyc29yIGlzIGZpcnN0IHNldCB0byB0aGUgcmlnaHQgcG9zaXRpb24gKHRoaXMgaXMgZG9u
ZSBieSBzZW5kaW5nIGEgcmlnaHQKK21vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGp1c3QgYmVmb3Jl
IGxvbmcgcHJlc3MpLgorPC9wPgorPHRleHRhcmVhIGlkPSJ0ZXh0IiByb3dzPSI1IiBjb2xzPSIz
MSI+CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gYSBsb25nIHByZXNzIG9yIGEgdHdvIGZpbmdl
ciB0YXAgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwKK3RoZSBjdXJzb3IgaXMgZmlyc3Qgc2V0IHRv
IHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodAorbW91
c2UgYnV0dG9uIGRvd24gZXZlbnQganVzdCBiZWZvcmUgbG9uZyBwcmVzcykuCis8L3RleHRhcmVh
PgorPGRpdiBpZD0idGV4dCI+VGVzdGluZzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9k
aXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gc2V0Q3Vyc29yUG9zaXRpb24ocG9zaXRpb24pCit7Cisg
ICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworICAgIHRleHQu
Zm9jdXMoKTsKKyAgICB0ZXh0LnNldFNlbGVjdGlvblJhbmdlKHBvc2l0aW9uLCBwb3NpdGlvbik7
Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKwordmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworCitzZXRD
dXJzb3JQb3NpdGlvbigwKTsKKwordmFyIGxvbmdQcmVzc1Rlc3RlZCA9IGZhbHNlOworZG9jdW1l
bnQub25jb250ZXh0bWVudSA9IGZ1bmN0aW9uKCkgeworICAgIGlmIChsb25nUHJlc3NUZXN0ZWQg
JiYgdGV4dC5zZWxlY3Rpb25TdGFydCA9PSA2MSkKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsKKworICAgIGlmICghbG9uZ1ByZXNz
VGVzdGVkICYmIHRleHQuc2VsZWN0aW9uU3RhcnQgPT0gNTkpIHsKKyAgICAgICAgc2V0Q3Vyc29y
UG9zaXRpb24oMCk7CisgICAgICAgIGxvbmdQcmVzc1Rlc3RlZCA9IHRydWU7CisgICAgfQorfQor
Cit2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Iik7CisKK3ZhciB4ID0g
dGV4dC5vZmZzZXRMZWZ0ICsgMTA7Cit2YXIgeSA9IHRleHQub2Zmc2V0VG9wICsgNDA7CisKK2lm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBpZiAoZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQ
cmVzcykKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUxvbmdQcmVzcyh4LCB5KTsKKyAgICBl
bHNlCisgICAgICAgIGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRlZCBieSB0
aGlzIHBsYXRmb3JtIik7CisKKyAgICBpZiAoZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0ZpbmdlclRh
cCkKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0ZpbmdlclRhcCh4ICsgMjAsIHkpOwor
ICAgIGVsc2UKKyAgICAgICAgZGVidWcoImdlc3R1cmVUd29GaW5nZXJUYXAgbm90IGltcGxlbWVu
dGVkIGJ5IHRoaXMgcGxhdGZvcm0iKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91
Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9z
aXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNv
cnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlNTc5OWNkYzY5MjI0NjRm
Yzk0ZTgxMzA5Y2Y4ZDZhNGQ2YWI4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdl
c3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gYSBsb25nIHByZXNzIG9yIGEgdHdv
IGZpbmdlciB0YXAgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwgdGhlIGN1cnNvciBpcyBmaXJzdCBz
ZXQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uICh0aGlzIGlzIGRvbmUgYnkgc2VuZGluZyBhIHJpZ2h0
IG1vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGp1c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorCisKK1Rl
c3RpbmcKK1BBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169417</attachid>
            <date>2012-10-18 08:26:51 -0700</date>
            <delta_ts>2012-10-23 16:01:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121018112536.patch</filename>
            <type>text/plain</type>
            <size>10008</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uMjIzMzY2NTE4NTUwODcyOGM5YzllMmMzN2U2MzA1
NDI4MTBhZDZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250ZXh0IG1lbnUg
Z2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcworICAgICAgICBj
b250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24gd2hl
cmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2VuZCBhIHN5bnRoZXRpYyBtb3VzZSBkb3duIGV2ZW50IGZvciBjb250ZXh0
IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZlbnRzIHNvCisgICAgICAgIHRoYXQgdGV4dGFyZWFz
IGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMgYmVmb3JlIHJlY2VpdmluZyB0aGUgY29udGV4dCBt
ZW51IGV2ZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUvcmln
aHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0aW9uLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0
dXJlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5k
bGVyKToKKwogMjAxMi0xMC0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBbd2syXSBJbXBsZW1lbnQgUERGUGx1Z2luCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDUzMjQzY2FhNWVlMmNjMWYwZjVmOGU3YWE4MGJlOTI4NTQ3ZTVjNWYuLmZk
NTBiN2M1NmFlZWVkN2E1MTJhZWRkMzJkYjYzNzNmMjcwYjQ2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAtMTYgIFZhcnVuIEphaW4gIDx2YXJ1
bmphaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnRleHQgbWVudSBnZW5lcmF0ZWQgZnJv
bSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAgIGNvbnRleHQgb2YgdGhl
IGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZXZlbnQg
b2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZW5kIGEgc3ludGhldGljIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRleHQgbWVudS1zdW1tb25p
bmctZ2VzdHVyZSBldmVudHMgc28KKyAgICAgICAgdGhhdCB0ZXh0YXJlYXMgY2FuIGNvcnJlY3Rs
eSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0IG1lbnUgZXZlbnQuCisg
ICAgICAgIEFsc28gaW4gdGhpcyBjaGFuZ2UsIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5n
ZXJUYXAgbm93IGZvbGxvd3MgdGhlIHNhbWUKKyAgICAgICAgY29kZSBwYXRoIGFzIFdlYklucHV0
RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3MsIGhlbmNlIGZpeGluZyB0aGlzIGJ1ZyBmb3IgYm90aCBn
ZXN0dXJlcy4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorCiAyMDEyLTEwLTEyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUg
dXNlZCBmcmFtZUZvckVudGVyZWRDb250ZXh0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDVlZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjA5
ZmIwYTkyMzQ0MGJjNGE1MDliMTdmNWNiNWEzNzdhYTAzM2RmODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1MjMsNiArMjUyMyw4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVF
dmVudCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUYXBEb3duKCk7CiAgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICByZXR1cm4gaGFuZGxlR2Vz
dHVyZUxvbmdQcmVzcyhnZXN0dXJlRXZlbnQpOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZVR3b0ZpbmdlclRhcDoKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJU
YXAoZ2VzdHVyZUV2ZW50KTsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVU
YXA6CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoKICAgICBjYXNl
IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoKQEAgLTI1ODksNiArMjU5MSwxNSBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdl
c3R1cmVFdmVudCYgZ2VzdHVyZUV2ZQogI2VuZGlmCiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0
dXJlRXZlbnQpCit7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgcmV0dXJuIHNlbmRD
b250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShnZXN0dXJlRXZlbnQpOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVT
Y3JvbGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsK
ICAgICByZXR1cm4gaGFuZGxlR2VzdHVyZVNjcm9sbENvcmUoZ2VzdHVyZUV2ZW50LCBTY3JvbGxC
eVBpeGVsV2hlZWxFdmVudCwgdHJ1ZSk7CkBAIC0yNzg1LDcgKzI3OTYsMTIgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShjb25zdCBQbGF0Zm9ybUdl
c3R1cmVFdmVudCYgZXYKICAgICAgICAgYWRqdXN0R2VzdHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1
c3RlZFBvaW50KTsKICNlbmRpZgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGFk
anVzdGVkUG9pbnQsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIFJpZ2h0QnV0dG9uLCBldmVudFR5
cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCkpOwor
ICAgIC8vIFRvIHNpbXVsYXRlIHJpZ2h0LWNsaWNrIGJlaGF2aW9yLCB3ZSBzZW5kIGEgcmlnaHQg
bW91c2UgZG93biBhbmQgdGhlbgorICAgIC8vIGNvbnRleHQgbWVudSBldmVudC4KKyAgICBoYW5k
bGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7CiAgICAgcmV0dXJuIHNlbmRDb250ZXh0TWVu
dUV2ZW50KG1vdXNlRXZlbnQpOworICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIHNlbmQgYSBjb3Jy
ZXNwb25kaW5nIG1vdXNlIHJlbGVhc2UgYmVjYXVzZSBpbiBjYXNlIG9mCisgICAgLy8gcmlnaHQt
Y2xpY2ssIHRoZSBjb250ZXh0IG1lbnUgdGFrZXMgY2FwdHVyZSBhbmQgY29uc3VtZXMgYWxsIGV2
ZW50cy4KIH0KICNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAjZW5kaWYgLy8gRU5B
QkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBhNjA0
ZGEyYzg0MGUzMjFiNmQ3ZDFjODUxMDIyNTk3MmRhOGIxODhhLi45YTM2MWYyZGFjNDJkMTE3N2Y2
YmE0YjkyZDhkZjNlZDgwNDE3YTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAg
LTE2OCw2ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVUYXAoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVMb25nUHJl
c3MoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKKyAgICBib29sIGhhbmRsZUdlc3R1cmVU
d29GaW5nZXJUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBib29sIGhhbmRs
ZUdlc3R1cmVTY3JvbGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYzFj
OWM4MmMyZDgxMjI0ODFlNTVjMDdlMGM4ZTlhYmU0ZTI3ZWU1NS4uMmQ0OWI4OWZhNGJiNjE4MjE2
ZjVmNTdlYTcwZjhiYzY5NjNkZGE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcApAQCAtNzQyLDE4ICs3NDIsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpoYW5k
bGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIAogICAgICAgICBi
cmVhazsKICAgICB9Ci0gICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFw
OiB7Ci0gICAgICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZy
YW1lVmlldygpKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgbV9wYWdlLT5jb250ZXh0
TWVudUNvbnRyb2xsZXIoKS0+Y2xlYXJDb250ZXh0TWVudSgpOwotICAgICAgICBtX2NvbnRleHRN
ZW51QWxsb3dlZCA9IHRydWU7Ci0gICAgICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlciBw
bGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKLSAgICAg
ICAgZXZlbnRTd2FsbG93ZWQgPSBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5zZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUocGxhdGZvcm1FdmVudCk7Ci0gICAg
ICAgIG1fY29udGV4dE1lbnVBbGxvd2VkID0gZmFsc2U7Ci0KLSAgICAgICAgYnJlYWs7Ci0gICAg
fQorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKICAgICBjYXNl
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6IHsKICAgICAgICAgaWYgKCFtYWluRnJh
bWVJbXBsKCkgfHwgIW1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkN2JkMjU2NzBmYzJiMjNlN2JjZmQzNGQ0OWU3Nzg2NTMwNWYyYjhkLi4y
YWI0ZmIwYzZjOTkzMjlhMDg4OTQwMGVlYTkyZjAyOWExYjNjMGNkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTItMTAtMTYgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIENvbnRleHQgbWVudSBnZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0
ZXh0YXJlYXMgaGFzCisgICAgICAgIGNvbnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0
ZWFkIG9mIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZW5kIGEgc3ludGhldGljIG1vdXNl
IGRvd24gZXZlbnQgZm9yIGNvbnRleHQgbWVudS1zdW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28g
dGhhdAorICAgICAgICB0ZXh0YXJlYXMgY2FuIGNvcnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUg
cmVjZWl2aW5nIHRoZSBjb250ZXh0IG1lbnUgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVj
dC1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQt
Y29ycmVjdC1wb3NpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEwLTEyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5p
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3Jp
Z2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJl
cy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTNkZjJl
MTgyNjk1N2QzYmI1MDU0NjE4MzJhZTA1ZjM0M2FiMjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1z
ZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IG9uIGEgbG9uZyBwcmVzcyBvciBhIHR3byBmaW5nZXIgdGFwIGdlc3R1
cmUgaW4gYSB0ZXh0IGFyZWEsCit0aGUgY3Vyc29yIGlzIGZpcnN0IHNldCB0byB0aGUgcmlnaHQg
cG9zaXRpb24gKHRoaXMgaXMgZG9uZSBieSBzZW5kaW5nIGEgcmlnaHQKK21vdXNlIGJ1dHRvbiBk
b3duIGV2ZW50IGp1c3QgYmVmb3JlIGxvbmcgcHJlc3MpLgorPC9wPgorPHRleHRhcmVhIGlkPSJ0
ZXh0IiByb3dzPSI1IiBjb2xzPSIzMSI+CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gYSBsb25n
IHByZXNzIG9yIGEgdHdvIGZpbmdlciB0YXAgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwKK3RoZSBj
dXJzb3IgaXMgZmlyc3Qgc2V0IHRvIHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5
IHNlbmRpbmcgYSByaWdodAorbW91c2UgYnV0dG9uIGRvd24gZXZlbnQganVzdCBiZWZvcmUgbG9u
ZyBwcmVzcykuCis8L3RleHRhcmVhPgorPGRpdiBpZD0idGV4dCI+VGVzdGluZzwvZGl2PgorPGRp
diBpZD0icmVzdWx0Ij5GQUlMPC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gc2V0Q3Vyc29yUG9z
aXRpb24ocG9zaXRpb24pCit7CisgICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGV4dCIpOworICAgIHRleHQuZm9jdXMoKTsKKyAgICB0ZXh0LnNldFNlbGVjdGlvblJhbmdl
KHBvc2l0aW9uLCBwb3NpdGlvbik7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwordmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dCIpOworCitzZXRDdXJzb3JQb3NpdGlvbigwKTsKKwordmFyIGxvbmdQcmVzc1Rl
c3RlZCA9IGZhbHNlOworZG9jdW1lbnQub25jb250ZXh0bWVudSA9IGZ1bmN0aW9uKCkgeworICAg
IGlmIChsb25nUHJlc3NUZXN0ZWQgJiYgdGV4dC5zZWxlY3Rpb25TdGFydCA9PSA2MSkKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsK
KworICAgIGlmICghbG9uZ1ByZXNzVGVzdGVkICYmIHRleHQuc2VsZWN0aW9uU3RhcnQgPT0gNTkp
IHsKKyAgICAgICAgc2V0Q3Vyc29yUG9zaXRpb24oMCk7CisgICAgICAgIGxvbmdQcmVzc1Rlc3Rl
ZCA9IHRydWU7CisgICAgfQorfQorCit2YXIgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXh0Iik7CisKK3ZhciB4ID0gdGV4dC5vZmZzZXRMZWZ0ICsgMTA7Cit2YXIgeSA9IHRleHQu
b2Zmc2V0VG9wICsgNDA7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBpZiAoZXZl
bnRTZW5kZXIuZ2VzdHVyZUxvbmdQcmVzcykKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZUxv
bmdQcmVzcyh4LCB5KTsKKyAgICBlbHNlCisgICAgICAgIGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNz
IG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBsYXRmb3JtIik7CisKKyAgICBpZiAoZXZlbnRTZW5k
ZXIuZ2VzdHVyZVR3b0ZpbmdlclRhcCkKKyAgICAgICAgZXZlbnRTZW5kZXIuZ2VzdHVyZVR3b0Zp
bmdlclRhcCh4ICsgMjAsIHkpOworICAgIGVsc2UKKyAgICAgICAgZGVidWcoImdlc3R1cmVUd29G
aW5nZXJUYXAgbm90IGltcGxlbWVudGVkIGJ5IHRoaXMgcGxhdGZvcm0iKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQt
Y3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0
dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlNTc5OWNkYzY5MjI0NjRmYzk0ZTgxMzA5Y2Y4ZDZhNGQ2YWI4OTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9n
ZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24g
YSBsb25nIHByZXNzIG9yIGEgdHdvIGZpbmdlciB0YXAgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwg
dGhlIGN1cnNvciBpcyBmaXJzdCBzZXQgdG8gdGhlIHJpZ2h0IHBvc2l0aW9uICh0aGlzIGlzIGRv
bmUgYnkgc2VuZGluZyBhIHJpZ2h0IG1vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGp1c3QgYmVmb3Jl
IGxvbmcgcHJlc3MpLgorCisKK1Rlc3RpbmcKK1BBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170258</attachid>
            <date>2012-10-23 16:01:24 -0700</date>
            <delta_ts>2012-10-23 17:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99520-20121023190000.patch</filename>
            <type>text/plain</type>
            <size>10042</size>
            <attacher name="Varun Jain">varunjain</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwMTU4N2U0OTlkNzZk
OTM2YjQxODM3OWY3YjM3ZjgwOWRjZGEzZS4uYmY2MWJlZDQ4ODJkZmJmZmJkNGIzNmQwMjliMzJl
ZWRlYjY3NGE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE2ICBWYXJ1
biBKYWluICA8dmFydW5qYWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBDb250ZXh0IG1lbnUg
Z2VuZXJhdGVkIGZyb20gdG91Y2ggZ2VzdHVyZXMgb24gdGV4dGFyZWFzIGhhcworICAgICAgICBj
b250ZXh0IG9mIHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24gd2hl
cmUgdGhlIGV2ZW50IG9jY3Vycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4uCisKKyAgICAgICAgU2VuZCBhIHN5bnRoZXRpYyBtb3VzZSBkb3duIGV2ZW50
IGZvciBjb250ZXh0IG1lbnUtc3VtbW9uaW5nLWdlc3R1cmUgZXZlbnRzIHNvCisgICAgICAgIHRo
YXQgdGV4dGFyZWFzIGNhbiBjb3JyZWN0bHkgc2V0IGN1cnNvcnMgYmVmb3JlIHJlY2VpdmluZyB0
aGUgY29udGV4dCBtZW51IGV2ZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0
aW9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVR3b0ZpbmdlclRhcCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51
RXZlbnRGb3JHZXN0dXJlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAg
ICAoRXZlbnRIYW5kbGVyKToKKwogMjAxMi0xMC0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2syXSBJbXBsZW1lbnQgUERGUGx1Z2luCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUzMjQzY2FhNWVlMmNjMWYwZjVmOGU3YWE4MGJlOTI4
NTQ3ZTVjNWYuLjNmZDljZTdiZjkzMWE0YzkwZjllNzAyNTIzNzg0M2ZjZWQ4OTFiMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAtMTYgIFZhcnVu
IEphaW4gIDx2YXJ1bmphaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnRleHQgbWVudSBn
ZW5lcmF0ZWQgZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAgIGNv
bnRleHQgb2YgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3aGVy
ZSB0aGUgZXZlbnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KKworICAgICAgICBTZW5kIGEgc3ludGhldGljIG1vdXNlIGRvd24gZXZlbnQg
Zm9yIGNvbnRleHQgbWVudS1zdW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28KKyAgICAgICAgdGhh
dCB0ZXh0YXJlYXMgY2FuIGNvcnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRo
ZSBjb250ZXh0IG1lbnUgZXZlbnQuCisgICAgICAgIEFsc28gaW4gdGhpcyBjaGFuZ2UsIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVUd29GaW5nZXJUYXAgbm93IGZvbGxvd3MgdGhlIHNhbWUKKyAgICAg
ICAgY29kZSBwYXRoIGFzIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3MsIGhlbmNlIGZp
eGluZyB0aGlzIGJ1ZyBmb3IgYm90aCBnZXN0dXJlcy4KKworICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZl
bnQpOgorCiAyMDEyLTEwLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdXNlZCBmcmFtZUZvckVudGVyZWRDb250ZXh0IEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVlZjBjNjFkYTkzZDBjMTY0YWJl
Zjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjA5ZmIwYTkyMzQ0MGJjNGE1MDliMTdmNWNiNWEzNzdhYTAz
M2RmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI1MjMsNiArMjUy
Myw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZv
cm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUdlc3R1
cmVUYXBEb3duKCk7CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgog
ICAgICAgICByZXR1cm4gaGFuZGxlR2VzdHVyZUxvbmdQcmVzcyhnZXN0dXJlRXZlbnQpOworICAg
IGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVR3b0ZpbmdlclRhcDoKKyAgICAgICAgcmV0dXJu
IGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAoZ2VzdHVyZUV2ZW50KTsKICAgICBjYXNlIFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlUGluY2hCZWdpbjoKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEVuZDoK
QEAgLTI1ODksNiArMjU5MSwxNSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUxv
bmdQcmVzcyhjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZQogI2VuZGlmCiB9
CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlVHdvRmluZ2VyVGFwKGNvbnN0IFBs
YXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCit7CisjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCisgICAgcmV0dXJuIHNlbmRDb250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShnZXN0dXJl
RXZlbnQpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVTY3JvbGxVcGRhdGUoY29uc3QgUGxhdGZvcm1HZXN0dXJl
RXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKICAgICByZXR1cm4gaGFuZGxlR2VzdHVyZVNjcm9sbENv
cmUoZ2VzdHVyZUV2ZW50LCBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgdHJ1ZSk7CkBAIC0yNzg1
LDcgKzI3OTYsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9y
R2VzdHVyZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZXYKICAgICAgICAgYWRqdXN0R2Vz
dHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1c3RlZFBvaW50KTsKICNlbmRpZgogICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCksIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXVEY6OmN1cnJlbnRUaW1lKCkpOworICAgIC8vIFRvIHNpbXVsYXRlIHJpZ2h0LWNsaWNrIGJl
aGF2aW9yLCB3ZSBzZW5kIGEgcmlnaHQgbW91c2UgZG93biBhbmQgdGhlbgorICAgIC8vIGNvbnRl
eHQgbWVudSBldmVudC4KKyAgICBoYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7CiAg
ICAgcmV0dXJuIHNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOworICAgIC8vIFdlIGRv
IG5vdCBuZWVkIHRvIHNlbmQgYSBjb3JyZXNwb25kaW5nIG1vdXNlIHJlbGVhc2UgYmVjYXVzZSBp
biBjYXNlIG9mCisgICAgLy8gcmlnaHQtY2xpY2ssIHRoZSBjb250ZXh0IG1lbnUgdGFrZXMgY2Fw
dHVyZSBhbmQgY29uc3VtZXMgYWxsIGV2ZW50cy4KIH0KICNlbmRpZiAvLyBFTkFCTEUoR0VTVFVS
RV9FVkVOVFMpCiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAppbmRleCBhNjA0ZGEyYzg0MGUzMjFiNmQ3ZDFjODUxMDIyNTk3MmRhOGIx
ODhhLi45YTM2MWYyZGFjNDJkMTE3N2Y2YmE0YjkyZDhkZjNlZDgwNDE3YTRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBi
b29sIGhhbmRsZUdlc3R1cmVUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKICAgICBi
b29sIGhhbmRsZUdlc3R1cmVMb25nUHJlc3MoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsK
KyAgICBib29sIGhhbmRsZUdlc3R1cmVUd29GaW5nZXJUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJl
RXZlbnQmKTsKICAgICBib29sIGhhbmRsZUdlc3R1cmVTY3JvbGxVcGRhdGUoY29uc3QgUGxhdGZv
cm1HZXN0dXJlRXZlbnQmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggYzFjOWM4MmMyZDgxMjI0ODFlNTVjMDdlMGM4ZTlhYmU0ZTI3
ZWU1NS4uMmQ0OWI4OWZhNGJiNjE4MjE2ZjVmNTdlYTcwZjhiYzY5NjNkZGE2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNzQyLDE4ICs3NDIsNyBA
QCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCkKIAogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlVHdvRmluZ2VyVGFwOiB7Ci0gICAgICAgIGlmICghbWFpbkZyYW1lSW1wbCgp
IHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgbV9wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS0+Y2xlYXJDb250ZXh0TWVu
dSgpOwotICAgICAgICBtX2NvbnRleHRNZW51QWxsb3dlZCA9IHRydWU7Ci0gICAgICAgIFBsYXRm
b3JtR2VzdHVyZUV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50KG1haW5GcmFtZUltcGwoKS0+ZnJh
bWVWaWV3KCksIGV2ZW50KTsKLSAgICAgICAgZXZlbnRTd2FsbG93ZWQgPSBtYWluRnJhbWVJbXBs
KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1
cmUocGxhdGZvcm1FdmVudCk7Ci0gICAgICAgIG1fY29udGV4dE1lbnVBbGxvd2VkID0gZmFsc2U7
Ci0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVy
ZVR3b0ZpbmdlclRhcDoKICAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6
IHsKICAgICAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwgIW1haW5GcmFtZUltcGwoKS0+ZnJh
bWVWaWV3KCkpCiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkN2JkMjU2NzBmYzJiMjNlN2Jj
ZmQzNGQ0OWU3Nzg2NTMwNWYyYjhkLi41NzBhY2FmYzM5MzdkYTJkYTdkOTAwMTAyNDJkMTdjMmM2
YjIwNGY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMTYgIFZhcnVuIEphaW4gIDx2
YXJ1bmphaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENvbnRleHQgbWVudSBnZW5lcmF0ZWQg
ZnJvbSB0b3VjaCBnZXN0dXJlcyBvbiB0ZXh0YXJlYXMgaGFzCisgICAgICAgIGNvbnRleHQgb2Yg
dGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZXZl
bnQgb2NjdXJzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk1MjAKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4KKworICAgICAgICBTZW5kIGEgc3ludGhldGljIG1vdXNlIGRvd24gZXZlbnQgZm9yIGNvbnRl
eHQgbWVudS1zdW1tb25pbmctZ2VzdHVyZSBldmVudHMgc28gdGhhdAorICAgICAgICB0ZXh0YXJl
YXMgY2FuIGNvcnJlY3RseSBzZXQgY3Vyc29ycyBiZWZvcmUgcmVjZWl2aW5nIHRoZSBjb250ZXh0
IG1lbnUgZXZlbnQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0
LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
L3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNldC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEwLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJlL3JpZ2h0LWNsaWNrLWdlc3R1cmVzLXNl
dC1jdXJzb3ItYXQtY29ycmVjdC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJl
Y3QtcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGM2NDc3MWRlNzE0Y2JiMzBmYTg2NjQxZGE3
YzBlNjRmYTQ4NzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3Qt
cG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG9uIGEg
bG9uZyBwcmVzcyBvciBhIHR3byBmaW5nZXIgdGFwIGdlc3R1cmUgaW4gYSB0ZXh0IGFyZWEsCit0
aGUgY3Vyc29yIGlzIGZpcnN0IHNldCB0byB0aGUgcmlnaHQgcG9zaXRpb24gKHRoaXMgaXMgZG9u
ZSBieSBzZW5kaW5nIGEgcmlnaHQKK21vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGp1c3QgYmVmb3Jl
IGxvbmcgcHJlc3MpLgorPC9wPgorPHRleHRhcmVhIGlkPSJ0ZXh0IiByb3dzPSI1IiBjb2xzPSIz
MSI+CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgb24gYSBsb25nIHByZXNzIG9yIGEgdHdvIGZpbmdl
ciB0YXAgZ2VzdHVyZSBpbiBhIHRleHQgYXJlYSwKK3RoZSBjdXJzb3IgaXMgZmlyc3Qgc2V0IHRv
IHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodAorbW91
c2UgYnV0dG9uIGRvd24gZXZlbnQganVzdCBiZWZvcmUgbG9uZyBwcmVzcykuCis8L3RleHRhcmVh
PgorPGRpdiBpZD0idGV4dCI+VGVzdGluZzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMPC9k
aXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gc2V0Q3Vyc29yUG9zaXRpb24ocG9zaXRpb24pCit7Cisg
ICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworICAgIHRleHQu
Zm9jdXMoKTsKKyAgICB0ZXh0LnNldFNlbGVjdGlvblJhbmdlKHBvc2l0aW9uLCBwb3NpdGlvbik7
Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKwordmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworCitzZXRD
dXJzb3JQb3NpdGlvbigwKTsKKwordmFyIGxvbmdQcmVzc1Rlc3RlZCA9IGZhbHNlOworZG9jdW1l
bnQub25jb250ZXh0bWVudSA9IGZ1bmN0aW9uKCkgeworICAgIGlmIChsb25nUHJlc3NUZXN0ZWQg
JiYgdGV4dC5zZWxlY3Rpb25TdGFydCAhPSAwKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlBBU1MiOworCisgICAgaWYgKCFsb25nUHJlc3NU
ZXN0ZWQgJiYgdGV4dC5zZWxlY3Rpb25TdGFydCAhPSAwKSB7CisgICAgICAgIHNldEN1cnNvclBv
c2l0aW9uKDApOworICAgICAgICBsb25nUHJlc3NUZXN0ZWQgPSB0cnVlOworICAgIH0KK30KKwor
dmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOworCit2YXIgeCA9IHRl
eHQub2Zmc2V0TGVmdCArIDEwOwordmFyIHkgPSB0ZXh0Lm9mZnNldFRvcCArIDQwOworCitpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgaWYgKGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJl
c3MpCisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3MoeCwgeSk7CisgICAgZWxz
ZQorICAgICAgICBkZWJ1ZygiZ2VzdHVyZUxvbmdQcmVzcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhp
cyBwbGF0Zm9ybSIpOworCisgICAgaWYgKGV2ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXAp
CisgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUd29GaW5nZXJUYXAoeCArIDIwLCB5KTsKKyAg
ICBlbHNlCisgICAgICAgIGRlYnVnKCJnZXN0dXJlVHdvRmluZ2VyVGFwIG5vdCBpbXBsZW1lbnRl
ZCBieSB0aGlzIHBsYXRmb3JtIik7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3RvdWNo
L2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3JyZWN0LXBvc2l0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZl
bnRzL3RvdWNoL2dlc3R1cmUvcmlnaHQtY2xpY2stZ2VzdHVyZXMtc2V0LWN1cnNvci1hdC1jb3Jy
ZWN0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTU3OTljZGM2OTIyNDY0ZmM5
NGU4MTMwOWNmOGQ2YTRkNmFiODkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVyZS9yaWdodC1jbGljay1nZXN0
dXJlcy1zZXQtY3Vyc29yLWF0LWNvcnJlY3QtcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IG9uIGEgbG9uZyBwcmVzcyBvciBhIHR3byBm
aW5nZXIgdGFwIGdlc3R1cmUgaW4gYSB0ZXh0IGFyZWEsIHRoZSBjdXJzb3IgaXMgZmlyc3Qgc2V0
IHRvIHRoZSByaWdodCBwb3NpdGlvbiAodGhpcyBpcyBkb25lIGJ5IHNlbmRpbmcgYSByaWdodCBt
b3VzZSBidXR0b24gZG93biBldmVudCBqdXN0IGJlZm9yZSBsb25nIHByZXNzKS4KKworCitUZXN0
aW5nCitQQVNTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>