<?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>74169</bug_id>
          
          <creation_ts>2011-12-08 23:42:20 -0800</creation_ts>
          <short_desc>Upstream PageClientBlackBerry.h into WebCore/platform/blackberry</short_desc>
          <delta_ts>2011-12-20 23:45:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73144</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Mary Wu">mawu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>518144</commentid>
    <comment_count>0</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-08 23:42:20 -0800</bug_when>
    <thetext>Upstream GeolocationService/PageClient into WebCore/platform/blackberry and small style fix of DragDataBlackBerry.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518151</commentid>
    <comment_count>1</comment_count>
      <attachid>118540</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-08 23:56:51 -0800</bug_when>
    <thetext>Created attachment 118540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518158</commentid>
    <comment_count>2</comment_count>
      <attachid>118540</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-12-09 00:33:24 -0800</bug_when>
    <thetext>Comment on attachment 118540
Patch

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

Informal review. I only looked at I commented part and feel that you shouldn&apos;t mix style fix with you newly upstreamed files.

&gt; Source/WebCore/ChangeLog:35
&gt; +        * platform/blackberry/DragDataBlackBerry.cpp: Small style fix.
&gt; +        (WebCore::DragData::containsURL):
&gt; +        (WebCore::DragData::asFilenames):
&gt; +        (WebCore::DragData::asURL):
&gt; +        (WebCore::DragData::asFragment):
&gt; +        * platform/blackberry/GeolocationServiceBlackBerry.cpp: Added.
&gt; +        (WebCore::GeolocationServiceBlackBerry::create):
&gt; +        (WebCore::GeolocationServiceBlackBerry::GeolocationServiceBlackBerry):
&gt; +        (WebCore::GeolocationServiceBlackBerry::~GeolocationServiceBlackBerry):
&gt; +        (WebCore::GeolocationServiceBlackBerry::startUpdating):
&gt; +        (WebCore::GeolocationServiceBlackBerry::stopUpdating):
&gt; +        (WebCore::GeolocationServiceBlackBerry::suspend):
&gt; +        (WebCore::GeolocationServiceBlackBerry::resume):
&gt; +        (WebCore::GeolocationServiceBlackBerry::lastPosition):
&gt; +        (WebCore::GeolocationServiceBlackBerry::lastError):
&gt; +        (WebCore::GeolocationServiceBlackBerry::onLocationUpdate):
&gt; +        (WebCore::GeolocationServiceBlackBerry::onLocationError):
&gt; +        (WebCore::GeolocationServiceBlackBerry::onPermission):
&gt; +        (WebCore::GeolocationServiceBlackBerry::deferNotifications):
&gt; +        (WebCore::GeolocationServiceBlackBerry::resumeNotifications):
&gt; +        * platform/blackberry/GeolocationServiceBlackBerry.h: Added.
&gt; +        (WebCore::GeolocationServiceBlackBerry::tracker):
&gt; +        (WebCore::GeolocationServiceBlackBerry::hasDeferredNotifications):

Could you remove the information for each function since they are newly added?

&gt; Source/WebCore/platform/blackberry/DragDataBlackBerry.cpp:71
&gt;      return false;
&gt;  }
&gt;  
&gt; -bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
&gt; +bool DragData::containsURL(Frame*, FilenameConversionPolicy) const
&gt;  {
&gt;      notImplemented();
&gt;      return false;
&gt;  }
&gt;  
&gt; -void DragData::asFilenames(WTF::Vector&lt;String, 0u&gt;&amp; result) const
&gt; +void DragData::asFilenames(Vector&lt;String&gt;&amp;) const
&gt;  {
&gt; -    // FIXME: remove explicit 0 size in result template once this is implemented
&gt;      notImplemented();
&gt;  }
&gt;  

I would use a separate patch to do this.

&gt; Source/WebCore/platform/blackberry/DragDataBlackBerry.cpp:91
&gt; -String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
&gt; +String DragData::asURL(Frame*, FilenameConversionPolicy, String*) const
&gt;  {
&gt;      notImplemented();
&gt;      return String();
&gt;  }
&gt;  
&gt; -WTF::PassRefPtr&lt;DocumentFragment&gt; DragData::asFragment(Frame*, PassRefPtr&lt;Range&gt; context,
&gt; -                                            bool allowPlainText, bool&amp; chosePlainText) const
&gt; +PassRefPtr&lt;DocumentFragment&gt; DragData::asFragment(Frame*, PassRefPtr&lt;Range&gt;, bool, bool&amp;) const
&gt;  {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518164</commentid>
    <comment_count>3</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-09 00:51:01 -0800</bug_when>
    <thetext>ok, I will split another bug then...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518165</commentid>
    <comment_count>4</comment_count>
      <attachid>118544</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-09 00:53:09 -0800</bug_when>
    <thetext>Created attachment 118544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518169</commentid>
    <comment_count>5</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-09 01:02:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; ok, I will split another bug then...

https://bugs.webkit.org/show_bug.cgi?id=74171</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518188</commentid>
    <comment_count>6</comment_count>
      <attachid>118544</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-12-09 01:56:01 -0800</bug_when>
    <thetext>Comment on attachment 118544
Patch

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

Informal review.

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.h:74
&gt; +#endif

You could add &apos; // GeolocationServiceBlackBerry_h&apos; after &apos;#endif&apos;.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:65
&gt; +#endif

You could add &apos; // PageClientBlackBerry_h&apos; after &apos;#endif&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518198</commentid>
    <comment_count>7</comment_count>
      <attachid>118553</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-09 02:33:13 -0800</bug_when>
    <thetext>Created attachment 118553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518244</commentid>
    <comment_count>8</comment_count>
      <attachid>118553</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-12-09 07:02:28 -0800</bug_when>
    <thetext>Comment on attachment 118553
Patch

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

Mostly just some nits left.

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:106
&gt; +                                                          true, // providesAltititude

providesAltititude?

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:112
&gt; +                                                          0.0, // heading

0.0 -&gt; 0

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:114
&gt; +                                                          0.0); // speed

0.0 -&gt; 0

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:45
&gt; +    virtual void setPreventsScreenDimming(bool preventDimming) = 0;

preventDimming is obvious, can be removed.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:46
&gt; +    virtual void showVirtualKeyboard(bool showKeyboard) = 0;

showKeyboard is obvious, can be removed.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:61
&gt; +    virtual int showAlertDialog(BlackBerry::WebKit::WebPageClient::AlertType atype) = 0;

Remove atype</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518962</commentid>
    <comment_count>9</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-11 18:47:23 -0800</bug_when>
    <thetext>All accepts excepte the first one:


&gt; &gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:106
&gt; &gt; +                                                          true, // providesAltititude
&gt; 
&gt; providesAltititude?
&gt; 

that follows interface naming in the header file page/Coordinates.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518966</commentid>
    <comment_count>10</comment_count>
      <attachid>118722</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-11 18:52:37 -0800</bug_when>
    <thetext>Created attachment 118722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519174</commentid>
    <comment_count>11</comment_count>
      <attachid>118722</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-12-12 07:14:22 -0800</bug_when>
    <thetext>Comment on attachment 118722
Patch

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

Some nits left, nearly there :)

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:48
&gt; +    m_geolocation-&gt;frame()-&gt;loader()-&gt;client()-&gt;didCreateGeolocation(m_geolocation);

It seems safer to test for m_geolocation-&gt;frame() being not null, like in GeolocationServiceBlackBerry::startUpdating.

&gt; Source/WebCore/platform/blackberry/GeolocationServiceBlackBerry.cpp:106
&gt; +                                                          true, // providesAltititude

This is not a valid word, it should be &quot;providesAltitude&quot;.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:51
&gt; +    virtual bool shouldPluginEnterFullScreen(WebCore::PluginView*, const char*) = 0;

The second param name should be provided, I can&apos;t tell what it is doing without the name.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:52
&gt; +    virtual void didPluginEnterFullScreen(WebCore::PluginView*, const char*) = 0;

Ditto.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:53
&gt; +    virtual void didPluginExitFullScreen(WebCore::PluginView*, const char*) = 0;

Ditto.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:54
&gt; +    virtual void onPluginStartBackgroundPlay(WebCore::PluginView*, const char*) = 0;

Ditto.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:55
&gt; +    virtual void onPluginStopBackgroundPlay(WebCore::PluginView*, const char*) = 0;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520563</commentid>
    <comment_count>12</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-13 18:17:55 -0800</bug_when>
    <thetext>remove GeolocationServiceBlackBerry.cpp/h from the patch since they&apos;re dead code and we used different geo location client as confirmed with David Tapuska.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520583</commentid>
    <comment_count>13</comment_count>
      <attachid>119132</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-13 18:34:05 -0800</bug_when>
    <thetext>Created attachment 119132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520603</commentid>
    <comment_count>14</comment_count>
      <attachid>119132</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-12-13 19:07:43 -0800</bug_when>
    <thetext>Comment on attachment 119132
Patch

LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520606</commentid>
    <comment_count>15</comment_count>
      <attachid>119132</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-12-13 19:14:10 -0800</bug_when>
    <thetext>Comment on attachment 119132
Patch

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

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:28
&gt; +namespace Graphics {

Maybe adding an empty line about this line will make this namespace directive stand out a bit more from the forward declaration of the class.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:29
&gt; +class Window;

This should be indented per (3) of Indentation of &lt;http://www.webkit.org/coding/coding-style.html&gt;.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:56
&gt; +    virtual bool shouldPluginEnterFullScreen(WebCore::PluginView*, const char* pluginUniquePrefix) = 0;
&gt; +    virtual void didPluginEnterFullScreen(WebCore::PluginView*, const char* pluginUniquePrefix) = 0;
&gt; +    virtual void didPluginExitFullScreen(WebCore::PluginView*, const char* pluginUniquePrefix) = 0;
&gt; +    virtual void onPluginStartBackgroundPlay(WebCore::PluginView*, const char* pluginUniquePrefix) = 0;
&gt; +    virtual void onPluginStopBackgroundPlay(WebCore::PluginView*, const char* pluginUniquePrefix) = 0;
&gt; +    virtual bool lockOrientation(bool landscape) = 0;

pluginUniquePrefix =&gt; uniquePluginPrefix

We tend to place the adjective/verb before the noun in names. This follows from (8) of section Names of &lt;http://www.webkit.org/coding/coding-style.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520607</commentid>
    <comment_count>16</comment_count>
      <attachid>119132</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-12-13 19:15:01 -0800</bug_when>
    <thetext>Comment on attachment 119132
Patch

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

&gt;&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:28
&gt;&gt; +namespace Graphics {
&gt; 
&gt; Maybe adding an empty line about this line will make this namespace directive stand out a bit more from the forward declaration of the class.

*above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520631</commentid>
    <comment_count>17</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-13 20:23:42 -0800</bug_when>
    <thetext>&gt; 
&gt; &gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:29
&gt; &gt; +class Window;
&gt; 
&gt; This should be indented per (3) of Indentation of &lt;http://www.webkit.org/coding/coding-style.html&gt;.
&gt; 

it can&apos;t pass style check script if indent. As per coding-style, it means the content inside class Window should be indent. &quot;class Window&quot; belongs to &quot;The contents of an outermost namespace block&quot;, so needn&apos;t indent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520635</commentid>
    <comment_count>18</comment_count>
      <attachid>119145</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-13 20:26:39 -0800</bug_when>
    <thetext>Created attachment 119145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521580</commentid>
    <comment_count>19</comment_count>
      <attachid>119145</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-12-14 19:27:03 -0800</bug_when>
    <thetext>Comment on attachment 119145
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Upstream PageClientBlackBerry.h into WebCore/platform/blackberry

This doesn&apos;t match the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521581</commentid>
    <comment_count>20</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-14 19:28:08 -0800</bug_when>
    <thetext>change title since the content changed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522308</commentid>
    <comment_count>21</comment_count>
      <attachid>119145</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-12-15 16:14:42 -0800</bug_when>
    <thetext>Comment on attachment 119145
Patch

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

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:34
&gt; +namespace BlackBerry {
&gt; +namespace Platform {
&gt; +class NetworkStreamFactory;
&gt; +
&gt; +namespace Graphics {
&gt; +class Window;
&gt; +}
&gt; +
&gt; +}
&gt; +}

From talking with Dave Levin today on IRC, this should be written as:

namespace BlackBerry {
    namespace Platform {
        class NetworkStreamFactory;
        namespace Graphics {
            class Window;
        }
    }
}

This formatting makes the forward declarations stand out since they are indented. Some additional remarks on this formatting are mentioned in the description and comments of bug #36760. The comments in bug #36760 and the discussion from Dave Levin seemed to imply that the remarks on namespace indentation in &lt;http://www.webkit.org/coding/coding-style.html&gt; pertain to a namespace that contains class/struct definitions. That is, the code style guidelines don&apos;t pertain to a namespace that only lists forward declarations (as is the case here).

We should look to clarify this on webkit-dev.

&gt; Source/WebCore/platform/blackberry/PageClientBlackBerry.h:40
&gt; +namespace WebCore {
&gt; +class IntRect;
&gt; +class IntSize;
&gt; +class PluginView;
&gt; +}

Similarly, since this namespace only lists forward declarations it should be written as:

namespace WebCore {
    class IntRect;
    class IntSize;
    class PluginView;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522471</commentid>
    <comment_count>22</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-15 20:11:56 -0800</bug_when>
    <thetext>Thanks for your clear explain, Daniel. yes, I strongly suggest webkit coding-style page be updated to add this rule. 
update package loaded again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522483</commentid>
    <comment_count>23</comment_count>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-15 20:33:57 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Thanks for your clear explain, Daniel. yes, I strongly suggest webkit coding-style page be updated to add this rule. 
&gt; update package loaded again...

Just found bug #36760 was very old and still in &quot;NEW&quot; status, so can&apos;t pass style-check script if change the patch...I prefer to let it be and change the style after the bug #36760 be resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525101</commentid>
    <comment_count>24</comment_count>
      <attachid>120143</attachid>
    <who name="Mary Wu">mawu</who>
    <bug_when>2011-12-20 22:12:30 -0800</bug_when>
    <thetext>Created attachment 120143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525102</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 22:14:11 -0800</bug_when>
    <thetext>Attachment 120143 did not pass style-queue:

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

Source/WebCore/platform/blackberry/PageClientBlackBerry.h:26:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525106</commentid>
    <comment_count>26</comment_count>
      <attachid>120143</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-12-20 22:22:16 -0800</bug_when>
    <thetext>Comment on attachment 120143
Patch

Thank you Mary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525132</commentid>
    <comment_count>27</comment_count>
      <attachid>120143</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 23:44:57 -0800</bug_when>
    <thetext>Comment on attachment 120143
Patch

Clearing flags on attachment: 120143

Committed r103393: &lt;http://trac.webkit.org/changeset/103393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525133</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 23:45:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118540</attachid>
            <date>2011-12-08 23:56:51 -0800</date>
            <delta_ts>2011-12-09 00:53:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111209155642.patch</filename>
            <type>text/plain</type>
            <size>15373</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU4NzAzZTQ2NWQ2MDBk
YWFmZmM0N2VkMGRlMzFmNTkzNmY4OTJkYy4uNGE2ZmI1OGI4NDAyNjIzZDc2MDNjYzZlYWY5NTZj
NmM1OTIwNTZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDExLTEyLTA4ICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gMyBm
aWxlcy0tLUdlb2xvY2F0aW9uU2VydmljZS9QYWdlQ2xpZW50IGludG8gV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWluIENvbnRyaWJ1dG9yczoKKyAgICAgICAgRGF2aWQgVGFwdXNrYSA8ZHRhcHVza2FA
cmltLmNvbT4KKyAgICAgICAgWW9uZyBMaSA8eW9saUByaW0uY29tPgorICAgICAgICBDaHJpcyBH
dWFuICA8Y2d1YW5AcmltLmNvbT4KKworICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvRHJh
Z0RhdGFCbGFja0JlcnJ5LmNwcDogU21hbGwgc3R5bGUgZml4LgorICAgICAgICAoV2ViQ29yZTo6
RHJhZ0RhdGE6OmNvbnRhaW5zVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjphc0Zp
bGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6OmFzRnJhZ21lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNr
YmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6Okdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tC
ZXJyeTo6fkdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpzdG9wVXBkYXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6c3VzcGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpyZXN1bWUpOgor
ICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6bGFzdFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6Omxh
c3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5
OjpvbkxvY2F0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnk6Om9uTG9jYXRpb25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblNlcnZpY2VCbGFja0JlcnJ5OjpvblBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6ZGVmZXJOb3RpZmljYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnJlc3VtZU5vdGlmaWNh
dGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNl
QmxhY2tCZXJyeS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnk6OnRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlQmxhY2tCZXJyeTo6aGFzRGVmZXJyZWROb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5Lmg6IEFkZGVkLgorCiAyMDExLTEy
LTA3ICBNYXJ5IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgVXBz
dHJlYW0gNCBmaWxlcyBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnRGF0YUJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnRGF0YUJsYWNrQmVy
cnkuY3BwCmluZGV4IDJkNzA2MzQzZjAxY2NlNmE2OTc2YmNhOGI4MThkMGNkMTMwYmNmNmIuLjMy
OWJiODAwMjAyOWE0YzM2Mzg0YWU3Yzc5N2UxMWI5NzUxYTZlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0RhdGFCbGFja0JlcnJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdEYXRhQmxhY2tCZXJyeS5j
cHAKQEAgLTU4LDE1ICs1OCwxNCBAQCBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4dCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIERyYWdEYXRhOjpjb250YWluc1VS
TChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGljeSkgY29uc3QK
K2Jvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhXVEY6OlZlY3RvcjxTdHJpbmcsIDB1PiYg
cmVzdWx0KSBjb25zdAordm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4m
KSBjb25zdAogewotICAgIC8vIEZJWE1FOiByZW1vdmUgZXhwbGljaXQgMCBzaXplIGluIHJlc3Vs
dCB0ZW1wbGF0ZSBvbmNlIHRoaXMgaXMgaW1wbGVtZW50ZWQKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCkBAIC04MiwxNCArODEsMTMgQEAgU3RyaW5nIERyYWdEYXRhOjphc1BsYWluVGV4dChG
cmFtZSopIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgRHJhZ0RhdGE6
OmFzVVJMKEZyYW1lKiwgRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5IGZpbGVuYW1lUG9saWN5LCBT
dHJpbmcqIHRpdGxlKSBjb25zdAorU3RyaW5nIERyYWdEYXRhOjphc1VSTChGcmFtZSosIEZpbGVu
YW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotV1RGOjpQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IERyYWdEYXRhOjphc0ZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0cjxSYW5nZT4g
Y29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpIGNvbnN0CitQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IERyYWdEYXRhOjphc0ZyYWdtZW50KEZyYW1lKiwgUGFzc1JlZlB0
cjxSYW5nZT4sIGJvb2wsIGJvb2wmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMDAxODI0YjliMWVmMDZlMTU4NGY0MTE0NWEzOTJmZjkwNzY4ODJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlvblNl
cnZpY2VCbGFja0JlcnJ5LmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2Vv
bG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5oIgorCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaCIKKyNpbmNsdWRlICJHZW9s
b2NhdGlvbi5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0dlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tC
ZXJyeTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQoreworICAgIHJl
dHVybiBuZXcgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeShjbGllbnQpOworfQorCitHZW9s
b2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2Zh
Y3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpjcmVhdGU7CisK
K0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6Okdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVy
cnkoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBHZW9sb2NhdGlvblNl
cnZpY2UoY2xpZW50KQorICAgICwgbV9sYXN0RXJyb3IoMCkKKyAgICAsIG1fdHJhY2tlcigwKQor
ICAgICwgbV9nZW9sb2NhdGlvbihzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbio+KGNsaWVudCkpCisg
ICAgLCBtX3VwZGF0aW5nKGZhbHNlKQorICAgICwgbV9kZWZlcnNOb3RpZmljYXRpb25zKGZhbHNl
KQorICAgICwgbV9oYXNEZWZlcnJlZFBvc2l0aW9uKGZhbHNlKQorICAgICwgbV9oYXNEZWZlcnJl
ZFBlcm1pc3Npb24oZmFsc2UpCisgICAgLCBtX2RlZmVycmVkUGVybWlzc2lvbklzQWxsb3dlZChm
YWxzZSkKK3sKKyAgICBtX2dlb2xvY2F0aW9uLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCkt
PmRpZENyZWF0ZUdlb2xvY2F0aW9uKG1fZ2VvbG9jYXRpb24pOworfQorCitHZW9sb2NhdGlvblNl
cnZpY2VCbGFja0JlcnJ5Ojp+R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeSgpCit7CisgICAg
c3RvcFVwZGF0aW5nKCk7Cit9CisKK2Jvb2wgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6
c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqIG9wdGlvbnMpCit7CisgICAgRnJhbWUqIGZy
YW1lID0gbV9nZW9sb2NhdGlvbi0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaW50IHBsYXllcklkID0gc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5Kj4oZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKSktPnBsYXllcklkKCk7
CisgICAgbV90cmFja2VyID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06Okdlb1RyYWNrZXI6OmNyZWF0
ZSh0aGlzLCBwbGF5ZXJJZCwgb3B0aW9ucy0+ZW5hYmxlSGlnaEFjY3VyYWN5KCksIG9wdGlvbnMt
Pmhhc1RpbWVvdXQoKSA/IG9wdGlvbnMtPnRpbWVvdXQoKSA6IC0xLCBvcHRpb25zLT5oYXNNYXhp
bXVtQWdlKCkgPyBvcHRpb25zLT5tYXhpbXVtQWdlKCkgOiAtMSk7CisgICAgbV91cGRhdGluZyA9
IHRydWU7CisgICAgcmV0dXJuIG1fdHJhY2tlcjsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZp
Y2VCbGFja0JlcnJ5OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlmIChtX3RyYWNrZXIpCisgICAg
ICAgIG1fdHJhY2tlci0+ZGVzdHJveSgpOworICAgIG1fdHJhY2tlciA9IDA7CisgICAgbV91cGRh
dGluZyA9IGZhbHNlOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnN1
c3BlbmQoKQoreworICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKKyAgICBpZiAobV90cmFja2VyKQor
ICAgICAgICBtX3RyYWNrZXItPnN1c3BlbmQoKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZp
Y2VCbGFja0JlcnJ5OjpyZXN1bWUoKQoreworICAgIG1fdXBkYXRpbmcgPSB0cnVlOworICAgIGlm
IChtX3RyYWNrZXIpCisgICAgICAgIG1fdHJhY2tlci0+cmVzdW1lKCk7Cit9CisKK0dlb3Bvc2l0
aW9uKiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpsYXN0UG9zaXRpb24oKSBjb25zdAor
eworICAgIHJldHVybiBtX2xhc3RQb3NpdGlvbi5nZXQoKTsKK30KKworUG9zaXRpb25FcnJvciog
R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6bGFzdEVycm9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9sYXN0RXJyb3IuZ2V0KCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxh
Y2tCZXJyeTo6b25Mb2NhdGlvblVwZGF0ZShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1
ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBk
b3VibGUgYWx0aXR1ZGVBY2N1cmFjeSkKK3sKKyAgICBpZiAoIW1fdXBkYXRpbmcpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2xhc3RFcnJvciA9IDA7CisgICAgUmVmUHRyPENvb3JkaW5hdGVzPiBj
b29yZGluYXRlcyA9IENvb3JkaW5hdGVzOjpjcmVhdGUobGF0aXR1ZGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRydWUsIC8vIHByb3ZpZGVzQWx0aXRpdHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGl0dWRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VyYWN5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy
dWUsIC8vIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGl0dWRlQWNjdXJhY3ksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs
c2UsIC8vIHByb3ZpZGVzSGVhZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAuMCwgLy8gaGVhZGluZworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCAvLyBwcm92
aWRlc1NwZWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4wKTsgLy8gc3BlZWQKKyAgICBtX2xhc3RQb3NpdGlvbiA9IEdlb3Bvc2l0
aW9uOjpjcmVhdGUoY29vcmRpbmF0ZXMucmVsZWFzZSgpLCB0aW1lc3RhbXApOworCisgICAgaWYg
KG1fZGVmZXJzTm90aWZpY2F0aW9ucykgeworICAgICAgICBtX2hhc0RlZmVycmVkUG9zaXRpb24g
PSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcG9zaXRpb25DaGFuZ2VkKCk7
Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6b25Mb2NhdGlvbkVycm9y
KGNvbnN0IGNoYXIqIGVycm9yKQoreworICAgIGlmICghbV91cGRhdGluZykKKyAgICAgICAgcmV0
dXJuOworICAgIG1fbGFzdFBvc2l0aW9uID0gMDsKKyAgICBtX2xhc3RFcnJvciA9IFBvc2l0aW9u
RXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgU3RyaW5n
Ojpmcm9tVVRGOChlcnJvcikpOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVy
cnk6Om9uUGVybWlzc2lvbihib29sIGlzQWxsb3dlZCkKK3sKKyAgICBpZiAobV9kZWZlcnNOb3Rp
ZmljYXRpb25zKSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uID0gdHJ1ZTsKKyAg
ICAgICAgbV9kZWZlcnJlZFBlcm1pc3Npb25Jc0FsbG93ZWQgPSBpc0FsbG93ZWQ7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2dlb2xvY2F0aW9uLT5zZXRJc0FsbG93ZWQoaXNBbGxv
d2VkKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpkZWZlck5vdGlm
aWNhdGlvbnMoKQoreworICAgIG1fZGVmZXJzTm90aWZpY2F0aW9ucyA9IHRydWU7Cit9CisKK3Zv
aWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6cmVzdW1lTm90aWZpY2F0aW9ucygpCit7
CisgICAgbV9kZWZlcnNOb3RpZmljYXRpb25zID0gZmFsc2U7CisKKyAgICBpZiAobV9oYXNEZWZl
cnJlZFBlcm1pc3Npb24pIHsKKyAgICAgICAgbV9oYXNEZWZlcnJlZFBlcm1pc3Npb24gPSBmYWxz
ZTsKKyAgICAgICAgbV9nZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKG1fZGVmZXJyZWRQZXJtaXNz
aW9uSXNBbGxvd2VkKTsKKyAgICB9CisgICAgaWYgKG1faGFzRGVmZXJyZWRQb3NpdGlvbikgewor
ICAgICAgICBtX2hhc0RlZmVycmVkUG9zaXRpb24gPSBmYWxzZTsKKyAgICAgICAgcG9zaXRpb25D
aGFuZ2VkKCk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJs
YWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRp
b25TZXJ2aWNlQmxhY2tCZXJyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZTdiYmM2Nzk4YzUxMzk3YjUzYzQ4
OGUyYzIwZjE1NGM2YTdkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuaApAQCAtMCwwICsx
LDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYg
R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeV9oCisjZGVmaW5lIEdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnlfaAorCisjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgiCisKKyNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKKworI2luY2x1
ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdlb1RyYWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdlb2xvY2F0aW9uOworCitjbGFzcyBH
ZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5IDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSwg
QmxhY2tCZXJyeTo6UGxhdGZvcm06Okdlb1RyYWNrZXJMaXN0ZW5lciB7CitwdWJsaWM6CisgICAg
c3RhdGljIEdlb2xvY2F0aW9uU2VydmljZSogY3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCopOworICAgIH5HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5KCk7CisKKyAgICB2aXJ0dWFs
IGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcFVwZGF0aW5nKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpOworICAgIHZpcnR1
YWwgdm9pZCByZXN1bWUoKTsKKworICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKSBjb25z
dDsKKyAgICBQb3NpdGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25zdDsKKyAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6R2VvVHJhY2tlciogdHJhY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tl
cjsgfQorCisgICAgdm9pZCBvbkxvY2F0aW9uVXBkYXRlKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNj
dXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5KTsKKyAgICB2b2lkIG9uTG9jYXRpb25FcnJv
cihjb25zdCBjaGFyKiBlcnJvcik7CisgICAgdm9pZCBvblBlcm1pc3Npb24oYm9vbCBpc0FsbG93
ZWQpOworCisgICAgYm9vbCBoYXNEZWZlcnJlZE5vdGlmaWNhdGlvbnMoKSBjb25zdCB7IHJldHVy
biBtX2hhc0RlZmVycmVkUG9zaXRpb24gfHwgbV9oYXNEZWZlcnJlZFBlcm1pc3Npb247IH0KKyAg
ICB2b2lkIGRlZmVyTm90aWZpY2F0aW9ucygpOworICAgIHZvaWQgcmVzdW1lTm90aWZpY2F0aW9u
cygpOworCitwcml2YXRlOgorICAgIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkoR2VvbG9j
YXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgdm9pZCBzZXRFcnJvcihQb3NpdGlvbkVycm9yOjpF
cnJvckNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxH
ZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPFBvc2l0aW9uRXJyb3I+IG1f
bGFzdEVycm9yOworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHZW9UcmFja2VyKiBtX3RyYWNr
ZXI7CisgICAgR2VvbG9jYXRpb24qIG1fZ2VvbG9jYXRpb247CisgICAgYm9vbCBtX3VwZGF0aW5n
OworICAgIGJvb2wgbV9kZWZlcnNOb3RpZmljYXRpb25zOworICAgIGJvb2wgbV9oYXNEZWZlcnJl
ZFBvc2l0aW9uOworICAgIGJvb2wgbV9oYXNEZWZlcnJlZFBlcm1pc3Npb247CisgICAgYm9vbCBt
X2RlZmVycmVkUGVybWlzc2lvbklzQWxsb3dlZDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0Jl
cnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFj
a0JlcnJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg5MGVjYmU3M2YwYzdhYmYxMTUxZGJlNDA5YjA2ZjJiOTQ3
ZjlmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA5LCAyMDEwIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgUGFnZUNsaWVudEJsYWNr
QmVycnlfaAorI2RlZmluZSBQYWdlQ2xpZW50QmxhY2tCZXJyeV9oCisKKyNpbmNsdWRlICJDdXJz
b3IuaCIKKyNpbmNsdWRlICJXZWJQYWdlQ2xpZW50LmgiCisKK25hbWVzcGFjZSBCbGFja0JlcnJ5
IHsKK25hbWVzcGFjZSBQbGF0Zm9ybSB7CitjbGFzcyBOZXR3b3JrU3RyZWFtRmFjdG9yeTsKK25h
bWVzcGFjZSBHcmFwaGljcyB7CitjbGFzcyBXaW5kb3c7Cit9Cit9Cit9CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOworY2xhc3MgUGx1Z2luVmll
dzsKK30KKworY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnkgeworcHVibGljOgorICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpID0gMDsKKyAg
ICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogbmV0
d29ya1N0cmVhbUZhY3RvcnkoKSA9IDA7CisgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6R3JhcGhpY3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldFByZXZlbnRzU2NyZWVuRGltbWluZyhib29sIHByZXZlbnREaW1taW5nKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dWaXJ0dWFsS2V5Ym9hcmQoYm9vbCBzaG93S2V5Ym9h
cmQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlQ29udGVudFZpc2libGUoYm9vbCBjZW50
ZXJJblZpZXcgPSB0cnVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHpvb21Ub0NvbnRlbnRSZWN0
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
UGx1Z2luKFdlYkNvcmU6OlBsdWdpblZpZXcqLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVBhZ2VPbkxvYWQoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBsdWdpbkVu
dGVyRnVsbFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdpblZp
ZXcqLCBjb25zdCBjaGFyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRQbHVnaW5FeGl0RnVs
bFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb25QbHVnaW5TdGFydEJhY2tncm91bmRQbGF5KFdlYkNvcmU6OlBsdWdpblZpZXcq
LCBjb25zdCBjaGFyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0b3BCYWNrZ3Jv
dW5kUGxheShXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgbG9ja09yaWVudGF0aW9uKGJvb2wgbGFuZHNjYXBlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHVubG9ja09yaWVudGF0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgaW50IG9yaWVudGF0
aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRab29tRmFjdG9yKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemUoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBpbnQgc2hvd0FsZXJ0RGlhbG9nKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZUNsaWVudDo6QWxlcnRUeXBlIGF0eXBlKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIGlzQWN0aXZlKCkgY29uc3QgPSAwOworfTsKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118544</attachid>
            <date>2011-12-09 00:53:09 -0800</date>
            <delta_ts>2011-12-09 02:33:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111209165300.patch</filename>
            <type>text/plain</type>
            <size>12566</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU4NzAzZTQ2NWQ2MDBk
YWFmZmM0N2VkMGRlMzFmNTkzNmY4OTJkYy4uOWFhMmMxYTZmM2UwMGMxZGQxYzFkOTI3NjFmZDBj
NmFiM2RhYWYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTA4ICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gMyBm
aWxlcy0tLUdlb2xvY2F0aW9uU2VydmljZS9QYWdlQ2xpZW50IGludG8gV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWluIENvbnRyaWJ1dG9yczoKKyAgICAgICAgRGF2aWQgVGFwdXNrYSA8ZHRhcHVza2FA
cmltLmNvbT4KKyAgICAgICAgWW9uZyBMaSA8eW9saUByaW0uY29tPgorICAgICAgICBDaHJpcyBH
dWFuICA8Y2d1YW5AcmltLmNvbT4KKworICAgICAgICAqIHBsYXRmb3JtL2JsYWNrYmVycnkvR2Vv
bG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2JsYWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5Lmg6IEFkZGVkLgor
CiAyMDExLTEyLTA3ICBNYXJ5IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAg
ICAgICAgVXBzdHJlYW0gNCBmaWxlcyBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlv
blNlcnZpY2VCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVy
cnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAwMTgyNGI5
YjFlZjA2ZTE1ODRmNDExNDVhMzkyZmY5MDc2ODgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJy
eS5jcHAKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnkuaCIKKworI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKKwor
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitH
ZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OmNyZWF0ZShH
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdlb2xv
Y2F0aW9uU2VydmljZUJsYWNrQmVycnkoY2xpZW50KTsKK30KKworR2VvbG9jYXRpb25TZXJ2aWNl
OjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24g
PSAmR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6Y3JlYXRlOworCitHZW9sb2NhdGlvblNl
cnZpY2VCbGFja0JlcnJ5OjpHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5KEdlb2xvY2F0aW9u
U2VydmljZUNsaWVudCogY2xpZW50KQorICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCkK
KyAgICAsIG1fbGFzdEVycm9yKDApCisgICAgLCBtX3RyYWNrZXIoMCkKKyAgICAsIG1fZ2VvbG9j
YXRpb24oc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb24qPihjbGllbnQpKQorICAgICwgbV91cGRhdGlu
ZyhmYWxzZSkKKyAgICAsIG1fZGVmZXJzTm90aWZpY2F0aW9ucyhmYWxzZSkKKyAgICAsIG1faGFz
RGVmZXJyZWRQb3NpdGlvbihmYWxzZSkKKyAgICAsIG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uKGZh
bHNlKQorICAgICwgbV9kZWZlcnJlZFBlcm1pc3Npb25Jc0FsbG93ZWQoZmFsc2UpCit7CisgICAg
bV9nZW9sb2NhdGlvbi0+ZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaWRDcmVhdGVHZW9s
b2NhdGlvbihtX2dlb2xvY2F0aW9uKTsKK30KKworR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJy
eTo6fkdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkoKQoreworICAgIHN0b3BVcGRhdGluZygp
OworfQorCitib29sIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnN0YXJ0VXBkYXRpbmco
UG9zaXRpb25PcHRpb25zKiBvcHRpb25zKQoreworICAgIEZyYW1lKiBmcmFtZSA9IG1fZ2VvbG9j
YXRpb24tPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGludCBwbGF5ZXJJZCA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eSo+KGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT5wbGF5ZXJJZCgpOworICAgIG1fdHJhY2tl
ciA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHZW9UcmFja2VyOjpjcmVhdGUodGhpcywgcGxheWVy
SWQsIG9wdGlvbnMtPmVuYWJsZUhpZ2hBY2N1cmFjeSgpLCBvcHRpb25zLT5oYXNUaW1lb3V0KCkg
PyBvcHRpb25zLT50aW1lb3V0KCkgOiAtMSwgb3B0aW9ucy0+aGFzTWF4aW11bUFnZSgpID8gb3B0
aW9ucy0+bWF4aW11bUFnZSgpIDogLTEpOworICAgIG1fdXBkYXRpbmcgPSB0cnVlOworICAgIHJl
dHVybiBtX3RyYWNrZXI7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6
c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV90cmFja2VyKQorICAgICAgICBtX3RyYWNrZXIt
PmRlc3Ryb3koKTsKKyAgICBtX3RyYWNrZXIgPSAwOworICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsK
K30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpzdXNwZW5kKCkKK3sKKyAg
ICBtX3VwZGF0aW5nID0gZmFsc2U7CisgICAgaWYgKG1fdHJhY2tlcikKKyAgICAgICAgbV90cmFj
a2VyLT5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6
cmVzdW1lKCkKK3sKKyAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKKyAgICBpZiAobV90cmFja2VyKQor
ICAgICAgICBtX3RyYWNrZXItPnJlc3VtZSgpOworfQorCitHZW9wb3NpdGlvbiogR2VvbG9jYXRp
b25TZXJ2aWNlQmxhY2tCZXJyeTo6bGFzdFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9sYXN0UG9zaXRpb24uZ2V0KCk7Cit9CisKK1Bvc2l0aW9uRXJyb3IqIEdlb2xvY2F0aW9uU2Vy
dmljZUJsYWNrQmVycnk6Omxhc3RFcnJvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGFzdEVy
cm9yLmdldCgpOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6Om9uTG9j
YXRpb25VcGRhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRl
QWNjdXJhY3kpCit7CisgICAgaWYgKCFtX3VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisgICAg
bV9sYXN0RXJyb3IgPSAwOworICAgIFJlZlB0cjxDb29yZGluYXRlcz4gY29vcmRpbmF0ZXMgPSBD
b29yZGluYXRlczo6Y3JlYXRlKGxhdGl0dWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCAvLyBwcm92
aWRlc0FsdGl0aXR1ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbHRpdHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1cmFjeSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCAvLyBwcm92aWRl
c0FsdGl0dWRlQWNjdXJhY3kKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbHRpdHVkZUFjY3VyYWN5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCAvLyBwcm92aWRl
c0hlYWRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjAsIC8vIGhlYWRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgLy8gcHJvdmlkZXNTcGVlZAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MCk7IC8vIHNwZWVkCisgICAgbV9sYXN0UG9zaXRpb24gPSBHZW9wb3NpdGlvbjo6Y3JlYXRlKGNv
b3JkaW5hdGVzLnJlbGVhc2UoKSwgdGltZXN0YW1wKTsKKworICAgIGlmIChtX2RlZmVyc05vdGlm
aWNhdGlvbnMpIHsKKyAgICAgICAgbV9oYXNEZWZlcnJlZFBvc2l0aW9uID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc2l0aW9uQ2hhbmdlZCgpOworfQorCit2b2lkIEdl
b2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6Om9uTG9jYXRpb25FcnJvcihjb25zdCBjaGFyKiBl
cnJvcikKK3sKKyAgICBpZiAoIW1fdXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBtX2xh
c3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0RXJyb3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUo
UG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIFN0cmluZzo6ZnJvbVVURjgoZXJy
b3IpKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpvblBlcm1pc3Np
b24oYm9vbCBpc0FsbG93ZWQpCit7CisgICAgaWYgKG1fZGVmZXJzTm90aWZpY2F0aW9ucykgewor
ICAgICAgICBtX2hhc0RlZmVycmVkUGVybWlzc2lvbiA9IHRydWU7CisgICAgICAgIG1fZGVmZXJy
ZWRQZXJtaXNzaW9uSXNBbGxvd2VkID0gaXNBbGxvd2VkOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9nZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKGlzQWxsb3dlZCk7Cit9CisKK3Zv
aWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6ZGVmZXJOb3RpZmljYXRpb25zKCkKK3sK
KyAgICBtX2RlZmVyc05vdGlmaWNhdGlvbnMgPSB0cnVlOworfQorCit2b2lkIEdlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnk6OnJlc3VtZU5vdGlmaWNhdGlvbnMoKQoreworICAgIG1fZGVmZXJz
Tm90aWZpY2F0aW9ucyA9IGZhbHNlOworCisgICAgaWYgKG1faGFzRGVmZXJyZWRQZXJtaXNzaW9u
KSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uID0gZmFsc2U7CisgICAgICAgIG1f
Z2VvbG9jYXRpb24tPnNldElzQWxsb3dlZChtX2RlZmVycmVkUGVybWlzc2lvbklzQWxsb3dlZCk7
CisgICAgfQorICAgIGlmIChtX2hhc0RlZmVycmVkUG9zaXRpb24pIHsKKyAgICAgICAgbV9oYXNE
ZWZlcnJlZFBvc2l0aW9uID0gZmFsc2U7CisgICAgICAgIHBvc2l0aW9uQ2hhbmdlZCgpOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNr
QmVycnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40N2U3YmJjNjc5OGM1MTM5N2I1M2M0ODhlMmMyMGYxNTRjNmE3
ZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJy
eS9HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdlb2xvY2F0aW9uU2Vy
dmljZUJsYWNrQmVycnlfaAorI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5X2gK
KworI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgorCisjaW5jbHVkZSAiR2VvcG9zaXRp
b24uaCIKKyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCisKKyNpbmNsdWRlIDxCbGFja0JlcnJ5
UGxhdGZvcm1HZW9UcmFja2VyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBHZW9sb2NhdGlvbjsKKworY2xhc3MgR2VvbG9jYXRpb25TZXJ2
aWNlQmxhY2tCZXJyeSA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UsIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpHZW9UcmFja2VyTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBHZW9sb2Nh
dGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB+R2Vv
bG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeSgpOworCisgICAgdmlydHVhbCBib29sIHN0YXJ0VXBk
YXRpbmcoUG9zaXRpb25PcHRpb25zKik7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygp
OworCisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1l
KCk7CisKKyAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgY29uc3Q7CisgICAgUG9zaXRp
b25FcnJvciogbGFzdEVycm9yKCkgY29uc3Q7CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Okdl
b1RyYWNrZXIqIHRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrZXI7IH0KKworICAgIHZv
aWQgb25Mb2NhdGlvblVwZGF0ZShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBkb3VibGUg
YWx0aXR1ZGVBY2N1cmFjeSk7CisgICAgdm9pZCBvbkxvY2F0aW9uRXJyb3IoY29uc3QgY2hhciog
ZXJyb3IpOworICAgIHZvaWQgb25QZXJtaXNzaW9uKGJvb2wgaXNBbGxvd2VkKTsKKworICAgIGJv
b2wgaGFzRGVmZXJyZWROb3RpZmljYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEZWZlcnJl
ZFBvc2l0aW9uIHx8IG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uOyB9CisgICAgdm9pZCBkZWZlck5v
dGlmaWNhdGlvbnMoKTsKKyAgICB2b2lkIHJlc3VtZU5vdGlmaWNhdGlvbnMoKTsKKworcHJpdmF0
ZToKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5KEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCopOworICAgIHZvaWQgc2V0RXJyb3IoUG9zaXRpb25FcnJvcjo6RXJyb3JDb2RlLCBjb25z
dCBjaGFyKiBtZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8R2VvcG9zaXRpb24+IG1f
bGFzdFBvc2l0aW9uOworICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2xhc3RFcnJvcjsKKyAg
ICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R2VvVHJhY2tlciogbV90cmFja2VyOworICAgIEdlb2xv
Y2F0aW9uKiBtX2dlb2xvY2F0aW9uOworICAgIGJvb2wgbV91cGRhdGluZzsKKyAgICBib29sIG1f
ZGVmZXJzTm90aWZpY2F0aW9uczsKKyAgICBib29sIG1faGFzRGVmZXJyZWRQb3NpdGlvbjsKKyAg
ICBib29sIG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uOworICAgIGJvb2wgbV9kZWZlcnJlZFBlcm1p
c3Npb25Jc0FsbG93ZWQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ4OTBlY2JlNzNmMGM3YWJmMTE1MWRiZTQwOWIwNmYyYjk0N2Y5ZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRC
bGFja0JlcnJ5LmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwg
MjAxMCBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKKyNkZWZp
bmUgUGFnZUNsaWVudEJsYWNrQmVycnlfaAorCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZUNsaWVudC5oIgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2Ug
UGxhdGZvcm0geworY2xhc3MgTmV0d29ya1N0cmVhbUZhY3Rvcnk7CituYW1lc3BhY2UgR3JhcGhp
Y3MgeworY2xhc3MgV2luZG93OworfQorfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBJbnRSZWN0OworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIFBsdWdpblZpZXc7Cit9CisKK2NsYXNz
IFBhZ2VDbGllbnRCbGFja0JlcnJ5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29yKFdlYkNvcmU6OlBsYXRmb3JtQ3Vyc29ySGFuZGxlKSA9IDA7CisgICAgdmlydHVhbCBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1N0cmVhbUZhY3RvcnkqIG5ldHdvcmtTdHJlYW1GYWN0
b3J5KCkgPSAwOworICAgIHZpcnR1YWwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpX
aW5kb3cqIHBsYXRmb3JtV2luZG93KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cmV2ZW50c1NjcmVlbkRpbW1pbmcoYm9vbCBwcmV2ZW50RGltbWluZykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzaG93VmlydHVhbEtleWJvYXJkKGJvb2wgc2hvd0tleWJvYXJkKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGVuc3VyZUNvbnRlbnRWaXNpYmxlKGJvb2wgY2VudGVySW5WaWV3ID0gdHJ1
ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB6b29tVG9Db250ZW50UmVjdChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclBsdWdpbihXZWJDb3Jl
OjpQbHVnaW5WaWV3KiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT25M
b2FkKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbHVnaW5FbnRlckZ1bGxTY3JlZW4o
V2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFBsdWdpbkVudGVyRnVsbFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hh
ciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRXhpdEZ1bGxTY3JlZW4oV2ViQ29y
ZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9uUGx1
Z2luU3RhcnRCYWNrZ3JvdW5kUGxheShXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25QbHVnaW5TdG9wQmFja2dyb3VuZFBsYXkoV2ViQ29y
ZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGxvY2tP
cmllbnRhdGlvbihib29sIGxhbmRzY2FwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tP
cmllbnRhdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcmllbnRhdGlvbigpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50Wm9vbUZhY3RvcigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VD
bGllbnQ6OkFsZXJ0VHlwZSBhdHlwZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0ID0gMDsKK307CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118553</attachid>
            <date>2011-12-09 02:33:13 -0800</date>
            <delta_ts>2011-12-11 18:52:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111209183304.patch</filename>
            <type>text/plain</type>
            <size>12669</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU4NzAzZTQ2NWQ2MDBk
YWFmZmM0N2VkMGRlMzFmNTkzNmY4OTJkYy4uNGI4MGU3N2YwYTc2MjdlMmY2ZmY3Njk5ZWY2YjYw
M2ZkNTgyM2E4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTA5ICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gMyBm
aWxlcy0tLUdlb2xvY2F0aW9uU2VydmljZS9QYWdlQ2xpZW50IGludG8gV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWluIENvbnRyaWJ1dG9yczoKKyAgICAgICAgRGF2aWQgVGFwdXNrYSA8ZHRhcHVza2FA
cmltLmNvbT4KKyAgICAgICAgWW9uZyBMaSA8eW9saUByaW0uY29tPgorICAgICAgICBDaHJpcyBH
dWFuIDxjZ3VhbkByaW0uY29tPiAKKworICAgICAgICBJbml0aWFsIHVwc3RyZWFtLCBubyBuZXcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0dl
b2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oOiBBZGRlZC4KKwogMjAxMS0xMi0wNyAg
TWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFVwc3RyZWFt
IDQgZmlsZXMgaW50byBXZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tC
ZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMDE4MjRiOWIxZWYwNmUxNTg0ZjQx
MTQ1YTM5MmZmOTA3Njg4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuY3BwCkBAIC0wLDAg
KzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5Lmgi
CisKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR2VvbG9jYXRpb25TZXJ2
aWNlKiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlvblNlcnZpY2VC
bGFja0JlcnJ5KGNsaWVudCk7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0
aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnk6OmNyZWF0ZTsKKworR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJy
eTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQq
IGNsaWVudCkKKyAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCisgICAgLCBtX2xhc3RF
cnJvcigwKQorICAgICwgbV90cmFja2VyKDApCisgICAgLCBtX2dlb2xvY2F0aW9uKHN0YXRpY19j
YXN0PEdlb2xvY2F0aW9uKj4oY2xpZW50KSkKKyAgICAsIG1fdXBkYXRpbmcoZmFsc2UpCisgICAg
LCBtX2RlZmVyc05vdGlmaWNhdGlvbnMoZmFsc2UpCisgICAgLCBtX2hhc0RlZmVycmVkUG9zaXRp
b24oZmFsc2UpCisgICAgLCBtX2hhc0RlZmVycmVkUGVybWlzc2lvbihmYWxzZSkKKyAgICAsIG1f
ZGVmZXJyZWRQZXJtaXNzaW9uSXNBbGxvd2VkKGZhbHNlKQoreworICAgIG1fZ2VvbG9jYXRpb24t
PmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ3JlYXRlR2VvbG9jYXRpb24obV9nZW9s
b2NhdGlvbik7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6On5HZW9sb2NhdGlv
blNlcnZpY2VCbGFja0JlcnJ5KCkKK3sKKyAgICBzdG9wVXBkYXRpbmcoKTsKK30KKworYm9vbCBH
ZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9u
cyogb3B0aW9ucykKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX2dlb2xvY2F0aW9uLT5mcmFtZSgp
OworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpbnQgcGxheWVy
SWQgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihmcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpKS0+cGxheWVySWQoKTsKKyAgICBtX3RyYWNrZXIgPSBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6R2VvVHJhY2tlcjo6Y3JlYXRlKHRoaXMsIHBsYXllcklkLCBvcHRpb25zLT5l
bmFibGVIaWdoQWNjdXJhY3koKSwgb3B0aW9ucy0+aGFzVGltZW91dCgpID8gb3B0aW9ucy0+dGlt
ZW91dCgpIDogLTEsIG9wdGlvbnMtPmhhc01heGltdW1BZ2UoKSA/IG9wdGlvbnMtPm1heGltdW1B
Z2UoKSA6IC0xKTsKKyAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKKyAgICByZXR1cm4gbV90cmFja2Vy
OworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnN0b3BVcGRhdGluZygp
Cit7CisgICAgaWYgKG1fdHJhY2tlcikKKyAgICAgICAgbV90cmFja2VyLT5kZXN0cm95KCk7Cisg
ICAgbV90cmFja2VyID0gMDsKKyAgICBtX3VwZGF0aW5nID0gZmFsc2U7Cit9CisKK3ZvaWQgR2Vv
bG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6c3VzcGVuZCgpCit7CisgICAgbV91cGRhdGluZyA9
IGZhbHNlOworICAgIGlmIChtX3RyYWNrZXIpCisgICAgICAgIG1fdHJhY2tlci0+c3VzcGVuZCgp
OworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnJlc3VtZSgpCit7Cisg
ICAgbV91cGRhdGluZyA9IHRydWU7CisgICAgaWYgKG1fdHJhY2tlcikKKyAgICAgICAgbV90cmFj
a2VyLT5yZXN1bWUoKTsKK30KKworR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uU2VydmljZUJsYWNr
QmVycnk6Omxhc3RQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9u
LmdldCgpOworfQorCitQb3NpdGlvbkVycm9yKiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5
OjpsYXN0RXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhc3RFcnJvci5nZXQoKTsKK30K
Kwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpvbkxvY2F0aW9uVXBkYXRlKGRv
dWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5KQorewor
ICAgIGlmICghbV91cGRhdGluZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fbGFzdEVycm9yID0g
MDsKKyAgICBSZWZQdHI8Q29vcmRpbmF0ZXM+IGNvb3JkaW5hdGVzID0gQ29vcmRpbmF0ZXM6OmNy
ZWF0ZShsYXRpdHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb25naXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgLy8gcHJvdmlkZXNBbHRpdGl0dWRl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWx0aXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWNjdXJhY3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgLy8gcHJvdmlkZXNBbHRpdHVkZUFjY3Vy
YWN5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgLy8gcHJvdmlkZXNIZWFkaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4w
LCAvLyBoZWFkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmFsc2UsIC8vIHByb3ZpZGVzU3BlZWQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjApOyAvLyBzcGVlZAor
ICAgIG1fbGFzdFBvc2l0aW9uID0gR2VvcG9zaXRpb246OmNyZWF0ZShjb29yZGluYXRlcy5yZWxl
YXNlKCksIHRpbWVzdGFtcCk7CisKKyAgICBpZiAobV9kZWZlcnNOb3RpZmljYXRpb25zKSB7Cisg
ICAgICAgIG1faGFzRGVmZXJyZWRQb3NpdGlvbiA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBwb3NpdGlvbkNoYW5nZWQoKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZp
Y2VCbGFja0JlcnJ5OjpvbkxvY2F0aW9uRXJyb3IoY29uc3QgY2hhciogZXJyb3IpCit7CisgICAg
aWYgKCFtX3VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisgICAgbV9sYXN0UG9zaXRpb24gPSAw
OworICAgIG1fbGFzdEVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6
OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yKSk7Cit9CisKK3Zv
aWQgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6b25QZXJtaXNzaW9uKGJvb2wgaXNBbGxv
d2VkKQoreworICAgIGlmIChtX2RlZmVyc05vdGlmaWNhdGlvbnMpIHsKKyAgICAgICAgbV9oYXNE
ZWZlcnJlZFBlcm1pc3Npb24gPSB0cnVlOworICAgICAgICBtX2RlZmVycmVkUGVybWlzc2lvbklz
QWxsb3dlZCA9IGlzQWxsb3dlZDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZ2Vv
bG9jYXRpb24tPnNldElzQWxsb3dlZChpc0FsbG93ZWQpOworfQorCit2b2lkIEdlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnk6OmRlZmVyTm90aWZpY2F0aW9ucygpCit7CisgICAgbV9kZWZlcnNO
b3RpZmljYXRpb25zID0gdHJ1ZTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0Jl
cnJ5OjpyZXN1bWVOb3RpZmljYXRpb25zKCkKK3sKKyAgICBtX2RlZmVyc05vdGlmaWNhdGlvbnMg
PSBmYWxzZTsKKworICAgIGlmIChtX2hhc0RlZmVycmVkUGVybWlzc2lvbikgeworICAgICAgICBt
X2hhc0RlZmVycmVkUGVybWlzc2lvbiA9IGZhbHNlOworICAgICAgICBtX2dlb2xvY2F0aW9uLT5z
ZXRJc0FsbG93ZWQobV9kZWZlcnJlZFBlcm1pc3Npb25Jc0FsbG93ZWQpOworICAgIH0KKyAgICBp
ZiAobV9oYXNEZWZlcnJlZFBvc2l0aW9uKSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRQb3NpdGlv
biA9IGZhbHNlOworICAgICAgICBwb3NpdGlvbkNoYW5nZWQoKTsKKyAgICB9Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Js
YWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMThlM2FlOThkMzU0MzYxZWY1NDFjMzM5OTczYTY5YWZhMmMzNjY0YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRpb25T
ZXJ2aWNlQmxhY2tCZXJyeS5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5
X2gKKyNkZWZpbmUgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeV9oCisKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblNlcnZpY2UuaCIKKworI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiUG9zaXRpb25FcnJvci5oIgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtR2VvVHJh
Y2tlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgR2VvbG9jYXRpb247CisKK2NsYXNzIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkg
OiBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R2VvVHJh
Y2tlckxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBj
cmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgfkdlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnkoKTsKKworICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9u
T3B0aW9ucyopOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIHZpcnR1
YWwgdm9pZCBzdXNwZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpOworCisgICAgR2Vv
cG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNvbnN0OworICAgIFBvc2l0aW9uRXJyb3IqIGxhc3RF
cnJvcigpIGNvbnN0OworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHZW9UcmFja2VyKiB0cmFj
a2VyKCkgY29uc3QgeyByZXR1cm4gbV90cmFja2VyOyB9CisKKyAgICB2b2lkIG9uTG9jYXRpb25V
cGRhdGUoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWx0aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJh
Y3kpOworICAgIHZvaWQgb25Mb2NhdGlvbkVycm9yKGNvbnN0IGNoYXIqIGVycm9yKTsKKyAgICB2
b2lkIG9uUGVybWlzc2lvbihib29sIGlzQWxsb3dlZCk7CisKKyAgICBib29sIGhhc0RlZmVycmVk
Tm90aWZpY2F0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRGVmZXJyZWRQb3NpdGlvbiB8fCBt
X2hhc0RlZmVycmVkUGVybWlzc2lvbjsgfQorICAgIHZvaWQgZGVmZXJOb3RpZmljYXRpb25zKCk7
CisgICAgdm9pZCByZXN1bWVOb3RpZmljYXRpb25zKCk7CisKK3ByaXZhdGU6CisgICAgR2VvbG9j
YXRpb25TZXJ2aWNlQmxhY2tCZXJyeShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB2
b2lkIHNldEVycm9yKFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsK
KyAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gbV9sYXN0RXJyb3I7CisgICAgQmxhY2tCZXJyeTo6
UGxhdGZvcm06Okdlb1RyYWNrZXIqIG1fdHJhY2tlcjsKKyAgICBHZW9sb2NhdGlvbiogbV9nZW9s
b2NhdGlvbjsKKyAgICBib29sIG1fdXBkYXRpbmc7CisgICAgYm9vbCBtX2RlZmVyc05vdGlmaWNh
dGlvbnM7CisgICAgYm9vbCBtX2hhc0RlZmVycmVkUG9zaXRpb247CisgICAgYm9vbCBtX2hhc0Rl
ZmVycmVkUGVybWlzc2lvbjsKKyAgICBib29sIG1fZGVmZXJyZWRQZXJtaXNzaW9uSXNBbGxvd2Vk
OworfTsKKworfQorCisjZW5kaWYgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRC
bGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGll
bnRCbGFja0JlcnJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE4YzJmODBlYzAxNzQ0OTdiMzE5OWYxMDE3MDcw
YmE0MDI2MTIzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Js
YWNrYmVycnkvUGFnZUNsaWVudEJsYWNrQmVycnkuaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgUGFnZUNsaWVu
dEJsYWNrQmVycnlfaAorI2RlZmluZSBQYWdlQ2xpZW50QmxhY2tCZXJyeV9oCisKKyNpbmNsdWRl
ICJDdXJzb3IuaCIKKyNpbmNsdWRlICJXZWJQYWdlQ2xpZW50LmgiCisKK25hbWVzcGFjZSBCbGFj
a0JlcnJ5IHsKK25hbWVzcGFjZSBQbGF0Zm9ybSB7CitjbGFzcyBOZXR3b3JrU3RyZWFtRmFjdG9y
eTsKK25hbWVzcGFjZSBHcmFwaGljcyB7CitjbGFzcyBXaW5kb3c7Cit9Cit9Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOworY2xhc3MgUGx1
Z2luVmlldzsKK30KKworY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnkgeworcHVibGljOgorICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpID0g
MDsKKyAgICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9y
eSogbmV0d29ya1N0cmVhbUZhY3RvcnkoKSA9IDA7CisgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFByZXZlbnRzU2NyZWVuRGltbWluZyhib29sIHByZXZlbnREaW1t
aW5nKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dWaXJ0dWFsS2V5Ym9hcmQoYm9vbCBzaG93
S2V5Ym9hcmQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlQ29udGVudFZpc2libGUoYm9v
bCBjZW50ZXJJblZpZXcgPSB0cnVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHpvb21Ub0NvbnRl
bnRSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyUGx1Z2luKFdlYkNvcmU6OlBsdWdpblZpZXcqLCBib29sKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeVBhZ2VPbkxvYWQoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBs
dWdpbkVudGVyRnVsbFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBs
dWdpblZpZXcqLCBjb25zdCBjaGFyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRQbHVnaW5F
eGl0RnVsbFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgb25QbHVnaW5TdGFydEJhY2tncm91bmRQbGF5KFdlYkNvcmU6OlBsdWdp
blZpZXcqLCBjb25zdCBjaGFyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0b3BC
YWNrZ3JvdW5kUGxheShXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgbG9ja09yaWVudGF0aW9uKGJvb2wgbGFuZHNjYXBlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHVubG9ja09yaWVudGF0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgaW50IG9y
aWVudGF0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRab29tRmFj
dG9yKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNp
emUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBpbnQgc2hvd0FsZXJ0RGlhbG9nKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViUGFnZUNsaWVudDo6QWxlcnRUeXBlIGF0eXBlKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgPSAwOworfTsKKworI2VuZGlmIC8vIFBhZ2VDbGll
bnRCbGFja0JlcnJ5X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118722</attachid>
            <date>2011-12-11 18:52:37 -0800</date>
            <delta_ts>2011-12-13 18:33:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111212105236.patch</filename>
            <type>text/plain</type>
            <size>12631</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU4NzAzZTQ2NWQ2MDBk
YWFmZmM0N2VkMGRlMzFmNTkzNmY4OTJkYy4uNGI4MGU3N2YwYTc2MjdlMmY2ZmY3Njk5ZWY2YjYw
M2ZkNTgyM2E4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTA5ICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gMyBm
aWxlcy0tLUdlb2xvY2F0aW9uU2VydmljZS9QYWdlQ2xpZW50IGludG8gV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQxNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWluIENvbnRyaWJ1dG9yczoKKyAgICAgICAgRGF2aWQgVGFwdXNrYSA8ZHRhcHVza2FA
cmltLmNvbT4KKyAgICAgICAgWW9uZyBMaSA8eW9saUByaW0uY29tPgorICAgICAgICBDaHJpcyBH
dWFuIDxjZ3VhbkByaW0uY29tPiAKKworICAgICAgICBJbml0aWFsIHVwc3RyZWFtLCBubyBuZXcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2Vydmlj
ZUJsYWNrQmVycnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0dl
b2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oOiBBZGRlZC4KKwogMjAxMS0xMi0wNyAg
TWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFVwc3RyZWFt
IDQgZmlsZXMgaW50byBXZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tC
ZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YTQ5ZTg2YzNmMzAzOTNkZWVhNjU0
MjNlYzIzZTg5ODg3OWNlYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuY3BwCkBAIC0wLDAg
KzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5Lmgi
CisKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR2VvbG9jYXRpb25TZXJ2
aWNlKiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlvblNlcnZpY2VC
bGFja0JlcnJ5KGNsaWVudCk7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0
aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9u
U2VydmljZUJsYWNrQmVycnk6OmNyZWF0ZTsKKworR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJy
eTo6R2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQq
IGNsaWVudCkKKyAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCisgICAgLCBtX2xhc3RF
cnJvcigwKQorICAgICwgbV90cmFja2VyKDApCisgICAgLCBtX2dlb2xvY2F0aW9uKHN0YXRpY19j
YXN0PEdlb2xvY2F0aW9uKj4oY2xpZW50KSkKKyAgICAsIG1fdXBkYXRpbmcoZmFsc2UpCisgICAg
LCBtX2RlZmVyc05vdGlmaWNhdGlvbnMoZmFsc2UpCisgICAgLCBtX2hhc0RlZmVycmVkUG9zaXRp
b24oZmFsc2UpCisgICAgLCBtX2hhc0RlZmVycmVkUGVybWlzc2lvbihmYWxzZSkKKyAgICAsIG1f
ZGVmZXJyZWRQZXJtaXNzaW9uSXNBbGxvd2VkKGZhbHNlKQoreworICAgIG1fZ2VvbG9jYXRpb24t
PmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ3JlYXRlR2VvbG9jYXRpb24obV9nZW9s
b2NhdGlvbik7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6On5HZW9sb2NhdGlv
blNlcnZpY2VCbGFja0JlcnJ5KCkKK3sKKyAgICBzdG9wVXBkYXRpbmcoKTsKK30KKworYm9vbCBH
ZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9u
cyogb3B0aW9ucykKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX2dlb2xvY2F0aW9uLT5mcmFtZSgp
OworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpbnQgcGxheWVy
SWQgPSBzdGF0aWNfY2FzdDxGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkqPihmcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpKS0+cGxheWVySWQoKTsKKyAgICBtX3RyYWNrZXIgPSBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6R2VvVHJhY2tlcjo6Y3JlYXRlKHRoaXMsIHBsYXllcklkLCBvcHRpb25zLT5l
bmFibGVIaWdoQWNjdXJhY3koKSwgb3B0aW9ucy0+aGFzVGltZW91dCgpID8gb3B0aW9ucy0+dGlt
ZW91dCgpIDogLTEsIG9wdGlvbnMtPmhhc01heGltdW1BZ2UoKSA/IG9wdGlvbnMtPm1heGltdW1B
Z2UoKSA6IC0xKTsKKyAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKKyAgICByZXR1cm4gbV90cmFja2Vy
OworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnN0b3BVcGRhdGluZygp
Cit7CisgICAgaWYgKG1fdHJhY2tlcikKKyAgICAgICAgbV90cmFja2VyLT5kZXN0cm95KCk7Cisg
ICAgbV90cmFja2VyID0gMDsKKyAgICBtX3VwZGF0aW5nID0gZmFsc2U7Cit9CisKK3ZvaWQgR2Vv
bG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeTo6c3VzcGVuZCgpCit7CisgICAgbV91cGRhdGluZyA9
IGZhbHNlOworICAgIGlmIChtX3RyYWNrZXIpCisgICAgICAgIG1fdHJhY2tlci0+c3VzcGVuZCgp
OworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6OnJlc3VtZSgpCit7Cisg
ICAgbV91cGRhdGluZyA9IHRydWU7CisgICAgaWYgKG1fdHJhY2tlcikKKyAgICAgICAgbV90cmFj
a2VyLT5yZXN1bWUoKTsKK30KKworR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uU2VydmljZUJsYWNr
QmVycnk6Omxhc3RQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9u
LmdldCgpOworfQorCitQb3NpdGlvbkVycm9yKiBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5
OjpsYXN0RXJyb3IoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhc3RFcnJvci5nZXQoKTsKK30K
Kwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpvbkxvY2F0aW9uVXBkYXRlKGRv
dWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5KQorewor
ICAgIGlmICghbV91cGRhdGluZykKKyAgICAgICAgcmV0dXJuOworICAgIG1fbGFzdEVycm9yID0g
MDsKKyAgICBSZWZQdHI8Q29vcmRpbmF0ZXM+IGNvb3JkaW5hdGVzID0gQ29vcmRpbmF0ZXM6OmNy
ZWF0ZShsYXRpdHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsb25naXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgLy8gcHJvdmlkZXNBbHRpdGl0dWRl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWx0aXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWNjdXJhY3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgLy8gcHJvdmlkZXNBbHRpdHVkZUFjY3Vy
YWN5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgLy8gcHJvdmlkZXNIZWFkaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
Ly8gaGVhZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlLCAvLyBwcm92aWRlc1NwZWVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7IC8vIHNwZWVkCisgICAg
bV9sYXN0UG9zaXRpb24gPSBHZW9wb3NpdGlvbjo6Y3JlYXRlKGNvb3JkaW5hdGVzLnJlbGVhc2Uo
KSwgdGltZXN0YW1wKTsKKworICAgIGlmIChtX2RlZmVyc05vdGlmaWNhdGlvbnMpIHsKKyAgICAg
ICAgbV9oYXNEZWZlcnJlZFBvc2l0aW9uID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHBvc2l0aW9uQ2hhbmdlZCgpOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJs
YWNrQmVycnk6Om9uTG9jYXRpb25FcnJvcihjb25zdCBjaGFyKiBlcnJvcikKK3sKKyAgICBpZiAo
IW1fdXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBtX2xhc3RQb3NpdGlvbiA9IDA7Cisg
ICAgbV9sYXN0RXJyb3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9T
SVRJT05fVU5BVkFJTEFCTEUsIFN0cmluZzo6ZnJvbVVURjgoZXJyb3IpKTsKK30KKwordm9pZCBH
ZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5OjpvblBlcm1pc3Npb24oYm9vbCBpc0FsbG93ZWQp
Cit7CisgICAgaWYgKG1fZGVmZXJzTm90aWZpY2F0aW9ucykgeworICAgICAgICBtX2hhc0RlZmVy
cmVkUGVybWlzc2lvbiA9IHRydWU7CisgICAgICAgIG1fZGVmZXJyZWRQZXJtaXNzaW9uSXNBbGxv
d2VkID0gaXNBbGxvd2VkOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9nZW9sb2Nh
dGlvbi0+c2V0SXNBbGxvd2VkKGlzQWxsb3dlZCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2
aWNlQmxhY2tCZXJyeTo6ZGVmZXJOb3RpZmljYXRpb25zKCkKK3sKKyAgICBtX2RlZmVyc05vdGlm
aWNhdGlvbnMgPSB0cnVlOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnk6
OnJlc3VtZU5vdGlmaWNhdGlvbnMoKQoreworICAgIG1fZGVmZXJzTm90aWZpY2F0aW9ucyA9IGZh
bHNlOworCisgICAgaWYgKG1faGFzRGVmZXJyZWRQZXJtaXNzaW9uKSB7CisgICAgICAgIG1faGFz
RGVmZXJyZWRQZXJtaXNzaW9uID0gZmFsc2U7CisgICAgICAgIG1fZ2VvbG9jYXRpb24tPnNldElz
QWxsb3dlZChtX2RlZmVycmVkUGVybWlzc2lvbklzQWxsb3dlZCk7CisgICAgfQorICAgIGlmICht
X2hhc0RlZmVycmVkUG9zaXRpb24pIHsKKyAgICAgICAgbV9oYXNEZWZlcnJlZFBvc2l0aW9uID0g
ZmFsc2U7CisgICAgICAgIHBvc2l0aW9uQ2hhbmdlZCgpOworICAgIH0KK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9HZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ibGFja2JlcnJ5L0dlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOGUzYWU5OGQzNTQzNjFlZjU0MWMzMzk5NzNhNjlhZmEyYzM2NjRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9HZW9sb2NhdGlvblNlcnZp
Y2VCbGFja0JlcnJ5LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdlb2xvY2F0aW9uU2VydmljZUJsYWNrQmVycnlfaAor
I2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5X2gKKworI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uU2VydmljZS5oIgorCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJQ
b3NpdGlvbkVycm9yLmgiCisKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1HZW9UcmFja2Vy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBHZW9sb2NhdGlvbjsKKworY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlQmxhY2tCZXJyeSA6IHB1
YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHZW9UcmFja2Vy
TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0
ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB+R2VvbG9jYXRpb25TZXJ2aWNlQmxh
Y2tCZXJyeSgpOworCisgICAgdmlydHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRp
b25zKik7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworCisgICAgdmlydHVhbCB2
b2lkIHN1c3BlbmQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7CisKKyAgICBHZW9wb3Np
dGlvbiogbGFzdFBvc2l0aW9uKCkgY29uc3Q7CisgICAgUG9zaXRpb25FcnJvciogbGFzdEVycm9y
KCkgY29uc3Q7CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Okdlb1RyYWNrZXIqIHRyYWNrZXIo
KSBjb25zdCB7IHJldHVybiBtX3RyYWNrZXI7IH0KKworICAgIHZvaWQgb25Mb2NhdGlvblVwZGF0
ZShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSk7
CisgICAgdm9pZCBvbkxvY2F0aW9uRXJyb3IoY29uc3QgY2hhciogZXJyb3IpOworICAgIHZvaWQg
b25QZXJtaXNzaW9uKGJvb2wgaXNBbGxvd2VkKTsKKworICAgIGJvb2wgaGFzRGVmZXJyZWROb3Rp
ZmljYXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEZWZlcnJlZFBvc2l0aW9uIHx8IG1faGFz
RGVmZXJyZWRQZXJtaXNzaW9uOyB9CisgICAgdm9pZCBkZWZlck5vdGlmaWNhdGlvbnMoKTsKKyAg
ICB2b2lkIHJlc3VtZU5vdGlmaWNhdGlvbnMoKTsKKworcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlv
blNlcnZpY2VCbGFja0JlcnJ5KEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHZvaWQg
c2V0RXJyb3IoUG9zaXRpb25FcnJvcjo6RXJyb3JDb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsK
KworcHJpdmF0ZToKKyAgICBSZWZQdHI8R2VvcG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOworICAg
IFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2xhc3RFcnJvcjsKKyAgICBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6R2VvVHJhY2tlciogbV90cmFja2VyOworICAgIEdlb2xvY2F0aW9uKiBtX2dlb2xvY2F0
aW9uOworICAgIGJvb2wgbV91cGRhdGluZzsKKyAgICBib29sIG1fZGVmZXJzTm90aWZpY2F0aW9u
czsKKyAgICBib29sIG1faGFzRGVmZXJyZWRQb3NpdGlvbjsKKyAgICBib29sIG1faGFzRGVmZXJy
ZWRQZXJtaXNzaW9uOworICAgIGJvb2wgbV9kZWZlcnJlZFBlcm1pc3Npb25Jc0FsbG93ZWQ7Cit9
OworCit9CisKKyNlbmRpZiAvLyBHZW9sb2NhdGlvblNlcnZpY2VCbGFja0JlcnJ5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNr
QmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJs
YWNrQmVycnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzlhN2Q0ZTFiYjgwNDhhMWM3OTQ1MzY4MTEwZTFhNjI1
NTQyMGZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDksIDIwMTAgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBQYWdlQ2xpZW50Qmxh
Y2tCZXJyeV9oCisjZGVmaW5lIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKKworI2luY2x1ZGUgIkN1
cnNvci5oIgorI2luY2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKKworbmFtZXNwYWNlIEJsYWNrQmVy
cnkgeworbmFtZXNwYWNlIFBsYXRmb3JtIHsKK2NsYXNzIE5ldHdvcmtTdHJlYW1GYWN0b3J5Owor
bmFtZXNwYWNlIEdyYXBoaWNzIHsKK2NsYXNzIFdpbmRvdzsKK30KK30KK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgSW50UmVjdDsKK2NsYXNzIEludFNpemU7CitjbGFzcyBQbHVnaW5W
aWV3OworfQorCitjbGFzcyBQYWdlQ2xpZW50QmxhY2tCZXJyeSB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihXZWJDb3JlOjpQbGF0Zm9ybUN1cnNvckhhbmRsZSkgPSAwOwor
ICAgIHZpcnR1YWwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtTdHJlYW1GYWN0b3J5KiBu
ZXR3b3JrU3RyZWFtRmFjdG9yeSgpID0gMDsKKyAgICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpHcmFwaGljczo6V2luZG93KiBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJldmVudHNTY3JlZW5EaW1taW5nKGJvb2wpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvd1ZpcnR1YWxLZXlib2FyZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGVuc3VyZUNvbnRlbnRWaXNpYmxlKGJvb2wgY2VudGVySW5WaWV3ID0gdHJ1ZSkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB6b29tVG9Db250ZW50UmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclBsdWdpbihXZWJDb3JlOjpQbHVnaW5WaWV3
KiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlT25Mb2FkKCkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbHVnaW5FbnRlckZ1bGxTY3JlZW4oV2ViQ29yZTo6UGx1
Z2luVmlldyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFBsdWdpbkVu
dGVyRnVsbFNjcmVlbihXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRXhpdEZ1bGxTY3JlZW4oV2ViQ29yZTo6UGx1Z2luVmll
dyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9uUGx1Z2luU3RhcnRCYWNr
Z3JvdW5kUGxheShXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgb25QbHVnaW5TdG9wQmFja2dyb3VuZFBsYXkoV2ViQ29yZTo6UGx1Z2luVmll
dyosIGNvbnN0IGNoYXIqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGxvY2tPcmllbnRhdGlvbihi
b29sIGxhbmRzY2FwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tPcmllbnRhdGlvbigp
ID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcmllbnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGRvdWJsZSBjdXJyZW50Wm9vbUZhY3RvcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50
IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0
VHlwZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKK307CisK
KyNlbmRpZiAvLyBQYWdlQ2xpZW50QmxhY2tCZXJyeV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119132</attachid>
            <date>2011-12-13 18:34:05 -0800</date>
            <delta_ts>2011-12-13 20:26:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111214103400.patch</filename>
            <type>text/plain</type>
            <size>3934</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjEyNTNiNDkwYWUyZWQ3
Njg5MWU5NmRjNjJmN2IxZDNhZGY4NDFlZS4uYmEwY2VhMDlhNjczN2VhNDhlNTNmNWVkYTljYWJk
MGZjYjhiYTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTEzICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gUGFn
ZUNsaWVudEJsYWNrQmVycnkuaCBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWluIGNvbnRyaWJ1
dG9yczoKKyAgICAgICAgTWF4IEZlaWwgIDxtZmVpbEBxbnguY29tPgorICAgICAgICBKYW1lcyBN
Y0Rvbm5lbGwgPGptY2Rvbm5lbGxAcmltLmNvbT4KKyAgICAgICAgTWlrZSBGZW50b24gPG1pZmVu
dG9uQHJpbS5jb20+CisKKyAgICAgICAgSW5pdGlhbCB1cHN0cmVhbSwgbm8gbmV3IHRlc3RzLgor
CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oOiBB
ZGRlZC4KKwogMjAxMS0xMi0xMiAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtWOF0gQ29kZUdlbmVyYXRvclY4LnBtIGRvZXMgbm90IGNvcnJlY3RseSB3b3Jr
IHdpdGggaW5oZXJpdGVkIEhhc0luZGV4R2V0dGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGllbnRCbGFja0JlcnJ5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGM2OWU0MTVkN2ZmZTQwZDBlZTU3YTEzNTJmMDVkMDNjYjE1ZjExNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNr
QmVycnkuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEw
LCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgUGFnZUNsaWVudEJsYWNrQmVycnlfaAorI2Rl
ZmluZSBQYWdlQ2xpZW50QmxhY2tCZXJyeV9oCisKKyNpbmNsdWRlICJDdXJzb3IuaCIKKyNpbmNs
dWRlICJXZWJQYWdlQ2xpZW50LmgiCisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFj
ZSBQbGF0Zm9ybSB7CitjbGFzcyBOZXR3b3JrU3RyZWFtRmFjdG9yeTsKK25hbWVzcGFjZSBHcmFw
aGljcyB7CitjbGFzcyBXaW5kb3c7Cit9Cit9Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOworY2xhc3MgUGx1Z2luVmlldzsKK30KKworY2xh
c3MgUGFnZUNsaWVudEJsYWNrQmVycnkgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpID0gMDsKKyAgICB2aXJ0dWFsIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogbmV0d29ya1N0cmVhbUZh
Y3RvcnkoKSA9IDA7CisgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6
OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFByZXZlbnRzU2NyZWVuRGltbWluZyhib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNob3dW
aXJ0dWFsS2V5Ym9hcmQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbnN1cmVDb250ZW50
VmlzaWJsZShib29sIGNlbnRlckluVmlldyA9IHRydWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
em9vbVRvQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJQbHVnaW4oV2ViQ29yZTo6UGx1Z2luVmlldyosIGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZU9uTG9hZCgpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdpblZpZXcqLCBjb25z
dCBjaGFyKiBwbHVnaW5VbmlxdWVQcmVmaXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1
Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdpblZpZXcqLCBjb25zdCBjaGFyKiBwbHVn
aW5VbmlxdWVQcmVmaXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRXhpdEZ1bGxT
Y3JlZW4oV2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqIHBsdWdpblVuaXF1ZVByZWZp
eCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0YXJ0QmFja2dyb3VuZFBsYXkoV2Vi
Q29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqIHBsdWdpblVuaXF1ZVByZWZpeCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0b3BCYWNrZ3JvdW5kUGxheShXZWJDb3JlOjpQbHVn
aW5WaWV3KiwgY29uc3QgY2hhciogcGx1Z2luVW5pcXVlUHJlZml4KSA9IDA7CisgICAgdmlydHVh
bCBib29sIGxvY2tPcmllbnRhdGlvbihib29sIGxhbmRzY2FwZSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bmxvY2tPcmllbnRhdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcmllbnRhdGlv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50Wm9vbUZhY3RvcigpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0ID0gMDsKK307CisKKyNlbmRpZiAvLyBQYWdlQ2xpZW50QmxhY2tCZXJyeV9o
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119145</attachid>
            <date>2011-12-13 20:26:39 -0800</date>
            <delta_ts>2011-12-20 22:12:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111214122634.patch</filename>
            <type>text/plain</type>
            <size>3787</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjEyNTNiNDkwYWUyZWQ3
Njg5MWU5NmRjNjJmN2IxZDNhZGY4NDFlZS4uN2E5YmNhNGIwYTc5YzMyZjBlM2JmZTRjZTc3NGZh
MWNlN2E4NDU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTEzICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gUGFn
ZUNsaWVudEJsYWNrQmVycnkuaCBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsIHVwc3Ry
ZWFtLCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VD
bGllbnRCbGFja0JlcnJ5Lmg6IEFkZGVkLgorCiAyMDExLTEyLTEyICBFcmlrIEFydmlkc3NvbiAg
PGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBDb2RlR2VuZXJhdG9yVjgucG0gZG9l
cyBub3QgY29ycmVjdGx5IHdvcmsgd2l0aCBpbmhlcml0ZWQgSGFzSW5kZXhHZXR0ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJsYWNr
QmVycnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGFnZUNsaWVudEJs
YWNrQmVycnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjVjYTNkNzA2ZjYwMWRkZDM4MWRmMmY1NzQyNmYwN2My
YjE5NmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBQYWdlQ2xp
ZW50QmxhY2tCZXJyeV9oCisjZGVmaW5lIFBhZ2VDbGllbnRCbGFja0JlcnJ5X2gKKworI2luY2x1
ZGUgIkN1cnNvci5oIgorI2luY2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKKworbmFtZXNwYWNlIEJs
YWNrQmVycnkgeworbmFtZXNwYWNlIFBsYXRmb3JtIHsKK2NsYXNzIE5ldHdvcmtTdHJlYW1GYWN0
b3J5OworCituYW1lc3BhY2UgR3JhcGhpY3MgeworY2xhc3MgV2luZG93OworfQorCit9Cit9CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBJbnRTaXplOworY2xh
c3MgUGx1Z2luVmlldzsKK30KKworY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnkgeworcHVibGlj
OgorICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5k
bGUpID0gMDsKKyAgICB2aXJ0dWFsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFt
RmFjdG9yeSogbmV0d29ya1N0cmVhbUZhY3RvcnkoKSA9IDA7CisgICAgdmlydHVhbCBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFByZXZlbnRzU2NyZWVuRGltbWluZyhib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNob3dWaXJ0dWFsS2V5Ym9hcmQoYm9vbCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBlbnN1cmVDb250ZW50VmlzaWJsZShib29sIGNlbnRlckluVmlldyA9IHRydWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgem9vbVRvQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQbHVnaW4oV2ViQ29yZTo6
UGx1Z2luVmlldyosIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZU9uTG9h
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdl
YkNvcmU6OlBsdWdpblZpZXcqLCBjb25zdCBjaGFyKiB1bmlxdWVQbHVnaW5QcmVmaXgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdp
blZpZXcqLCBjb25zdCBjaGFyKiB1bmlxdWVQbHVnaW5QcmVmaXgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUGx1Z2luRXhpdEZ1bGxTY3JlZW4oV2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0
IGNoYXIqIHVuaXF1ZVBsdWdpblByZWZpeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdp
blN0YXJ0QmFja2dyb3VuZFBsYXkoV2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqIHVu
aXF1ZVBsdWdpblByZWZpeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0b3BCYWNr
Z3JvdW5kUGxheShXZWJDb3JlOjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciogdW5pcXVlUGx1Z2lu
UHJlZml4KSA9IDA7CisgICAgdmlydHVhbCBib29sIGxvY2tPcmllbnRhdGlvbihib29sIGxhbmRz
Y2FwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tPcmllbnRhdGlvbigpID0gMDsKKyAg
ICB2aXJ0dWFsIGludCBvcmllbnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSBjdXJyZW50Wm9vbUZhY3RvcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Oklu
dFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50IHNob3dBbGVy
dERpYWxvZyhCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKK307CisKKyNlbmRpZiAv
LyBQYWdlQ2xpZW50QmxhY2tCZXJyeV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120143</attachid>
            <date>2011-12-20 22:12:30 -0800</date>
            <delta_ts>2011-12-20 23:44:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74169-20111221141225.patch</filename>
            <type>text/plain</type>
            <size>3826</size>
            <attacher name="Mary Wu">mawu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIwMjIzYWMyMDM5Yjc1
MjUxYTU0NmJhNTYwN2Q1ZTYyYTI3YjZiMC4uYjhiMjg3ZGJkYjBiYTNkZTA3NzBlODIwZDc1ZTYw
OThjYjNlMzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTIwICBNYXJ5
IFd1ICA8bWFyeS53dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgVXBzdHJlYW0gUGFn
ZUNsaWVudEJsYWNrQmVycnkuaCBpbnRvIFdlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsIHVwc3Ry
ZWFtLCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VD
bGllbnRCbGFja0JlcnJ5Lmg6IEFkZGVkLgorCiAyMDExLTEyLTE2ICBEYW5pZWwgU2lldmVycyAg
PHNpZXZlcnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIHRyYWNlIGV2
ZW50cyBmb3IgZGVjb2RpbmcgYW5kIGRyYXdpbmcgaW1hZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QYWdlQ2xpZW50QmxhY2tCZXJyeS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNhYmQ4OWE5NzQ2NTgwMWRmOGJiYmRlYjViYWViYmFkOTRiNjA4NGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BhZ2VDbGll
bnRCbGFja0JlcnJ5LmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSwgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFBhZ2VDbGllbnRCbGFja0JlcnJ5
X2gKKyNkZWZpbmUgUGFnZUNsaWVudEJsYWNrQmVycnlfaAorCisjaW5jbHVkZSAiQ3Vyc29yLmgi
CisjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7Cisg
ICAgbmFtZXNwYWNlIFBsYXRmb3JtIHsKKyAgICAgICAgY2xhc3MgTmV0d29ya1N0cmVhbUZhY3Rv
cnk7CisgICAgICAgIG5hbWVzcGFjZSBHcmFwaGljcyB7CisgICAgICAgICAgICBjbGFzcyBXaW5k
b3c7CisgICAgICAgIH0KKyAgICB9Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFz
cyBJbnRSZWN0OworICAgIGNsYXNzIEludFNpemU7CisgICAgY2xhc3MgUGx1Z2luVmlldzsKK30K
KworY2xhc3MgUGFnZUNsaWVudEJsYWNrQmVycnkgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpID0gMDsKKyAgICB2aXJ0
dWFsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrU3RyZWFtRmFjdG9yeSogbmV0d29ya1N0
cmVhbUZhY3RvcnkoKSA9IDA7CisgICAgdmlydHVhbCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3Jh
cGhpY3M6OldpbmRvdyogcGxhdGZvcm1XaW5kb3coKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFByZXZlbnRzU2NyZWVuRGltbWluZyhib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNob3dWaXJ0dWFsS2V5Ym9hcmQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbnN1cmVD
b250ZW50VmlzaWJsZShib29sIGNlbnRlckluVmlldyA9IHRydWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgem9vbVRvQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQbHVnaW4oV2ViQ29yZTo6UGx1Z2luVmlldyosIGJvb2wp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UGFnZU9uTG9hZCgpID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdpblZpZXcq
LCBjb25zdCBjaGFyKiB1bmlxdWVQbHVnaW5QcmVmaXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKFdlYkNvcmU6OlBsdWdpblZpZXcqLCBjb25zdCBjaGFy
KiB1bmlxdWVQbHVnaW5QcmVmaXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGx1Z2luRXhp
dEZ1bGxTY3JlZW4oV2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqIHVuaXF1ZVBsdWdp
blByZWZpeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0YXJ0QmFja2dyb3VuZFBs
YXkoV2ViQ29yZTo6UGx1Z2luVmlldyosIGNvbnN0IGNoYXIqIHVuaXF1ZVBsdWdpblByZWZpeCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBvblBsdWdpblN0b3BCYWNrZ3JvdW5kUGxheShXZWJDb3Jl
OjpQbHVnaW5WaWV3KiwgY29uc3QgY2hhciogdW5pcXVlUGx1Z2luUHJlZml4KSA9IDA7CisgICAg
dmlydHVhbCBib29sIGxvY2tPcmllbnRhdGlvbihib29sIGxhbmRzY2FwZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB1bmxvY2tPcmllbnRhdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcmll
bnRhdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50Wm9vbUZhY3Rv
cigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXpl
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50IHNob3dBbGVydERpYWxvZyhCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VDbGllbnQ6OkFsZXJ0VHlwZSkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKK307CisKKyNlbmRpZiAvLyBQYWdlQ2xpZW50QmxhY2tC
ZXJyeV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>