<?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>77477</bug_id>
          
          <creation_ts>2012-01-31 14:07:01 -0800</creation_ts>
          <short_desc>[chromium] Process scroll-gesture events from the MT compositor</short_desc>
          <delta_ts>2012-02-07 13:52:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>73350</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sadrul Habib Chowdhury">sadrul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>546477</commentid>
    <comment_count>0</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-01-31 14:07:01 -0800</bug_when>
    <thetext>Scroll-gesture events should be processed from the MT compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546478</commentid>
    <comment_count>1</comment_count>
      <attachid>124817</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-01-31 14:07:24 -0800</bug_when>
    <thetext>Created attachment 124817
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546481</commentid>
    <comment_count>2</comment_count>
      <attachid>124818</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-01-31 14:09:02 -0800</bug_when>
    <thetext>Created attachment 124818
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546490</commentid>
    <comment_count>3</comment_count>
      <attachid>124818</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-01-31 14:22:21 -0800</bug_when>
    <thetext>Comment on attachment 124818
patch

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

this looks reasonable to me. Maybe we could ask jamesr or fishd to take a look?

&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:136
&gt; +        ASSERT(!m_inScroll);

I think you&apos;re safe doing this because in these types of gesture events can&apos;t  have event handlers.

&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:158
&gt; +        m_inputHandlerClient-&gt;scrollEnd();

this would be where we wire up flick...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547254</commentid>
    <comment_count>4</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-02-01 11:54:14 -0800</bug_when>
    <thetext>We investigated. this code can be committed independently of 73350 -- but needs 73350 to work correctly overflow on DIVs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547316</commentid>
    <comment_count>5</comment_count>
      <attachid>125000</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-01 13:15:18 -0800</bug_when>
    <thetext>Created attachment 125000
patch

I made a couple of changes in the patch to make it work with https://bugs.webkit.org/show_bug.cgi?id=73350.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547356</commentid>
    <comment_count>6</comment_count>
      <attachid>125012</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-01 14:05:28 -0800</bug_when>
    <thetext>Created attachment 125012
Added a check to make sure ScrollUpdate and ScrollEnd gestures arrive only after ScrollBegin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547415</commentid>
    <comment_count>7</comment_count>
      <attachid>125028</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-01 15:13:09 -0800</bug_when>
    <thetext>Created attachment 125028
Added a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547419</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 15:16:54 -0800</bug_when>
    <thetext>Attachment 125028 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Sourc...&quot; exit_code: 1

Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:47:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:47:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:48:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:53:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:54:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:57:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:58:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:61:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:62:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:63:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:68:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:76:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:77:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:79:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:88:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:89:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:92:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:138:  mock_input_handler is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:140:  mock_client is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:190:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 20 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547432</commentid>
    <comment_count>9</comment_count>
      <attachid>125032</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-01 15:27:39 -0800</bug_when>
    <thetext>Created attachment 125032
style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548261</commentid>
    <comment_count>10</comment_count>
      <attachid>125032</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-02 16:58:44 -0800</bug_when>
    <thetext>Comment on attachment 125032
style

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

Looks great - have many nits, but nothing serious.

&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:155
&gt; +        if (m_scrollStarted) {

i think we should ASSERT() on m_scrollStarted, not branch. if we get a scrollupdate without a scrollbegin it means that the caller has broken the contract with us - we should fail fast and loudly, not try to limp along IMO

&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h:74
&gt; +    bool m_expectScrollUpdateEnd;
&gt; +    bool m_scrollStarted;

since these are just for assertions can you wrap them (and their use) in #ifndef NDEBUG? I like to keep state that&apos;s just kept for debugging separate from state that&apos;s used for actual logic

&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:77
&gt; +    MockWebCompositorInputHandlerClient() : m_handled(false), m_sendToWidget(false) { }

expand the initialization out please - we generally don&apos;t like to have more than one statement per line

&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:80
&gt; +    void Reset()

in WebKit, method names are lowecase

&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:143
&gt; +    OwnPtr&lt;WebCompositorInputHandlerImpl&gt; comp = WebCompositorInputHandlerImpl::create(&amp;mockInputHandler);

we don&apos;t typically like abbreviations in WebKit, even in tests. it&apos;s also not super clear that &apos;comp&apos; means &apos;WebCompositorInputHandlerImpl&apos; can you name this something like &quot;inputHandler&quot; ?

&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:149
&gt; +    gesture.x = gesture.y = gesture.globalX = gesture.globalY = gesture.deltaX = gesture.deltaY = 0;

WebGestureEvent&apos;s constructor zeros all these fields out, no need to do so yourself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548393</commentid>
    <comment_count>11</comment_count>
      <attachid>125032</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-02 20:21:21 -0800</bug_when>
    <thetext>Comment on attachment 125032
style

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

&gt;&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:155
&gt;&gt; +        if (m_scrollStarted) {
&gt; 
&gt; i think we should ASSERT() on m_scrollStarted, not branch. if we get a scrollupdate without a scrollbegin it means that the caller has broken the contract with us - we should fail fast and loudly, not try to limp along IMO

Indeed. I am using m_expectedScrollUpdateEnd for precisely this purpose (e.g see lines 139, 154, 162). m_scrollStarted is used to make sure we don&apos;t call scrollBy or scrollEnd if the call to scrollBegin returned something other than ScrollStarted.

&gt;&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h:74
&gt;&gt; +    bool m_scrollStarted;
&gt; 
&gt; since these are just for assertions can you wrap them (and their use) in #ifndef NDEBUG? I like to keep state that&apos;s just kept for debugging separate from state that&apos;s used for actual logic

m_expectedScrollUpdated is only used for assertions. So I have put it in #ifndef. Since m_scrollStarted is used to decide whether or not to call scrollBy/scrollEnd, I have left it unchanged.

&gt;&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:77
&gt;&gt; +    MockWebCompositorInputHandlerClient() : m_handled(false), m_sendToWidget(false) { }
&gt; 
&gt; expand the initialization out please - we generally don&apos;t like to have more than one statement per line

Done.

&gt;&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:80
&gt;&gt; +    void Reset()
&gt; 
&gt; in WebKit, method names are lowecase

Done.

&gt;&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:143
&gt;&gt; +    OwnPtr&lt;WebCompositorInputHandlerImpl&gt; comp = WebCompositorInputHandlerImpl::create(&amp;mockInputHandler);
&gt; 
&gt; we don&apos;t typically like abbreviations in WebKit, even in tests. it&apos;s also not super clear that &apos;comp&apos; means &apos;WebCompositorInputHandlerImpl&apos; can you name this something like &quot;inputHandler&quot; ?

Done.

&gt;&gt; Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp:149
&gt;&gt; +    gesture.x = gesture.y = gesture.globalX = gesture.globalY = gesture.deltaX = gesture.deltaY = 0;
&gt; 
&gt; WebGestureEvent&apos;s constructor zeros all these fields out, no need to do so yourself

Cool! Thanks. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548394</commentid>
    <comment_count>12</comment_count>
      <attachid>125248</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-02 20:21:45 -0800</bug_when>
    <thetext>Created attachment 125248
patch

Addressed all the comments (made code changes as suggested, or left comment explaining)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548862</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 11:01:51 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 125032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125032&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:155
&gt; &gt;&gt; +        if (m_scrollStarted) {
&gt; &gt; 
&gt; &gt; i think we should ASSERT() on m_scrollStarted, not branch. if we get a scrollupdate without a scrollbegin it means that the caller has broken the contract with us - we should fail fast and loudly, not try to limp along IMO
&gt; 
&gt; Indeed. I am using m_expectedScrollUpdateEnd for precisely this purpose (e.g see lines 139, 154, 162). m_scrollStarted is used to make sure we don&apos;t call scrollBy or scrollEnd if the call to scrollBegin returned something other than ScrollStarted.
&gt; 

Right. I&apos;m saying you should NOT do this, you should just ASSERT().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548870</commentid>
    <comment_count>14</comment_count>
      <attachid>125032</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-03 11:08:55 -0800</bug_when>
    <thetext>Comment on attachment 125032
style

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp:155
&gt;&gt;&gt;&gt; +        if (m_scrollStarted) {
&gt;&gt;&gt; 
&gt;&gt;&gt; i think we should ASSERT() on m_scrollStarted, not branch. if we get a scrollupdate without a scrollbegin it means that the caller has broken the contract with us - we should fail fast and loudly, not try to limp along IMO
&gt;&gt; 
&gt;&gt; Indeed. I am using m_expectedScrollUpdateEnd for precisely this purpose (e.g see lines 139, 154, 162). m_scrollStarted is used to make sure we don&apos;t call scrollBy or scrollEnd if the call to scrollBegin returned something other than ScrollStarted.
&gt; 
&gt; Right. I&apos;m saying you should NOT do this, you should just ASSERT().

Just to make sure I understand clearly :-) ... consider the following case:
- A GestureScrollBegin event comes in. It triggers a scrollBegin. However, for whatever reason, scrollBegin returns ScrollIgnored, therefore setting m_scrollStarted to false. The caller of the function (i.e. the source of the event) isn&apos;t aware that scrolling didn&apos;t start successfully.
- The event-source sends a GestureScrollUpdate event. Since scrolling didn&apos;t start successfully, i.e. m_scrollStarted is false, this will trip the ASSERT. But should this really cause a crash? The event-source did send a GestureScrollBegin before sending a GestureScrollUpdate, thereby meeting the expectation of WebCompositorInputHandlerImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548983</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 13:01:16 -0800</bug_when>
    <thetext>Gah, I realize my mistake now!  Sorry to mislead for the last several comments.

To start, the caller should never send a GestureScrollUpdate (or any type of input event) before the previous input event is ACK&apos;d.  I believe that we propagate the disposition of the scroll in the reply to the GestureScrollBegin, correct?  So I guess the three cases are:

(1) we&apos;ve decided to accept the scroll on the compositor thread, in which case we accept the input on the thread and expect take a sequence of GestureScrollUpdates followed by a GestureScrollEnd.

(2) we&apos;ve decided not to accept the scroll on the compositor thread, but the main thread might want to accept it. in this case, the input handler calls didNotHandleInputEvent(true) and then has to forward all subsequence GestureScrollUpdates up to and including the GestureScrollEnd to the main thread. I think this is what your patch (correctly) does.

(3) we&apos;ve decided not to scroll on the compositor thread and we know we also don&apos;t want to scroll on the main thread. there are two possibilities here: either we tell the browser side to not send any more gesture events at all for this GestureScroll, or the browser still sends them and we ignore them.  I&apos;m not sure which behavior this patch is trying to adopt.

So the question is then what happens for (3) - do we expect to get the GestureScrollUpdates / GestureScrollEnd and ignore them, or is the caller supposed to not generate those? I think it&apos;d be more efficient if the browser was smart enough not to send these to the renderer at all but that might be tricky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549055</commentid>
    <comment_count>16</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-03 14:05:14 -0800</bug_when>
    <thetext>Sorry for not explaining this better in my previous attempt.

(In reply to comment #15)
&gt; Gah, I realize my mistake now!  Sorry to mislead for the last several comments.
&gt; 
&gt; To start, the caller should never send a GestureScrollUpdate (or any type of input event) before the previous input event is ACK&apos;d.  I believe that we propagate the disposition of the scroll in the reply to the GestureScrollBegin, correct?  So I guess the three cases are:
&gt; 
&gt; (1) we&apos;ve decided to accept the scroll on the compositor thread, in which case we accept the input on the thread and expect take a sequence of GestureScrollUpdates followed by a GestureScrollEnd.
&gt; 
&gt; (2) we&apos;ve decided not to accept the scroll on the compositor thread, but the main thread might want to accept it. in this case, the input handler calls didNotHandleInputEvent(true) and then has to forward all subsequence GestureScrollUpdates up to and including the GestureScrollEnd to the main thread. I think this is what your patch (correctly) does.
&gt; 
&gt; (3) we&apos;ve decided not to scroll on the compositor thread and we know we also don&apos;t want to scroll on the main thread. there are two possibilities here: either we tell the browser side to not send any more gesture events at all for this GestureScroll, or the browser still sends them and we ignore them.  I&apos;m not sure which behavior this patch is trying to adopt.
&gt; 
&gt; So the question is then what happens for (3) - do we expect to get the GestureScrollUpdates / GestureScrollEnd and ignore them, or is the caller supposed to not generate those? I think it&apos;d be more efficient if the browser was smart enough not to send these to the renderer at all but that might be tricky.

Interesting. I hadn&apos;t considered (3). With this change for case (3), gesture events will continue to come in, and the events will simply be ignored here. I think this is a safe way of dealing with the events. Right now, when the MT compositor is not in use, the browser always send all the gesture events, and they are processed/ignored as appropriate by Webkit. So this behaviour will match that.

Having said that, I like your idea of not sending gesture update/end if gesture-begin didn&apos;t initiate a scroll. From what I can see, this will need to happen in chrome (CompositorThread/InputEventFilter). I will look into implementing that now. If I can get this to work before https://bugs.webkit.org/show_bug.cgi?id=73350 lands, then I will update this patch here.

Thanks for your suggestions!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549057</commentid>
    <comment_count>17</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 14:09:20 -0800</bug_when>
    <thetext>OK, glad we&apos;re on the same page then.  I&apos;ve had a cold this week and it&apos;s been messing with my head.

I think we can treat (3) as a future improvement.  The main benefit is that without special handling for that case what will happen is all GestureScrollUpdates will be sent to the renderer, then sent to the main thread, and the ACK will be held until the render process main thread responds.  This means we can&apos;t process any further gestures (or input events at all) until the main thread becomes responsive which might cause jank.  We should try to avoid the main thread whenever we know that we can get away with it.  I agree this needs some work in the chromium side of the world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549102</commentid>
    <comment_count>18</comment_count>
      <attachid>125248</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-03 14:38:57 -0800</bug_when>
    <thetext>Comment on attachment 125248
patch

R=me on this.  Can you file separate bug(s) about the behavior on (3)? It&apos;ll require code changes outside of WebKit, but I think the WebKit code can also be made less tolerant once that happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549387</commentid>
    <comment_count>19</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-04 00:32:58 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 125248 [details])
&gt; R=me on this.  Can you file separate bug(s) about the behavior on (3)? It&apos;ll require code changes outside of WebKit, but I think the WebKit code can also be made less tolerant once that happens.

Thanks! I have just filed http://crbug.com/112692 to keep track of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551235</commentid>
    <comment_count>20</comment_count>
      <attachid>125248</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-02-07 12:23:06 -0800</bug_when>
    <thetext>Comment on attachment 125248
patch

Requesting cq? so that subsequent work for pinch etc. can go ahead.

Although 73350 hasn&apos;t landed yet, this shouldn&apos;t introduce regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551340</commentid>
    <comment_count>21</comment_count>
      <attachid>125248</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 13:52:39 -0800</bug_when>
    <thetext>Comment on attachment 125248
patch

Clearing flags on attachment: 125248

Committed r106987: &lt;http://trac.webkit.org/changeset/106987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551342</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 13:52:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124817</attachid>
            <date>2012-01-31 14:07:24 -0800</date>
            <delta_ts>2012-01-31 14:09:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>3500</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uZDllNWE1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgTmVlZCBh
IHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsOjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAg
ICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaDoKKyAgICAgICAgKFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsKToKKwogMjAxMi0wMS0zMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEwNjMyNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcAppbmRleCA0MDhmMTI2Li40Yjlm
YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCkBAIC04MSw2ICs4MSw3IEBAIFdlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbChDQ0lu
cHV0SGFuZGxlckNsaWVuCiAgICAgOiBtX2NsaWVudCgwKQogICAgICwgbV9pZGVudGlmaWVyKHNf
bmV4dEF2YWlsYWJsZUlkZW50aWZpZXIrKykKICAgICAsIG1faW5wdXRIYW5kbGVyQ2xpZW50KGlu
cHV0SGFuZGxlckNsaWVudCkKKyAgICAsIG1faW5TY3JvbGwoZmFsc2UpCiB7CiAgICAgQVNTRVJU
KENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKIApAQCAtMTMxLDYgKzEzMiwzMyBAQCB2b2lkIFdl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklu
cHV0RXZlbnQmIGV2ZW50KQogICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3Jv
bGxGYWlsZWQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo
ZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW4pIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2luU2Nyb2xsKTsKKyAgICAgICAgY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBn
ZXN0dXJlRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmV2ZW50
KTsKKyAgICAgICAgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXR1cyBzY3JvbGxTdGF0
dXMgPSBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQmVnaW4oSW50UG9pbnQoZ2VzdHVyZUV2
ZW50LngsIGdlc3R1cmVFdmVudC55KSk7CisgICAgICAgIHN3aXRjaCAoc2Nyb2xsU3RhdHVzKSB7
CisgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbFN0YXJ0ZWQ6CisgICAg
ICAgICAgICBtX2luU2Nyb2xsID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5k
bGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgQ0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElnbm9yZWQ6CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlk
Tm90SGFuZGxlSW5wdXRFdmVudChmYWxzZSAvKiBzZW5kVG9XaWRnZXQgKi8pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxGYWls
ZWQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZXZlbnQu
dHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlKSB7CisgICAgICAgIEFT
U0VSVChtX2luU2Nyb2xsKTsKKyAgICAgICAgY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBnZXN0dXJl
RXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmV2ZW50KTsKKyAg
ICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJ5KEludFNpemUoLWdlc3R1cmVFdmVu
dC5kZWx0YVgsIC1nZXN0dXJlRXZlbnQuZGVsdGFZKSk7CisgICAgICAgIG1fY2xpZW50LT5kaWRI
YW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGV2ZW50
LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZCkgeworICAgICAgICBBU1NF
UlQobV9pblNjcm9sbCk7CisgICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxFbmQo
KTsKKyAgICAgICAgbV9jbGllbnQtPmRpZEhhbmRsZUlucHV0RXZlbnQoKTsKKyAgICAgICAgbV9p
blNjcm9sbCA9IGZhbHNlOworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fY2xpZW50LT5k
aWROb3RIYW5kbGVJbnB1dEV2ZW50KHRydWUgLyogc2VuZFRvV2lkZ2V0ICovKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbC5oCmluZGV4IDFlYmMxZTEuLjNmNzRkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwu
aApAQCAtNzAsNiArNzAsOCBAQCBwcml2YXRlOgogICAgIGludCBtX2lkZW50aWZpZXI7CiAgICAg
V2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQqIG1faW5wdXRIYW5kbGVyQ2xpZW50OwogCisg
ICAgYm9vbCBtX2luU2Nyb2xsOworCiAgICAgc3RhdGljIGludCBzX25leHRBdmFpbGFibGVJZGVu
dGlmaWVyOwogICAgIHN0YXRpYyBIYXNoU2V0PFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
Kj4qIHNfY29tcG9zaXRvcnM7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124818</attachid>
            <date>2012-01-31 14:09:02 -0800</date>
            <delta_ts>2012-02-01 13:15:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>3501</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uZDllNWE1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uNGI5
ZmI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsNyBAQCBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoQ0NJ
bnB1dEhhbmRsZXJDbGllbgogICAgIDogbV9jbGllbnQoMCkKICAgICAsIG1faWRlbnRpZmllcihz
X25leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2lucHV0SGFuZGxlckNsaWVudChp
bnB1dEhhbmRsZXJDbGllbnQpCisgICAgLCBtX2luU2Nyb2xsKGZhbHNlKQogewogICAgIEFTU0VS
VChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CiAKQEAgLTEzMSw2ICsxMzIsMzMgQEAgdm9pZCBX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJ
bnB1dEV2ZW50JiBldmVudCkKICAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsRmFpbGVkOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luKSB7CisgICAg
ICAgIEFTU0VSVCghbV9pblNjcm9sbCk7CisgICAgICAgIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYg
Z2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZldmVu
dCk7CisgICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsU3Rh
dHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2luKEludFBvaW50KGdlc3R1cmVF
dmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykg
eworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkOgorICAg
ICAgICAgICAgbV9pblNjcm9sbCA9IHRydWU7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkSGFu
ZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5w
dXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJZ25vcmVkOgorICAgICAgICAgICAgbV9jbGllbnQtPmRp
ZE5vdEhhbmRsZUlucHV0RXZlbnQoZmFsc2UgLyogc2VuZFRvV2lkZ2V0ICovKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsRmFp
bGVkOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGV2ZW50
LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSkgeworICAgICAgICBB
U1NFUlQobV9pblNjcm9sbCk7CisgICAgICAgIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVy
ZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZldmVudCk7Cisg
ICAgICAgIG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCeShJbnRTaXplKC1nZXN0dXJlRXZl
bnQuZGVsdGFYLCAtZ2VzdHVyZUV2ZW50LmRlbHRhWSkpOworICAgICAgICBtX2NsaWVudC0+ZGlk
SGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChldmVu
dC50eXBlID09IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQpIHsKKyAgICAgICAgQVNT
RVJUKG1faW5TY3JvbGwpOworICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5k
KCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgIG1f
aW5TY3JvbGwgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2NsaWVudC0+
ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAqLyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuaAppbmRleCAxZWJjMWUxLi4zZjc0ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
LmgKQEAgLTcwLDYgKzcwLDggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZGVudGlmaWVyOwogICAg
IFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxlckNsaWVudDsKIAor
ICAgIGJvb2wgbV9pblNjcm9sbDsKKwogICAgIHN0YXRpYyBpbnQgc19uZXh0QXZhaWxhYmxlSWRl
bnRpZmllcjsKICAgICBzdGF0aWMgSGFzaFNldDxXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bCo+KiBzX2NvbXBvc2l0b3JzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125000</attachid>
            <date>2012-02-01 13:15:18 -0800</date>
            <delta_ts>2012-02-01 14:05:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>3471</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uYjllODJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uMWYw
MzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsNyBAQCBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoQ0NJ
bnB1dEhhbmRsZXJDbGllbgogICAgIDogbV9jbGllbnQoMCkKICAgICAsIG1faWRlbnRpZmllcihz
X25leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2lucHV0SGFuZGxlckNsaWVudChp
bnB1dEhhbmRsZXJDbGllbnQpCisgICAgLCBtX2luU2Nyb2xsKGZhbHNlKQogewogICAgIEFTU0VS
VChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CiAKQEAgLTEzMSw2ICsxMzIsMzEgQEAgdm9pZCBX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJ
bnB1dEV2ZW50JiBldmVudCkKICAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Ny
b2xsRmFpbGVkOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luKSB7CisgICAg
ICAgIEFTU0VSVCghbV9pblNjcm9sbCk7CisgICAgICAgIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYg
Z2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZldmVu
dCk7CisgICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGF0dXMgc2Nyb2xsU3Rh
dHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2luKEludFBvaW50KGdlc3R1cmVF
dmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBzd2l0Y2ggKHNjcm9sbFN0YXR1cykg
eworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxTdGFydGVkOgorICAg
ICAgICAgICAgbV9pblNjcm9sbCA9IHRydWU7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkSGFu
ZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5w
dXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJZ25vcmVkOgorICAgICAgICAgICAgbV9jbGllbnQtPmRp
ZE5vdEhhbmRsZUlucHV0RXZlbnQoZmFsc2UgLyogc2VuZFRvV2lkZ2V0ICovKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsRmFp
bGVkOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGV2ZW50
LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZSAmJiBtX2luU2Nyb2xs
KSB7CisgICAgICAgIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRp
Y19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZldmVudCk7CisgICAgICAgIG1faW5wdXRI
YW5kbGVyQ2xpZW50LT5zY3JvbGxCeShJbnRTaXplKC1nZXN0dXJlRXZlbnQuZGVsdGFYLCAtZ2Vz
dHVyZUV2ZW50LmRlbHRhWSkpOworICAgICAgICBtX2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVu
dCgpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09IFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQgJiYgbV9pblNjcm9sbCkgeworICAgICAgICBtX2lu
cHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRIYW5k
bGVJbnB1dEV2ZW50KCk7CisgICAgICAgIG1faW5TY3JvbGwgPSBmYWxzZTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8q
IHNlbmRUb1dpZGdldCAqLyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRleCAxZWJjMWUxLi4z
Zjc0ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKQEAgLTcwLDYgKzcwLDggQEAgcHJpdmF0ZToK
ICAgICBpbnQgbV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50
KiBtX2lucHV0SGFuZGxlckNsaWVudDsKIAorICAgIGJvb2wgbV9pblNjcm9sbDsKKwogICAgIHN0
YXRpYyBpbnQgc19uZXh0QXZhaWxhYmxlSWRlbnRpZmllcjsKICAgICBzdGF0aWMgSGFzaFNldDxX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCo+KiBzX2NvbXBvc2l0b3JzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125012</attachid>
            <date>2012-02-01 14:05:28 -0800</date>
            <delta_ts>2012-02-01 15:13:09 -0800</delta_ts>
            <desc>Added a check to make sure ScrollUpdate and ScrollEnd gestures arrive only after ScrollBegin</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>3865</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uYjllODJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uMDk4
NWJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsOCBAQCBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoQ0NJ
bnB1dEhhbmRsZXJDbGllbgogICAgIDogbV9jbGllbnQoMCkKICAgICAsIG1faWRlbnRpZmllcihz
X25leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2lucHV0SGFuZGxlckNsaWVudChp
bnB1dEhhbmRsZXJDbGllbnQpCisgICAgLCBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZChmYWxzZSkK
KyAgICAsIG1fc2Nyb2xsU3RhcnRlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJ
bXBsVGhyZWFkKCkpOwogCkBAIC0xMzEsNiArMTMzLDQwIEBAIHZvaWQgV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZl
bnQpCiAgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbikgeworICAgICAgICBBU1NFUlQoIW1f
c2Nyb2xsU3RhcnRlZCk7CisgICAgICAgIEFTU0VSVCghbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQp
OworICAgICAgICBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCA9IHRydWU7CisgICAgICAgIGNvbnN0
IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdl
c3R1cmVFdmVudCo+KCZldmVudCk7CisgICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3Jv
bGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2lu
KEludFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBzd2l0
Y2ggKHNjcm9sbFN0YXR1cykgeworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpT
Y3JvbGxTdGFydGVkOgorICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElnbm9yZWQ6Cisg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudChmYWxzZSAvKiBzZW5k
VG9XaWRnZXQgKi8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxGYWlsZWQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Ny
b2xsVXBkYXRlKSB7CisgICAgICAgIEFTU0VSVChtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCk7Cisg
ICAgICAgIGlmIChtX3Njcm9sbFN0YXJ0ZWQpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYkdlc3R1
cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCo+KCZldmVudCk7CisgICAgICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnko
SW50U2l6ZSgtZ2VzdHVyZUV2ZW50LmRlbHRhWCwgLWdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAg
ICAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRF
dmVudDo6R2VzdHVyZVNjcm9sbEVuZCkgeworICAgICAgICBBU1NFUlQobV9leHBlY3RTY3JvbGxV
cGRhdGVFbmQpOworICAgICAgICBpZiAobV9zY3JvbGxTdGFydGVkKSB7CisgICAgICAgICAgICBt
X2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7CisgICAgICAgICAgICBtX2NsaWVudC0+
ZGlkSGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVkID0gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgICAgbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQgPSBmYWxzZTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRF
dmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAqLyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRl
eCAxZWJjMWUxLi5kNDEyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKQEAgLTcwLDYgKzcwLDkg
QEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkNDSW5wdXRI
YW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxlckNsaWVudDsKIAorICAgIGJvb2wgbV9leHBlY3RT
Y3JvbGxVcGRhdGVFbmQ7CisgICAgYm9vbCBtX3Njcm9sbFN0YXJ0ZWQ7CisKICAgICBzdGF0aWMg
aW50IHNfbmV4dEF2YWlsYWJsZUlkZW50aWZpZXI7CiAgICAgc3RhdGljIEhhc2hTZXQ8V2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwqPiogc19jb21wb3NpdG9yczsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125028</attachid>
            <date>2012-02-01 15:13:09 -0800</date>
            <delta_ts>2012-02-01 15:27:39 -0800</delta_ts>
            <desc>Added a test</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>9106</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uYjllODJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uYzgz
MmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsOCBAQCBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoQ0NJ
bnB1dEhhbmRsZXJDbGllbgogICAgIDogbV9jbGllbnQoMCkKICAgICAsIG1faWRlbnRpZmllcihz
X25leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2lucHV0SGFuZGxlckNsaWVudChp
bnB1dEhhbmRsZXJDbGllbnQpCisgICAgLCBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZChmYWxzZSkK
KyAgICAsIG1fc2Nyb2xsU3RhcnRlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJ
bXBsVGhyZWFkKCkpOwogCkBAIC0xMzEsNiArMTMzLDQwIEBAIHZvaWQgV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZl
bnQpCiAgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbikgeworICAgICAgICBBU1NFUlQoIW1f
c2Nyb2xsU3RhcnRlZCk7CisgICAgICAgIEFTU0VSVCghbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQp
OworICAgICAgICBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCA9IHRydWU7CisgICAgICAgIGNvbnN0
IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdl
c3R1cmVFdmVudCo+KCZldmVudCk7CisgICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3Jv
bGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2lu
KEludFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBzd2l0
Y2ggKHNjcm9sbFN0YXR1cykgeworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpT
Y3JvbGxTdGFydGVkOgorICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElnbm9yZWQ6Cisg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudChmYWxzZSAvKiBzZW5k
VG9XaWRnZXQgKi8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxGYWlsZWQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Ny
b2xsVXBkYXRlKSB7CisgICAgICAgIEFTU0VSVChtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCk7Cisg
ICAgICAgIGlmIChtX3Njcm9sbFN0YXJ0ZWQpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYkdlc3R1
cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCo+KCZldmVudCk7CisgICAgICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnko
SW50U2l6ZSgtZ2VzdHVyZUV2ZW50LmRlbHRhWCwgLWdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAg
ICAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRF
dmVudDo6R2VzdHVyZVNjcm9sbEVuZCkgeworICAgICAgICBBU1NFUlQobV9leHBlY3RTY3JvbGxV
cGRhdGVFbmQpOworICAgICAgICBpZiAobV9zY3JvbGxTdGFydGVkKSB7CisgICAgICAgICAgICBt
X2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7CisgICAgICAgICAgICBtX2NsaWVudC0+
ZGlkSGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgbV9leHBlY3RTY3JvbGxVcGRhdGVF
bmQgPSBtX3Njcm9sbFN0YXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCA9IGZhbHNlOwogICAgIH0KICAg
ICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAq
Lyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRleCAxZWJjMWUxLi5kNDEyMDI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsLmgKQEAgLTcwLDYgKzcwLDkgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZGVu
dGlmaWVyOwogICAgIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxl
ckNsaWVudDsKIAorICAgIGJvb2wgbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQ7CisgICAgYm9vbCBt
X3Njcm9sbFN0YXJ0ZWQ7CisKICAgICBzdGF0aWMgaW50IHNfbmV4dEF2YWlsYWJsZUlkZW50aWZp
ZXI7CiAgICAgc3RhdGljIEhhc2hTZXQ8V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwqPiog
c19jb21wb3NpdG9yczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAKaW5k
ZXggZjIwN2MwNi4uOTQ5NjljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNw
cApAQCAtMjgsNiArMjgsOSBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsLmgiCiAKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKyNp
bmNsdWRlICJjYy9DQ0lucHV0SGFuZGxlci5oIgogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaCIKIAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CkBAIC0zOCw2ICs0MSw2MiBAQCB1
c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOwogCiBuYW1lc3BhY2Ug
ewogCitjbGFzcyBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNDSW5w
dXRIYW5kbGVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2NrSW5wdXRIYW5k
bGVyQ2xpZW50KTsKK3B1YmxpYzoKKyAgICBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50KCkgOiBtX3Nj
cm9sbFN0YXR1cyAoU2Nyb2xsU3RhcnRlZCkge30KKyAgICB2aXJ0dWFsIH5Nb2NrSW5wdXRIYW5k
bGVyQ2xpZW50KCkge30KKworICAgIHZvaWQgc2V0U2Nyb2xsU3RhdHVzKFNjcm9sbFN0YXR1cyBz
dGF0dXMpIHsgbV9zY3JvbGxTdGF0dXMgPSBzdGF0dXM7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKSBPVkVSUklERSB7fQorICAgIHZpcnR1YWwgU2Nyb2xs
U3RhdHVzIHNjcm9sbEJlZ2luKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgT1ZFUlJJREUgewor
ICAgICAgICByZXR1cm4gbV9zY3JvbGxTdGF0dXM7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxCeShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgT1ZFUlJJREUge30KKyAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsRW5kKCkgT1ZFUlJJREUge30KKworICAgIHZpcnR1YWwgYm9vbCBoYXZlV2hl
ZWxFdmVudEhhbmRsZXJzKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgcGluY2hHZXN0dXJlQmVnaW4oKSBPVkVSUklERSB7fQorICAgIHZpcnR1YWwgdm9pZCBw
aW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgYW5jaG9yKSBPVkVSUklERSB7fQorICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVF
bmQoKSBPVkVSUklERSB7fQorICAgIHZpcnR1YWwgdm9pZCBzdGFydFBhZ2VTY2FsZUFuaW1hdGlv
bihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbmNob3JQb2ludCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVNjYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgc3RhcnRUaW1lTXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkdXJhdGlvbk1zKSBP
VkVSUklERSB7fQorCisgICAgU2Nyb2xsU3RhdHVzIG1fc2Nyb2xsU3RhdHVzOworfTsKKworY2xh
c3MgTW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShNb2NrV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCk7CitwdWJsaWM6CisgICAgTW9j
a1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKSA6IG1faGFuZGxlZChmYWxzZSksIG1f
c2VuZFRvV2lkZ2V0KGZhbHNlKSB7fQorICAgIHZpcnR1YWwgfk1vY2tXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVyQ2xpZW50KCkge30KKworICAgIHZvaWQgUmVzZXQoKSB7CisgICAgICAgIG1faGFu
ZGxlZCA9IGZhbHNlOworICAgICAgICBtX3NlbmRUb1dpZGdldCA9IGZhbHNlOworICAgIH0KKwor
ICAgIGJvb2wgaGFuZGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlZDsgfQorICAgIGJvb2wg
c2VuZFRvV2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9zZW5kVG9XaWRnZXQ7IH0KKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNodXRkb3duKCkgT1ZFUlJJREUge30KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgpIE9WRVJSSURFIHsKKyAgICAgICAgbV9oYW5k
bGVkID0gdHJ1ZTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZUlucHV0RXZl
bnQoYm9vbCBzZW5kVG9XaWRnZXQpIE9WRVJSSURFIHsKKyAgICAgICAgbV9zZW5kVG9XaWRnZXQg
PSBzZW5kVG9XaWRnZXQ7CisgICAgfQorCisgICAgYm9vbCBtX2hhbmRsZWQ7CisgICAgYm9vbCBt
X3NlbmRUb1dpZGdldDsKK307CisKIFRFU1QoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGws
IGZyb21JZGVudGlmaWVyKQogewogICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6
ZSgwKTsKQEAgLTY4LDQgKzEyNyw2OSBAQCBURVNUKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsLCBmcm9tSWRlbnRpZmllcikKICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3du
KCk7CiB9CiAKK1RFU1QoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwsIGdlc3R1cmVTY3Jv
bGwpCit7CisgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworI2lmbmRl
ZiBOREVCVUcKKyAgICAvLyBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyIEFQSXMgY2FuIG9ubHkg
YmUgY2FsbGVkIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorICAgIFdlYkNvcmU6OkRlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBhbHdheXNJbXBsVGhyZWFkOworI2VuZGlmCisKKyAgICBNb2Nr
SW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tfaW5wdXRfaGFuZGxlcjsKKyAgICBPd25QdHI8V2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGw+IGNvbXAgPSBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbDo6Y3JlYXRlKCZtb2NrX2lucHV0X2hhbmRsZXIpOworICAgIE1vY2tXZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tfY2xpZW50OworICAgIGNvbXAtPnNldENsaWVudCgmbW9j
a19jbGllbnQpOworCisgICAgV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQgZ2VzdHVyZTsKKworICAg
IGdlc3R1cmUueCA9IGdlc3R1cmUueSA9IGdlc3R1cmUuZ2xvYmFsWCA9IGdlc3R1cmUuZ2xvYmFs
WSA9IGdlc3R1cmUuZGVsdGFYID0gZ2VzdHVyZS5kZWx0YVkgPSAwOworICAgIGdlc3R1cmUubW9k
aWZpZXJzID0gMDsKKworICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6
R2VzdHVyZVNjcm9sbEJlZ2luOworICAgIGNvbXAtPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7
CisgICAgRVhQRUNUX1RSVUUobW9ja19jbGllbnQuaGFuZGxlZCgpKTsKKyAgICBFWFBFQ1RfRkFM
U0UobW9ja19jbGllbnQuc2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tfY2xpZW50LlJlc2V0KCk7
CisKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3Jv
bGxVcGRhdGU7CisgICAgZ2VzdHVyZS5kZWx0YVkgPSA0MDsKKyAgICBjb21wLT5oYW5kbGVJbnB1
dEV2ZW50KGdlc3R1cmUpOworICAgIEVYUEVDVF9UUlVFKG1vY2tfY2xpZW50LmhhbmRsZWQoKSk7
CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tfY2xpZW50LnNlbmRUb1dpZGdldCgpKTsKKyAgICBtb2Nr
X2NsaWVudC5SZXNldCgpOworCisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsRW5kOworICAgIGdlc3R1cmUuZGVsdGFZID0gMDsKKyAgICBjb21w
LT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworICAgIEVYUEVDVF9UUlVFKG1vY2tfY2xpZW50
LmhhbmRsZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tfY2xpZW50LnNlbmRUb1dpZGdldCgp
KTsKKyAgICBtb2NrX2NsaWVudC5SZXNldCgpOworCisgICAgbW9ja19pbnB1dF9oYW5kbGVyLnNl
dFNjcm9sbFN0YXR1cyhXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsRmFpbGVk
KTsKKworICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNj
cm9sbEJlZ2luOworICAgIGNvbXAtPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CisgICAgRVhQ
RUNUX0ZBTFNFKG1vY2tfY2xpZW50LmhhbmRsZWQoKSk7CisgICAgRVhQRUNUX1RSVUUobW9ja19j
bGllbnQuc2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tfY2xpZW50LlJlc2V0KCk7CisKKyAgICBn
ZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU7
CisgICAgZ2VzdHVyZS5kZWx0YVkgPSA0MDsKKyAgICBjb21wLT5oYW5kbGVJbnB1dEV2ZW50KGdl
c3R1cmUpOworICAgIEVYUEVDVF9GQUxTRShtb2NrX2NsaWVudC5oYW5kbGVkKCkpOworICAgIEVY
UEVDVF9UUlVFKG1vY2tfY2xpZW50LnNlbmRUb1dpZGdldCgpKTsKKyAgICBtb2NrX2NsaWVudC5S
ZXNldCgpOworCisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlU2Nyb2xsRW5kOworICAgIGdlc3R1cmUuZGVsdGFZID0gMDsKKyAgICBjb21wLT5oYW5kbGVJ
bnB1dEV2ZW50KGdlc3R1cmUpOworICAgIEVYUEVDVF9GQUxTRShtb2NrX2NsaWVudC5oYW5kbGVk
KCkpOworICAgIEVYUEVDVF9UUlVFKG1vY2tfY2xpZW50LnNlbmRUb1dpZGdldCgpKTsKKyAgICBt
b2NrX2NsaWVudC5SZXNldCgpOworCisgICAgY29tcC0+c2V0Q2xpZW50KE5VTEwpOworCisgICAg
V2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125032</attachid>
            <date>2012-02-01 15:27:39 -0800</date>
            <delta_ts>2012-02-03 11:08:55 -0800</delta_ts>
            <desc>style</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>9108</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uYjllODJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uYzgz
MmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsOCBAQCBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoQ0NJ
bnB1dEhhbmRsZXJDbGllbgogICAgIDogbV9jbGllbnQoMCkKICAgICAsIG1faWRlbnRpZmllcihz
X25leHRBdmFpbGFibGVJZGVudGlmaWVyKyspCiAgICAgLCBtX2lucHV0SGFuZGxlckNsaWVudChp
bnB1dEhhbmRsZXJDbGllbnQpCisgICAgLCBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZChmYWxzZSkK
KyAgICAsIG1fc2Nyb2xsU3RhcnRlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJ
bXBsVGhyZWFkKCkpOwogCkBAIC0xMzEsNiArMTMzLDQwIEBAIHZvaWQgV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZl
bnQpCiAgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbikgeworICAgICAgICBBU1NFUlQoIW1f
c2Nyb2xsU3RhcnRlZCk7CisgICAgICAgIEFTU0VSVCghbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQp
OworICAgICAgICBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCA9IHRydWU7CisgICAgICAgIGNvbnN0
IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdl
c3R1cmVFdmVudCo+KCZldmVudCk7CisgICAgICAgIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3Jv
bGxTdGF0dXMgc2Nyb2xsU3RhdHVzID0gbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJlZ2lu
KEludFBvaW50KGdlc3R1cmVFdmVudC54LCBnZXN0dXJlRXZlbnQueSkpOworICAgICAgICBzd2l0
Y2ggKHNjcm9sbFN0YXR1cykgeworICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpT
Y3JvbGxTdGFydGVkOgorICAgICAgICAgICAgbV9zY3JvbGxTdGFydGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGNhc2UgQ0NJbnB1dEhhbmRsZXJDbGllbnQ6OlNjcm9sbElnbm9yZWQ6Cisg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudChmYWxzZSAvKiBzZW5k
VG9XaWRnZXQgKi8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIENDSW5wdXRI
YW5kbGVyQ2xpZW50OjpTY3JvbGxGYWlsZWQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Ny
b2xsVXBkYXRlKSB7CisgICAgICAgIEFTU0VSVChtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCk7Cisg
ICAgICAgIGlmIChtX3Njcm9sbFN0YXJ0ZWQpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYkdlc3R1
cmVFdmVudCYgZ2VzdHVyZUV2ZW50ID0gKnN0YXRpY19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVu
dCo+KCZldmVudCk7CisgICAgICAgICAgICBtX2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsQnko
SW50U2l6ZSgtZ2VzdHVyZUV2ZW50LmRlbHRhWCwgLWdlc3R1cmVFdmVudC5kZWx0YVkpKTsKKyAg
ICAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRF
dmVudDo6R2VzdHVyZVNjcm9sbEVuZCkgeworICAgICAgICBBU1NFUlQobV9leHBlY3RTY3JvbGxV
cGRhdGVFbmQpOworICAgICAgICBpZiAobV9zY3JvbGxTdGFydGVkKSB7CisgICAgICAgICAgICBt
X2lucHV0SGFuZGxlckNsaWVudC0+c2Nyb2xsRW5kKCk7CisgICAgICAgICAgICBtX2NsaWVudC0+
ZGlkSGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgbV9leHBlY3RTY3JvbGxVcGRhdGVF
bmQgPSBtX3Njcm9sbFN0YXJ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBtX2V4cGVjdFNjcm9sbFVwZGF0ZUVuZCA9IGZhbHNlOwogICAgIH0KICAg
ICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAq
Lyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRleCAxZWJjMWUxLi5kNDEyMDI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsLmgKQEAgLTcwLDYgKzcwLDkgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZGVu
dGlmaWVyOwogICAgIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxl
ckNsaWVudDsKIAorICAgIGJvb2wgbV9leHBlY3RTY3JvbGxVcGRhdGVFbmQ7CisgICAgYm9vbCBt
X3Njcm9sbFN0YXJ0ZWQ7CisKICAgICBzdGF0aWMgaW50IHNfbmV4dEF2YWlsYWJsZUlkZW50aWZp
ZXI7CiAgICAgc3RhdGljIEhhc2hTZXQ8V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwqPiog
c19jb21wb3NpdG9yczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAKaW5k
ZXggZjIwN2MwNi4uNWY0MThiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNw
cApAQCAtMjgsNiArMjgsOSBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsLmgiCiAKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKyNp
bmNsdWRlICJjYy9DQ0lucHV0SGFuZGxlci5oIgogI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaCIKIAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CkBAIC0zOCw2ICs0MSw2NiBAQCB1
c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOwogCiBuYW1lc3BhY2Ug
ewogCitjbGFzcyBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNDSW5w
dXRIYW5kbGVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNb2NrSW5wdXRIYW5k
bGVyQ2xpZW50KTsKK3B1YmxpYzoKKyAgICBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50KCkgOiBtX3Nj
cm9sbFN0YXR1cyhTY3JvbGxTdGFydGVkKSB7IH0KKyAgICB2aXJ0dWFsIH5Nb2NrSW5wdXRIYW5k
bGVyQ2xpZW50KCkgeyB9CisKKyAgICB2b2lkIHNldFNjcm9sbFN0YXR1cyhTY3JvbGxTdGF0dXMg
c3RhdHVzKSB7IG1fc2Nyb2xsU3RhdHVzID0gc3RhdHVzOyB9CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCBTY3Jv
bGxTdGF0dXMgc2Nyb2xsQmVnaW4oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBPVkVSUklERQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc2Nyb2xsU3RhdHVzOworICAgIH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsQnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIE9WRVJSSURFIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxFbmQoKSBPVkVSUklERSB7IH0KKworICAgIHZpcnR1YWwgYm9v
bCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlQmVnaW4oKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcGluY2hHZXN0dXJlVXBkYXRlKGZsb2F0IG1hZ25pZnlEZWx0YSwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGFuY2hvcikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHBp
bmNoR2VzdHVyZUVuZCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydFBhZ2VT
Y2FsZUFuaW1hdGlvbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhbmNob3JQb2ludCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcGFnZVNjYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgc3RhcnRU
aW1lTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBk
dXJhdGlvbk1zKSBPVkVSUklERSB7IH0KKworICAgIFNjcm9sbFN0YXR1cyBtX3Njcm9sbFN0YXR1
czsKK307CisKK2NsYXNzIE1vY2tXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IDogcHVi
bGljIFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQpOworcHVi
bGljOgorICAgIE1vY2tXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50KCkgOiBtX2hhbmRs
ZWQoZmFsc2UpLCBtX3NlbmRUb1dpZGdldChmYWxzZSkgeyB9CisgICAgdmlydHVhbCB+TW9ja1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKSB7IH0KKworICAgIHZvaWQgUmVzZXQoKQor
ICAgIHsKKyAgICAgICAgbV9oYW5kbGVkID0gZmFsc2U7CisgICAgICAgIG1fc2VuZFRvV2lkZ2V0
ID0gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCBoYW5kbGVkKCkgY29uc3QgeyByZXR1cm4gbV9o
YW5kbGVkOyB9CisgICAgYm9vbCBzZW5kVG9XaWRnZXQoKSBjb25zdCB7IHJldHVybiBtX3NlbmRU
b1dpZGdldDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsU2h1dGRvd24oKSBP
VkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgpIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX2hhbmRsZWQgPSB0cnVlOworICAgIH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNlbmRUb1dpZGdldCkgT1ZFUlJJREUK
KyAgICB7CisgICAgICAgIG1fc2VuZFRvV2lkZ2V0ID0gc2VuZFRvV2lkZ2V0OworICAgIH0KKwor
ICAgIGJvb2wgbV9oYW5kbGVkOworICAgIGJvb2wgbV9zZW5kVG9XaWRnZXQ7Cit9OworCiBURVNU
KFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLCBmcm9tSWRlbnRpZmllcikKIHsKICAgICBX
ZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CkBAIC02OCw0ICsxMzEsNjkgQEAg
VEVTVChXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCwgZnJvbUlkZW50aWZpZXIpCiAgICAg
V2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwogfQogCitURVNUKFdlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJJbXBsLCBnZXN0dXJlU2Nyb2xsKQoreworICAgIFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlciBBUElzIGNhbiBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBjb21wb3Np
dG9yIHRocmVhZC4KKyAgICBXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgYWx3YXlz
SW1wbFRocmVhZDsKKyNlbmRpZgorCisgICAgTW9ja0lucHV0SGFuZGxlckNsaWVudCBtb2NrSW5w
dXRIYW5kbGVyOworICAgIE93blB0cjxXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbD4gY29t
cCA9IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjcmVhdGUoJm1vY2tJbnB1dEhhbmRs
ZXIpOworICAgIE1vY2tXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tDbGllbnQ7
CisgICAgY29tcC0+c2V0Q2xpZW50KCZtb2NrQ2xpZW50KTsKKworICAgIFdlYktpdDo6V2ViR2Vz
dHVyZUV2ZW50IGdlc3R1cmU7CisKKyAgICBnZXN0dXJlLnggPSBnZXN0dXJlLnkgPSBnZXN0dXJl
Lmdsb2JhbFggPSBnZXN0dXJlLmdsb2JhbFkgPSBnZXN0dXJlLmRlbHRhWCA9IGdlc3R1cmUuZGVs
dGFZID0gMDsKKyAgICBnZXN0dXJlLm1vZGlmaWVycyA9IDA7CisKKyAgICBnZXN0dXJlLnR5cGUg
PSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjsKKyAgICBjb21wLT5o
YW5kbGVJbnB1dEV2ZW50KGdlc3R1cmUpOworICAgIEVYUEVDVF9UUlVFKG1vY2tDbGllbnQuaGFu
ZGxlZCgpKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQoKSk7Cisg
ICAgbW9ja0NsaWVudC5SZXNldCgpOworCisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsVXBkYXRlOworICAgIGdlc3R1cmUuZGVsdGFZID0gNDA7
CisgICAgY29tcC0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKyAgICBFWFBFQ1RfVFJVRSht
b2NrQ2xpZW50LmhhbmRsZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQuc2VuZFRv
V2lkZ2V0KCkpOworICAgIG1vY2tDbGllbnQuUmVzZXQoKTsKKworICAgIGdlc3R1cmUudHlwZSA9
IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDsKKyAgICBnZXN0dXJlLmRl
bHRhWSA9IDA7CisgICAgY29tcC0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKyAgICBFWFBF
Q1RfVFJVRShtb2NrQ2xpZW50LmhhbmRsZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGll
bnQuc2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tDbGllbnQuUmVzZXQoKTsKKworICAgIG1vY2tJ
bnB1dEhhbmRsZXIuc2V0U2Nyb2xsU3RhdHVzKFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50
OjpTY3JvbGxGYWlsZWQpOworCisgICAgZ2VzdHVyZS50eXBlID0gV2ViS2l0OjpXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlU2Nyb2xsQmVnaW47CisgICAgY29tcC0+aGFuZGxlSW5wdXRFdmVudChnZXN0
dXJlKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5oYW5kbGVkKCkpOworICAgIEVYUEVD
VF9UUlVFKG1vY2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tDbGllbnQuUmVzZXQo
KTsKKworICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNj
cm9sbFVwZGF0ZTsKKyAgICBnZXN0dXJlLmRlbHRhWSA9IDQwOworICAgIGNvbXAtPmhhbmRsZUlu
cHV0RXZlbnQoZ2VzdHVyZSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQuaGFuZGxlZCgp
KTsKKyAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgpKTsKKyAgICBtb2Nr
Q2xpZW50LlJlc2V0KCk7CisKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZl
bnQ6Okdlc3R1cmVTY3JvbGxFbmQ7CisgICAgZ2VzdHVyZS5kZWx0YVkgPSAwOworICAgIGNvbXAt
PmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQu
aGFuZGxlZCgpKTsKKyAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgpKTsK
KyAgICBtb2NrQ2xpZW50LlJlc2V0KCk7CisKKyAgICBjb21wLT5zZXRDbGllbnQoMCk7CisKKyAg
ICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7Cit9CisKIH0K
</data>
<flag name="review"
          id="126439"
          type_id="1"
          status="+"
          setter="jamesr"
    />
    <flag name="commit-queue"
          id="126659"
          type_id="3"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125248</attachid>
            <date>2012-02-02 20:21:45 -0800</date>
            <delta_ts>2012-02-07 13:52:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>webkit-threaded-compositor-gesture-scroll.patch</filename>
            <type>text/plain</type>
            <size>10180</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDIwYWFiNi4uYjllODJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0zMSAgU2FkcnVsIEhh
YmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHJvY2VzcyBT
Y3JvbGwtZ2VzdHVyZSBldmVudHMgZnJvbSB0aGUgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVySW1wbDo6V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAg
ICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMDYzMjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKaW5kZXggNDA4ZjEyNi4uMzY3
YmMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmNwcApAQCAtODEsNiArODEsMTAgQEAgV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGw6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsKEND
SW5wdXRIYW5kbGVyQ2xpZW4KICAgICA6IG1fY2xpZW50KDApCiAgICAgLCBtX2lkZW50aWZpZXIo
c19uZXh0QXZhaWxhYmxlSWRlbnRpZmllcisrKQogICAgICwgbV9pbnB1dEhhbmRsZXJDbGllbnQo
aW5wdXRIYW5kbGVyQ2xpZW50KQorI2lmbmRlZiBOREVCVUcKKyAgICAsIG1fZXhwZWN0U2Nyb2xs
VXBkYXRlRW5kKGZhbHNlKQorI2VuZGlmCisgICAgLCBtX3Njcm9sbFN0YXJ0ZWQoZmFsc2UpCiB7
CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKIApAQCAtMTMxLDYgKzEzNSw0
NCBAQCB2b2lkIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpoYW5kbGVJbnB1dEV2ZW50
KGNvbnN0IFdlYklucHV0RXZlbnQmIGV2ZW50KQogICAgICAgICBjYXNlIENDSW5wdXRIYW5kbGVy
Q2xpZW50OjpTY3JvbGxGYWlsZWQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAg
IH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlU2Nyb2xsQmVn
aW4pIHsKKyAgICAgICAgQVNTRVJUKCFtX3Njcm9sbFN0YXJ0ZWQpOworICAgICAgICBBU1NFUlQo
IW1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIG1fZXhw
ZWN0U2Nyb2xsVXBkYXRlRW5kID0gdHJ1ZTsKKyNlbmRpZgorICAgICAgICBjb25zdCBXZWJHZXN0
dXJlRXZlbnQmIGdlc3R1cmVFdmVudCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZl
bnQqPigmZXZlbnQpOworICAgICAgICBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3RhdHVz
IHNjcm9sbFN0YXR1cyA9IG1faW5wdXRIYW5kbGVyQ2xpZW50LT5zY3JvbGxCZWdpbihJbnRQb2lu
dChnZXN0dXJlRXZlbnQueCwgZ2VzdHVyZUV2ZW50LnkpKTsKKyAgICAgICAgc3dpdGNoIChzY3Jv
bGxTdGF0dXMpIHsKKyAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNsaWVudDo6U2Nyb2xsU3Rh
cnRlZDoKKyAgICAgICAgICAgIG1fc2Nyb2xsU3RhcnRlZCA9IHRydWU7CisgICAgICAgICAgICBt
X2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBjYXNlIENDSW5wdXRIYW5kbGVyQ2xpZW50OjpTY3JvbGxJZ25vcmVkOgorICAgICAgICAg
ICAgbV9jbGllbnQtPmRpZE5vdEhhbmRsZUlucHV0RXZlbnQoZmFsc2UgLyogc2VuZFRvV2lkZ2V0
ICovKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBDQ0lucHV0SGFuZGxlckNs
aWVudDo6U2Nyb2xsRmFpbGVkOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0
ZSkgeworICAgICAgICBBU1NFUlQobV9leHBlY3RTY3JvbGxVcGRhdGVFbmQpOworICAgICAgICBp
ZiAobV9zY3JvbGxTdGFydGVkKSB7CisgICAgICAgICAgICBjb25zdCBXZWJHZXN0dXJlRXZlbnQm
IGdlc3R1cmVFdmVudCA9ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJHZXN0dXJlRXZlbnQqPigmZXZl
bnQpOworICAgICAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEJ5KEludFNpemUo
LWdlc3R1cmVFdmVudC5kZWx0YVgsIC1nZXN0dXJlRXZlbnQuZGVsdGFZKSk7CisgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVudCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09IFdlYklucHV0RXZlbnQ6Okdl
c3R1cmVTY3JvbGxFbmQpIHsKKyAgICAgICAgQVNTRVJUKG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5k
KTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kID0gZmFs
c2U7CisjZW5kaWYKKyAgICAgICAgaWYgKG1fc2Nyb2xsU3RhcnRlZCkgeworICAgICAgICAgICAg
bV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbEVuZCgpOworICAgICAgICAgICAgbV9jbGllbnQt
PmRpZEhhbmRsZUlucHV0RXZlbnQoKTsKKyAgICAgICAgICAgIG1fc2Nyb2xsU3RhcnRlZCA9IGZh
bHNlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogICAgIG1fY2xpZW50
LT5kaWROb3RIYW5kbGVJbnB1dEV2ZW50KHRydWUgLyogc2VuZFRvV2lkZ2V0ICovKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbC5oCmluZGV4IDFlYmMxZTEuLjdhNjMyNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGwuaApAQCAtNzAsNiArNzAsMTEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZGVudGlmaWVyOwog
ICAgIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxlckNsaWVudDsK
IAorI2lmbmRlZiBOREVCVUcKKyAgICBib29sIG1fZXhwZWN0U2Nyb2xsVXBkYXRlRW5kOworI2Vu
ZGlmCisgICAgYm9vbCBtX3Njcm9sbFN0YXJ0ZWQ7CisKICAgICBzdGF0aWMgaW50IHNfbmV4dEF2
YWlsYWJsZUlkZW50aWZpZXI7CiAgICAgc3RhdGljIEhhc2hTZXQ8V2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlckltcGwqPiogc19jb21wb3NpdG9yczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsVGVzdC5jcHAKaW5kZXggZjIwN2MwNi4uY2M4MzU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGxUZXN0LmNwcApAQCAtMjgsNiArMjgsOSBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJJbXBsLmgiCiAKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCisjaW5j
bHVkZSAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oIgorI2luY2x1ZGUgIldlYklu
cHV0RXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0lucHV0SGFuZGxlci5oIgogI2luY2x1ZGUgImNj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKIAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CkBAIC0z
OCw2ICs0MSw3MyBAQCB1c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
OwogCiBuYW1lc3BhY2UgewogCitjbGFzcyBNb2NrSW5wdXRIYW5kbGVyQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShNb2NrSW5wdXRIYW5kbGVyQ2xpZW50KTsKK3B1YmxpYzoKKyAgICBNb2NrSW5wdXRIYW5kbGVy
Q2xpZW50KCkKKyAgICAgICAgOiBtX3Njcm9sbFN0YXR1cyhTY3JvbGxTdGFydGVkKQorICAgIHsK
KyAgICB9CisgICAgdmlydHVhbCB+TW9ja0lucHV0SGFuZGxlckNsaWVudCgpIHsgfQorCisgICAg
dm9pZCBzZXRTY3JvbGxTdGF0dXMoU2Nyb2xsU3RhdHVzIHN0YXR1cykgeyBtX3Njcm9sbFN0YXR1
cyA9IHN0YXR1czsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJh
dygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgU2Nyb2xsU3RhdHVzIHNjcm9sbEJlZ2luKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3Njcm9sbFN0YXR1czsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJ5KGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsRW5k
KCkgT1ZFUlJJREUgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGF2ZVdoZWVsRXZlbnRIYW5kbGVy
cygpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2Vz
dHVyZUJlZ2luKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZVVw
ZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBhbmNob3Ip
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVFbmQoKSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgdGFyZ2V0UG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgYW5jaG9yUG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZsb2F0IHBhZ2VTY2FsZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHN0YXJ0VGltZU1zLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZHVyYXRpb25NcykgT1ZFUlJJREUgeyB9
CisKKyAgICBTY3JvbGxTdGF0dXMgbV9zY3JvbGxTdGF0dXM7Cit9OworCitjbGFzcyBNb2NrV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCA6IHB1YmxpYyBXZWJLaXQ6OldlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXJDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1vY2tXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50KTsKK3B1YmxpYzoKKyAgICBNb2NrV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlckNsaWVudCgpCisgICAgICAgIDogbV9oYW5kbGVkKGZhbHNlKQorICAg
ICAgICAsIG1fc2VuZFRvV2lkZ2V0KGZhbHNlKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCB+
TW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQoKSB7IH0KKworICAgIHZvaWQgcmVz
ZXQoKQorICAgIHsKKyAgICAgICAgbV9oYW5kbGVkID0gZmFsc2U7CisgICAgICAgIG1fc2VuZFRv
V2lkZ2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCBoYW5kbGVkKCkgY29uc3QgeyByZXR1
cm4gbV9oYW5kbGVkOyB9CisgICAgYm9vbCBzZW5kVG9XaWRnZXQoKSBjb25zdCB7IHJldHVybiBt
X3NlbmRUb1dpZGdldDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsU2h1dGRv
d24oKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgp
IE9WRVJSSURFCisgICAgeworICAgICAgICBtX2hhbmRsZWQgPSB0cnVlOworICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNlbmRUb1dpZGdldCkgT1ZF
UlJJREUKKyAgICB7CisgICAgICAgIG1fc2VuZFRvV2lkZ2V0ID0gc2VuZFRvV2lkZ2V0OworICAg
IH0KKworICAgIGJvb2wgbV9oYW5kbGVkOworICAgIGJvb2wgbV9zZW5kVG9XaWRnZXQ7Cit9Owor
CiBURVNUKFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLCBmcm9tSWRlbnRpZmllcikKIHsK
ICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CkBAIC01MywxMyArMTIz
LDEzIEBAIFRFU1QoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwsIGZyb21JZGVudGlmaWVy
KQogCiAgICAgaW50IGNvbXBvc2l0b3JJZGVudGlmaWVyID0gLTE7CiAgICAgewotICAgICAgICBP
d25QdHI8V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw+IGNvbXAgPSBXZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbDo6Y3JlYXRlKDApOwotICAgICAgICBjb21wb3NpdG9ySWRlbnRpZmll
ciA9IGNvbXAtPmlkZW50aWZpZXIoKTsKKyAgICAgICAgT3duUHRyPFdlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsPiBpbnB1dEhhbmRsZXIgPSBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bDo6Y3JlYXRlKDApOworICAgICAgICBjb21wb3NpdG9ySWRlbnRpZmllciA9IGlucHV0SGFuZGxl
ci0+aWRlbnRpZmllcigpOwogICAgICAgICAvLyBUaGUgY29tcG9zaXRvciB3ZSBqdXN0IGNyZWF0
ZWQgc2hvdWxkIGJlIGxvY2F0YWJsZS4KLSAgICAgICAgRVhQRUNUX0VRKGNvbXAuZ2V0KCksIFdl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKGNvbXBvc2l0b3JJZGVudGlm
aWVyKSk7CisgICAgICAgIEVYUEVDVF9FUShpbnB1dEhhbmRsZXIuZ2V0KCksIFdlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKGNvbXBvc2l0b3JJZGVudGlmaWVyKSk7CiAK
ICAgICAgICAgLy8gQnV0IG5vdGhpbmcgZWxzZS4KLSAgICAgICAgRVhQRUNUX0VRKDAsIFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKGNvbXAtPmlkZW50aWZpZXIoKSAr
IDEwKSk7CisgICAgICAgIEVYUEVDVF9FUSgwLCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyOjpm
cm9tSWRlbnRpZmllcihpbnB1dEhhbmRsZXItPmlkZW50aWZpZXIoKSArIDEwKSk7CiAgICAgfQog
CiAgICAgLy8gQWZ0ZXIgdGhlIGNvbXBvc2l0b3IgaXMgZGVzdHJveWVkLCBpdHMgZW50cnkgc2hv
dWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgbWFwLgpAQCAtNjgsNCArMTM4LDY2IEBAIFRFU1QoV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckltcGwsIGZyb21JZGVudGlmaWVyKQogICAgIFdlYktpdDo6
V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAorVEVTVChXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbCwgZ2VzdHVyZVNjcm9sbCkKK3sKKyAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6
OmluaXRpYWxpemUoMCk7CisjaWZuZGVmIE5ERUJVRworICAgIC8vIFdlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXIgQVBJcyBjYW4gb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJl
YWQuCisgICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGFsd2F5c0ltcGxUaHJl
YWQ7CisjZW5kaWYKKworICAgIE1vY2tJbnB1dEhhbmRsZXJDbGllbnQgbW9ja0lucHV0SGFuZGxl
cjsKKyAgICBPd25QdHI8V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw+IGlucHV0SGFuZGxl
ciA9IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjcmVhdGUoJm1vY2tJbnB1dEhhbmRs
ZXIpOworICAgIE1vY2tXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50IG1vY2tDbGllbnQ7
CisgICAgaW5wdXRIYW5kbGVyLT5zZXRDbGllbnQoJm1vY2tDbGllbnQpOworCisgICAgV2ViS2l0
OjpXZWJHZXN0dXJlRXZlbnQgZ2VzdHVyZTsKKworICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6
V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luOworICAgIGlucHV0SGFuZGxlci0+aGFu
ZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKyAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LmhhbmRs
ZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOworICAg
IG1vY2tDbGllbnQucmVzZXQoKTsKKworICAgIGdlc3R1cmUudHlwZSA9IFdlYktpdDo6V2ViSW5w
dXRFdmVudDo6R2VzdHVyZVNjcm9sbFVwZGF0ZTsKKyAgICBnZXN0dXJlLmRlbHRhWSA9IDQwOwor
ICAgIGlucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChnZXN0dXJlKTsKKyAgICBFWFBFQ1Rf
VFJVRShtb2NrQ2xpZW50LmhhbmRsZWQoKSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQu
c2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tDbGllbnQucmVzZXQoKTsKKworICAgIGdlc3R1cmUu
dHlwZSA9IFdlYktpdDo6V2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDsKKyAgICBnZXN0
dXJlLmRlbHRhWSA9IDA7CisgICAgaW5wdXRIYW5kbGVyLT5oYW5kbGVJbnB1dEV2ZW50KGdlc3R1
cmUpOworICAgIEVYUEVDVF9UUlVFKG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UobW9ja0NsaWVudC5zZW5kVG9XaWRnZXQoKSk7CisgICAgbW9ja0NsaWVudC5yZXNldCgp
OworCisgICAgbW9ja0lucHV0SGFuZGxlci5zZXRTY3JvbGxTdGF0dXMoV2ViQ29yZTo6Q0NJbnB1
dEhhbmRsZXJDbGllbnQ6OlNjcm9sbEZhaWxlZCk7CisKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJL
aXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxCZWdpbjsKKyAgICBpbnB1dEhhbmRsZXIt
PmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CisgICAgRVhQRUNUX0ZBTFNFKG1vY2tDbGllbnQu
aGFuZGxlZCgpKTsKKyAgICBFWFBFQ1RfVFJVRShtb2NrQ2xpZW50LnNlbmRUb1dpZGdldCgpKTsK
KyAgICBtb2NrQ2xpZW50LnJlc2V0KCk7CisKKyAgICBnZXN0dXJlLnR5cGUgPSBXZWJLaXQ6Oldl
YklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU7CisgICAgZ2VzdHVyZS5kZWx0YVkgPSA0
MDsKKyAgICBpbnB1dEhhbmRsZXItPmhhbmRsZUlucHV0RXZlbnQoZ2VzdHVyZSk7CisgICAgRVhQ
RUNUX0ZBTFNFKG1vY2tDbGllbnQuaGFuZGxlZCgpKTsKKyAgICBFWFBFQ1RfVFJVRShtb2NrQ2xp
ZW50LnNlbmRUb1dpZGdldCgpKTsKKyAgICBtb2NrQ2xpZW50LnJlc2V0KCk7CisKKyAgICBnZXN0
dXJlLnR5cGUgPSBXZWJLaXQ6OldlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ7CisgICAg
Z2VzdHVyZS5kZWx0YVkgPSAwOworICAgIGlucHV0SGFuZGxlci0+aGFuZGxlSW5wdXRFdmVudChn
ZXN0dXJlKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9ja0NsaWVudC5oYW5kbGVkKCkpOworICAgIEVY
UEVDVF9UUlVFKG1vY2tDbGllbnQuc2VuZFRvV2lkZ2V0KCkpOworICAgIG1vY2tDbGllbnQucmVz
ZXQoKTsKKworICAgIGlucHV0SGFuZGxlci0+c2V0Q2xpZW50KDApOworCisgICAgV2ViS2l0OjpX
ZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOworfQorCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>