<?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>42234</bug_id>
          
          <creation_ts>2010-07-13 22:56:45 -0700</creation_ts>
          <short_desc>Implementing VideoLayerChromium for gpu acceleration</short_desc>
          <delta_ts>2010-07-19 23:29:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Victoria Kirst">vrk</reporter>
          <assigned_to name="Victoria Kirst">vrk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hclam</cc>
    
    <cc>levin</cc>
    
    <cc>scherkus</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250982</commentid>
    <comment_count>0</comment_count>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-13 22:56:45 -0700</bug_when>
    <thetext>Implementing VideoLayerChromium for gpu acceleration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250986</commentid>
    <comment_count>1</comment_count>
      <attachid>61472</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-13 23:06:02 -0700</bug_when>
    <thetext>Created attachment 61472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250989</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-07-13 23:25:05 -0700</bug_when>
    <thetext>Seems fine.

&lt;Very optional&gt;
imo, it would be nice to include a few more header files in places where things are used (like RefPtr, PassRefPtr, or adoptRef being used without including the corresponding header file (as this seems to be using the fact that some other header file happens to include it ), but this isn&apos;t critical (and I may even be recommending something that other WK reviewers would recommend against).
&lt;/Very optional&gt;


I&apos;d like someone else from the video team to give an LGTM before I do the final r+. (If you want this to be committed automatically for you, please mark this as cq? in addition to r?.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251269</commentid>
    <comment_count>3</comment_count>
      <attachid>61534</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-14 10:28:16 -0700</bug_when>
    <thetext>Created attachment 61534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251272</commentid>
    <comment_count>4</comment_count>
      <attachid>61534</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-14 10:30:35 -0700</bug_when>
    <thetext>Comment on attachment 61534
Patch

Deleted a method that VideoLayerChromium was overriding since it just called the super class&apos;s method with the same argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251412</commentid>
    <comment_count>5</comment_count>
      <attachid>61534</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2010-07-14 13:54:27 -0700</bug_when>
    <thetext>Comment on attachment 61534
Patch

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index 572b5565d11552d8037e1448eb9625d8f6b5fc59..49981a59a5f396a50fdf29defde7788b19ec364f 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,25 @@
&gt; +2010-07-13  Victoria Kirst  &lt;vrk@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Added a simple implementation of VideoLayerChromium. Uses the
&gt; +        LayerChromium::updateTextureRect() to send video frames to the
&gt; +        GPU.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=42234
&gt; +
&gt; +        * WebCore.gypi: Added include for VideoLayerChromium.
&gt; +        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
&gt; +        (WebCore::GraphicsLayerChromium::setContentsToMedia): Implemented
&gt; +        setContentsToMedia, though it does not seem to trigger a repaint
&gt; +        correctly.
&gt; +        * platform/graphics/chromium/GraphicsLayerChromium.h:
&gt; +        * platform/graphics/chromium/VideoLayerChromium.cpp: Added.
&gt; +        (WebCore::VideoLayerChromium::create):
&gt; +        (WebCore::VideoLayerChromium::VideoLayerChromium):
&gt; +        (WebCore::VideoLayerChromium::updateTextureContents):
&gt; +        * platform/graphics/chromium/VideoLayerChromium.h: Added.
&gt; +        (WebCore::VideoLayerChromium::drawsContent):
&gt; +
&gt;  2010-07-07  Kristian Monsen  &lt;kristianm@google.com&gt;
&gt;  
&gt;          Reviewed by Steve Block.
&gt; diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
&gt; index 4edc42683aa27040ab44a4e3aad2df371bd2bfe7..74fd1ad731c64f21562d94e3981efe0383086cb1 100644
&gt; --- a/WebCore/WebCore.gypi
&gt; +++ b/WebCore/WebCore.gypi
&gt; @@ -2194,6 +2194,8 @@
&gt;              &apos;platform/graphics/chromium/UniscribeHelper.h&apos;,
&gt;              &apos;platform/graphics/chromium/UniscribeHelperTextRun.cpp&apos;,
&gt;              &apos;platform/graphics/chromium/UniscribeHelperTextRun.h&apos;,
&gt; +            &apos;platform/graphics/chromium/VideoLayerChromium.cpp&apos;,
&gt; +            &apos;platform/graphics/chromium/VideoLayerChromium.h&apos;,
&gt;              &apos;platform/graphics/chromium/WebGLLayerChromium.cpp&apos;,
&gt;              &apos;platform/graphics/chromium/WebGLLayerChromium.h&apos;,
&gt;              &apos;platform/graphics/filters/FEBlend.cpp&apos;,
&gt; diff --git a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
&gt; index 9b65346835a6e8a215d4f8048ecf4a70ac6f0a29..a01a17fd2a5984f682a908ebae5b870685c0717e 100644
&gt; --- a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
&gt; +++ b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
&gt; @@ -363,9 +363,30 @@ void GraphicsLayerChromium::setContentsToWebGL(PlatformLayer* platformLayer)
&gt;  }
&gt;  #endif
&gt;  
&gt; -void GraphicsLayerChromium::setContentsToVideo(PlatformLayer* videoLayer)
&gt; +void GraphicsLayerChromium::setContentsToMedia(PlatformLayer* layer)
&gt;  {
&gt; -    // FIXME: Implement
&gt; +    bool childrenChanged = false;
&gt; +    if (layer) {
&gt; +        if (!m_contentsLayer.get() || m_contentsLayerPurpose != ContentsLayerForVideo) {
&gt; +            setupContentsLayer(layer);
&gt; +            m_contentsLayer = layer;
&gt; +            m_contentsLayerPurpose = ContentsLayerForVideo;
&gt; +            childrenChanged = true;
&gt; +        }
&gt; +        layer-&gt;setOwner(this);
&gt; +        layer-&gt;setNeedsDisplay();
&gt; +        updateContentsRect();
&gt; +    } else {
&gt; +        if (m_contentsLayer) {
&gt; +            childrenChanged = true;
&gt; +  
&gt; +            // The old contents layer will be removed via updateSublayerList.
&gt; +            m_contentsLayer = 0;
&gt; +        }
&gt; +    }
&gt; +  
&gt; +    if (childrenChanged)
&gt; +        updateSublayerList();
&gt;  }
&gt;  
&gt;  void GraphicsLayerChromium::setGeometryOrientation(CompositingCoordinatesOrientation orientation)
&gt; diff --git a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
&gt; index ccd02eb3f5ddf9820a50b979776359cb002c39d7..cd5e4799ab4f031a41831200e8a58d27920e3420 100644
&gt; --- a/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
&gt; +++ b/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
&gt; @@ -85,7 +85,7 @@ public:
&gt;      virtual void setContentsRect(const IntRect&amp;);
&gt;  
&gt;      virtual void setContentsToImage(Image*);
&gt; -    virtual void setContentsToVideo(PlatformLayer*);
&gt; +    virtual void setContentsToMedia(PlatformLayer*);
&gt;      virtual void setContentsToWebGL(PlatformLayer*);
&gt;  
&gt;      virtual PlatformLayer* platformLayer() const;
&gt; diff --git a/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
&gt; new file mode 100644
&gt; index 0000000000000000000000000000000000000000..5ac0e578dfe57c5f2c105194fb4ab1e92404a713
&gt; --- /dev/null
&gt; +++ b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
&gt; @@ -0,0 +1,50 @@
&gt; +/*
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; + */
&gt; +
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +
&gt; +#include &quot;VideoLayerChromium.h&quot;
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +PassRefPtr&lt;VideoLayerChromium&gt; VideoLayerChromium::create(GraphicsLayerChromium* owner)
&gt; +{
&gt; +    return adoptRef(new VideoLayerChromium(owner));
&gt; +}
&gt; +
&gt; +VideoLayerChromium::VideoLayerChromium(GraphicsLayerChromium* owner)
&gt; +    : LayerChromium(owner)
&gt; +{
&gt; +}
&gt; +
&gt; +}
&gt; +#endif // USE(ACCELERATED_COMPOSITING)
&gt; diff --git a/WebCore/platform/graphics/chromium/VideoLayerChromium.h b/WebCore/platform/graphics/chromium/VideoLayerChromium.h
&gt; new file mode 100644
&gt; index 0000000000000000000000000000000000000000..1fa80095dc865c3836b2ab326ed4b3fa4953014a
&gt; --- /dev/null
&gt; +++ b/WebCore/platform/graphics/chromium/VideoLayerChromium.h
&gt; @@ -0,0 +1,54 @@
&gt; +/*
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
&gt; + */
&gt; +
&gt; +
&gt; +#ifndef VideoLayerChromium_h
&gt; +#define VideoLayerChromium_h
&gt; +
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +
&gt; +#include &quot;LayerChromium.h&quot;
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +// A Layer that contains a Video element.
&gt; +class VideoLayerChromium : public LayerChromium {
&gt; +public:
&gt; +    static PassRefPtr&lt;VideoLayerChromium&gt; create(GraphicsLayerChromium* owner = 0);
&gt; +    virtual bool drawsContent() { return true; }
&gt; +
&gt; +private:
&gt; +    VideoLayerChromium(GraphicsLayerChromium* owner);
&gt; +};
&gt; +
&gt; +}
&gt; +#endif // USE(ACCELERATED_COMPOSITING)
&gt; +
&gt; +#endif
&gt; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
&gt; index 1598848de90af968534a7a6daac910e122712cdc..22489da44a1d43ecd5567ed98557e03301914d5d 100644
&gt; --- a/WebKit/chromium/ChangeLog
&gt; +++ b/WebKit/chromium/ChangeLog
&gt; @@ -1,3 +1,17 @@
&gt; +2010-07-13  Victoria Kirst  &lt;vrk@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Updated WebMediaPlayer to support accelerated rendering and to
&gt; +        create and return a VideoChromiumLayer as its platform layer.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=42234
&gt; +
&gt; +        * src/WebMediaPlayerClientImpl.cpp:
&gt; +        (WebKit::WebMediaPlayerClientImpl::platformLayer):
&gt; +        (WebKit::WebMediaPlayerClientImpl::create):
&gt; +        * src/WebMediaPlayerClientImpl.h:
&gt; +        (WebKit::WebMediaPlayerClientImpl::supportsAcceleratedRendering):
&gt; +
&gt;  2010-07-07  Sheriff Bot  &lt;webkit.review.bot@gmail.com&gt;
&gt;  
&gt;          Unreviewed, rolling out r62645.
&gt; diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
&gt; index 03051c32bf3e2583773dd38fb009523bd2405d18..b6aa961bc0f0c58f864dfaac147dd3f1f41f69f1 100644
&gt; --- a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
&gt; +++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
&gt; @@ -15,6 +15,7 @@
&gt;  #include &quot;MediaPlayer.h&quot;
&gt;  #include &quot;NotImplemented.h&quot;
&gt;  #include &quot;TimeRanges.h&quot;
&gt; +#include &quot;VideoLayerChromium.h&quot;
&gt;  
&gt;  #include &quot;WebCanvas.h&quot;
&gt;  #include &quot;WebCString.h&quot;
&gt; @@ -156,6 +157,12 @@ void WebMediaPlayerClientImpl::cancelLoad()
&gt;      if (m_webMediaPlayer.get())
&gt;          m_webMediaPlayer-&gt;cancelLoad();
&gt;  }
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +WebCore::PlatformLayer* WebMediaPlayerClientImpl::platformLayer() const
&gt; +{
&gt; +    return m_videoLayer.get();
&gt; +}
&gt; +#endif
&gt;  
&gt;  void WebMediaPlayerClientImpl::play()
&gt;  {
&gt; @@ -372,6 +379,9 @@ MediaPlayerPrivateInterface* WebMediaPlayerClientImpl::create(MediaPlayer* playe
&gt;  {
&gt;      WebMediaPlayerClientImpl* client = new WebMediaPlayerClientImpl();
&gt;      client-&gt;m_mediaPlayer = player;
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    client-&gt;m_videoLayer = VideoLayerChromium::create(0);
&gt; +#endif
&gt;      return client;
&gt;  }
&gt;  
&gt; diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
&gt; index 57c93b7b4c5d37e4eef4e53e85704103481a85ec..a88fde15b733443ec9f43b4718a8d64d7a68684b 100644
&gt; --- a/WebKit/chromium/src/WebMediaPlayerClientImpl.h
&gt; +++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
&gt; @@ -66,6 +66,9 @@ public:
&gt;      // MediaPlayerPrivateInterface methods:
&gt;      virtual void load(const WebCore::String&amp; url);
&gt;      virtual void cancelLoad();
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    virtual WebCore::PlatformLayer* platformLayer() const;
&gt; +#endif
&gt;      virtual void play();
&gt;      virtual void pause();
&gt;      virtual bool supportsFullscreen() const;
&gt; @@ -94,6 +97,10 @@ public:
&gt;      virtual void setSize(const WebCore::IntSize&amp;);
&gt;      virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&amp;);
&gt;      virtual bool hasSingleSecurityOrigin() const;
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    virtual bool supportsAcceleratedRendering() const { return true; }
&gt; +#endif
&gt; +
&gt;      virtual WebCore::MediaPlayer::MovieLoadType movieLoadType() const;
&gt;  
&gt;  private:
&gt; @@ -106,6 +113,9 @@ private:
&gt;  
&gt;      WebCore::MediaPlayer* m_mediaPlayer;
&gt;      OwnPtr&lt;WebMediaPlayer&gt; m_webMediaPlayer;
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    RefPtr&lt;WebCore::PlatformLayer&gt; m_videoLayer;
&gt; +#endif
&gt;      static bool m_isEnabled;
&gt;  };
&gt;  

WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:383
 +      client-&gt;m_videoLayer = VideoLayerChromium::create(0);
Do so only if accelerated compositing is enabled in runtime. This is a compile time flag which is true for audio all the time.

WebKit/chromium/src/WebMediaPlayerClientImpl.h:101
 +      virtual bool supportsAcceleratedRendering() const { return true; }
Do so only if accelerated compositing is enabled in runtime. This is a compile time flag which is true for audio all the time.

WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:163
 +      return m_videoLayer.get();
assert if accelerated compositing is not enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251421</commentid>
    <comment_count>6</comment_count>
      <attachid>61534</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-07-14 14:12:28 -0700</bug_when>
    <thetext>Comment on attachment 61534
Patch

r- Based on Alpha&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252809</commentid>
    <comment_count>7</comment_count>
      <attachid>61870</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-16 19:18:28 -0700</bug_when>
    <thetext>Created attachment 61870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252810</commentid>
    <comment_count>8</comment_count>
      <attachid>61870</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-16 19:21:17 -0700</bug_when>
    <thetext>Comment on attachment 61870
Patch

Made changes according to Alpha&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252811</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-16 19:27:53 -0700</bug_when>
    <thetext>Attachment 61870 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3360590</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253257</commentid>
    <comment_count>10</comment_count>
      <attachid>61870</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-07-19 09:31:18 -0700</bug_when>
    <thetext>Comment on attachment 61870
Patch

In addition to my (minor) comment below:
1. Please figure out the chromium build break. (You may need a DEPS roll.)
2. It would be nice to get Alpha to look it over again.

&gt; diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
&gt;  WebMediaPlayerClientImpl::WebMediaPlayerClientImpl()
&gt;      : m_mediaPlayer(0)
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +      ,
&gt; +      m_videoLayer(0),
&gt; +      m_supportsAcceleratedCompositing(false)

The commas should be at the beginning of the lines (and this will happen to make the formatting more uniform).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253272</commentid>
    <comment_count>11</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2010-07-19 10:04:37 -0700</bug_when>
    <thetext>The code looks good to me. Just need to fix style according to David&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253291</commentid>
    <comment_count>12</comment_count>
      <attachid>61969</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-19 10:59:44 -0700</bug_when>
    <thetext>Created attachment 61969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253292</commentid>
    <comment_count>13</comment_count>
      <attachid>61969</attachid>
    <who name="Victoria Kirst">vrk</who>
    <bug_when>2010-07-19 11:01:24 -0700</bug_when>
    <thetext>Comment on attachment 61969
Patch

Fixed formatting inconsistency with constructor and fixed the build issue (had to include a header behind a &quot;if use(...)&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253571</commentid>
    <comment_count>14</comment_count>
      <attachid>61969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-19 23:29:05 -0700</bug_when>
    <thetext>Comment on attachment 61969
Patch

Clearing flags on attachment: 61969

Committed r63723: &lt;http://trac.webkit.org/changeset/63723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253572</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-19 23:29:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61472</attachid>
            <date>2010-07-13 23:06:02 -0700</date>
            <delta_ts>2010-07-14 10:28:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42234-20100713230601.patch</filename>
            <type>text/plain</type>
            <size>12600</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTcyYjU1NjVkMTE1NTJkODAzN2UxNDQ4ZWI5NjI1ZDhmNmI1ZmM1OS4uNDk5ODFhNTlhNWYzOTZh
NTBmZGYyOWRlZmRlNzc4OGIxOWVjMzY0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMyAgVmlj
dG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBW
aWRlb0xheWVyQ2hyb21pdW0uIFVzZXMgdGhlCisgICAgICAgIExheWVyQ2hyb21pdW06OnVwZGF0
ZVRleHR1cmVSZWN0KCkgdG8gc2VuZCB2aWRlbyBmcmFtZXMgdG8gdGhlCisgICAgICAgIEdQVS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIGluY2x1ZGUgZm9yIFZpZGVvTGF5ZXJDaHJv
bWl1bS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDb250ZW50c1RvTWVkaWEpOiBJbXBsZW1lbnRlZAorICAgICAgICBzZXRDb250ZW50c1RvTWVk
aWEsIHRob3VnaCBpdCBkb2VzIG5vdCBzZWVtIHRvIHRyaWdnZXIgYSByZXBhaW50CisgICAgICAg
IGNvcnJlY3RseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1
bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisKIDIwMTAtMDctMDcgIEtyaXN0
aWFuIE1vbnNlbiAgPGtyaXN0aWFubUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA0ZWRjNDI2ODNhYTI3MDQwYWI0NGE0ZTNhYWQyZGYzNzFiZDJi
ZmU3Li43NGZkMWFkNzMxYzY0ZjIxNTYyZDk0ZTM5ODFlZmUwMzgzMDg2Y2IxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjE5
NCw2ICsyMTk0LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9V
bmlzY3JpYmVIZWxwZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdM
TGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA5YjY1MzQ2ODM1YTZl
OGEyMTVkNGY4MDQ4ZWNmNGE3MGFjNmYwYTI5Li5hNmY1MGQzMWYxNTY0ZTZlODMwODA1NTZmNmEx
ZGEzYjM3OTQ4YjRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC0zNjMsOSArMzYzLDMw
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c1RvV2ViR0woUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcikKIH0KICNlbmRpZgogCi12b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q29udGVudHNUb1ZpZGVvKFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5
ZXIqIGxheWVyKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBib29sIGNoaWxkcmVu
Q2hhbmdlZCA9IGZhbHNlOworICAgIGlmIChsYXllcikgeworICAgICAgICBpZiAoIW1fY29udGVu
dHNMYXllci5nZXQoKSB8fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJG
b3JWaWRlbykgeworICAgICAgICAgICAgc2V0dXBDb250ZW50c0xheWVyKGxheWVyKTsKKyAgICAg
ICAgICAgIG1fY29udGVudHNMYXllciA9IGxheWVyOworICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJGb3JWaWRlbzsKKyAgICAgICAgICAgIGNoaWxkcmVu
Q2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbGF5ZXItPnNldE93bmVyKHRoaXMp
OworICAgICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgICAgIHVwZGF0ZUNvbnRl
bnRzUmVjdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIpIHsK
KyAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7CisKKyAgICAgICAgICAgIC8vIFRo
ZSBvbGQgY29udGVudHMgbGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJsYXllckxp
c3QuCisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGNoaWxkcmVuQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7
CiB9CiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRHZW9tZXRyeU9yaWVudGF0aW9u
KENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5oCmluZGV4IGNjZDAyZWIzZjVkZGY5ODIwYTUwYjk3OTc3NjM1OWNiMDAyYzM5ZDcu
LmNkNWU0Nzk5YWI0ZjAzMWE0MTgzMTIwMGU4YTU4ZDI3OTIwZTM0MjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hy
b21pdW0uaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb0ltYWdlKEltYWdlKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9WaWRlbyhQ
bGF0Zm9ybUxheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0
Zm9ybUxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9XZWJHTChQbGF0Zm9y
bUxheWVyKik7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlk
ZW9MYXllckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VmlkZW9MYXllckNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmRiOGJmY2RlODY1MDA0ZTMwMDUz
ZGU1NmMxOGQ1NTVjMTc1ZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisK
KyNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPFZpZGVvTGF5ZXJDaHJvbWl1bT4gVmlkZW9MYXllckNocm9taXVtOjpjcmVh
dGUoR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFZpZGVvTGF5ZXJDaHJvbWl1bShvd25lcikpOworfQorCitWaWRlb0xheWVyQ2hyb21pdW06
OlZpZGVvTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQorICAgIDog
TGF5ZXJDaHJvbWl1bShvd25lcikKK3sKK30KKwordm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OnVw
ZGF0ZVRleHR1cmVDb250ZW50cyh1bnNpZ25lZCB0ZXh0dXJlSWQpCit7CisgICAgTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzKHRleHR1cmVJZCk7Cit9CisKK30KKyNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YWNjNWI5NDc4MTI1YmM4NmRlMWMxZGRjMjExNThmMzRhN2I0ZGEyCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0u
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIFZpZGVvTGF5ZXJDaHJvbWl1bV9oCisjZGVmaW5l
IFZpZGVvTGF5ZXJDaHJvbWl1bV9oCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKKyNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Ly8gQSBMYXllciB0aGF0IGNvbnRhaW5zIGEgVmlkZW8gZWxlbWVudC4KK2NsYXNzIFZpZGVvTGF5
ZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllckNocm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxWaWRlb0xheWVyQ2hyb21pdW0+IGNyZWF0ZShHcmFwaGljc0xheWVyQ2hyb21p
dW0qIG93bmVyID0gMCk7CisgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dHVyZUNvbnRlbnRzKHVuc2lnbmVk
KTsKKworcHJpdmF0ZToKKyAgICBWaWRlb0xheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9t
aXVtKiBvd25lcik7Cit9OworCit9CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDE1OTg4NDhkZTkwYWY5Njg1MzRhN2E2ZGFh
YzkxMGUxMjI3MTJjZGMuLjIyNDg5ZGE0NGExZDQzZWNkNTU2N2VkOTg1NTdlMDMzMDE5MTRkNWQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA3LTEzICBWaWN0b3JpYSBLaXJz
dCAgPHZya0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZWQgV2ViTWVkaWFQbGF5ZXIgdG8gc3VwcG9ydCBhY2NlbGVyYXRl
ZCByZW5kZXJpbmcgYW5kIHRvCisgICAgICAgIGNyZWF0ZSBhbmQgcmV0dXJuIGEgVmlkZW9DaHJv
bWl1bUxheWVyIGFzIGl0cyBwbGF0Zm9ybSBsYXllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpjcmVhdGUpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nKToKKwogMjAxMC0wNy0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjYyNjQ1LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwCmluZGV4IDAzMDUxYzMyYmYzZTI1ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTgu
LmI2YWE5NjFiYzBmMGM1OGY4NjRkZmFhYzE0N2RkM2YxZjQxZjY5ZjEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE1LDYgKzE1
LDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJDaHJvbWl1
bS5oIgogCiAjaW5jbHVkZSAiV2ViQ2FudmFzLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgpA
QCAtMTU2LDYgKzE1NywxMiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2Vs
TG9hZCgpCiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCiAgICAgICAgIG1fd2ViTWVk
aWFQbGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCitXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7Cit9
CisjZW5kaWYKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXkoKQogewpAQCAt
MzcyLDYgKzM3OSw5IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllCiB7CiAgICAgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsKiBjbGllbnQgPSBuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCk7
CiAgICAgY2xpZW50LT5tX21lZGlhUGxheWVyID0gcGxheWVyOworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKyAgICBjbGllbnQtPm1fdmlkZW9MYXllciA9IFZpZGVvTGF5ZXJDaHJv
bWl1bTo6Y3JlYXRlKDApOworI2VuZGlmCiAgICAgcmV0dXJuIGNsaWVudDsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggNTdjOTNi
N2I0YzVkMzdlNGVlZjRlNTNlODU3MDQxMDM0ODFhODVlYy4uYTg4ZmRlMTViNzMzNDQzZWM5ZjQz
YjQ3MThhOGQ2NGQ3YTY4Njg0YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJN
ZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICAvLyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIHVybCk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQo
KTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCBXZWJDb3Jl
OjpQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0
dWFsIHZvaWQgcGxheSgpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKQEAgLTk0LDYgKzk3LDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmln
aW4oKSBjb25zdDsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9h
ZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtMTA2LDYgKzExMyw5
IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsK
ICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7CisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUxheWVy
PiBtX3ZpZGVvTGF5ZXI7CisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBtX2lzRW5hYmxlZDsKIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61534</attachid>
            <date>2010-07-14 10:28:16 -0700</date>
            <delta_ts>2010-07-16 19:18:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42234-20100714102815.patch</filename>
            <type>text/plain</type>
            <size>12423</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTcyYjU1NjVkMTE1NTJkODAzN2UxNDQ4ZWI5NjI1ZDhmNmI1ZmM1OS4uNDk5ODFhNTlhNWYzOTZh
NTBmZGYyOWRlZmRlNzc4OGIxOWVjMzY0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMyAgVmlj
dG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBW
aWRlb0xheWVyQ2hyb21pdW0uIFVzZXMgdGhlCisgICAgICAgIExheWVyQ2hyb21pdW06OnVwZGF0
ZVRleHR1cmVSZWN0KCkgdG8gc2VuZCB2aWRlbyBmcmFtZXMgdG8gdGhlCisgICAgICAgIEdQVS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIGluY2x1ZGUgZm9yIFZpZGVvTGF5ZXJDaHJv
bWl1bS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDb250ZW50c1RvTWVkaWEpOiBJbXBsZW1lbnRlZAorICAgICAgICBzZXRDb250ZW50c1RvTWVk
aWEsIHRob3VnaCBpdCBkb2VzIG5vdCBzZWVtIHRvIHRyaWdnZXIgYSByZXBhaW50CisgICAgICAg
IGNvcnJlY3RseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1
bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisKIDIwMTAtMDctMDcgIEtyaXN0
aWFuIE1vbnNlbiAgPGtyaXN0aWFubUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA0ZWRjNDI2ODNhYTI3MDQwYWI0NGE0ZTNhYWQyZGYzNzFiZDJi
ZmU3Li43NGZkMWFkNzMxYzY0ZjIxNTYyZDk0ZTM5ODFlZmUwMzgzMDg2Y2IxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjE5
NCw2ICsyMTk0LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9V
bmlzY3JpYmVIZWxwZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdM
TGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA5YjY1MzQ2ODM1YTZl
OGEyMTVkNGY4MDQ4ZWNmNGE3MGFjNmYwYTI5Li5hMDFhMTdmZDJhNTk4NGY2ODJhOTA4ZWJhZTVi
ODcwNjg1YzA3MTdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC0zNjMsOSArMzYzLDMw
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c1RvV2ViR0woUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcikKIH0KICNlbmRpZgogCi12b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q29udGVudHNUb1ZpZGVvKFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5
ZXIqIGxheWVyKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKKyAgICBib29sIGNoaWxkcmVu
Q2hhbmdlZCA9IGZhbHNlOworICAgIGlmIChsYXllcikgeworICAgICAgICBpZiAoIW1fY29udGVu
dHNMYXllci5nZXQoKSB8fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJG
b3JWaWRlbykgeworICAgICAgICAgICAgc2V0dXBDb250ZW50c0xheWVyKGxheWVyKTsKKyAgICAg
ICAgICAgIG1fY29udGVudHNMYXllciA9IGxheWVyOworICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJGb3JWaWRlbzsKKyAgICAgICAgICAgIGNoaWxkcmVu
Q2hhbmdlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbGF5ZXItPnNldE93bmVyKHRoaXMp
OworICAgICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgICAgIHVwZGF0ZUNvbnRl
bnRzUmVjdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIpIHsK
KyAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7CisgIAorICAgICAgICAgICAgLy8g
VGhlIG9sZCBjb250ZW50cyBsYXllciB3aWxsIGJlIHJlbW92ZWQgdmlhIHVwZGF0ZVN1YmxheWVy
TGlzdC4KKyAgICAgICAgICAgIG1fY29udGVudHNMYXllciA9IDA7CisgICAgICAgIH0KKyAgICB9
CisgIAorICAgIGlmIChjaGlsZHJlbkNoYW5nZWQpCisgICAgICAgIHVwZGF0ZVN1YmxheWVyTGlz
dCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0R2VvbWV0cnlPcmllbnRh
dGlvbihDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uaAppbmRleCBjY2QwMmViM2Y1ZGRmOTgyMGE1MGI5Nzk3NzYzNTljYjAwMmMz
OWQ3Li5jZDVlNDc5OWFiNGYwMzFhNDE4MzEyMDBlOGE1OGQyNzkyMGUzNDIwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1JlY3QoY29uc3QgSW50UmVjdCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9JbWFnZShJbWFnZSopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvVmlk
ZW8oUGxhdGZvcm1MYXllciopOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEo
UGxhdGZvcm1MYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvV2ViR0woUGxh
dGZvcm1MYXllciopOwogCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFjMGU1NzhkZmU1N2M1ZjJj
MTA1MTk0ZmI0YWIxZTkyNDA0YTcxMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorCisjaW5jbHVkZSAiVmlkZW9MYXllckNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGFzc1JlZlB0cjxWaWRlb0xheWVyQ2hyb21pdW0+IFZpZGVvTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBWaWRlb0xheWVyQ2hyb21pdW0ob3duZXIpKTsKK30KKworVmlkZW9MYXllckNocm9t
aXVtOjpWaWRlb0xheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKKyAg
ICA6IExheWVyQ2hyb21pdW0ob3duZXIpCit7Cit9CisKK30KKyNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmE4MDA5NWRjODY1
YzM4MzZiMmFiMzI2ZWQ0YjNmYTQ5NTMwMTRhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaApAQCAtMCwwICsx
LDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworCisjaWZuZGVmIFZpZGVvTGF5ZXJDaHJvbWl1bV9oCisjZGVmaW5lIFZpZGVvTGF5ZXJD
aHJvbWl1bV9oCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNpbmNsdWRl
ICJMYXllckNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQSBMYXllciB0
aGF0IGNvbnRhaW5zIGEgVmlkZW8gZWxlbWVudC4KK2NsYXNzIFZpZGVvTGF5ZXJDaHJvbWl1bSA6
IHB1YmxpYyBMYXllckNocm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxW
aWRlb0xheWVyQ2hyb21pdW0+IGNyZWF0ZShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyID0g
MCk7CisgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIHsgcmV0dXJuIHRydWU7IH0KKwor
cHJpdmF0ZToKKyAgICBWaWRlb0xheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBv
d25lcik7Cit9OworCit9CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDE1OTg4NDhkZTkwYWY5Njg1MzRhN2E2ZGFhYzkxMGUx
MjI3MTJjZGMuLjIyNDg5ZGE0NGExZDQzZWNkNTU2N2VkOTg1NTdlMDMzMDE5MTRkNWQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA3LTEzICBWaWN0b3JpYSBLaXJzdCAgPHZy
a0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZWQgV2ViTWVkaWFQbGF5ZXIgdG8gc3VwcG9ydCBhY2NlbGVyYXRlZCByZW5k
ZXJpbmcgYW5kIHRvCisgICAgICAgIGNyZWF0ZSBhbmQgcmV0dXJuIGEgVmlkZW9DaHJvbWl1bUxh
eWVyIGFzIGl0cyBwbGF0Zm9ybSBsYXllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsOjpjcmVhdGUpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKToKKwogMjAxMC0wNy0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYy
NjQ1LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwu
Y3BwCmluZGV4IDAzMDUxYzMyYmYzZTI1ODM3NzNkZDM4ZmIwMDk1MjNiZDI0MDVkMTguLmI2YWE5
NjFiYzBmMGM1OGY4NjRkZmFhYzE0N2RkM2YxZjQxZjY5ZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTE1LDYgKzE1LDcgQEAK
ICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvTGF5ZXJDaHJvbWl1bS5oIgog
CiAjaW5jbHVkZSAiV2ViQ2FudmFzLmgiCiAjaW5jbHVkZSAiV2ViQ1N0cmluZy5oIgpAQCAtMTU2
LDYgKzE1NywxMiBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgp
CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCiAgICAgICAgIG1fd2ViTWVkaWFQbGF5
ZXItPmNhbmNlbExvYWQoKTsKIH0KKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitX
ZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCk7Cit9CisjZW5k
aWYKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXkoKQogewpAQCAtMzcyLDYg
KzM3OSw5IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllCiB7CiAgICAgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsKiBjbGllbnQgPSBuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCk7CiAgICAg
Y2xpZW50LT5tX21lZGlhUGxheWVyID0gcGxheWVyOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBjbGllbnQtPm1fdmlkZW9MYXllciA9IFZpZGVvTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKDApOworI2VuZGlmCiAgICAgcmV0dXJuIGNsaWVudDsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggNTdjOTNiN2I0YzVk
MzdlNGVlZjRlNTNlODU3MDQxMDM0ODFhODVlYy4uYTg4ZmRlMTViNzMzNDQzZWM5ZjQzYjQ3MThh
OGQ2NGQ3YTY4Njg0YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICAvLyBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBX
ZWJDb3JlOjpTdHJpbmcmIHVybCk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKTsKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0
Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZv
aWQgcGxheSgpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOwogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKQEAgLTk0LDYgKzk3LDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBj
b25zdDsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUg
bW92aWVMb2FkVHlwZSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtMTA2LDYgKzExMyw5IEBAIHBy
aXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBP
d25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7CisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUxheWVyPiBtX3Zp
ZGVvTGF5ZXI7CisjZW5kaWYKICAgICBzdGF0aWMgYm9vbCBtX2lzRW5hYmxlZDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61870</attachid>
            <date>2010-07-16 19:18:28 -0700</date>
            <delta_ts>2010-07-19 10:59:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42234-20100716191827.patch</filename>
            <type>text/plain</type>
            <size>14693</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YThlYTNhYTE3MjE4MWMwMDdjYjBiZGZhMzRmMTNmYThjZTQ2YmVmMC4uZmUxNTgxYWI4NDQwNDJh
ZWM1NGJkOThhN2IyZWFmZjUzNmQ1YWE5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xNiAgVmlj
dG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBW
aWRlb0xheWVyQ2hyb21pdW0uIFVzZXMgdGhlCisgICAgICAgIExheWVyQ2hyb21pdW06OnVwZGF0
ZVRleHR1cmVSZWN0KCkgdG8gc2VuZCB2aWRlbyBmcmFtZXMgdG8gdGhlCisgICAgICAgIEdQVS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIGluY2x1ZGUgZm9yIFZpZGVvTGF5ZXJDaHJv
bWl1bS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDb250ZW50c1RvTWVkaWEpOiBJbXBsZW1lbnRlZAorICAgICAgICBzZXRDb250ZW50c1RvTWVk
aWEsIHRob3VnaCBpdCBkb2VzIG5vdCBzZWVtIHRvIHRyaWdnZXIgYSByZXBhaW50CisgICAgICAg
IGNvcnJlY3RseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1
bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisKIDIwMTAtMDctMTYgIFpoZSBT
dSAgPHN1emhlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNWJkNjE1YmNkYzA2ZDVjNGQ2YjllMDdhMzNkZmM4YWU4MDYwNTMwYi4uM2MwNzM1
ZjhjZjA4MDg2YjM5OGEwYTkyMzVlZWViMTZhMzNiNGFjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyMTAsNiArMjIxMCw4
IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVs
cGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlclRleHRSdW4uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21p
dW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNw
cCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOWI2NTM0NjgzNWE2ZThhMjE1ZDRmODA0
OGVjZjRhNzBhYzZmMGEyOS4uYTAxYTE3ZmQyYTU5ODRmNjgyYTkwOGViYWU1Yjg3MDY4NWMwNzE3
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcApAQCAtMzYzLDkgKzM2MywzMCBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb1dlYkdMKFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIpCiB9CiAjZW5kaWYKIAotdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNl
dENvbnRlbnRzVG9WaWRlbyhQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQordm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBsYXllcikK
IHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50CisgICAgYm9vbCBjaGlsZHJlbkNoYW5nZWQgPSBm
YWxzZTsKKyAgICBpZiAobGF5ZXIpIHsKKyAgICAgICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIuZ2V0
KCkgfHwgbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBDb250ZW50c0xheWVyRm9yVmlkZW8pIHsK
KyAgICAgICAgICAgIHNldHVwQ29udGVudHNMYXllcihsYXllcik7CisgICAgICAgICAgICBtX2Nv
bnRlbnRzTGF5ZXIgPSBsYXllcjsKKyAgICAgICAgICAgIG1fY29udGVudHNMYXllclB1cnBvc2Ug
PSBDb250ZW50c0xheWVyRm9yVmlkZW87CisgICAgICAgICAgICBjaGlsZHJlbkNoYW5nZWQgPSB0
cnVlOworICAgICAgICB9CisgICAgICAgIGxheWVyLT5zZXRPd25lcih0aGlzKTsKKyAgICAgICAg
bGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworICAgICAgICB1cGRhdGVDb250ZW50c1JlY3QoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9jb250ZW50c0xheWVyKSB7CisgICAgICAgICAg
ICBjaGlsZHJlbkNoYW5nZWQgPSB0cnVlOworICAKKyAgICAgICAgICAgIC8vIFRoZSBvbGQgY29u
dGVudHMgbGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJsYXllckxpc3QuCisgICAg
ICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICB9CisgICAgfQorICAKKyAgICBp
ZiAoY2hpbGRyZW5DaGFuZ2VkKQorICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKIH0KIAog
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldEdlb21ldHJ5T3JpZW50YXRpb24oQ29tcG9z
aXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmgKaW5kZXggY2NkMDJlYjNmNWRkZjk4MjBhNTBiOTc5Nzc2MzU5Y2IwMDJjMzlkNy4uY2Q1ZTQ3
OTlhYjRmMDMxYTQxODMxMjAwZThhNThkMjc5MjBlMzQyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
CkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNS
ZWN0KGNvbnN0IEludFJlY3QmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1h
Z2UoSW1hZ2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1ZpZGVvKFBsYXRmb3Jt
TGF5ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5
ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1dlYkdMKFBsYXRmb3JtTGF5ZXIq
KTsKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVy
Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xh
eWVyQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYzBlNTc4ZGZlNTdjNWYyYzEwNTE5NGZiNGFi
MWU5MjQwNGE3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2luY2x1
ZGUgIlZpZGVvTGF5ZXJDaHJvbWl1bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NS
ZWZQdHI8VmlkZW9MYXllckNocm9taXVtPiBWaWRlb0xheWVyQ2hyb21pdW06OmNyZWF0ZShHcmFw
aGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlk
ZW9MYXllckNocm9taXVtKG93bmVyKSk7Cit9CisKK1ZpZGVvTGF5ZXJDaHJvbWl1bTo6VmlkZW9M
YXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCisgICAgOiBMYXllckNo
cm9taXVtKG93bmVyKQoreworfQorCit9CisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VmlkZW9MYXllckNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZhODAwOTVkYzg2NWMzODM2YjJhYjMy
NmVkNGIzZmE0OTUzMDE0YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmgKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2lm
bmRlZiBWaWRlb0xheWVyQ2hyb21pdW1faAorI2RlZmluZSBWaWRlb0xheWVyQ2hyb21pdW1faAor
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW5jbHVkZSAiTGF5ZXJDaHJv
bWl1bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEEgTGF5ZXIgdGhhdCBjb250YWlu
cyBhIFZpZGVvIGVsZW1lbnQuCitjbGFzcyBWaWRlb0xheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5
ZXJDaHJvbWl1bSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VmlkZW9MYXllckNo
cm9taXVtPiBjcmVhdGUoR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lciA9IDApOworICAgIHZp
cnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6Cisg
ICAgVmlkZW9MYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOworfTsK
KworfQorI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA4YzJhMTE3YTJhNGZkM2UwYmMzNDhmOGQ2NDlkNjFhYjcyY2UzYTYzLi4z
YWFlNjgyNzAxM2ViZDc3MjNjNTYzNDQ4N2QwOGViNDMwZjdiNjNhIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMC0wNy0xNiAgVmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGVkIFdlYk1lZGlhUGxheWVyIHRvIHN1cHBvcnQgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIGFuZCB0
bworICAgICAgICBjcmVhdGUgYW5kIHJldHVybiBhIFZpZGVvQ2hyb21pdW1MYXllciBhcyBpdHMg
cGxhdGZvcm0gbGF5ZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjIzNAorCisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1M
YXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZyk6CisKIDIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCAwMzA1MWMzMmJmM2UyNTgzNzczZGQz
OGZiMDA5NTIzYmQyNDA1ZDE4Li4wYjU3NmY2ZGZkMDkzNzJkNDRhNGI2MDg3YjY1NWJlOGVmZDJl
MTU1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwCkBAIC0xNCw3ICsxNCwxMCBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKIAogI2luY2x1
ZGUgIldlYkNhbnZhcy5oIgogI2luY2x1ZGUgIldlYkNTdHJpbmcuaCIKQEAgLTI4LDYgKzMxLDcg
QEAKICNpbmNsdWRlICJXZWJTaXplLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiV2ViVVJMLmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIAogLy8gV2ViQ29tbW9uLmgg
ZGVmaW5lcyBXRUJLSVRfVVNJTkdfU0tJQSBzbyB0aGlzIGhhcyB0byBiZSBpbmNsdWRlZCBsYXN0
LgogI2lmIFdFQktJVF9VU0lOR19TS0lBCkBAIC00NSw2ICs0OSw3IEBAIHN0YXRpYyBXZWJNZWRp
YVBsYXllciogY3JlYXRlV2ViTWVkaWFQbGF5ZXIoCiAgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnQq
IGNsaWVudCwgRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBX
ZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CisKICAgICBpZiAoIXdlYkZyYW1lLT5jbGll
bnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHdlYkZyYW1lLT5jbGllbnQoKS0+
Y3JlYXRlTWVkaWFQbGF5ZXIod2ViRnJhbWUsIGNsaWVudCk7CkBAIC0xNDYsNiArMTUxLDcgQEAg
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiB7
CiAgICAgRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KAogICAg
ICAgICBtX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKTsKKwogICAgIG1fd2ViTWVkaWFQbGF5ZXIuc2V0KGNyZWF0ZVdlYk1lZGlhUGxheWVyKHRo
aXMsIGZyYW1lKSk7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCiAgICAgICAgIG1f
d2ViTWVkaWFQbGF5ZXItPmxvYWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCkpOwpAQCAtMTU3
LDYgKzE2MywxNCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgp
CiAgICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KIAorI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKK1dlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1f
c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKTsKKyAgICByZXR1cm4gbV92aWRlb0xheWVy
LmdldCgpOworfQorI2VuZGlmCisKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5
KCkKIHsKICAgICBpZiAobV93ZWJNZWRpYVBsYXllci5nZXQoKSkKQEAgLTM2MCw2ICszNzQsMTMg
QEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCitib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3VwcG9ydHNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nOworfQorI2VuZGlmCisKIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bW92aWVMb2FkVHlwZSgpIGNvbnN0CiB7CiAgICAgaWYg
KG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCkBAIC0zNzIsNiArMzkzLDIyIEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZSogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQ
bGF5ZXIqIHBsYXllCiB7CiAgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKiBjbGllbnQgPSBu
ZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCk7CiAgICAgY2xpZW50LT5tX21lZGlhUGxheWVy
ID0gcGxheWVyOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIEZyYW1l
KiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPigKKyAgICAgICAgY2xpZW50
LT5tX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KTsKKworICAgIC8vIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgaGFy
ZHdhcmUgY2FuIHN1cHBvcnQgYWNjZWxlcmF0ZWQKKyAgICAvLyBjb21wb3NpdGluZywgYnV0IG9u
bHkgaWYgdGhlIGZsYWcgaXMgc2V0LiBIb3dldmVyLCB0aGlzIGlzIGNoZWNrZWQgbGF6aWx5Cisg
ICAgLy8gaW4gV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgp
IGFuZCB3aWxsIGZhaWwgdGhlcmUKKyAgICAvLyBpZiBuZWNlc3NhcnkuCisgICAgY2xpZW50LT5t
X3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9CisgICAgICAgIGZyYW1lLT5jb250ZW50
UmVuZGVyZXIoKS0+Y29tcG9zaXRvcigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CisK
KyAgICBpZiAoY2xpZW50LT5tX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZykKKyAgICAg
ICAgY2xpZW50LT5tX3ZpZGVvTGF5ZXIgPSBWaWRlb0xheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsK
KyNlbmRpZgorCiAgICAgcmV0dXJuIGNsaWVudDsKIH0KIApAQCAtNDAyLDYgKzQzOSwxMSBAQCBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9y
dHNUeXBlKGNvbnN0IFN0cmluZyYgdAogCiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OldlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbCgpCiAgICAgOiBtX21lZGlhUGxheWVyKDApCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgICAgLAorICAgICAgbV92aWRlb0xheWVyKDApLAor
ICAgICAgbV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpCisjZW5kaWYKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgK
aW5kZXggNTdjOTNiN2I0YzVkMzdlNGVlZjRlNTNlODU3MDQxMDM0ODFhODVlYy4uZmYwM2I1YjNh
Y2JkYzUzY2Q4MDczZDRkOTM5NjkzMGI0YWU2ZGVjZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoK
ICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgbWV0aG9kczoKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHVybCk7CiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbExvYWQoKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmly
dHVhbCBXZWJDb3JlOjpQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5k
aWYKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOwog
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKQEAgLTk0LDYgKzk3
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xl
U2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsK
KyNlbmRpZgorCiAgICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlw
ZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC0xMDYsNiArMTEzLDEwIEBA
IHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAg
ICBPd25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUxheWVyPiBt
X3ZpZGVvTGF5ZXI7CisgICAgYm9vbCBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsK
KyNlbmRpZgogICAgIHN0YXRpYyBib29sIG1faXNFbmFibGVkOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61969</attachid>
            <date>2010-07-19 10:59:44 -0700</date>
            <delta_ts>2010-07-19 23:29:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42234-20100719105943.patch</filename>
            <type>text/plain</type>
            <size>14734</size>
            <attacher name="Victoria Kirst">vrk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDAxNzkyMzI5Mzg2OWM4ZWViNDViNzU0ODNmMGViOTI2NTQ4NWQwNi4uYjc5NWE5N2ZiOWY4NDM2
Zjk5Y2I5MzkwMDkyNTJkMjBkN2YyMTM1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xOSAgVmlj
dG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBW
aWRlb0xheWVyQ2hyb21pdW0uIFVzZXMgdGhlCisgICAgICAgIExheWVyQ2hyb21pdW06OnVwZGF0
ZVRleHR1cmVSZWN0KCkgdG8gc2VuZCB2aWRlbyBmcmFtZXMgdG8gdGhlCisgICAgICAgIEdQVS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjM0CisK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIGluY2x1ZGUgZm9yIFZpZGVvTGF5ZXJDaHJv
bWl1bS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpz
ZXRDb250ZW50c1RvTWVkaWEpOiBJbXBsZW1lbnRlZAorICAgICAgICBzZXRDb250ZW50c1RvTWVk
aWEsIHRob3VnaCBpdCBkb2VzIG5vdCBzZWVtIHRvIHRyaWdnZXIgYSByZXBhaW50CisgICAgICAg
IGNvcnJlY3RseS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5
ZXJDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1
bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpWaWRlb0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisKIDIwMTAtMDctMTkgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDViZDYxNWJjZGMwNmQ1YzRkNmI5ZTA3YTMzZGZjOGFlODA2MDUzMGIuLjNj
MDczNWY4Y2YwODA4NmIzOThhMGE5MjM1ZWVlYjE2YTMzYjRhYzMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjEwLDYgKzIy
MTAsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Vbmlz
Y3JpYmVIZWxwZXJUZXh0UnVuLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNo
cm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVu
ZC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDliNjUzNDY4MzVhNmU4YTIxNWQ0
ZjgwNDhlY2Y0YTcwYWM2ZjBhMjkuLmEwMWExN2ZkMmE1OTg0ZjY4MmE5MDhlYmFlNWI4NzA2ODVj
MDcxN2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3Jh
cGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTM2Myw5ICszNjMsMzAgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRzVG9XZWJHTChQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKQogfQogI2VuZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNocm9taXVt
OjpzZXRDb250ZW50c1RvVmlkZW8oUGxhdGZvcm1MYXllciogdmlkZW9MYXllcikKK3ZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjpzZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciogbGF5
ZXIpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudAorICAgIGJvb2wgY2hpbGRyZW5DaGFuZ2Vk
ID0gZmFsc2U7CisgICAgaWYgKGxheWVyKSB7CisgICAgICAgIGlmICghbV9jb250ZW50c0xheWVy
LmdldCgpIHx8IG1fY29udGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvclZpZGVv
KSB7CisgICAgICAgICAgICBzZXR1cENvbnRlbnRzTGF5ZXIobGF5ZXIpOworICAgICAgICAgICAg
bV9jb250ZW50c0xheWVyID0gbGF5ZXI7CisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJw
b3NlID0gQ29udGVudHNMYXllckZvclZpZGVvOworICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBsYXllci0+c2V0T3duZXIodGhpcyk7CisgICAg
ICAgIGxheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fY29udGVudHNMYXllcikgeworICAgICAg
ICAgICAgY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKKyAgCisgICAgICAgICAgICAvLyBUaGUgb2xk
IGNvbnRlbnRzIGxheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0Lgor
ICAgICAgICAgICAgbV9jb250ZW50c0xheWVyID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgCisg
ICAgaWYgKGNoaWxkcmVuQ2hhbmdlZCkKKyAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRHZW9tZXRyeU9yaWVudGF0aW9uKENv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IGNjZDAyZWIzZjVkZGY5ODIwYTUwYjk3OTc3NjM1OWNiMDAyYzM5ZDcuLmNk
NWU0Nzk5YWI0ZjAzMWE0MTgzMTIwMGU4YTU4ZDI3OTIwZTM0MjAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21p
dW0uaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
b0ltYWdlKEltYWdlKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9WaWRlbyhQbGF0
Zm9ybUxheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9y
bUxheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9XZWJHTChQbGF0Zm9ybUxh
eWVyKik7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9M
YXllckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlk
ZW9MYXllckNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWMwZTU3OGRmZTU3YzVmMmMxMDUxOTRm
YjRhYjFlOTI0MDRhNzEzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNp
bmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPFZpZGVvTGF5ZXJDaHJvbWl1bT4gVmlkZW9MYXllckNocm9taXVtOjpjcmVhdGUo
R3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFZpZGVvTGF5ZXJDaHJvbWl1bShvd25lcikpOworfQorCitWaWRlb0xheWVyQ2hyb21pdW06OlZp
ZGVvTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQorICAgIDogTGF5
ZXJDaHJvbWl1bShvd25lcikKK3sKK30KKworfQorI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVmlkZW9MYXllckNocm9taXVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYTgwMDk1ZGM4NjVjMzgzNmIy
YWIzMjZlZDRiM2ZhNDk1MzAxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisK
KyNpZm5kZWYgVmlkZW9MYXllckNocm9taXVtX2gKKyNkZWZpbmUgVmlkZW9MYXllckNocm9taXVt
X2gKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2luY2x1ZGUgIkxheWVy
Q2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBBIExheWVyIHRoYXQgY29u
dGFpbnMgYSBWaWRlbyBlbGVtZW50LgorY2xhc3MgVmlkZW9MYXllckNocm9taXVtIDogcHVibGlj
IExheWVyQ2hyb21pdW0geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvTGF5
ZXJDaHJvbWl1bT4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIgPSAwKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRl
OgorICAgIFZpZGVvTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKTsK
K307CisKK30KKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMzUxYTcxZWE5OTU2Mjk4YjJmMzI4ZjI1ZTkyNmE5OGE3ZjE4ZDAz
MS4uMDI0OGEzODY2ZjE4YzJkNDJmM2EzZDE3MzMxNjViMGQ1YjU4MTEwNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMTkgIFZpY3RvcmlhIEtpcnN0ICA8dnJrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlZCBXZWJNZWRpYVBsYXllciB0byBzdXBwb3J0IGFjY2VsZXJhdGVkIHJlbmRlcmluZyBh
bmQgdG8KKyAgICAgICAgY3JlYXRlIGFuZCByZXR1cm4gYSBWaWRlb0Nocm9taXVtTGF5ZXIgYXMg
aXRzIHBsYXRmb3JtIGxheWVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDIyMzQKKworICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNy
ZWF0ZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcpOgorCiAyMDEwLTA3LTE5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXggMDMwNTFjMzJiZjNlMjU4
Mzc3M2RkMzhmYjAwOTUyM2JkMjQwNWQxOC4uZGU5Y2QxNDcwMzcxYjVmOTViYzU4NmQzYmNiNzI3
MjQ3ODA3YWE3ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsLmNwcApAQCAtMTQsNyArMTQsMTMgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiVmlk
ZW9MYXllckNocm9taXVtLmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisj
aW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCisjZW5kaWYKIAogI2luY2x1ZGUgIldl
YkNhbnZhcy5oIgogI2luY2x1ZGUgIldlYkNTdHJpbmcuaCIKQEAgLTI4LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJXZWJTaXplLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2Vi
VVJMLmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKIAogLy8gV2ViQ29tbW9uLmggZGVmaW5l
cyBXRUJLSVRfVVNJTkdfU0tJQSBzbyB0aGlzIGhhcyB0byBiZSBpbmNsdWRlZCBsYXN0LgogI2lm
IFdFQktJVF9VU0lOR19TS0lBCkBAIC00NSw2ICs1Miw3IEBAIHN0YXRpYyBXZWJNZWRpYVBsYXll
ciogY3JlYXRlV2ViTWVkaWFQbGF5ZXIoCiAgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVu
dCwgRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFt
ZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CisKICAgICBpZiAoIXdlYkZyYW1lLT5jbGllbnQoKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHdlYkZyYW1lLT5jbGllbnQoKS0+Y3JlYXRl
TWVkaWFQbGF5ZXIod2ViRnJhbWUsIGNsaWVudCk7CkBAIC0xNDYsNiArMTU0LDcgQEAgdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAg
RnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KAogICAgICAgICBt
X21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsK
KwogICAgIG1fd2ViTWVkaWFQbGF5ZXIuc2V0KGNyZWF0ZVdlYk1lZGlhUGxheWVyKHRoaXMsIGZy
YW1lKSk7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIuZ2V0KCkpCiAgICAgICAgIG1fd2ViTWVk
aWFQbGF5ZXItPmxvYWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCkpOwpAQCAtMTU3LDYgKzE2
NiwxNCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiAgICAg
ICAgIG1fd2ViTWVkaWFQbGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KIAorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKK1dlYkNvcmU6OlBsYXRmb3JtTGF5ZXIqIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fc3VwcG9y
dHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKTsKKyAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgp
OworfQorI2VuZGlmCisKIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF5KCkKIHsK
ICAgICBpZiAobV93ZWJNZWRpYVBsYXllci5nZXQoKSkKQEAgLTM2MCw2ICszNzcsMTMgQEAgYm9v
bCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCitib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nOworfQorI2VuZGlmCisKIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6bW92aWVMb2FkVHlwZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fd2Vi
TWVkaWFQbGF5ZXIuZ2V0KCkpCkBAIC0zNzIsNiArMzk2LDIyIEBAIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZSogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllCiB7CiAgICAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKiBjbGllbnQgPSBuZXcgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsKCk7CiAgICAgY2xpZW50LT5tX21lZGlhUGxheWVyID0gcGxh
eWVyOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIEZyYW1lKiBmcmFt
ZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPigKKyAgICAgICAgY2xpZW50LT5tX21l
ZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKKwor
ICAgIC8vIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgaGFyZHdhcmUg
Y2FuIHN1cHBvcnQgYWNjZWxlcmF0ZWQKKyAgICAvLyBjb21wb3NpdGluZywgYnV0IG9ubHkgaWYg
dGhlIGZsYWcgaXMgc2V0LiBIb3dldmVyLCB0aGlzIGlzIGNoZWNrZWQgbGF6aWx5CisgICAgLy8g
aW4gV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGFuZCB3
aWxsIGZhaWwgdGhlcmUKKyAgICAvLyBpZiBuZWNlc3NhcnkuCisgICAgY2xpZW50LT5tX3N1cHBv
cnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9CisgICAgICAgIGZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKS0+Y29tcG9zaXRvcigpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CisKKyAgICBp
ZiAoY2xpZW50LT5tX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZykKKyAgICAgICAgY2xp
ZW50LT5tX3ZpZGVvTGF5ZXIgPSBWaWRlb0xheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsKKyNlbmRp
ZgorCiAgICAgcmV0dXJuIGNsaWVudDsKIH0KIApAQCAtNDAyLDYgKzQ0MiwxMCBAQCBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNUeXBl
KGNvbnN0IFN0cmluZyYgdAogCiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbCgpCiAgICAgOiBtX21lZGlhUGxheWVyKDApCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgICwgbV92aWRlb0xheWVyKDApCisgICAgLCBtX3N1cHBvcnRz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKKyNlbmRpZgogewogfQogCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA1N2M5M2I3YjRj
NWQzN2U0ZWVmNGU1M2U4NTcwNDEwMzQ4MWE4NWVjLi5mZjAzYjViM2FjYmRjNTNjZDgwNzNkNGQ5
Mzk2OTMwYjRhZTZkZWNlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIC8vIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZSBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0
IFdlYkNvcmU6OlN0cmluZyYgdXJsKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpOwor
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyNlbmRpZgogICAgIHZpcnR1YWwg
dm9pZCBwbGF5KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCk7CiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0OwpAQCAtOTQsNiArOTcsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigp
IGNvbnN0OworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0OworI2VuZGlmCisKICAgICB2
aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUo
KSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTEwNiw2ICsxMTMsMTAgQEAgcHJpdmF0ZToKIAogICAg
IFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX21lZGlhUGxheWVyOwogICAgIE93blB0cjxXZWJNZWRp
YVBsYXllcj4gbV93ZWJNZWRpYVBsYXllcjsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAg
ICBib29sIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOworI2VuZGlmCiAgICAgc3Rh
dGljIGJvb2wgbV9pc0VuYWJsZWQ7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>