<?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>84625</bug_id>
          
          <creation_ts>2012-04-23 13:17:56 -0700</creation_ts>
          <short_desc>Add ScrollAnimatorBlackBerry as an extension to ScrollAnimatorNone</short_desc>
          <delta_ts>2012-04-26 13:33:42 -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>Platform</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>84954</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>andersca</cc>
    
    <cc>jamesr</cc>
    
    <cc>manyoso</cc>
    
    <cc>rakuco</cc>
    
    <cc>staikos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607963</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-23 13:17:56 -0700</bug_when>
    <thetext>Situation: we need to animate the scroll position adjustment for (say) virtual keyboard showing/hiding
Solution: Right now in the blackberry port we use ScrollableArea::ScrollAnimator::scroll() method.

Basically we:

1) calculate the scroll adjustment needed
2) set ScrollableArea::m_constrainsScrollingToContentEdge to &apos;false&apos;, so we can &quot;overscroll&quot; whenever needed in order to properly show the focused element
3) call main frame&apos;s ScrollableArea::scrollAnimator::scroll()
4) set ScrollableArea::m_constrainsScrollingToContentEdge back to &apos;true&apos;

Problem: when we call (3), all the scroll animation is timer-based, so it happens asynchronously, whereas (4) happens right after (3) synchronously. This way when (3) is executing, we have already reset m_constrainsScrollingToContentEdge.

We need a way to tell ScrollableArea::ScrollAnimator::scroll() to execute something when it finishes animating, or to tell the caller when it finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609914</commentid>
    <comment_count>1</comment_count>
      <attachid>138847</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-25 11:05:25 -0700</bug_when>
    <thetext>Created attachment 138847
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609931</commentid>
    <comment_count>2</comment_count>
      <attachid>138847</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-25 11:22:09 -0700</bug_when>
    <thetext>Comment on attachment 138847
patch v1

will do it differently after talking to Andersca</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610329</commentid>
    <comment_count>3</comment_count>
      <attachid>138929</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-25 21:23:58 -0700</bug_when>
    <thetext>Created attachment 138929
patch v2

Adds ScrollAnimBB class, and add the customization to allow overscrolling while the animation runs in there (as per andersca suggestion)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610330</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 21:26:24 -0700</bug_when>
    <thetext>Attachment 138929 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/platform/blackberry/ScrollAnimatorBlackBerry.cpp:6:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 1 in 6 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>610594</commentid>
    <comment_count>5</comment_count>
      <attachid>138999</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-26 07:33:20 -0700</bug_when>
    <thetext>Created attachment 138999
(r115347, r=andersca) patch v3

Fixed style and build system issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610606</commentid>
    <comment_count>6</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-26 07:50:48 -0700</bug_when>
    <thetext>some context:

  1 &lt;andersca&gt;  tonikitoo: hmm, why do you need to overscroll when showing the keyboard? is it because the keyboard is on top of the web view somehow?
  2 &lt;tonikitoo&gt; andersca, exactly. when we show a Virtual Keyboard, we do not set the viewport size (trying to avoid layouts, and stuff)
  3 &lt;andersca&gt;  tonikitoo: do you disable scripts as well?
  4 &lt;tonikitoo&gt; we have a different way of controlling it
  5 &lt;tonikitoo&gt; andersca, not sure I followed the scripts part
  6 &lt;andersca&gt;  tonikitoo: does showing the keyboard prevent script execution
  7 &lt;tonikitoo&gt; andersca, no
  8 &lt;andersca&gt;  tonikitoo: so you could have a script that scrolls and wreaks havoc
  9 &lt;tonikitoo&gt; andersca, that script could exist, yes. And no, so far we are using the ScrollAnimNone, but in the future we will need a custom one
 10 &lt;andersca&gt;  tonikitoo: do you have a custom blackberry scroll animator?
 11 &lt;andersca&gt;  tonikitoo: so if you need a custom one then maybe you should just put the logic there
 12 &lt;andersca&gt;  tonikitoo: since it seems specialized
 13 &lt;tonikitoo&gt; andersca, I can add ScrollAnimBlackberry and inherit from ScrollAnimNone. but the base classes would still need a stub of the method right?
 14 &lt;tonikitoo&gt; agree that is seems like too specialized
 15 &lt;andersca&gt;  tonikitoo: then in your scroll function you could allow over scrolling and when you know the animation is finished you can disable it again
 16 &lt;tonikitoo&gt; andersca,  but for now I would rather still use scrollanimatornone::scroll
 17 &lt;tonikitoo&gt; andersca, maybe I should add animationFinished method instead
 18 &lt;tonikitoo&gt; and do the logic from there
 19 &lt;andersca&gt;  tonikitoo: just make your scroll animator inherit from scrollanimatornone :)
 20 &lt;andersca&gt;  tonikitoo: then you can add animationFinished to scrollanimatornone
 21 &lt;tonikitoo&gt; andersca, exactly, that is what I thought too
 22 &lt;tonikitoo&gt; andersca, do you think we would not need the setDisableConstrainsScrollingToContentEdgeWhileAnimating method then?
 23 &lt;andersca&gt;  tonikitoo: i don&apos;t think that would be needed, as long as you&apos;d inherit from ScrollAnimatorNone
 24 &lt;tonikitoo&gt; andersca, but I want specific scroll animation runs to allow overscrolling
 25 &lt;andersca&gt;  tonikitoo: oh, i see
 26 &lt;andersca&gt;  hmm
 27 &lt;tonikitoo&gt; so if I do ScrollView::setContrainsScrollingToContentEdge(false); ScrollView::scrollAnimator()-&gt;scroll() ... I want to be able to toggle the overscroll flag OFF , or leave it as ON, depending on the case.
 28 &lt;andersca&gt;  tonikitoo: yeah i suppose
 29 &lt;andersca&gt;  it&apos;s still pretty specialized :/
 30 &lt;andersca&gt;  tonikitoo: where do you call scroll from
 31 &lt;tonikitoo&gt; andersca, so far it will be used for animating the scroll position adjustment as we show the virtual keyboard only.
 32 &lt;tonikitoo&gt; so it does not have other use cases
 33 &lt;andersca&gt;  tonikitoo: and where&apos;s that called from
 34 &lt;tonikitoo&gt; let me paste the code to you
 35 &lt;andersca&gt;  tonikitoo: couldn&apos;t you cast the scroll animator to your specific subclass and call your setter from there?
 36 &lt;tonikitoo&gt; andersca, it looks like this:
 37 &lt;tonikitoo&gt;  640             // In order to adjust the scroll position to ensure the focused input field is visible,
 38 &lt;tonikitoo&gt;  641             // we allow overscrolling. However this overscroll has to be strictly allowed towards the
 39 &lt;tonikitoo&gt;  642             // bottom of the page on the y axis only, where the virtual keyboard pops up from.
 40 &lt;tonikitoo&gt;  643             WebCore::IntPoint destinationScrollOffset = revealRect.location();
 41 &lt;tonikitoo&gt;  644             destinationScrollOffset.clampNegativeToZero();
 42 &lt;tonikitoo&gt;  645             WebCore::IntPoint maximumScrollPosition = WebCore::IntPoint(mainFrameView-&gt;contentsWidth() - actualScreenRect.width(), mainFrameView-&gt;contentsHeight() - actualScreenRect.heig     ht());
 43 &lt;tonikitoo&gt;  646             destinationScrollOffset = destinationScrollOffset.shrunkTo(maximumScrollPosition);
 44 &lt;tonikitoo&gt;  647
 45 &lt;tonikitoo&gt;  648             // Animate the scroll position adjustment.
 46 &lt;tonikitoo&gt;  649             WebCore::IntPoint initialScrollOffset = mainFrameView-&gt;scrollPosition();
 47 &lt;tonikitoo&gt;  650             mainFrameView-&gt;scrollAnimator()-&gt;setDisableConstrainsScrollingToContentEdgeWhileAnimating(true);
 48 &lt;tonikitoo&gt;  651             mainFrameView-&gt;scrollAnimator()-&gt;scroll(VerticalScrollbar, ScrollByPixel, 1, (destinationScrollOffset - initialScrollOffset).height());
 49 &lt;tonikitoo&gt; (sorry about the flood)
 50 &lt;andersca&gt;  tonikitoo: and this is inside blackberry specific code?
 51 &lt;tonikitoo&gt; andersca, yes
 52 &lt;tonikitoo&gt; I can subclass it, indeed.
 53 &lt;andersca&gt;  tonikitoo: just static_cast&lt;ScrollAnimatorBlackberry*&gt;(mainFrameView-&gt;scrollAnimator()) and then call disable on it
 54 &lt;tonikitoo&gt; was just trying to avoid that :-)
 55 &lt;tonikitoo&gt; andersca, sounds good. I can restrict it, sure
 56 &lt;tonikitoo&gt; andersca, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610682</commentid>
    <comment_count>7</comment_count>
      <attachid>138999</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-04-26 09:37:16 -0700</bug_when>
    <thetext>Comment on attachment 138999
(r115347, r=andersca) patch v3

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

&gt; Source/WebCore/platform/ScrollAnimator.h:103
&gt; +    virtual void animationWillStart() { }
&gt; +    virtual void animationDidFinish() { }

I think you can just put these in ScrollAnimatorNone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610905</commentid>
    <comment_count>8</comment_count>
      <attachid>138999</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-26 13:33:33 -0700</bug_when>
    <thetext>Comment on attachment 138999
(r115347, r=andersca) patch v3

Committed: &lt;http://trac.webkit.org/changeset/115347&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138847</attachid>
            <date>2012-04-25 11:05:25 -0700</date>
            <delta_ts>2012-04-25 21:23:58 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>0001-Extend-ScrollAnimator-to-allow-overscrolling-while-t.patch</filename>
            <type>text/plain</type>
            <size>7990</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAzOTEwMGVmMThlMDFjM2UzMjk1OWZmOGZiOWYwYjA2ZGNmMTRhYTJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
V2VkLCAyNSBBcHIgMjAxMiAxMzoxNToyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4dGVuZCBT
Y3JvbGxBbmltYXRvciB0byBhbGxvdyBvdmVyc2Nyb2xsaW5nIHdoaWxlIHRoZQogYW5pbWF0aW9u
IHJ1bnMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYyNQoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPGFnb21lc0By
aW0uY29tPgoKQWRkIGEgd2F5IHRvIGFsbG93IHNjcm9sbGluZyBwYXN0IGNvbnRlbnRzJyBlZGdl
IGZvciB0aGUgZHVyYXRpb24gb2YKdGhlIGFuaW1hdGlvbi4KClBhdGNoIGV4dGVuZHMgb25seSB0
aGUgU2Nyb2xsQW5pbWF0b3JOb25lIHN1YmNsYXNzIGZvciBub3csIGFuZCBhZGRzCkFTU0VSVHMg
aW4gU2Nyb2xsQW5pbWF0b3IgKHRoZSBiYXNlIGNsYXNzKSwgYXMgd2VsbCBhcyBpbiBTY3JvbGxB
bmltYXRvcldpbiBhbmQKU2Nyb2xsQW5pbWF0b3JNYWMgdmVyc2lvbnMgb2YgdGhpcyBtZXRob2Qg
dG8gZW5zdXJlIGl0IHdvbid0IGdldApjYWxsZWQgYmVmb3JlIGl0IGdldHMgaW1wbGVtZW50ZWQu
CgpPbmNlIHRoZSBhbmltYXRpb24gZmluaXNoZXMsIGl0IHJlc2V0cyBpdHNlbGYgYW5kIHJlc2V0
ClNjcm9sbGFibGVBcmVhOjpjb25zdHJhaW5zU2Nyb2xsaW5ndG9Db250ZW50RWRnZSB0byB0aGUg
dmFsdWUgaXQgaGFkCmJlZm9yZSwgc28gdGhpcyBtZXRob2QgaGFzIHRvIGJlIGV4cGxpY2l0bHkg
Y2FsbGVkIGFueXRpbWUgaXQgaXMgd2FudGVkLgoKKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
OgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNldERpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5n
VG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKToKKFNjcm9sbEFuaW1hdG9yKToKKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwOgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpT
Y3JvbGxBbmltYXRvck5vbmUpOgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGwp
OgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKToKKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6c2V0RGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdU
b0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcpOgooV2ViQ29yZSk6CiogcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmg6CihTY3JvbGxBbmltYXRvck5vbmUpOgoqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yV2luLmg6CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvcldpbjo6c2V0RGlzYWJsZUNvbnN0
cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcpOgoqIHBsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oOgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNldERp
c2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKToKKFNj
cm9sbEFuaW1hdG9yTWFjKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwICB8ICAgMjAgKysrKysrKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaCAgICB8ICAgIDUg
KysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCB8ICAg
IDIgKwogNSBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlM2E0NmFiLi45YmFhZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTItMDQtMjUgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAg
ICBFeHRlbmQgU2Nyb2xsQW5pbWF0b3IgdG8gYWxsb3cgb3ZlcnNjcm9sbGluZyB3aGlsZSB0aGUg
YW5pbWF0aW9uIHJ1bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0NjI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgd2F5IHRvIGFsbG93IHNjcm9sbGluZyBwYXN0IGNvbnRlbnRzJyBlZGdlIGZv
ciB0aGUgZHVyYXRpb24gb2YKKyAgICAgICAgdGhlIGFuaW1hdGlvbi4KKworICAgICAgICBQYXRj
aCBleHRlbmRzIG9ubHkgdGhlIFNjcm9sbEFuaW1hdG9yTm9uZSBzdWJjbGFzcyBmb3Igbm93LCBh
bmQgYWRkcworICAgICAgICBBU1NFUlRzIGluIFNjcm9sbEFuaW1hdG9yICh0aGUgYmFzZSBjbGFz
cyksIGFzIHdlbGwgYXMgaW4gU2Nyb2xsQW5pbWF0b3JXaW4gYW5kCisgICAgICAgIFNjcm9sbEFu
aW1hdG9yTWFjIHZlcnNpb25zIG9mIHRoaXMgbWV0aG9kIHRvIGVuc3VyZSBpdCB3b24ndCBnZXQK
KyAgICAgICAgY2FsbGVkIGJlZm9yZSBpdCBnZXRzIGltcGxlbWVudGVkLgorCisgICAgICAgIE9u
Y2UgdGhlIGFuaW1hdGlvbiBmaW5pc2hlcywgaXQgcmVzZXRzIGl0c2VsZiBhbmQgcmVzZXQKKyAg
ICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpbnNTY3JvbGxpbmd0b0NvbnRlbnRFZGdlIHRv
IHRoZSB2YWx1ZSBpdCBoYWQKKyAgICAgICAgYmVmb3JlLCBzbyB0aGlzIG1ldGhvZCBoYXMgdG8g
YmUgZXhwbGljaXRseSBjYWxsZWQgYW55dGltZSBpdCBpcyB3YW50ZWQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OnNldERpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0
aW5nKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25l
OjpTY3JvbGxBbmltYXRvck5vbmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JO
b25lOjpzY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjphbmlt
YXRpb25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6
c2V0RGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JO
b25lLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yV2luLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcldp
bjo6c2V0RGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNldERpc2FibGVDb25zdHJhaW5zU2Nyb2xs
aW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9y
TWFjKToKKwogMjAxMi0wNC0yNSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBDYWxsIGFjdHVhbE1lbW9yeVVzYWdlTUIgZGlyZWN0bHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IDRlNWM0MjcuLjQ3
NTFiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtOTQs
NiArOTQsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9n
cmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGlz
YWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcoYm9vbCkg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQW5pbWF0
b3IoU2Nyb2xsYWJsZUFyZWEqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yTm9uZS5jcHAKaW5kZXggYWQ3OTE0Zi4uYmYyMGQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC0zODksNiArMzg5LDgg
QEAgU2Nyb2xsQW5pbWF0b3JOb25lOjpTY3JvbGxBbmltYXRvck5vbmUoU2Nyb2xsYWJsZUFyZWEq
IHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9maXJzdFZlbG9jaXR5KDApCiAgICAgLCBtX2ZpcnN0
VmVsb2NpdHlTZXQoZmFsc2UpCiAgICAgLCBtX2ZpcnN0VmVsb2NpdHlJc1ZlcnRpY2FsKGZhbHNl
KQorICAgICwgbV9kaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFu
aW1hdGluZyhmYWxzZSkKKyAgICAsIG1fb3JpZ2luYWxDb25zdHJhbnNTY3JvbGxpbmdUb0NvbnRl
bnRFZGdlKHRydWUpCiB7CiB9CiAKQEAgLTQ2Nyw2ICs0NjksMTIgQEAgYm9vbCBTY3JvbGxBbmlt
YXRvck5vbmU6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xs
R3JhbnVsYXIKICAgICBib29sIG5lZWRUb1Njcm9sbCA9IGRhdGEudXBkYXRlRGF0YUZyb21QYXJh
bWV0ZXJzKHN0ZXAsIG11bHRpcGxpZXIsIHNjcm9sbGFibGVTaXplLCBXVEY6Om1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpLCAmcGFyYW1ldGVycyk7CiAgICAgaWYgKG5lZWRUb1Njcm9sbCAm
JiAhYW5pbWF0aW9uVGltZXJBY3RpdmUoKSkgewogICAgICAgICBtX3N0YXJ0VGltZSA9IGRhdGEu
bV9zdGFydFRpbWU7CisKKyAgICAgICAgaWYgKG1fZGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdU
b0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcpIHsKKyAgICAgICAgICAgIG1fb3JpZ2luYWxDb25z
dHJhbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlID0gc2Nyb2xsYWJsZUFyZWEoKS0+Y29uc3RyYWlu
c1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoKTsKKyAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhKCkt
PnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKICAgICB9CiAgICAgcmV0dXJuIG5lZWRU
b1Njcm9sbDsKQEAgLTU2NSw2ICs1NzMsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmFu
aW1hdGlvblRpbWVyRmlyZWQoKQogICAgIFRSQUNFX0VWRU5UKCJTY3JvbGxBbmltYXRvck5vbmU6
Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZCIsIHRoaXMsIDApOwogI2VuZGlmCiAgICAgbm90aWZ5UG9z
aXRpb25DaGFuZ2VkKCk7CisKKyAgICBpZiAoIWNvbnRpbnVlQW5pbWF0aW9uKSB7CisgICAgICAg
IGlmIChtX2Rpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0
aW5nKSB7CisgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSgpLT5zZXRDb25zdHJhaW5zU2Nyb2xs
aW5nVG9Db250ZW50RWRnZShtX29yaWdpbmFsQ29uc3RyYW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZSk7CisgICAgICAgICAgICBtX2Rpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZVdoaWxlQW5pbWF0aW5nID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CiB9CiAKICNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCkBAIC02MDUsNiArNjIwLDExIEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGxCeShjb25zdCBJbnRQb2ludCYgbG9jYXRpb24pCiAg
ICAgbV9jdXJyZW50UG9zWSArPSBsb2NhdGlvbi55KCk7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0
b3JOb25lOjpzZXREaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFu
aW1hdGluZyhib29sIHZhbHVlKQoreworICAgIG1fZGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdU
b0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcgPSB2YWx1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5oCmluZGV4IDVjZTkzNWIuLjI3NWNl
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5oCkBA
IC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzYWJsZUNvbnN0
cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcoYm9vbCk7CisKICAgICBl
bnVtIEN1cnZlIHsKICAgICAgICAgTGluZWFyLAogICAgICAgICBRdWFkcmF0aWMsCkBAIC0xNzAs
NiArMTcyLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9maXJzdFZlbG9jaXR5U2V0OwogICAg
IGJvb2wgbV9maXJzdFZlbG9jaXR5SXNWZXJ0aWNhbDsKIAorICAgIGJvb2wgbV9kaXNhYmxlQ29u
c3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFuaW1hdGluZzsKKyAgICBib29sIG1f
b3JpZ2luYWxDb25zdHJhbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOworCiAgICAgT3duUHRyPEFj
dGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbj4gbV9nZXN0dXJlQW5pbWF0aW9uOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRl
eCBjYWYzNTE0Li4xYWM2NjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtMTQ0LDYgKzE0NCw4IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8U2Nyb2xsQW5pbWF0b3JNYWM+IG1fc25hcFJ1YmJlckJhbmRUaW1lcjsKICNlbmRpZgogCisg
ICAgdmlydHVhbCB2b2lkIHNldERpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRn
ZVdoaWxlQW5pbWF0aW5nKGJvb2wpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwogICAgIGJv
b2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkOwogICAgIGJvb2wgbV9uZWVkc1Njcm9sbGVy
U3R5bGVVcGRhdGU7CiAgICAgSW50UmVjdCBtX3Zpc2libGVTY3JvbGxlclRodW1iUmVjdDsKLS0g
CjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138929</attachid>
            <date>2012-04-25 21:23:58 -0700</date>
            <delta_ts>2012-04-26 07:33:20 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>0001-Add-ScrollAnimatorBlackBerry-as-an-extension-to-Scro.patch</filename>
            <type>text/plain</type>
            <size>9621</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA2ZDUzZTAyMmQzNDFiNWFhY2UxNmRjM2E3YWFkZGVmMTlhNTI0ZWE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
V2VkLCAyNSBBcHIgMjAxMiAxMjoxMjoyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBTY3Jv
bGxBbmltYXRvckJsYWNrQmVycnkgYXMgYW4gZXh0ZW5zaW9uIHRvCiBTY3JvbGxBbmltYXRvck5v
bmUKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYyNQoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPGFnb21lc0ByaW0u
Y29tPgoKUGF0Y2ggYWRkcyBTY3JvbGxBbmltYXRvckJsYWNrQmVycnkgY2xhc3MgYXMgYW4gZXh0
ZW5zaW9uIHRvIG9mClNjcm9sbEFuaW1hdG9yTm9uZS4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIGV4
dGVuZGluZyB0aGUgbGF0ZXIgdG8gYWxsb3cKb3ZlcnNjcm9sbGluZyB3aGlsZSB0aGUgYW5pbWF0
aW9uIHJ1bnMuCgpPbmNlIHRoZSBhbmltYXRpb24gZmluaXNoZXMsIHRoZSBmbGFnIGdldHMgcmVz
ZXRlZCBhbmQKU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpbnNTY3JvbGxpbmd0b0NvbnRlbnRFZGdl
IGlzIHNldCBiYWNrIHRvIHRoZSB2YWx1ZQppdCBoYWQgYmVmb3JlLCBzbyB0aGlzIG1ldGhvZCBo
YXMgdG8gYmUgZXhwbGljaXRseSBjYWxsZWQgYW55dGltZSBpdCBpcyB3YW50ZWQuCgoqIENNYWtl
TGlzdHMudHh0OgoqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CihXZWJDb3JlOjpTY3JvbGxB
bmltYXRvcjo6YW5pbWF0aW9uV2lsbFN0YXJ0KToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjph
bmltYXRpb25EaWRGaW5pc2gpOgooU2Nyb2xsQW5pbWF0b3IpOgoqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5jcHA6CihXZWJDb3JlKToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6
c2Nyb2xsKToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJl
ZCk6CiogcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuY3BwOiBB
ZGRlZC4KKFdlYkNvcmUpOgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZSk6CihXZWJD
b3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OlNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeSk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OmFuaW1hdGlvbldpbGxTdGFydCk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OmFuaW1hdGlvbkRpZEZpbmlzaCk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OnNldERpc2FibGVDb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKToKKiBwbGF0Zm9ybS9ibGFja2Jl
cnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5oOiBBZGRlZC4KKFdlYkNvcmUpOgooU2Nyb2xs
QW5pbWF0b3JCbGFja0JlcnJ5KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggICAgICAgICAgIHwgICAgMyArCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwICAgICB8ICAgIDYgKysK
IC4uLi9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5jcHAgICAgICAgIHwgICA1
MCArKysrKysrKysrKysrKysrKysrKwogLi4uL3BsYXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5p
bWF0b3JCbGFja0JlcnJ5LmggfCAgIDMzICsrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwg
MTM0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnku
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTZj
NGVhZi4uMzhiNDI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNjUsNiArMjE2NSwxMyBA
QCBJRiAoRU5BQkxFX1dFQl9TT0NLRVRTKQogICAgICkKIEVORElGICgpCiAKK0lGIChFTkFCTEVf
U01PT1RIX1NDUk9MTElORykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAg
ICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorICAgICAgICBwbGF0Zm9ybS9ibGFj
a2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5jcHAKKyAgICApCitFTkRJRiAoKQorCiBJ
RiAoRU5BQkxFX1dFQl9TT0NLRVRTIEFORCBFTkFCTEVfV09SS0VSUykKICAgICBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM0ZmVmZjMuLmRhZWVhMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MCBAQAogMjAxMi0wNC0yNSAgQW50b25pbyBHb21lcyAg
PGFnb21lc0ByaW0uY29tPgogCisgICAgICAgIEFkZCBTY3JvbGxBbmltYXRvckJsYWNrQmVycnkg
YXMgYW4gZXh0ZW5zaW9uIHRvIFNjcm9sbEFuaW1hdG9yTm9uZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2MjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBhZGRzIFNjcm9sbEFuaW1hdG9yQmxh
Y2tCZXJyeSBjbGFzcyBhcyBhbiBleHRlbnNpb24gdG8gb2YKKyAgICAgICAgU2Nyb2xsQW5pbWF0
b3JOb25lLiBUaGUgbWFpbiBnb2FsIGhlcmUgaXMgZXh0ZW5kaW5nIHRoZSBsYXRlciB0byBhbGxv
dworICAgICAgICBvdmVyc2Nyb2xsaW5nIHdoaWxlIHRoZSBhbmltYXRpb24gcnVucy4KKworICAg
ICAgICBPbmNlIHRoZSBhbmltYXRpb24gZmluaXNoZXMsIHRoZSBmbGFnIGdldHMgcmVzZXRlZCBh
bmQKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpbnNTY3JvbGxpbmd0b0NvbnRlbnRF
ZGdlIGlzIHNldCBiYWNrIHRvIHRoZSB2YWx1ZQorICAgICAgICBpdCBoYWQgYmVmb3JlLCBzbyB0
aGlzIG1ldGhvZCBoYXMgdG8gYmUgZXhwbGljaXRseSBjYWxsZWQgYW55dGltZSBpdCBpcyB3YW50
ZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmFuaW1hdGlv
bldpbGxTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6YW5pbWF0aW9u
RGlkRmluaXNoKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5OjpTY3JvbGxBbmlt
YXRvckJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JCbGFja0Jl
cnJ5OjphbmltYXRpb25XaWxsU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JCbGFja0JlcnJ5OjphbmltYXRpb25EaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JCbGFja0JlcnJ5OjpzZXREaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29u
dGVudEVkZ2VXaGlsZUFuaW1hdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9T
Y3JvbGxBbmltYXRvckJsYWNrQmVycnkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeSk6CisKKzIwMTItMDQtMjUgIEFudG9uaW8g
R29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKwogICAgICAgICBNYWtlIFNjcm9sbFZpZXc6OnNjcm9s
bFNpemUgc2Nyb2xsYmFyLWluZGVwZW5kZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDg3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuaAppbmRleCA0ZTVjNDI3Li40NjZhYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTk5LDYgKzk5LDkgQEAgcHJvdGVjdGVkOgogCiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpOwogCisgICAgdmlydHVhbCB2b2lk
IGFuaW1hdGlvbldpbGxTdGFydCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25EaWRG
aW5pc2goKSB7IH0KKwogICAgIFNjcm9sbGFibGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogICAg
IGZsb2F0IG1fY3VycmVudFBvc1g7IC8vIFdlIGF2b2lkIHVzaW5nIGEgRmxvYXRQb2ludCBpbiBv
cmRlciB0byByZWR1Y2UKICAgICBmbG9hdCBtX2N1cnJlbnRQb3NZOyAvLyBzdWJjbGFzcyBjb2Rl
IGNvbXBsZXhpdHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JO
b25lLmNwcAppbmRleCBhZDc5MTRmLi4yNzdkZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTU5LDEyICs1OSwxNCBAQCBjb25zdCBk
b3VibGUga1RpY2tUaW1lID0gMSAvIGtGcmFtZVJhdGU7CiBjb25zdCBkb3VibGUga01pbmltdW1U
aW1lckludGVydmFsID0gLjAwMTsKIGNvbnN0IGRvdWJsZSBrWm9vbVRpY2tzID0gMTE7CiAKKyNp
ZiAhKFBMQVRGT1JNKEJMQUNLQkVSUlkpKQogUGFzc093blB0cjxTY3JvbGxBbmltYXRvcj4gU2Ny
b2xsQW5pbWF0b3I6OmNyZWF0ZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCiB7CiAg
ICAgaWYgKHNjcm9sbGFibGVBcmVhICYmIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxBbmltYXRvckVu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxBbmltYXRvck5vbmUo
c2Nyb2xsYWJsZUFyZWEpKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbEFuaW1hdG9y
KHNjcm9sbGFibGVBcmVhKSk7CiB9CisjZW5kaWYKIAogU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJh
bWV0ZXJzOjpQYXJhbWV0ZXJzKCkKICAgICA6IG1faXNFbmFibGVkKGZhbHNlKQpAQCAtNDY3LDYg
KzQ2OSw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyCiAgICAgYm9vbCBuZWVkVG9TY3JvbGwg
PSBkYXRhLnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhzdGVwLCBtdWx0aXBsaWVyLCBzY3JvbGxh
YmxlU2l6ZSwgV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgJnBhcmFtZXRlcnMp
OwogICAgIGlmIChuZWVkVG9TY3JvbGwgJiYgIWFuaW1hdGlvblRpbWVyQWN0aXZlKCkpIHsKICAg
ICAgICAgbV9zdGFydFRpbWUgPSBkYXRhLm1fc3RhcnRUaW1lOworICAgICAgICBhbmltYXRpb25X
aWxsU3RhcnQoKTsKICAgICAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogICAgIH0KICAgICBy
ZXR1cm4gbmVlZFRvU2Nyb2xsOwpAQCAtNTY1LDYgKzU2OCw5IEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKCkKICAgICBUUkFDRV9FVkVOVCgiU2Nyb2xsQW5p
bWF0b3JOb25lOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQiLCB0aGlzLCAwKTsKICNlbmRpZgogICAg
IG5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpOworCisgICAgaWYgKCFjb250aW51ZUFuaW1hdGlvbikK
KyAgICAgICAgYW5pbWF0aW9uRGlkRmluaXNoKCk7CiB9CiAKICNpZiBVU0UoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUVfVElNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9i
bGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlOTBkNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5
LmNwcApAQCAtMCwwICsxLDUwIEBACisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShTTU9PVEhfU0NST0xMSU5HKQorCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5
LmgiCisjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxTY3JvbGxBbmltYXRv
cj4gU2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEp
Cit7CisgICAgaWYgKHNjcm9sbGFibGVBcmVhICYmIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxBbmlt
YXRvckVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxBbmltYXRv
ckJsYWNrQmVycnkoc2Nyb2xsYWJsZUFyZWEpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNj
cm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKSk7Cit9CisKK1Njcm9sbEFuaW1hdG9yQmxhY2tC
ZXJyeTo6U2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5KFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxl
QXJlYSkKKyAgICA6IFNjcm9sbEFuaW1hdG9yTm9uZShzY3JvbGxhYmxlQXJlYSkKKyAgICAsIG1f
ZGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcoZmFs
c2UpCisgICAgLCBtX29yaWdpbmFsQ29uc3RyYW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVl
KQoreworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeTo6YW5pbWF0aW9uV2lsbFN0
YXJ0KCkKK3sKKyAgICBpZiAobV9kaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVk
Z2VXaGlsZUFuaW1hdGluZykgeworICAgICAgICBtX29yaWdpbmFsQ29uc3RyYW5zU2Nyb2xsaW5n
VG9Db250ZW50RWRnZSA9IHNjcm9sbGFibGVBcmVhKCktPmNvbnN0cmFpbnNTY3JvbGxpbmdUb0Nv
bnRlbnRFZGdlKCk7CisgICAgICAgIHNjcm9sbGFibGVBcmVhKCktPnNldENvbnN0cmFpbnNTY3Jv
bGxpbmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsKKyAgICB9Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0
b3JCbGFja0JlcnJ5OjphbmltYXRpb25EaWRGaW5pc2goKQoreworICAgIGlmIChtX2Rpc2FibGVD
b25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKSB7CisgICAgICAg
IHNjcm9sbGFibGVBcmVhKCktPnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKG1f
b3JpZ2luYWxDb25zdHJhbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlKTsKKyAgICAgICAgbV9kaXNh
YmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFuaW1hdGluZyA9IGZhbHNl
OworICAgIH0KK30KKwordm9pZCBTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OnNldERpc2FibGVD
b25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKGJvb2wgdmFsdWUp
Cit7CisgICAgbV9kaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFu
aW1hdGluZyA9IHZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3Y2Y2NWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tC
ZXJyeS5oCkBAIC0wLDAgKzEsMzMgQEAKKworI2lmbmRlZiBTY3JvbGxBbmltYXRvckJsYWNrQmVy
cnlfaAorI2RlZmluZSBTY3JvbGxBbmltYXRvckJsYWNrYmVycnlfaAorCisjaWYgRU5BQkxFKFNN
T09USF9TQ1JPTExJTkcpCisKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgorI2luY2x1ZGUg
IlNjcm9sbEFuaW1hdG9yTm9uZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNj
cm9sbGFibGVBcmVhOworCitjbGFzcyBTY3JvbGxBbmltYXRvckJsYWNrQmVycnkgOiBwdWJsaWMg
U2Nyb2xsQW5pbWF0b3JOb25lIHsKK3B1YmxpYzoKKyAgICBTY3JvbGxBbmltYXRvckJsYWNrQmVy
cnkoU2Nyb2xsYWJsZUFyZWEqKTsKKworICAgIHZvaWQgc2V0RGlzYWJsZUNvbnN0cmFpbnNTY3Jv
bGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcoYm9vbCk7CisKK3Byb3RlY3RlZDoKKyAg
ICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uV2lsbFN0YXJ0KCk7CisgICAgdmlydHVhbCB2b2lkIGFu
aW1hdGlvbkRpZEZpbmlzaCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbV9kaXNhYmxlQ29uc3Ry
YWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFuaW1hdGluZzsKKyAgICBib29sIG1fb3Jp
Z2luYWxDb25zdHJhbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisKKyNlbmRp
ZiAvLyBTY3JvbGxBbmltYXRvckJsYWNrQmVycnlfaAotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138999</attachid>
            <date>2012-04-26 07:33:20 -0700</date>
            <delta_ts>2012-04-26 13:33:33 -0700</delta_ts>
            <desc>(r115347, r=andersca) patch v3</desc>
            <filename>0001-Add-ScrollAnimatorBlackBerry-as-an-extension-to-Scro.patch</filename>
            <type>text/plain</type>
            <size>9565</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA0ZDIwM2JlYzYyNWExODQ1ODUyNjVlMTVkMGI0YjI0ZWZkOWRmYjE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
VGh1LCAyNiBBcHIgMjAxMiAxMDowNDo1NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBTY3Jv
bGxBbmltYXRvckJsYWNrQmVycnkgYXMgYW4gZXh0ZW5zaW9uIHRvCiBTY3JvbGxBbmltYXRvck5v
bmUKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYyNQoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPGFnb21lc0ByaW0u
Y29tPgoKUGF0Y2ggYWRkcyBTY3JvbGxBbmltYXRvckJsYWNrQmVycnkgY2xhc3MgYXMgYW4gZXh0
ZW5zaW9uIHRvIG9mClNjcm9sbEFuaW1hdG9yTm9uZS4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIGV4
dGVuZGluZyB0aGUgbGF0ZXIgdG8gYWxsb3cKb3ZlcnNjcm9sbGluZyB3aGlsZSB0aGUgYW5pbWF0
aW9uIHJ1bnMuCgpPbmNlIHRoZSBhbmltYXRpb24gZmluaXNoZXMsIHRoZSBmbGFnIGdldHMgcmVz
ZXRlZCBhbmQKU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpbnNTY3JvbGxpbmd0b0NvbnRlbnRFZGdl
IGlzIHNldCBiYWNrIHRvIHRoZSB2YWx1ZQppdCBoYWQgYmVmb3JlLCBzbyB0aGlzIG1ldGhvZCBo
YXMgdG8gYmUgZXhwbGljaXRseSBjYWxsZWQgYW55dGltZSBpdCBpcyB3YW50ZWQuCgoqIENNYWtl
TGlzdHMudHh0OgoqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CihXZWJDb3JlOjpTY3JvbGxB
bmltYXRvcjo6YW5pbWF0aW9uV2lsbFN0YXJ0KToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjph
bmltYXRpb25EaWRGaW5pc2gpOgooU2Nyb2xsQW5pbWF0b3IpOgoqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5jcHA6CihXZWJDb3JlKToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6
c2Nyb2xsKToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJl
ZCk6CiogcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuY3BwOiBB
ZGRlZC4KKFdlYkNvcmUpOgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmNyZWF0ZSk6CihXZWJD
b3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OlNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeSk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OmFuaW1hdGlvbldpbGxTdGFydCk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OmFuaW1hdGlvbkRpZEZpbmlzaCk6
CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OnNldERpc2FibGVDb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKToKKiBwbGF0Zm9ybS9ibGFja2Jl
cnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5oOiBBZGRlZC4KKFdlYkNvcmUpOgooU2Nyb2xs
QW5pbWF0b3JCbGFja0JlcnJ5KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSAgICAgICAgICAgIHwgICAgNiArKwogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCAgICAgICAgICAgfCAgICAzICsKIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgICAgIHwgICAgNiArKwog
Li4uL2JsYWNrYmVycnkvU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5LmNwcCAgICAgICAgfCAgIDUw
ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmlt
YXRvckJsYWNrQmVycnkuaCB8ICAgMzMgKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAx
MzMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJmZTkxNzIuLmZmMzZh
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wNC0yNSAgQW50b25pbyBHb21l
cyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgIEFkZCBTY3JvbGxBbmltYXRvckJsYWNrQmVy
cnkgYXMgYW4gZXh0ZW5zaW9uIHRvIFNjcm9sbEFuaW1hdG9yTm9uZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2MjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBhZGRzIFNjcm9sbEFuaW1hdG9y
QmxhY2tCZXJyeSBjbGFzcyBhcyBhbiBleHRlbnNpb24gdG8gb2YKKyAgICAgICAgU2Nyb2xsQW5p
bWF0b3JOb25lLiBUaGUgbWFpbiBnb2FsIGhlcmUgaXMgZXh0ZW5kaW5nIHRoZSBsYXRlciB0byBh
bGxvdworICAgICAgICBvdmVyc2Nyb2xsaW5nIHdoaWxlIHRoZSBhbmltYXRpb24gcnVucy4KKwor
ICAgICAgICBPbmNlIHRoZSBhbmltYXRpb24gZmluaXNoZXMsIHRoZSBmbGFnIGdldHMgcmVzZXRl
ZCBhbmQKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OmNvbnN0cmFpbnNTY3JvbGxpbmd0b0NvbnRl
bnRFZGdlIGlzIHNldCBiYWNrIHRvIHRoZSB2YWx1ZQorICAgICAgICBpdCBoYWQgYmVmb3JlLCBz
byB0aGlzIG1ldGhvZCBoYXMgdG8gYmUgZXhwbGljaXRseSBjYWxsZWQgYW55dGltZSBpdCBpcyB3
YW50ZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OmFuaW1h
dGlvbldpbGxTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6YW5pbWF0
aW9uRGlkRmluaXNoKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5OjpTY3JvbGxB
bmltYXRvckJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JCbGFj
a0JlcnJ5OjphbmltYXRpb25XaWxsU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JCbGFja0JlcnJ5OjphbmltYXRpb25EaWRGaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5OjpzZXREaXNhYmxlQ29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2VXaGlsZUFuaW1hdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJy
eS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeSk6CisKIDIwMTItMDQtMjYgIEFudG9u
aW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIHNt
b290aF9zY3JvbGxpbmcgb3B0aW9ucyB0byBDTUFLRSBhbmQgZW5hYmxlIGl0IGZvciBCbGFja2Jl
cnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggYzcwMmQyZi4u
YTA1YmZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTk2
LDYgKzE5NiwxMiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vVG91Y2hM
aXN0LmNwcAogKQogCitJRiAoRU5BQkxFX1NNT09USF9TQ1JPTExJTkcpCisgICAgTElTVChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvU2Nyb2xsQW5p
bWF0b3JCbGFja0JlcnJ5LmNwcAorICAgICkKK0VORElGICgpCisKIExJU1QoQVBQRU5EIFdFQkRP
TV9JRExfSEVBREVSUwogICAgIGJpbmRpbmdzL2NwcC9XZWJET01DU3RyaW5nLmgKICAgICBiaW5k
aW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmgKaW5kZXggNGU1YzQyNy4uNDY2YWJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC05OSw2ICs5OSw5IEBAIHByb3RlY3RlZDoKIAogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlvbkNoYW5nZWQoKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRpb25XaWxsU3RhcnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uRGlk
RmluaXNoKCkgeyB9CisKICAgICBTY3JvbGxhYmxlQXJlYSogbV9zY3JvbGxhYmxlQXJlYTsKICAg
ICBmbG9hdCBtX2N1cnJlbnRQb3NYOyAvLyBXZSBhdm9pZCB1c2luZyBhIEZsb2F0UG9pbnQgaW4g
b3JkZXIgdG8gcmVkdWNlCiAgICAgZmxvYXQgbV9jdXJyZW50UG9zWTsgLy8gc3ViY2xhc3MgY29k
ZSBjb21wbGV4aXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
Tm9uZS5jcHAKaW5kZXggYWQ3OTE0Zi4uMjc3ZGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC01OSwxMiArNTksMTQgQEAgY29uc3Qg
ZG91YmxlIGtUaWNrVGltZSA9IDEgLyBrRnJhbWVSYXRlOwogY29uc3QgZG91YmxlIGtNaW5pbXVt
VGltZXJJbnRlcnZhbCA9IC4wMDE7CiBjb25zdCBkb3VibGUga1pvb21UaWNrcyA9IDExOwogCisj
aWYgIShQTEFURk9STShCTEFDS0JFUlJZKSkKIFBhc3NPd25QdHI8U2Nyb2xsQW5pbWF0b3I+IFNj
cm9sbEFuaW1hdG9yOjpjcmVhdGUoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogewog
ICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsQW5pbWF0b3JF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsQW5pbWF0b3JOb25l
KHNjcm9sbGFibGVBcmVhKSk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxBbmltYXRv
cihzY3JvbGxhYmxlQXJlYSkpOwogfQorI2VuZGlmCiAKIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFy
YW1ldGVyczo6UGFyYW1ldGVycygpCiAgICAgOiBtX2lzRW5hYmxlZChmYWxzZSkKQEAgLTQ2Nyw2
ICs0NjksNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6c2Nyb2xsKFNjcm9sbGJhck9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcgogICAgIGJvb2wgbmVlZFRvU2Nyb2xs
ID0gZGF0YS51cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoc3RlcCwgbXVsdGlwbGllciwgc2Nyb2xs
YWJsZVNpemUsIFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksICZwYXJhbWV0ZXJz
KTsKICAgICBpZiAobmVlZFRvU2Nyb2xsICYmICFhbmltYXRpb25UaW1lckFjdGl2ZSgpKSB7CiAg
ICAgICAgIG1fc3RhcnRUaW1lID0gZGF0YS5tX3N0YXJ0VGltZTsKKyAgICAgICAgYW5pbWF0aW9u
V2lsbFN0YXJ0KCk7CiAgICAgICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKICAgICB9CiAgICAg
cmV0dXJuIG5lZWRUb1Njcm9sbDsKQEAgLTU2NSw2ICs1NjgsOSBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCgpCiAgICAgVFJBQ0VfRVZFTlQoIlNjcm9sbEFu
aW1hdG9yTm9uZTo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkIiwgdGhpcywgMCk7CiAjZW5kaWYKICAg
ICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoKTsKKworICAgIGlmICghY29udGludWVBbmltYXRpb24p
CisgICAgICAgIGFuaW1hdGlvbkRpZEZpbmlzaCgpOwogfQogCiAjaWYgVVNFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FX1RJTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjA5MDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJy
eS5jcHAKQEAgLTAsMCArMSw1MCBAQAorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKKworI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yQmxhY2tCZXJy
eS5oIgorCisjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8U2Nyb2xsQW5pbWF0
b3I+IFNjcm9sbEFuaW1hdG9yOjpjcmVhdGUoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVh
KQoreworICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsQW5p
bWF0b3JFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsQW5pbWF0
b3JCbGFja0JlcnJ5KHNjcm9sbGFibGVBcmVhKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBT
Y3JvbGxBbmltYXRvcihzY3JvbGxhYmxlQXJlYSkpOworfQorCitTY3JvbGxBbmltYXRvckJsYWNr
QmVycnk6OlNjcm9sbEFuaW1hdG9yQmxhY2tCZXJyeShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJs
ZUFyZWEpCisgICAgOiBTY3JvbGxBbmltYXRvck5vbmUoc2Nyb2xsYWJsZUFyZWEpCisgICAgLCBt
X2Rpc2FibGVDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKGZh
bHNlKQorICAgICwgbV9vcmlnaW5hbENvbnN0cmFuc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UodHJ1
ZSkKK3sKK30KKwordm9pZCBTY3JvbGxBbmltYXRvckJsYWNrQmVycnk6OmFuaW1hdGlvbldpbGxT
dGFydCgpCit7CisgICAgaWYgKG1fZGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRF
ZGdlV2hpbGVBbmltYXRpbmcpIHsKKyAgICAgICAgbV9vcmlnaW5hbENvbnN0cmFuc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UgPSBzY3JvbGxhYmxlQXJlYSgpLT5jb25zdHJhaW5zU2Nyb2xsaW5nVG9D
b250ZW50RWRnZSgpOworICAgICAgICBzY3JvbGxhYmxlQXJlYSgpLT5zZXRDb25zdHJhaW5zU2Ny
b2xsaW5nVG9Db250ZW50RWRnZShmYWxzZSk7CisgICAgfQorfQorCit2b2lkIFNjcm9sbEFuaW1h
dG9yQmxhY2tCZXJyeTo6YW5pbWF0aW9uRGlkRmluaXNoKCkKK3sKKyAgICBpZiAobV9kaXNhYmxl
Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFuaW1hdGluZykgeworICAgICAg
ICBzY3JvbGxhYmxlQXJlYSgpLT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSht
X29yaWdpbmFsQ29uc3RyYW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSk7CisgICAgICAgIG1fZGlz
YWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmcgPSBmYWxz
ZTsKKyAgICB9Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5OjpzZXREaXNhYmxl
Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VXaGlsZUFuaW1hdGluZyhib29sIHZhbHVl
KQoreworICAgIG1fZGlzYWJsZUNvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVB
bmltYXRpbmcgPSB2YWx1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbEFuaW1hdG9yQmxhY2tCZXJyeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNrQmVycnkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2NmNjVjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TY3JvbGxBbmltYXRvckJsYWNr
QmVycnkuaApAQCAtMCwwICsxLDMzIEBACisKKyNpZm5kZWYgU2Nyb2xsQW5pbWF0b3JCbGFja0Jl
cnJ5X2gKKyNkZWZpbmUgU2Nyb2xsQW5pbWF0b3JCbGFja2JlcnJ5X2gKKworI2lmIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQorCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNpbmNsdWRl
ICJTY3JvbGxBbmltYXRvck5vbmUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
Y3JvbGxhYmxlQXJlYTsKKworY2xhc3MgU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5IDogcHVibGlj
IFNjcm9sbEFuaW1hdG9yTm9uZSB7CitwdWJsaWM6CisgICAgU2Nyb2xsQW5pbWF0b3JCbGFja0Jl
cnJ5KFNjcm9sbGFibGVBcmVhKik7CisKKyAgICB2b2lkIHNldERpc2FibGVDb25zdHJhaW5zU2Ny
b2xsaW5nVG9Db250ZW50RWRnZVdoaWxlQW5pbWF0aW5nKGJvb2wpOworCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbldpbGxTdGFydCgpOworICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRpb25EaWRGaW5pc2goKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1fZGlzYWJsZUNvbnN0
cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdlV2hpbGVBbmltYXRpbmc7CisgICAgYm9vbCBtX29y
aWdpbmFsQ29uc3RyYW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQorCisjZW5k
aWYgLy8gU2Nyb2xsQW5pbWF0b3JCbGFja0JlcnJ5X2gKLS0gCjEuNy41LjQKCg==
</data>
<flag name="review"
          id="144527"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>