<?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>88267</bug_id>
          
          <creation_ts>2012-06-04 16:35:33 -0700</creation_ts>
          <short_desc>DOMFileSystem should be structure clonable so it can be the body of a web intent.</short_desc>
          <delta_ts>2012-06-19 17:09:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve VanDeBogart">vandebo</reporter>
          <assigned_to name="Steve VanDeBogart">vandebo</assigned_to>
          <cc>abarth</cc>
    
    <cc>ericu</cc>
    
    <cc>gbillock</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>kinuko</cc>
    
    <cc>kmadhusu</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640981</commentid>
    <comment_count>0</comment_count>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 16:35:33 -0700</bug_when>
    <thetext>DOMFileSystem should be structure clonable so it can be the body of a web intent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640982</commentid>
    <comment_count>1</comment_count>
      <attachid>145652</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 16:37:58 -0700</bug_when>
    <thetext>Created attachment 145652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640986</commentid>
    <comment_count>2</comment_count>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 16:40:21 -0700</bug_when>
    <thetext>David, it looks like you&apos;ve reviewed a lot of the file system changes.  Can you review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640988</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 16:41:32 -0700</bug_when>
    <thetext>Attachment 145652 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/bindings/v8/SerializedScriptValue.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 2 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>640996</commentid>
    <comment_count>4</comment_count>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 16:48:39 -0700</bug_when>
    <thetext>It looks like the style bot has a false positive, or do we really want headers in ASCII order?  I couldn&apos;t find an existing bug for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640999</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-06-04 16:51:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; It looks like the style bot has a false positive, or do we really want headers in ASCII order?  I couldn&apos;t find an existing bug for it.

WebKit expects the ASCII order. &quot;V8DOMFileSystem.h&quot; should be before &quot;V8DataView.h&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641001</commentid>
    <comment_count>6</comment_count>
      <attachid>145655</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 16:54:56 -0700</bug_when>
    <thetext>Created attachment 145655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641002</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 16:57:49 -0700</bug_when>
    <thetext>Attachment 145655 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/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
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>641036</commentid>
    <comment_count>8</comment_count>
      <attachid>145663</attachid>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 17:36:33 -0700</bug_when>
    <thetext>Created attachment 145663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641042</commentid>
    <comment_count>9</comment_count>
    <who name="Steve VanDeBogart">vandebo</who>
    <bug_when>2012-06-04 17:38:09 -0700</bug_when>
    <thetext>Eric requested (off bug) that the clonability not be exposed (yet) except where we need it.  Updates in most recent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641312</commentid>
    <comment_count>10</comment_count>
      <attachid>145663</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-05 01:40:55 -0700</bug_when>
    <thetext>Comment on attachment 145663
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Could you add an (elaborated) comment about how this should or should NOT work and why we are adding this?

&gt; Source/WebCore/Modules/filesystem/DOMFileSystemBase.h:78
&gt; +    void makeClonable() { m_clonable = true; }

Please comment what this flag does and what the default value is.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:191
&gt; +    DOMFileSystemTag = &apos;d&apos;, // type:int32_t, name:WebCoreString, url:WebCoreString -&gt; FileSystem (ref)

Please surround filesystem related feature with ifdef ENABLE(FILE_SYSTEM)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1772
&gt; +        RefPtr&lt;DOMFileSystem&gt; fs = DOMFileSystem::create(getScriptExecutionContext(), name, static_cast&lt;WebCore::FileSystemType&gt;(type), KURL(ParsedURLString, url), PlatformSupport::createAsyncFileSystem());

PlatformSupport::createAsyncFileSystem() is only defined and available for chromium port.  Please add this code only for PLATFORM(CHROMIUM), or it might be nicer to have a new specialized DOMFileSystem::create method for deserialization case and implement it in DOMFileSystemChromium.cpp.

Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642959</commentid>
    <comment_count>11</comment_count>
      <attachid>146148</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-06 16:56:42 -0700</bug_when>
    <thetext>Created attachment 146148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642964</commentid>
    <comment_count>12</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2012-06-06 17:01:25 -0700</bug_when>
    <thetext>&gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?

Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642966</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-06 17:01:32 -0700</bug_when>
    <thetext>Attachment 146148 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/bindings/v8/SerializedScriptValue.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642972</commentid>
    <comment_count>14</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-06 17:05:31 -0700</bug_when>
    <thetext>Hi, reviewers, Steve is on parental leave (congrats!) and asked me to take over. This latest patch is me applying the above in my client. Responding to comments now. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643000</commentid>
    <comment_count>15</comment_count>
      <attachid>145663</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-06 17:29:19 -0700</bug_when>
    <thetext>Comment on attachment 145663
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:7
&gt;&gt; +
&gt; 
&gt; Could you add an (elaborated) comment about how this should or should NOT work and why we are adding this?

Added some more explanation here.

&gt;&gt; Source/WebCore/Modules/filesystem/DOMFileSystemBase.h:78
&gt;&gt; +    void makeClonable() { m_clonable = true; }
&gt; 
&gt; Please comment what this flag does and what the default value is.

Added.

&gt;&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:191
&gt;&gt; +    DOMFileSystemTag = &apos;d&apos;, // type:int32_t, name:WebCoreString, url:WebCoreString -&gt; FileSystem (ref)
&gt; 
&gt; Please surround filesystem related feature with ifdef ENABLE(FILE_SYSTEM)

Done. I notice that the IntArrayTag below is also &apos;d&apos;. Is that a problem? Or is that a sub-type that won&apos;t conflict?

&gt;&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:1772
&gt;&gt; +        RefPtr&lt;DOMFileSystem&gt; fs = DOMFileSystem::create(getScriptExecutionContext(), name, static_cast&lt;WebCore::FileSystemType&gt;(type), KURL(ParsedURLString, url), PlatformSupport::createAsyncFileSystem());
&gt; 
&gt; PlatformSupport::createAsyncFileSystem() is only defined and available for chromium port.  Please add this code only for PLATFORM(CHROMIUM), or it might be nicer to have a new specialized DOMFileSystem::create method for deserialization case and implement it in DOMFileSystemChromium.cpp.
&gt; 
&gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?

I think we just want single-shot serialization for this use case.

PLATFORM(CHROMIUM) is an option, but would it be better to add this method to PlatformSupport.h on ports, or as you say, to DOMFileSystem itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643001</commentid>
    <comment_count>16</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-06 17:31:22 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?
&gt; 
&gt; Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.

I think makeClonable is about as tight as we can make it -- it&apos;ll require case-specific and explicit marking by internal code to make the object serializable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643024</commentid>
    <comment_count>17</comment_count>
      <attachid>146163</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-06 17:51:11 -0700</bug_when>
    <thetext>Created attachment 146163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643458</commentid>
    <comment_count>18</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-07 05:52:38 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; PLATFORM(CHROMIUM) is an option, but would it be better to add this method to PlatformSupport.h on ports, or as you say, to DOMFileSystem itself?

I prefer having a constructor for deserialization (like File::create does), though PLATFORM(CHROMIUM) would be probably ok (I searched for other callsites of PlatformSupport::foo under v8/ and they seem to be just guarded with PLATFORM(CHROMIUM)).

PlatformSupport.h is not a common header across ports (in my understanding) so adding the method to the header doesn&apos;t sound really right to me.

&gt; (In reply to comment #12)
&gt; &gt; &gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?
&gt; &gt; 
&gt; &gt; Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.
&gt; 
&gt; I think makeClonable is about as tight as we can make it -- it&apos;ll require case-specific and explicit marking by internal code to make the object serializable.

Ok, then let&apos;s just leave it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643459</commentid>
    <comment_count>19</comment_count>
      <attachid>146163</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-07 05:52:54 -0700</bug_when>
    <thetext>Comment on attachment 146163
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +

Could we add a test which makes sure it&apos;s not serializable in regular cases?  Otherwise please add a comment why this patch doesn&apos;t have tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645091</commentid>
    <comment_count>20</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-08 15:51:58 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #12)
&gt; &gt; PLATFORM(CHROMIUM) is an option, but would it be better to add this method to PlatformSupport.h on ports, or as you say, to DOMFileSystem itself?
&gt; 
&gt; I prefer having a constructor for deserialization (like File::create does), though PLATFORM(CHROMIUM) would be probably ok (I searched for other callsites of PlatformSupport::foo under v8/ and they seem to be just guarded with PLATFORM(CHROMIUM)).
&gt; 
&gt; PlatformSupport.h is not a common header across ports (in my understanding) so adding the method to the header doesn&apos;t sound really right to me.

Snooping around, it looks like the right thing to do here is call AsyncFileSystem::create(), which then makes the platform-specific version. I see implementations for gtk and blackberry ports. It looks like the chromium port needs to conform to that API. I can see what it&apos;ll take to do that.

&gt; 
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?
&gt; &gt; &gt; 
&gt; &gt; &gt; Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.
&gt; &gt; 
&gt; &gt; I think makeClonable is about as tight as we can make it -- it&apos;ll require case-specific and explicit marking by internal code to make the object serializable.
&gt; 
&gt; Ok, then let&apos;s just leave it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645166</commentid>
    <comment_count>21</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-08 18:11:23 -0700</bug_when>
    <thetext>btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645699</commentid>
    <comment_count>22</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-10 20:59:45 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)

Not yet, though we plan to do so eventually.  This patch isn&apos;t adding fully functional structured cloning, but just implementing primitive serialize/deserialize for experimental use case (in our case for Web intents), which is disabled by default unless setClonable() is explicitly called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645700</commentid>
    <comment_count>23</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-10 21:01:15 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; PLATFORM(CHROMIUM) is an option, but would it be better to add this method to PlatformSupport.h on ports, or as you say, to DOMFileSystem itself?
&gt; &gt; 
&gt; &gt; I prefer having a constructor for deserialization (like File::create does), though PLATFORM(CHROMIUM) would be probably ok (I searched for other callsites of PlatformSupport::foo under v8/ and they seem to be just guarded with PLATFORM(CHROMIUM)).
&gt; &gt; 
&gt; &gt; PlatformSupport.h is not a common header across ports (in my understanding) so adding the method to the header doesn&apos;t sound really right to me.
&gt; 
&gt; Snooping around, it looks like the right thing to do here is call AsyncFileSystem::create(), which then makes the platform-specific version. I see implementations for gtk and blackberry ports. It looks like the chromium port needs to conform to that API. I can see what it&apos;ll take to do that.

Ah that&apos;s true, we used to need a specialized constructor which takes more arguments for chromium but it&apos;s no longer the case... we can directly define and create AsyncFileSystem::create now.

&gt; &gt; 
&gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; &gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.
&gt; &gt; &gt; 
&gt; &gt; &gt; I think makeClonable is about as tight as we can make it -- it&apos;ll require case-specific and explicit marking by internal code to make the object serializable.
&gt; &gt; 
&gt; &gt; Ok, then let&apos;s just leave it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646433</commentid>
    <comment_count>24</comment_count>
      <attachid>146965</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-11 16:53:30 -0700</bug_when>
    <thetext>Created attachment 146965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646434</commentid>
    <comment_count>25</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-11 16:54:23 -0700</bug_when>
    <thetext>Done now (wasn&apos;t too hard at all :-))

Also added the test.

(In reply to comment #23)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; PLATFORM(CHROMIUM) is an option, but would it be better to add this method to PlatformSupport.h on ports, or as you say, to DOMFileSystem itself?
&gt; &gt; &gt; 
&gt; &gt; &gt; I prefer having a constructor for deserialization (like File::create does), though PLATFORM(CHROMIUM) would be probably ok (I searched for other callsites of PlatformSupport::foo under v8/ and they seem to be just guarded with PLATFORM(CHROMIUM)).
&gt; &gt; &gt; 
&gt; &gt; &gt; PlatformSupport.h is not a common header across ports (in my understanding) so adding the method to the header doesn&apos;t sound really right to me.
&gt; &gt; 
&gt; &gt; Snooping around, it looks like the right thing to do here is call AsyncFileSystem::create(), which then makes the platform-specific version. I see implementations for gtk and blackberry ports. It looks like the chromium port needs to conform to that API. I can see what it&apos;ll take to do that.
&gt; 
&gt; Ah that&apos;s true, we used to need a specialized constructor which takes more arguments for chromium but it&apos;s no longer the case... we can directly define and create AsyncFileSystem::create now.
&gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; &gt; &gt; Another question is do we want to make the file system cloneable if it&apos;s made by deserialization?
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Given that we only have a single use case that we want cloneable [respond with cloned FS from a web intent], probably not.  It&apos;s not that we want specific filesystems that are cloneable--it&apos;s that we want some filesystems to be sendable via web intent, but not otherwise cloned.  I&apos;m not sure if there&apos;s a more specific way to apply that restriction, though.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think makeClonable is about as tight as we can make it -- it&apos;ll require case-specific and explicit marking by internal code to make the object serializable.
&gt; &gt; &gt; 
&gt; &gt; &gt; Ok, then let&apos;s just leave it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646537</commentid>
    <comment_count>26</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-11 18:42:09 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)
&gt; 
&gt; Not yet, though we plan to do so eventually.  This patch isn&apos;t adding fully functional structured cloning, but just implementing primitive serialize/deserialize for experimental use case (in our case for Web intents), which is disabled by default unless setClonable() is explicitly called.

This seems very confusing. Sometimes DOMFileSystem is cloneable and sometimes it isn&apos;t. And if you get one that had been cloned but try to send it in a message, then it won&apos;t be cloneable again because the cloning process doesn&apos;t set that flag again.

(I&apos;m feel a little slow for not understand this, so hopefully you&apos;ll help me understand the situation better.)

Does it mean to make sense to make DOMFileSystem cloneable with respect to Web Workers? If so, why not just proposal it in that context alone? (If not, how does this interact with Web Workers?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646627</commentid>
    <comment_count>27</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-11 22:33:20 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)
&gt; &gt; 
&gt; &gt; Not yet, though we plan to do so eventually.  This patch isn&apos;t adding fully functional structured cloning, but just implementing primitive serialize/deserialize for experimental use case (in our case for Web intents), which is disabled by default unless setClonable() is explicitly called.
&gt; 
&gt; This seems very confusing. Sometimes DOMFileSystem is cloneable and sometimes it isn&apos;t. And if you get one that had been cloned but try to send it in a message, then it won&apos;t be cloneable again because the cloning process doesn&apos;t set that flag again.
&gt; (I&apos;m feel a little slow for not understand this, so hopefully you&apos;ll help me understand the situation better.)
&gt; Does it mean to make sense to make DOMFileSystem cloneable with respect to Web Workers? If so, why not just proposal it in that context alone? (If not, how does this interact with Web Workers?)

They are very reasonable questions, as I had the same. In my understanding this patch wouldn&apos;t make sending or cloning a file system work at all in js code. It must be always disabled until we make a valid proposal.
As for how the flag is being used I think Steve or Greg can explain better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647074</commentid>
    <comment_count>28</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-12 10:53:49 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)
&gt; &gt; &gt; 
&gt; &gt; &gt; Not yet, though we plan to do so eventually.  This patch isn&apos;t adding fully functional structured cloning, but just implementing primitive serialize/deserialize for experimental use case (in our case for Web intents), which is disabled by default unless setClonable() is explicitly called.
&gt; &gt; 
&gt; &gt; This seems very confusing. Sometimes DOMFileSystem is cloneable and sometimes it isn&apos;t. And if you get one that had been cloned but try to send it in a message, then it won&apos;t be cloneable again because the cloning process doesn&apos;t set that flag again.
&gt; &gt; (I&apos;m feel a little slow for not understand this, so hopefully you&apos;ll help me understand the situation better.)
&gt; &gt; Does it mean to make sense to make DOMFileSystem cloneable with respect to Web Workers? If so, why not just proposal it in that context alone? (If not, how does this interact with Web Workers?)
&gt; 
&gt; They are very reasonable questions, as I had the same. In my understanding this patch wouldn&apos;t make sending or cloning a file system work at all in js code. It must be always disabled until we make a valid proposal.
&gt; As for how the flag is being used I think Steve or Greg can explain better.

Agreed. These are good questions. As the test shows, these objects won&apos;t be cloneable when created through JS. They&apos;ll need to be specially empowered for serializability through browser intervention.

The immediate use case for this is being able to pass the filesystem through a web intents payload, which is received as a structured clone input. This also allows the objects to be passed through a browser-initiated message event, which also seems really convenient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647077</commentid>
    <comment_count>29</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-12 10:56:41 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; (In reply to comment #26)
&gt; &gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; &gt; btw is this in the structure clone spec? (Has it been brought up on whatwg yet?)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Not yet, though we plan to do so eventually.  This patch isn&apos;t adding fully functional structured cloning, but just implementing primitive serialize/deserialize for experimental use case (in our case for Web intents), which is disabled by default unless setClonable() is explicitly called.
&gt; &gt; &gt; 
&gt; &gt; &gt; This seems very confusing. Sometimes DOMFileSystem is cloneable and sometimes it isn&apos;t. And if you get one that had been cloned but try to send it in a message, then it won&apos;t be cloneable again because the cloning process doesn&apos;t set that flag again.
&gt; &gt; &gt; (I&apos;m feel a little slow for not understand this, so hopefully you&apos;ll help me understand the situation better.)
&gt; &gt; &gt; Does it mean to make sense to make DOMFileSystem cloneable with respect to Web Workers? If so, why not just proposal it in that context alone? (If not, how does this interact with Web Workers?)
&gt; &gt; 
&gt; &gt; They are very reasonable questions, as I had the same. In my understanding this patch wouldn&apos;t make sending or cloning a file system work at all in js code. It must be always disabled until we make a valid proposal.
&gt; &gt; As for how the flag is being used I think Steve or Greg can explain better.
&gt; 
&gt; Agreed. These are good questions. As the test shows, these objects won&apos;t be cloneable when created through JS. They&apos;ll need to be specially empowered for serializability through browser intervention.
&gt; 
&gt; The immediate use case for this is being able to pass the filesystem through a web intents payload, which is received as a structured clone input. This also allows the objects to be passed through a browser-initiated message event, which also seems really convenient.

hm. I guess this is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647666</commentid>
    <comment_count>30</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-12 21:53:52 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Done now (wasn&apos;t too hard at all :-))
&gt; 
&gt; Also added the test.

The test looks good to me, please update LayoutTests/ChangeLog as well and also add the test to Skipped/TestExpectations for the platforms that don&apos;t support file system API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648793</commentid>
    <comment_count>31</comment_count>
      <attachid>147483</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-13 21:55:41 -0700</bug_when>
    <thetext>Created attachment 147483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648798</commentid>
    <comment_count>32</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-13 21:57:42 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #25)
&gt; &gt; Done now (wasn&apos;t too hard at all :-))
&gt; &gt; 
&gt; &gt; Also added the test.
&gt; 
&gt; The test looks good to me, please update LayoutTests/ChangeLog as well and also add the test to Skipped/TestExpectations for the platforms that don&apos;t support file system API.

I checked the expectations files -- It looks like they already have categorical fast/filesystem exceptions. Added the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648817</commentid>
    <comment_count>33</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-13 22:43:07 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; Done now (wasn&apos;t too hard at all :-))
&gt; &gt; &gt; 
&gt; &gt; &gt; Also added the test.
&gt; &gt; 
&gt; &gt; The test looks good to me, please update LayoutTests/ChangeLog as well and also add the test to Skipped/TestExpectations for the platforms that don&apos;t support file system API.
&gt; 
&gt; I checked the expectations files -- It looks like they already have categorical fast/filesystem exceptions. Added the changelog.

(In reply to comment #32)
&gt; (In reply to comment #30)
&gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; Done now (wasn&apos;t too hard at all :-))
&gt; &gt; &gt; 
&gt; &gt; &gt; Also added the test.
&gt; &gt; 
&gt; &gt; The test looks good to me, please update LayoutTests/ChangeLog as well and also add the test to Skipped/TestExpectations for the platforms that don&apos;t support file system API.
&gt; 
&gt; I checked the expectations files -- It looks like they already have categorical fast/filesystem exceptions. Added the changelog.

Thanks!  The change looks good to me (if it looks good to real reviewers)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651513</commentid>
    <comment_count>34</comment_count>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-18 10:28:02 -0700</bug_when>
    <thetext>Can I get another look? I think this is ready to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652525</commentid>
    <comment_count>35</comment_count>
      <attachid>147483</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-19 09:33:39 -0700</bug_when>
    <thetext>Comment on attachment 147483
Patch

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

&gt; Source/WebKit/chromium/src/AsyncFileSystemChromium.cpp:98
&gt; +}

I&apos;ve added this code in another patch (I needed it for other change) so you may want to remove it before landing or cq may fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652529</commentid>
    <comment_count>36</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2012-06-19 09:34:31 -0700</bug_when>
    <thetext>David, would you be able to take another look?

(In reply to comment #35)
&gt; (From update of attachment 147483 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147483&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/AsyncFileSystemChromium.cpp:98
&gt; &gt; +}
&gt; 
&gt; I&apos;ve added this code in another patch (I needed it for other change) so you may want to remove it before landing or cq may fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652569</commentid>
    <comment_count>37</comment_count>
      <attachid>148356</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-19 10:29:07 -0700</bug_when>
    <thetext>Created attachment 148356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652871</commentid>
    <comment_count>38</comment_count>
      <attachid>148356</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-06-19 15:11:58 -0700</bug_when>
    <thetext>Comment on attachment 148356
Patch

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:34
&gt; +#include &quot;AsyncFileSystem.h&quot;

This include appears misplaced (of course so are both of the &lt;wtf/... includes)

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:58
&gt; +#if ENABLE(FILE_SYSTEM)

if shouldn&apos;t be intermingled with other include&apos;s. It should be below all of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652929</commentid>
    <comment_count>39</comment_count>
      <attachid>148453</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-19 16:17:16 -0700</bug_when>
    <thetext>Created attachment 148453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652930</commentid>
    <comment_count>40</comment_count>
      <attachid>148356</attachid>
    <who name="Greg Billock">gbillock</who>
    <bug_when>2012-06-19 16:17:59 -0700</bug_when>
    <thetext>Comment on attachment 148356
Patch

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

&gt;&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:34
&gt;&gt; +#include &quot;AsyncFileSystem.h&quot;
&gt; 
&gt; This include appears misplaced (of course so are both of the &lt;wtf/... includes)

The linter was complaining to me about this line until I moved it here. Is the real error that the wtf includes go lower? I&apos;ll move them and see if it is happy.

&gt;&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:58
&gt;&gt; +#if ENABLE(FILE_SYSTEM)
&gt; 
&gt; if shouldn&apos;t be intermingled with other include&apos;s. It should be below all of them.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653012</commentid>
    <comment_count>41</comment_count>
      <attachid>148453</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 17:09:20 -0700</bug_when>
    <thetext>Comment on attachment 148453
Patch

Clearing flags on attachment: 148453

Committed r120776: &lt;http://trac.webkit.org/changeset/120776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653013</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 17:09:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145652</attachid>
            <date>2012-06-04 16:37:58 -0700</date>
            <delta_ts>2012-06-04 16:54:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120604163757.patch</filename>
            <type>text/plain</type>
            <size>4737</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTQzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTA0ICBTdGV2ZSBW
YW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9NRmls
ZVN5c3RlbSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRoZSBib2R5IG9mIGEgd2Vi
IGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6
d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJp
YWxpemVyOjp3cml0ZURPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpSZWFkZXI6OnJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRl
cjo6cmVhZERPTUZpbGVTeXN0ZW0pOgorCiAyMDEyLTA2LTA0ICBBbmRyZXcgTG8gIDxhbmxvQHJp
bS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNwbGl0IEFuaW1hdGlvbkZyYW1lUmF0ZUNv
bnRyb2xsZXIgaW50byBpdHMgb3duIGZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gMTE5NDMy
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9JbnQzMkFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ludDhBcnJheS5oPgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSA8d3RmL1VpbnQxNkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VpbnQzMkFy
cmF5Lmg+CkBAIC01NSw2ICs1Niw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiVjhCbG9iLmgiCiAjaW5jbHVkZSAiVjhEYXRhVmlldy5oIgorI2luY2x1ZGUgIlY4RE9NRmls
ZVN5c3RlbS5oIgogI2luY2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4RmlsZUxpc3QuaCIK
ICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgpAQCAtMTg2LDYgKzE4OCw3IEBAIGVudW0gU2Vy
aWFsaXphdGlvblRhZyB7CiAgICAgTWVzc2FnZVBvcnRUYWcgPSAnTScsIC8vIGluZGV4OmludCAt
PiBNZXNzYWdlUG9ydC4gRmlsbHMgdGhlIHJlc3VsdCB3aXRoIHRyYW5zZmVycmVkIE1lc3NhZ2VQ
b3J0LgogICAgIE51bWJlclRhZyA9ICdOJywgLy8gdmFsdWU6ZG91YmxlIC0+IE51bWJlcgogICAg
IEJsb2JUYWcgPSAnYicsIC8vIHVybDpXZWJDb3JlU3RyaW5nLCB0eXBlOldlYkNvcmVTdHJpbmcs
IHNpemU6dWludDY0X3QgLT4gQmxvYiAocmVmKQorICAgIERPTUZpbGVTeXN0ZW1UYWcgPSAnZCcs
IC8vIHR5cGU6aW50MzJfdCwgbmFtZTpXZWJDb3JlU3RyaW5nLCB1cmw6V2ViQ29yZVN0cmluZyAt
PiBGaWxlU3lzdGVtIChyZWYpCiAgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxlIC0+
IEZpbGUgKHJlZikKICAgICBGaWxlTGlzdFRhZyA9ICdsJywgLy8gbGVuZ3RoOnVpbnQzMl90LCBm
aWxlczpSYXdGaWxlW2xlbmd0aF0gLT4gRmlsZUxpc3QgKHJlZikKICAgICBJbWFnZURhdGFUYWcg
PSAnIycsIC8vIHdpZHRoOnVpbnQzMl90LCBoZWlnaHQ6dWludDMyX3QsIHBpeGVsRGF0YUxlbmd0
aDp1aW50MzJfdCwgZGF0YTpieXRlW3BpeGVsRGF0YUxlbmd0aF0gLT4gSW1hZ2VEYXRhIChyZWYp
CkBAIC0zNjAsNiArMzYzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVpbnQ2NChzaXpl
KTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRlRE9NRmlsZVN5c3RlbShpbnQgdHlwZSwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAgIGFwcGVuZChE
T01GaWxlU3lzdGVtVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMih0eXBlKTsKKyAgICAgICAg
ZG9Xcml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7CisgICAgICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5n
KHVybCk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHsKICAgICAgICAgYXBw
ZW5kKEZpbGVUYWcpOwpAQCAtOTgyLDYgKzk5MywxNCBAQCBwcml2YXRlOgogICAgICAgICBtX2Js
b2JVUkxzLmFwcGVuZChibG9iLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCisgICAgdm9pZCB3
cml0ZURPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAg
ICAgICAgRE9NRmlsZVN5c3RlbSogZnMgPSBWOERPTUZpbGVTeXN0ZW06OnRvTmF0aXZlKHZhbHVl
LkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWZzKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBtX3dyaXRlci53cml0ZURPTUZpbGVTeXN0ZW0oZnMtPnR5cGUoKSwgZnMtPm5h
bWUoKSwgZnMtPnJvb3RVUkwoKS5zdHJpbmcoKSk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZUZp
bGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgRmlsZSogZmls
ZSA9IFY4RmlsZTo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xMTgzLDYg
KzEyMDIsOCBAQCBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyCiAgICAg
ICAgICAgICB3cml0ZUZpbGUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChWOEJsb2I6Okhhc0lu
c3RhbmNlKHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAgICAgIGVs
c2UgaWYgKFY4RE9NRmlsZVN5c3RlbTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAgICAg
d3JpdGVET01GaWxlU3lzdGVtKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6
SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAgICAgICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7CiAg
ICAgICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCkBAIC0xMzE1
LDYgKzEzMzYsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAgICAgIGlm
ICghcmVhZERPTUZpbGVTeXN0ZW0odmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAgIGlmICgh
cmVhZEZpbGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3Mjks
NiArMTc1NSwyMiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAg
ICBib29sIHJlYWRET01GaWxlU3lzdGVtKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisg
ICAgeworICAgICAgICB1aW50MzJfdCB0eXBlOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAg
ICAgU3RyaW5nIHVybDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnR5cGUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZuYW1l
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFyZWFkV2ViQ29yZVN0
cmluZygmdXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVmUHRyPERP
TUZpbGVTeXN0ZW0+IGZzID0gRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGdldFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgbmFtZSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RmlsZVN5c3RlbVR5cGU+KHR5
cGUpLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgUGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVB
c3luY0ZpbGVTeXN0ZW0oKSk7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoZnMucmVsZWFzZSgpLCBt
X2lzb2xhdGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJlYWRG
aWxlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICBTdHJpbmcg
cGF0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145655</attachid>
            <date>2012-06-04 16:54:56 -0700</date>
            <delta_ts>2012-06-04 17:36:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120604165456.patch</filename>
            <type>text/plain</type>
            <size>4740</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTQzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTA0ICBTdGV2ZSBW
YW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9NRmls
ZVN5c3RlbSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRoZSBib2R5IG9mIGEgd2Vi
IGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6
d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJp
YWxpemVyOjp3cml0ZURPTUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpSZWFkZXI6OnJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRl
cjo6cmVhZERPTUZpbGVTeXN0ZW0pOgorCiAyMDEyLTA2LTA0ICBBbmRyZXcgTG8gIDxhbmxvQHJp
bS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNwbGl0IEFuaW1hdGlvbkZyYW1lUmF0ZUNv
bnRyb2xsZXIgaW50byBpdHMgb3duIGZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gMTE5NDMy
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9JbnQzMkFy
cmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ludDhBcnJheS5oPgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVy
LmgiCiAjaW5jbHVkZSA8d3RmL1VpbnQxNkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VpbnQzMkFy
cmF5Lmg+CkBAIC01NCw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKKyNpbmNsdWRlICJW
OERPTUZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJWOERhdGFWaWV3LmgiCiAjaW5jbHVkZSAiVjhG
aWxlLmgiCiAjaW5jbHVkZSAiVjhGaWxlTGlzdC5oIgpAQCAtMTg2LDYgKzE4OCw3IEBAIGVudW0g
U2VyaWFsaXphdGlvblRhZyB7CiAgICAgTWVzc2FnZVBvcnRUYWcgPSAnTScsIC8vIGluZGV4Omlu
dCAtPiBNZXNzYWdlUG9ydC4gRmlsbHMgdGhlIHJlc3VsdCB3aXRoIHRyYW5zZmVycmVkIE1lc3Nh
Z2VQb3J0LgogICAgIE51bWJlclRhZyA9ICdOJywgLy8gdmFsdWU6ZG91YmxlIC0+IE51bWJlcgog
ICAgIEJsb2JUYWcgPSAnYicsIC8vIHVybDpXZWJDb3JlU3RyaW5nLCB0eXBlOldlYkNvcmVTdHJp
bmcsIHNpemU6dWludDY0X3QgLT4gQmxvYiAocmVmKQorICAgIERPTUZpbGVTeXN0ZW1UYWcgPSAn
ZCcsIC8vIHR5cGU6aW50MzJfdCwgbmFtZTpXZWJDb3JlU3RyaW5nLCB1cmw6V2ViQ29yZVN0cmlu
ZyAtPiBGaWxlU3lzdGVtIChyZWYpCiAgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxl
IC0+IEZpbGUgKHJlZikKICAgICBGaWxlTGlzdFRhZyA9ICdsJywgLy8gbGVuZ3RoOnVpbnQzMl90
LCBmaWxlczpSYXdGaWxlW2xlbmd0aF0gLT4gRmlsZUxpc3QgKHJlZikKICAgICBJbWFnZURhdGFU
YWcgPSAnIycsIC8vIHdpZHRoOnVpbnQzMl90LCBoZWlnaHQ6dWludDMyX3QsIHBpeGVsRGF0YUxl
bmd0aDp1aW50MzJfdCwgZGF0YTpieXRlW3BpeGVsRGF0YUxlbmd0aF0gLT4gSW1hZ2VEYXRhIChy
ZWYpCkBAIC0zNjAsNiArMzYzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVVpbnQ2NChz
aXplKTsKICAgICB9CiAKKyAgICB2b2lkIHdyaXRlRE9NRmlsZVN5c3RlbShpbnQgdHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAgIGFwcGVu
ZChET01GaWxlU3lzdGVtVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMih0eXBlKTsKKyAgICAg
ICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7CisgICAgICAgIGRvV3JpdGVXZWJDb3JlU3Ry
aW5nKHVybCk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHsKICAgICAgICAg
YXBwZW5kKEZpbGVUYWcpOwpAQCAtOTgyLDYgKzk5MywxNCBAQCBwcml2YXRlOgogICAgICAgICBt
X2Jsb2JVUkxzLmFwcGVuZChibG9iLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCisgICAgdm9p
ZCB3cml0ZURPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQorICAgIHsK
KyAgICAgICAgRE9NRmlsZVN5c3RlbSogZnMgPSBWOERPTUZpbGVTeXN0ZW06OnRvTmF0aXZlKHZh
bHVlLkFzPHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWZzKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX3dyaXRlci53cml0ZURPTUZpbGVTeXN0ZW0oZnMtPnR5cGUoKSwgZnMt
Pm5hbWUoKSwgZnMtPnJvb3RVUkwoKS5zdHJpbmcoKSk7CisgICAgfQorCiAgICAgdm9pZCB3cml0
ZUZpbGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgRmlsZSog
ZmlsZSA9IFY4RmlsZTo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xMTgz
LDYgKzEyMDIsOCBAQCBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyCiAg
ICAgICAgICAgICB3cml0ZUZpbGUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChWOEJsb2I6Okhh
c0luc3RhbmNlKHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisgICAgICAg
IGVsc2UgaWYgKFY4RE9NRmlsZVN5c3RlbTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAgICAg
ICAgd3JpdGVET01GaWxlU3lzdGVtKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhGaWxlTGlz
dDo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAgICAgICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7
CiAgICAgICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCkBAIC0x
MzE1LDYgKzEzMzYsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAgICAg
IGlmICghcmVhZERPTUZpbGVTeXN0ZW0odmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAgIGlm
ICghcmVhZEZpbGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3
MjksNiArMTc1NSwyMiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
KyAgICBib29sIHJlYWRET01GaWxlU3lzdGVtKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUp
CisgICAgeworICAgICAgICB1aW50MzJfdCB0eXBlOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAg
ICAgICAgU3RyaW5nIHVybDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnR5cGUpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZu
YW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFyZWFkV2ViQ29y
ZVN0cmluZygmdXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVmUHRy
PERPTUZpbGVTeXN0ZW0+IGZzID0gRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGdldFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbmFtZSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RmlsZVN5c3RlbVR5cGU+
KHR5cGUpLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgUGxhdGZvcm1TdXBwb3J0OjpjcmVh
dGVBc3luY0ZpbGVTeXN0ZW0oKSk7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoZnMucmVsZWFzZSgp
LCBtX2lzb2xhdGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJl
YWRGaWxlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICBTdHJp
bmcgcGF0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145663</attachid>
            <date>2012-06-04 17:36:33 -0700</date>
            <delta_ts>2012-06-06 17:29:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120604173632.patch</filename>
            <type>text/plain</type>
            <size>6267</size>
            <attacher name="Steve VanDeBogart">vandebo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExOTQzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTA0ICBTdGV2ZSBW
YW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9NRmls
ZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRoZSBi
b2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVET01GaWxlU3lzdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZURPTUZpbGVT
eXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OmRvU2Vy
aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZERPTUZpbGVTeXN0ZW0p
OgorCiAyMDEyLTA2LTA0ICBBbmRyZXcgTG8gIDxhbmxvQHJpbS5jb20+CiAKICAgICAgICAgW0Js
YWNrQmVycnldIFNwbGl0IEFuaW1hdGlvbkZyYW1lUmF0ZUNvbnRyb2xsZXIgaW50byBpdHMgb3du
IGZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lz
dGVtQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAkocmV2aXNpb24gMTE5NDMyKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjAsNiArNjAsNyBAQCBET01GaWxlU3lzdGVtQmFzZTo6RE9NRmlsZVN5c3RlbUJh
c2UoU2NyCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9m
aWxlc3lzdGVtUm9vdFVSTChyb290VVJMKQorICAgICwgbV9jbG9uYWJsZShmYWxzZSkKICAgICAs
IG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5o
CShyZXZpc2lvbiAxMTk0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RE9NRmlsZVN5c3RlbUJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsOCBAQCBwdWJs
aWM6CiAgICAgS1VSTCByb290VVJMKCkgY29uc3QgeyByZXR1cm4gbV9maWxlc3lzdGVtUm9vdFVS
TDsgfQogICAgIEFzeW5jRmlsZVN5c3RlbSogYXN5bmNGaWxlU3lzdGVtKCkgY29uc3QgeyByZXR1
cm4gbV9hc3luY0ZpbGVTeXN0ZW0uZ2V0KCk7IH0KICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKKyAgICB2b2lkIG1ha2VDbG9uYWJsZSgpIHsgbV9jbG9uYWJsZSA9
IHRydWU7IH0KKyAgICBib29sIGNsb25hYmxlKCkgY29uc3QgeyByZXR1cm4gbV9jbG9uYWJsZTsg
fQogCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFR5cGUoRmlsZVN5c3RlbVR5cGUpOwogICAgIHN0
YXRpYyBib29sIGNyYWNrRmlsZVN5c3RlbVVSTChjb25zdCBLVVJMJiwgRmlsZVN5c3RlbVR5cGUm
LCBTdHJpbmcmIGZpbGVQYXRoKTsKQEAgLTEwMiw2ICsxMDQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
U3RyaW5nIG1fbmFtZTsKICAgICBGaWxlU3lzdGVtVHlwZSBtX3R5cGU7CiAgICAgS1VSTCBtX2Zp
bGVzeXN0ZW1Sb290VVJMOworICAgIGJvb2wgbV9jbG9uYWJsZTsKIAogICAgIG11dGFibGUgT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gbV9hc3luY0ZpbGVTeXN0ZW07CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CShyZXZpc2lvbiAxMTk0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5j
bHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvSW50OEFycmF5Lmg+CiAjaW5j
bHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvVWludDE2QXJyYXkuaD4KICNpbmNs
dWRlIDx3dGYvVWludDMyQXJyYXkuaD4KQEAgLTU0LDYgKzU1LDcgQEAKICNpbmNsdWRlICJWOEFy
cmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Qmxv
Yi5oIgorI2luY2x1ZGUgIlY4RE9NRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIlY4RGF0YVZpZXcu
aCIKICNpbmNsdWRlICJWOEZpbGUuaCIKICNpbmNsdWRlICJWOEZpbGVMaXN0LmgiCkBAIC0xODYs
NiArMTg4LDcgQEAgZW51bSBTZXJpYWxpemF0aW9uVGFnIHsKICAgICBNZXNzYWdlUG9ydFRhZyA9
ICdNJywgLy8gaW5kZXg6aW50IC0+IE1lc3NhZ2VQb3J0LiBGaWxscyB0aGUgcmVzdWx0IHdpdGgg
dHJhbnNmZXJyZWQgTWVzc2FnZVBvcnQuCiAgICAgTnVtYmVyVGFnID0gJ04nLCAvLyB2YWx1ZTpk
b3VibGUgLT4gTnVtYmVyCiAgICAgQmxvYlRhZyA9ICdiJywgLy8gdXJsOldlYkNvcmVTdHJpbmcs
IHR5cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1aW50NjRfdCAtPiBCbG9iIChyZWYpCisgICAgRE9N
RmlsZVN5c3RlbVRhZyA9ICdkJywgLy8gdHlwZTppbnQzMl90LCBuYW1lOldlYkNvcmVTdHJpbmcs
IHVybDpXZWJDb3JlU3RyaW5nIC0+IEZpbGVTeXN0ZW0gKHJlZikKICAgICBGaWxlVGFnID0gJ2Yn
LCAvLyBmaWxlOlJhd0ZpbGUgLT4gRmlsZSAocmVmKQogICAgIEZpbGVMaXN0VGFnID0gJ2wnLCAv
LyBsZW5ndGg6dWludDMyX3QsIGZpbGVzOlJhd0ZpbGVbbGVuZ3RoXSAtPiBGaWxlTGlzdCAocmVm
KQogICAgIEltYWdlRGF0YVRhZyA9ICcjJywgLy8gd2lkdGg6dWludDMyX3QsIGhlaWdodDp1aW50
MzJfdCwgcGl4ZWxEYXRhTGVuZ3RoOnVpbnQzMl90LCBkYXRhOmJ5dGVbcGl4ZWxEYXRhTGVuZ3Ro
XSAtPiBJbWFnZURhdGEgKHJlZikKQEAgLTM2MCw2ICszNjMsMTQgQEAgcHVibGljOgogICAgICAg
ICBkb1dyaXRlVWludDY0KHNpemUpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVET01GaWxlU3lz
dGVtKGludCB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKQorICAg
IHsKKyAgICAgICAgYXBwZW5kKERPTUZpbGVTeXN0ZW1UYWcpOworICAgICAgICBkb1dyaXRlVWlu
dDMyKHR5cGUpOworICAgICAgICBkb1dyaXRlV2ViQ29yZVN0cmluZyhuYW1lKTsKKyAgICAgICAg
ZG9Xcml0ZVdlYkNvcmVTdHJpbmcodXJsKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlRmlsZShj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUp
CiAgICAgewogICAgICAgICBhcHBlbmQoRmlsZVRhZyk7CkBAIC05ODIsNiArOTkzLDE3IEBAIHBy
aXZhdGU6CiAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVybCgpLnN0cmluZygpKTsK
ICAgICB9CiAKKyAgICBTdGF0ZUJhc2UqIHdyaXRlRE9NRmlsZVN5c3RlbSh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdmFsdWUsIFN0YXRlQmFzZSogbmV4dCkKKyAgICB7CisgICAgICAgIERPTUZpbGVT
eXN0ZW0qIGZzID0gVjhET01GaWxlU3lzdGVtOjp0b05hdGl2ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0
PigpKTsKKyAgICAgICAgaWYgKCFmcykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBp
ZiAoIWZzLT5jbG9uYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFD
bG9uZUVycm9yLCBuZXh0KTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVET01GaWxlU3lzdGVtKGZz
LT50eXBlKCksIGZzLT5uYW1lKCksIGZzLT5yb290VVJMKCkuc3RyaW5nKCkpOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlRmlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdmFsdWUpCiAgICAgewogICAgICAgICBGaWxlKiBmaWxlID0gVjhGaWxlOjp0b05hdGl2ZSh2
YWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKQEAgLTExODMsNiArMTIwNSw4IEBAIFNlcmlhbGl6ZXI6
OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6ZG9TZXIKICAgICAgICAgICAgIHdyaXRlRmlsZSh2YWx1
ZSk7CiAgICAgICAgIGVsc2UgaWYgKFY4QmxvYjo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAg
ICAgICAgd3JpdGVCbG9iKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhET01GaWxlU3lzdGVt
OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gd3JpdGVET01GaWxlU3lz
dGVtKHZhbHVlLCBuZXh0KTsKICAgICAgICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6SGFzSW5zdGFu
Y2UodmFsdWUpKQogICAgICAgICAgICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7CiAgICAgICAgIGVs
c2UgaWYgKFY4SW1hZ2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCkBAIC0xMzE1LDYgKzEzMzks
MTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAgICAgIGlmICghcmVhZERP
TUZpbGVTeXN0ZW0odmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgRmlsZVRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEZpbGUo
dmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3MjksNiArMTc1OCwy
MiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBib29sIHJl
YWRET01GaWxlU3lzdGVtKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgeworICAg
ICAgICB1aW50MzJfdCB0eXBlOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgU3RyaW5n
IHVybDsKKyAgICAgICAgaWYgKCFkb1JlYWRVaW50MzIoJnR5cGUpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZuYW1lKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFyZWFkV2ViQ29yZVN0cmluZygmdXJs
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVmUHRyPERPTUZpbGVTeXN0
ZW0+IGZzID0gRE9NRmlsZVN5c3RlbTo6Y3JlYXRlKGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgbmFtZSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RmlsZVN5c3RlbVR5cGU+KHR5cGUpLCBLVVJM
KFBhcnNlZFVSTFN0cmluZywgdXJsKSwgUGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVBc3luY0ZpbGVT
eXN0ZW0oKSk7CisgICAgICAgICp2YWx1ZSA9IHRvVjgoZnMucmVsZWFzZSgpLCBtX2lzb2xhdGUp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJlYWRGaWxlKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICBTdHJpbmcgcGF0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146148</attachid>
            <date>2012-06-06 16:56:42 -0700</date>
            <delta_ts>2012-06-06 17:51:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120606165642.patch</filename>
            <type>text/plain</type>
            <size>6605</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEwNjBhODg5MjViODIy
MWViODFiYjZmYjgwNjZlZjM5YzhiNmFkMS4uMzhiM2JmZjNhMGRjOTRhMWFjYzQ5ODBlMjc0YTU1
YjNkYjIyNDIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVET01GaWxlU3lzdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZURPTUZp
bGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OmRv
U2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZERPTUZpbGVTeXN0
ZW0pOgorCiAyMDEyLTA2LTA2ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkaXJlY3Rpb24gb24gdGFibGUgcm93IGdy
b3VwIHdpdGggY29sbGFwc2luZyBib3JkZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAppbmRleCAzM2NjMTMwMWM2
NTM1YTFiZWM3ODNlOGRjMWVmN2ZlMmU5MThlNmE0Li44YmI0ZDdiMmVmZDdiMTYyZDMwYmIyMzQ0
OWVkYTVlMjE2MDA1YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgRE9NRmls
ZVN5c3RlbUJhc2U6OkRPTUZpbGVTeXN0ZW1CYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmkKICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX2ZpbGVzeXN0ZW1Sb290VVJMKHJvb3RVUkwpCisgICAgLCBtX2Nsb25hYmxlKGZh
bHNlKQogICAgICwgbV9hc3luY0ZpbGVTeXN0ZW0oYXN5bmNGaWxlU3lzdGVtKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1C
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJh
c2UuaAppbmRleCA4ZWE0ZmUyNDE5YzYwNDVhZDE0NjFmNGVhNDI4NmYzM2RjM2UxMDg0Li45ZWMw
YjcyNDUzNGUzOGIzZmY1YmQxZjFhMGQ2ZmQwNDE2OTIzMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuaApAQCAtNzUs
NiArNzUsOCBAQCBwdWJsaWM6CiAgICAgS1VSTCByb290VVJMKCkgY29uc3QgeyByZXR1cm4gbV9m
aWxlc3lzdGVtUm9vdFVSTDsgfQogICAgIEFzeW5jRmlsZVN5c3RlbSogYXN5bmNGaWxlU3lzdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9hc3luY0ZpbGVTeXN0ZW0uZ2V0KCk7IH0KICAgICBTZWN1cml0
eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyAgICB2b2lkIG1ha2VDbG9uYWJsZSgp
IHsgbV9jbG9uYWJsZSA9IHRydWU7IH0KKyAgICBib29sIGNsb25hYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9jbG9uYWJsZTsgfQogCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZFR5cGUoRmlsZVN5c3Rl
bVR5cGUpOwogICAgIHN0YXRpYyBib29sIGNyYWNrRmlsZVN5c3RlbVVSTChjb25zdCBLVVJMJiwg
RmlsZVN5c3RlbVR5cGUmLCBTdHJpbmcmIGZpbGVQYXRoKTsKQEAgLTEwMiw2ICsxMDQsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBGaWxlU3lzdGVtVHlwZSBtX3R5cGU7
CiAgICAgS1VSTCBtX2ZpbGVzeXN0ZW1Sb290VVJMOworICAgIGJvb2wgbV9jbG9uYWJsZTsKIAog
ICAgIG11dGFibGUgT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gbV9hc3luY0ZpbGVTeXN0ZW07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKaW5kZXggNjBkMDUzYjQyZjg3NGVjNmM0OWM2ZTFlMmNiMTFiNWI3OWJhNGQ1My4u
MzVmZDcwZmUxYzQxYmUyNzQ2ZTUyMTZkNzMwOTcwNTc0ZjI5ZjQ3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC00
NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8d3RmL0ludDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYv
SW50OEFycmF5Lmg+CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVN1cHBvcnQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvVWlu
dDE2QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvVWludDMyQXJyYXkuaD4KQEAgLTU1LDYgKzU2LDcg
QEAKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKICNpbmNsdWRl
ICJWOERhdGFWaWV3LmgiCisjaW5jbHVkZSAiVjhET01GaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAi
VjhGaWxlLmgiCiAjaW5jbHVkZSAiVjhGaWxlTGlzdC5oIgogI2luY2x1ZGUgIlY4RmxvYXQzMkFy
cmF5LmgiCkBAIC0xODcsNiArMTg5LDcgQEAgZW51bSBTZXJpYWxpemF0aW9uVGFnIHsKICAgICBO
dW1iZXJUYWcgPSAnTicsIC8vIHZhbHVlOmRvdWJsZSAtPiBOdW1iZXIKICAgICBCbG9iVGFnID0g
J2InLCAvLyB1cmw6V2ViQ29yZVN0cmluZywgdHlwZTpXZWJDb3JlU3RyaW5nLCBzaXplOnVpbnQ2
NF90IC0+IEJsb2IgKHJlZikKICAgICBGaWxlVGFnID0gJ2YnLCAvLyBmaWxlOlJhd0ZpbGUgLT4g
RmlsZSAocmVmKQorICAgIERPTUZpbGVTeXN0ZW1UYWcgPSAnZCcsIC8vIHR5cGU6aW50MzJfdCwg
bmFtZTpXZWJDb3JlU3RyaW5nLCB1cmw6V2ViQ29yZVN0cmluZyAtPiBGaWxlU3lzdGVtIChyZWYp
CiAgICAgRmlsZUxpc3RUYWcgPSAnbCcsIC8vIGxlbmd0aDp1aW50MzJfdCwgZmlsZXM6UmF3Rmls
ZVtsZW5ndGhdIC0+IEZpbGVMaXN0IChyZWYpCiAgICAgSW1hZ2VEYXRhVGFnID0gJyMnLCAvLyB3
aWR0aDp1aW50MzJfdCwgaGVpZ2h0OnVpbnQzMl90LCBwaXhlbERhdGFMZW5ndGg6dWludDMyX3Qs
IGRhdGE6Ynl0ZVtwaXhlbERhdGFMZW5ndGhdIC0+IEltYWdlRGF0YSAocmVmKQogICAgIE9iamVj
dFRhZyA9ICd7JywgLy8gbnVtUHJvcGVydGllczp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0IG9i
amVjdCBmcm9tIHRoZSBvcGVuIHN0YWNrOwpAQCAtMzYwLDYgKzM2MywxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGRvV3JpdGVVaW50NjQoc2l6ZSk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZURPTUZp
bGVTeXN0ZW0oaW50IHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1cmwp
CisgICAgeworICAgICAgICBhcHBlbmQoRE9NRmlsZVN5c3RlbVRhZyk7CisgICAgICAgIGRvV3Jp
dGVVaW50MzIodHlwZSk7CisgICAgICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5nKG5hbWUpOworICAg
ICAgICBkb1dyaXRlV2ViQ29yZVN0cmluZyh1cmwpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVG
aWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
dHlwZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChGaWxlVGFnKTsKQEAgLTk4Miw2ICs5OTMsMTcg
QEAgcHJpdmF0ZToKICAgICAgICAgbV9ibG9iVVJMcy5hcHBlbmQoYmxvYi0+dXJsKCkuc3RyaW5n
KCkpOwogICAgIH0KIAorICAgIFN0YXRlQmFzZSogd3JpdGVET01GaWxlU3lzdGVtKHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAgICAgRE9N
RmlsZVN5c3RlbSogZnMgPSBWOERPTUZpbGVTeXN0ZW06OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpP
YmplY3Q+KCkpOworICAgICAgICBpZiAoIWZzKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIGlmICghZnMtPmNsb25hYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3Io
RGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBtX3dyaXRlci53cml0ZURPTUZpbGVTeXN0
ZW0oZnMtPnR5cGUoKSwgZnMtPm5hbWUoKSwgZnMtPnJvb3RVUkwoKS5zdHJpbmcoKSk7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVGaWxlKHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB2YWx1ZSkKICAgICB7CiAgICAgICAgIEZpbGUqIGZpbGUgPSBWOEZpbGU6OnRvTmF0
aXZlKHZhbHVlLkFzPHY4OjpPYmplY3Q+KCkpOwpAQCAtMTE4Myw2ICsxMjA1LDggQEAgU2VyaWFs
aXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgICAgIHdyaXRlRmlsZSh2YWx1ZSk7CiAgICAgICAg
IGVsc2UgaWYgKFY4QmxvYjo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAgICAgICAgd3JpdGVC
bG9iKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoVjhET01GaWxlU3lzdGVtOjpIYXNJbnN0YW5j
ZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gd3JpdGVET01GaWxlU3lzdGVtKHZhbHVlLCBu
ZXh0KTsKICAgICAgICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6SGFzSW5zdGFuY2UodmFsdWUpKQog
ICAgICAgICAgICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKFY4SW1h
Z2VEYXRhOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCkBAIC0xMzIwLDYgKzEzNDQsMTEgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNyZWF0b3IucHVz
aE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAgICAgIGlmICghcmVhZERPTUZpbGVTeXN0ZW0o
dmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0
b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgRmlsZUxpc3RUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRGaWxlTGlzdCh2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTcyOSw2ICsxNzU4LDIyIEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGJvb2wgcmVhZERP
TUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHVpbnQzMl90IHR5cGU7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBTdHJpbmcgdXJs
OworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmdHlwZSkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGlmICghcmVhZFdlYkNvcmVTdHJpbmcoJm5hbWUpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZ1cmwpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZWZQdHI8RE9NRmlsZVN5c3RlbT4g
ZnMgPSBET01GaWxlU3lzdGVtOjpjcmVhdGUoZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBu
YW1lLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaWxlU3lzdGVtVHlwZT4odHlwZSksIEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwpLCBQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZUFzeW5jRmlsZVN5c3Rl
bSgpKTsKKyAgICAgICAgKnZhbHVlID0gdG9WOChmcy5yZWxlYXNlKCksIG1faXNvbGF0ZSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGJvb2wgcmVhZEZpbGUodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CiAgICAgICAgIFN0cmluZyBwYXRoOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146163</attachid>
            <date>2012-06-06 17:51:11 -0700</date>
            <delta_ts>2012-06-11 16:53:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120606175111.patch</filename>
            <type>text/plain</type>
            <size>7435</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEwNjBhODg5MjViODIy
MWViODFiYjZmYjgwNjZlZjM5YzhiNmFkMS4uM2M0NTg3ZTJhNWU3MWQ2ODc4YWE5MTYzODk5OGE0
NTk3NWJjMWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYWxsb3cgRmlsZVN5c3RlbSBB
UEkgb2JqZWN0cyB0byBiZSBkaXNwYXRjaGVkIHRvCisgICAgICAgIHdlYiBjb250ZW50IGluIG9y
ZGVyIHRvIGVuYWJsZSwgZm9yIGluc3RhbmNlLCBhbiBpbnRlbnQgbm90aWZ5aW5nIHdlYgorICAg
ICAgICBjb250ZW50IHRoYXQgYSBwYXJ0aWN1bGFyIGZpbGVzeXN0ZW0gaGFzIGJlZW4gbW91bnRl
ZCBieSB0aGUgbG9jYWwKKyAgICAgICAgc3lzdGVtLiBUaGUgZ29hbCBhdCB0aGlzIHBvaW50IGlz
IG5vdCB0byBlbmFibGUgYWNyb3NzLXRoZS1ib2FyZAorICAgICAgICBjbG9uYWJpbGl0eSwgYnV0
IGp1c3QgZm9yIGhhbmRsaW5nIHRoZSBwYXJ0aWN1bGFyIHVzZSBjYXNlLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlRE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRET01GaWxlU3lzdGVtKToKKwogMjAxMi0wNi0w
NiAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgZGlyZWN0aW9uIG9uIHRhYmxlIHJvdyBncm91cCB3aXRoIGNvbGxhcHNp
bmcgYm9yZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RPTUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKaW5kZXggMzNjYzEzMDFjNjUzNWExYmVjNzgzZThkYzFl
ZjdmZTJlOTE4ZTZhNC4uOGJiNGQ3YjJlZmQ3YjE2MmQzMGJiMjM0NDllZGE1ZTIxNjAwNWJiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0
ZW1CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmls
ZVN5c3RlbUJhc2UuY3BwCkBAIC02MCw2ICs2MCw3IEBAIERPTUZpbGVTeXN0ZW1CYXNlOjpET01G
aWxlU3lzdGVtQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
CiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9maWxlc3lz
dGVtUm9vdFVSTChyb290VVJMKQorICAgICwgbV9jbG9uYWJsZShmYWxzZSkKICAgICAsIG1fYXN5
bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKaW5kZXggOGVhNGZl
MjQxOWM2MDQ1YWQxNDYxZjRlYTQyODZmMzNkYzNlMTA4NC4uMzZmOTIzNDNiY2RlZDQxYWVlNTAx
MjVjZDFmMzhhMDZiNGI0MWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKQEAgLTc2LDYgKzc2LDEyIEBAIHB1Ymxp
YzoKICAgICBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXN5bmNGaWxlU3lzdGVtLmdldCgpOyB9CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3Q7CiAKKyAgICAvLyBUaGUgY2xvbmFibGUgZmxhZyBpcyB1c2VkIGluIHRo
ZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSB0byB0ZXN0CisgICAgLy8gd2hldGhlciB0aGUg
RmlsZVN5c3RlbSBBUEkgb2JqZWN0IGlzIHBlcm1pdHRlZCB0byBiZSBjbG9uZWQuIEl0IGRlZmF1
bHRzCisgICAgLy8gdG8gZmFsc2UsIGFuZCBtdXN0IGJlIGV4cGxpY2l0bHkgc2V0IGJ5IGludGVy
bmFsIGNvZGUgcGVybWl0IGNsb25pbmcuCisgICAgdm9pZCBtYWtlQ2xvbmFibGUoKSB7IG1fY2xv
bmFibGUgPSB0cnVlOyB9CisgICAgYm9vbCBjbG9uYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xv
bmFibGU7IH0KKwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRUeXBlKEZpbGVTeXN0ZW1UeXBlKTsK
ICAgICBzdGF0aWMgYm9vbCBjcmFja0ZpbGVTeXN0ZW1VUkwoY29uc3QgS1VSTCYsIEZpbGVTeXN0
ZW1UeXBlJiwgU3RyaW5nJiBmaWxlUGF0aCk7CiAgICAgYm9vbCBzdXBwb3J0c1RvVVJMKCkgY29u
c3Q7CkBAIC0xMDIsNiArMTA4LDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBtX25hbWU7CiAg
ICAgRmlsZVN5c3RlbVR5cGUgbV90eXBlOwogICAgIEtVUkwgbV9maWxlc3lzdGVtUm9vdFVSTDsK
KyAgICBib29sIG1fY2xvbmFibGU7CiAKICAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0
ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDYwZDA1M2I0MmY4NzRlYzZj
NDljNmUxZTJjYjExYjViNzliYTRkNTMuLjEzOGU5MDMwMzY1NTcyY2FlNWFiOTdkOGUxMDAzZDJm
ZDkwN2UwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9JbnQz
MkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ludDhBcnJheS5oPgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8d3RmL1VpbnQxNkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1VpbnQz
MkFycmF5Lmg+CkBAIC01NCw2ICs1NSw5IEBACiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcu
aCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisjaW5jbHVkZSAiVjhET01GaWxlU3lzdGVtLmgiCisjZW5kaWYKICNp
bmNsdWRlICJWOERhdGFWaWV3LmgiCiAjaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVkZSAiVjhG
aWxlTGlzdC5oIgpAQCAtMTg3LDYgKzE5MSw5IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAg
ICAgTnVtYmVyVGFnID0gJ04nLCAvLyB2YWx1ZTpkb3VibGUgLT4gTnVtYmVyCiAgICAgQmxvYlRh
ZyA9ICdiJywgLy8gdXJsOldlYkNvcmVTdHJpbmcsIHR5cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1
aW50NjRfdCAtPiBCbG9iIChyZWYpCiAgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxl
IC0+IEZpbGUgKHJlZikKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgRE9NRmlsZVN5c3Rl
bVRhZyA9ICdkJywgLy8gdHlwZTppbnQzMl90LCBuYW1lOldlYkNvcmVTdHJpbmcsIHVybDpXZWJD
b3JlU3RyaW5nIC0+IEZpbGVTeXN0ZW0gKHJlZikKKyNlbmRpZgogICAgIEZpbGVMaXN0VGFnID0g
J2wnLCAvLyBsZW5ndGg6dWludDMyX3QsIGZpbGVzOlJhd0ZpbGVbbGVuZ3RoXSAtPiBGaWxlTGlz
dCAocmVmKQogICAgIEltYWdlRGF0YVRhZyA9ICcjJywgLy8gd2lkdGg6dWludDMyX3QsIGhlaWdo
dDp1aW50MzJfdCwgcGl4ZWxEYXRhTGVuZ3RoOnVpbnQzMl90LCBkYXRhOmJ5dGVbcGl4ZWxEYXRh
TGVuZ3RoXSAtPiBJbWFnZURhdGEgKHJlZikKICAgICBPYmplY3RUYWcgPSAneycsIC8vIG51bVBy
b3BlcnRpZXM6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBz
dGFjazsKQEAgLTM2MCw2ICszNjcsMTYgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlVWludDY0
KHNpemUpOwogICAgIH0KIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICB2b2lkIHdyaXRl
RE9NRmlsZVN5c3RlbShpbnQgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHVybCkKKyAgICB7CisgICAgICAgIGFwcGVuZChET01GaWxlU3lzdGVtVGFnKTsKKyAgICAgICAg
ZG9Xcml0ZVVpbnQzMih0eXBlKTsKKyAgICAgICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7
CisgICAgICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5nKHVybCk7CisgICAgfQorI2VuZGlmCisKICAg
ICB2b2lkIHdyaXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBTdHJpbmcmIHR5cGUpCiAgICAgewogICAgICAgICBhcHBlbmQoRmlsZVRhZyk7CkBAIC05
ODIsNiArOTk5LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2It
PnVybCgpLnN0cmluZygpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAg
U3RhdGVCYXNlKiB3cml0ZURPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
LCBTdGF0ZUJhc2UqIG5leHQpCisgICAgeworICAgICAgICBET01GaWxlU3lzdGVtKiBmcyA9IFY4
RE9NRmlsZVN5c3RlbTo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAg
IGlmICghZnMpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFmcy0+Y2xvbmFi
bGUoKSkKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4
dCk7CisgICAgICAgIG1fd3JpdGVyLndyaXRlRE9NRmlsZVN5c3RlbShmcy0+dHlwZSgpLCBmcy0+
bmFtZSgpLCBmcy0+cm9vdFVSTCgpLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorI2VuZGlmCisKICAgICB2b2lkIHdyaXRlRmlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICBGaWxlKiBmaWxlID0gVjhGaWxlOjp0b05hdGl2ZSh2YWx1ZS5B
czx2ODo6T2JqZWN0PigpKTsKQEAgLTExODMsNiArMTIxMywxMCBAQCBTZXJpYWxpemVyOjpTdGF0
ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSwgU3RhdAogICAgICAgICAgICAgd3JpdGVGaWxlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAo
VjhCbG9iOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCiAgICAgICAgICAgICB3cml0ZUJsb2IodmFsdWUp
OworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICAgICAgZWxzZSBpZiAoVjhET01GaWxlU3lz
dGVtOjpIYXNJbnN0YW5jZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gd3JpdGVET01GaWxl
U3lzdGVtKHZhbHVlLCBuZXh0KTsKKyNlbmRpZgogICAgICAgICBlbHNlIGlmIChWOEZpbGVMaXN0
OjpIYXNJbnN0YW5jZSh2YWx1ZSkpCiAgICAgICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsK
ICAgICAgICAgZWxzZSBpZiAoVjhJbWFnZURhdGE6Okhhc0luc3RhbmNlKHZhbHVlKSkKQEAgLTEz
MjAsNiArMTM1NCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAg
ICAgICBicmVhazsKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgICAgIGNhc2UgRE9NRmls
ZVN5c3RlbVRhZzoKKyAgICAgICAgICAgIGlmICghcmVhZERPTUZpbGVTeXN0ZW0odmFsdWUpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9i
amVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAg
ICAgY2FzZSBGaWxlTGlzdFRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEZpbGVMaXN0KHZhbHVl
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzI5LDYgKzE3NzAsMjQgQEAg
cHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisjaWYgRU5BQkxFKEZJTEVf
U1lTVEVNKQorICAgIGJvb2wgcmVhZERPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+
KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgIFN0cmluZyBu
YW1lOworICAgICAgICBTdHJpbmcgdXJsOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmdHlw
ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghcmVhZFdlYkNvcmVT
dHJpbmcoJm5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJl
YWRXZWJDb3JlU3RyaW5nKCZ1cmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBSZWZQdHI8RE9NRmlsZVN5c3RlbT4gZnMgPSBET01GaWxlU3lzdGVtOjpjcmVhdGUoZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBuYW1lLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaWxlU3lz
dGVtVHlwZT4odHlwZSksIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBQbGF0Zm9ybVN1cHBv
cnQ6OmNyZWF0ZUFzeW5jRmlsZVN5c3RlbSgpKTsKKyAgICAgICAgKnZhbHVlID0gdG9WOChmcy5y
ZWxlYXNlKCksIG1faXNvbGF0ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRp
ZgorCiAgICAgYm9vbCByZWFkRmlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAg
IHsKICAgICAgICAgU3RyaW5nIHBhdGg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146965</attachid>
            <date>2012-06-11 16:53:30 -0700</date>
            <delta_ts>2012-06-13 21:55:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120611165329.patch</filename>
            <type>text/plain</type>
            <size>10245</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmMTY5MjllNGZiNWZj
ZThkOWU4YzA0MjJkNGYxMmI4Y2M4M2ZmYS4uMTlhMTM1ZWEyMGUyMmE4MmQ1NGViOTRlOTRkNGUx
Mjg0ODc3OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYWxsb3cgRmlsZVN5c3RlbSBB
UEkgb2JqZWN0cyB0byBiZSBkaXNwYXRjaGVkIHRvCisgICAgICAgIHdlYiBjb250ZW50IGluIG9y
ZGVyIHRvIGVuYWJsZSwgZm9yIGluc3RhbmNlLCBhbiBpbnRlbnQgbm90aWZ5aW5nIHdlYgorICAg
ICAgICBjb250ZW50IHRoYXQgYSBwYXJ0aWN1bGFyIGZpbGVzeXN0ZW0gaGFzIGJlZW4gbW91bnRl
ZCBieSB0aGUgbG9jYWwKKyAgICAgICAgc3lzdGVtLiBUaGUgZ29hbCBhdCB0aGlzIHBvaW50IGlz
IG5vdCB0byBlbmFibGUgYWNyb3NzLXRoZS1ib2FyZAorICAgICAgICBjbG9uYWJpbGl0eSwgYnV0
IGp1c3QgZm9yIGhhbmRsaW5nIHRoZSBwYXJ0aWN1bGFyIHVzZSBjYXNlLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlRE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRET01GaWxlU3lzdGVtKToKKwogMjAxMi0wNi0x
MSAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBj
dXJyZW50IENhY2hlTW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCmluZGV4IDMzY2MxMzAxYzY1MzVhMWJlYzc4
M2U4ZGMxZWY3ZmUyZTkxOGU2YTQuLjhiYjRkN2IyZWZkN2IxNjJkMzBiYjIzNDQ5ZWRhNWUyMTYw
MDViYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01G
aWxlU3lzdGVtQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RPTUZpbGVTeXN0ZW1CYXNlLmNwcApAQCAtNjAsNiArNjAsNyBAQCBET01GaWxlU3lzdGVtQmFz
ZTo6RE9NRmlsZVN5c3RlbUJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaQogICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
ZmlsZXN5c3RlbVJvb3RVUkwocm9vdFVSTCkKKyAgICAsIG1fY2xvbmFibGUoZmFsc2UpCiAgICAg
LCBtX2FzeW5jRmlsZVN5c3RlbShhc3luY0ZpbGVTeXN0ZW0pCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCmluZGV4
IDhlYTRmZTI0MTljNjA0NWFkMTQ2MWY0ZWE0Mjg2ZjMzZGMzZTEwODQuLjM2ZjkyMzQzYmNkZWQ0
MWFlZTUwMTI1Y2QxZjM4YTA2YjRiNDFmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCkBAIC03Niw2ICs3NiwxMiBA
QCBwdWJsaWM6CiAgICAgQXN5bmNGaWxlU3lzdGVtKiBhc3luY0ZpbGVTeXN0ZW0oKSBjb25zdCB7
IHJldHVybiBtX2FzeW5jRmlsZVN5c3RlbS5nZXQoKTsgfQogICAgIFNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgLy8gVGhlIGNsb25hYmxlIGZsYWcgaXMgdXNl
ZCBpbiB0aGUgc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG0gdG8gdGVzdAorICAgIC8vIHdoZXRo
ZXIgdGhlIEZpbGVTeXN0ZW0gQVBJIG9iamVjdCBpcyBwZXJtaXR0ZWQgdG8gYmUgY2xvbmVkLiBJ
dCBkZWZhdWx0cworICAgIC8vIHRvIGZhbHNlLCBhbmQgbXVzdCBiZSBleHBsaWNpdGx5IHNldCBi
eSBpbnRlcm5hbCBjb2RlIHBlcm1pdCBjbG9uaW5nLgorICAgIHZvaWQgbWFrZUNsb25hYmxlKCkg
eyBtX2Nsb25hYmxlID0gdHJ1ZTsgfQorICAgIGJvb2wgY2xvbmFibGUoKSBjb25zdCB7IHJldHVy
biBtX2Nsb25hYmxlOyB9CisKICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShGaWxlU3lzdGVt
VHlwZSk7CiAgICAgc3RhdGljIGJvb2wgY3JhY2tGaWxlU3lzdGVtVVJMKGNvbnN0IEtVUkwmLCBG
aWxlU3lzdGVtVHlwZSYsIFN0cmluZyYgZmlsZVBhdGgpOwogICAgIGJvb2wgc3VwcG9ydHNUb1VS
TCgpIGNvbnN0OwpAQCAtMTAyLDYgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9u
YW1lOwogICAgIEZpbGVTeXN0ZW1UeXBlIG1fdHlwZTsKICAgICBLVVJMIG1fZmlsZXN5c3RlbVJv
b3RVUkw7CisgICAgYm9vbCBtX2Nsb25hYmxlOwogCiAgICAgbXV0YWJsZSBPd25QdHI8QXN5bmNG
aWxlU3lzdGVtPiBtX2FzeW5jRmlsZVN5c3RlbTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2MGQwNTNiNDJm
ODc0ZWM2YzQ5YzZlMWUyY2IxMWI1Yjc5YmE0ZDUzLi4xNTVmNmQxMzk5Njg2ODdmZmVkNTVmN2M1
YjMxZDMyZjhhMTE1NzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2luY2x1ZGUg
IkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlICJCbG9iLmgiCkBAIC01NCw2ICs1
NSw5IEBACiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisjaW5j
bHVkZSAiVjhET01GaWxlU3lzdGVtLmgiCisjZW5kaWYKICNpbmNsdWRlICJWOERhdGFWaWV3Lmgi
CiAjaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVkZSAiVjhGaWxlTGlzdC5oIgpAQCAtMTg3LDYg
KzE5MSw5IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgTnVtYmVyVGFnID0gJ04nLCAv
LyB2YWx1ZTpkb3VibGUgLT4gTnVtYmVyCiAgICAgQmxvYlRhZyA9ICdiJywgLy8gdXJsOldlYkNv
cmVTdHJpbmcsIHR5cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1aW50NjRfdCAtPiBCbG9iIChyZWYp
CiAgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxlIC0+IEZpbGUgKHJlZikKKyNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCisgICAgRE9NRmlsZVN5c3RlbVRhZyA9ICdkJywgLy8gdHlwZTpp
bnQzMl90LCBuYW1lOldlYkNvcmVTdHJpbmcsIHVybDpXZWJDb3JlU3RyaW5nIC0+IEZpbGVTeXN0
ZW0gKHJlZikKKyNlbmRpZgogICAgIEZpbGVMaXN0VGFnID0gJ2wnLCAvLyBsZW5ndGg6dWludDMy
X3QsIGZpbGVzOlJhd0ZpbGVbbGVuZ3RoXSAtPiBGaWxlTGlzdCAocmVmKQogICAgIEltYWdlRGF0
YVRhZyA9ICcjJywgLy8gd2lkdGg6dWludDMyX3QsIGhlaWdodDp1aW50MzJfdCwgcGl4ZWxEYXRh
TGVuZ3RoOnVpbnQzMl90LCBkYXRhOmJ5dGVbcGl4ZWxEYXRhTGVuZ3RoXSAtPiBJbWFnZURhdGEg
KHJlZikKICAgICBPYmplY3RUYWcgPSAneycsIC8vIG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4g
cG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKQEAgLTM2MCw2ICszNjcs
MTYgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlVWludDY0KHNpemUpOwogICAgIH0KIAorI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICB2b2lkIHdyaXRlRE9NRmlsZVN5c3RlbShpbnQgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAg
IGFwcGVuZChET01GaWxlU3lzdGVtVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMih0eXBlKTsK
KyAgICAgICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7CisgICAgICAgIGRvV3JpdGVXZWJD
b3JlU3RyaW5nKHVybCk7CisgICAgfQorI2VuZGlmCisKICAgICB2b2lkIHdyaXRlRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUpCiAg
ICAgewogICAgICAgICBhcHBlbmQoRmlsZVRhZyk7CkBAIC05ODIsNiArOTk5LDE5IEBAIHByaXZh
dGU6CiAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVybCgpLnN0cmluZygpKTsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgU3RhdGVCYXNlKiB3cml0ZURPTUZp
bGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpCisg
ICAgeworICAgICAgICBET01GaWxlU3lzdGVtKiBmcyA9IFY4RE9NRmlsZVN5c3RlbTo6dG9OYXRp
dmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghZnMpCisgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFmcy0+Y2xvbmFibGUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIG1fd3JpdGVy
LndyaXRlRE9NRmlsZVN5c3RlbShmcy0+dHlwZSgpLCBmcy0+bmFtZSgpLCBmcy0+cm9vdFVSTCgp
LnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmCisKICAgICB2b2lk
IHdyaXRlRmlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICBG
aWxlKiBmaWxlID0gVjhGaWxlOjp0b05hdGl2ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKQEAg
LTExODMsNiArMTIxMywxMCBAQCBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRv
U2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdAogICAgICAgICAgICAg
d3JpdGVGaWxlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2
YWx1ZSkpCiAgICAgICAgICAgICB3cml0ZUJsb2IodmFsdWUpOworI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKKyAgICAgICAgZWxzZSBpZiAoVjhET01GaWxlU3lzdGVtOjpIYXNJbnN0YW5jZSh2YWx1
ZSkpCisgICAgICAgICAgICByZXR1cm4gd3JpdGVET01GaWxlU3lzdGVtKHZhbHVlLCBuZXh0KTsK
KyNlbmRpZgogICAgICAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkp
CiAgICAgICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhJ
bWFnZURhdGE6Okhhc0luc3RhbmNlKHZhbHVlKSkKQEAgLTEzMjAsNiArMTM1NCwxMyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3JlYXRvci5w
dXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisgICAgICAgIGNhc2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAg
ICAgIGlmICghcmVhZERPTUZpbGVTeXN0ZW0odmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUp
OworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoK
ICAgICAgICAgICAgIGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xNzI5LDYgKzE3NzAsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIGJvb2wgcmVh
ZERPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBTdHJpbmcg
dXJsOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmdHlwZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICghcmVhZFdlYkNvcmVTdHJpbmcoJm5hbWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZ1cmwp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZWZQdHI8RE9NRmlsZVN5c3Rl
bT4gZnMgPSBET01GaWxlU3lzdGVtOjpjcmVhdGUoZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBuYW1lLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaWxlU3lzdGVtVHlwZT4odHlwZSksIEtVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZSgpKTsKKyAgICAg
ICAgKnZhbHVlID0gdG9WOChmcy5yZWxlYXNlKCksIG1faXNvbGF0ZSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCByZWFkRmlsZSh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAgU3RyaW5nIHBhdGg7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAK
aW5kZXggZWI1MDIxMDAzM2IzMGNmZTI2NGU4YmQ5NmFjNmQwNDBkNjgyOWIxMC4uNGNiMTE1YzJj
NmNmMDQ4MGNhNDgyODQ1NGI2YjAxMTg3N2VlMjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtOTIsNiAr
OTIsMTIgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlCiAKIC8vIHN0YXRpYworUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1
cm4gQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmNyZWF0ZSgpOworfQorCisvLyBzdGF0aWMKIGJv
b2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlh
bGl6YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5
c3RlbS11bnNlcmlhbGl6YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA3YzhlMWJkMTJi
OTIxYzRiZjNmOTlmODE5NzhiMGYyZWZhMmUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3RzIGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBp
cyB1bnNlcmlhbGl6YWJsZSBieSBkZWZhdWx0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitEQVRBX0NMT05FX0VSUjogRE9NIEV4Y2VwdGlvbiAyNQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJiYzYxNjc4MjgzZTkyYmUxNWFhYzczZGM0ODQ0ZWIwNjM2MTRkODkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlh
bGl6YWJsZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlh
bGl6YWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTQwOTE0YWU5NGJiZDkwY2YwNGQzZDk5MGYxYTdmNWY3
ZTA4ZDdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Nj
cmlwdC10ZXN0cy9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmpzCkBAIC0wLDAgKzEsMjkgQEAK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBpcyB1bnNl
cmlhbGl6YWJsZSBieSBkZWZhdWx0Iik7CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2soZXJyb3Ip
Cit7CisgICAgdGVzdEZhaWxlZCgiRXJyb3Igb2NjdXJyZWQ6ICIgKyBlcnJvci5jb2RlKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZmlsZVN5c3RlbUNhbGxiYWNrKGZzKQor
eworICAgIHRyeSB7CisgICAgICAgIHBvc3RNZXNzYWdlKGZzLCAnKicpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZGVidWcoZS5tZXNzYWdlKTsKKyAgICB9CisKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworZnVuY3Rpb24gb25tZXNzYWdlKCkKK3sKK30KKworaWYgKHdpbmRvdy53ZWJr
aXRSZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgb25tZXNzYWdlLCBmYWxzZSk7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIHdlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5URU1QT1JBUlksIDEwMCwgZmls
ZVN5c3RlbUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlz
IHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147483</attachid>
            <date>2012-06-13 21:55:41 -0700</date>
            <delta_ts>2012-06-19 10:29:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120613215540.patch</filename>
            <type>text/plain</type>
            <size>11076</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmMTY5MjllNGZiNWZj
ZThkOWU4YzA0MjJkNGYxMmI4Y2M4M2ZmYS4uMTlhMTM1ZWEyMGUyMmE4MmQ1NGViOTRlOTRkNGUx
Mjg0ODc3OGQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYWxsb3cgRmlsZVN5c3RlbSBB
UEkgb2JqZWN0cyB0byBiZSBkaXNwYXRjaGVkIHRvCisgICAgICAgIHdlYiBjb250ZW50IGluIG9y
ZGVyIHRvIGVuYWJsZSwgZm9yIGluc3RhbmNlLCBhbiBpbnRlbnQgbm90aWZ5aW5nIHdlYgorICAg
ICAgICBjb250ZW50IHRoYXQgYSBwYXJ0aWN1bGFyIGZpbGVzeXN0ZW0gaGFzIGJlZW4gbW91bnRl
ZCBieSB0aGUgbG9jYWwKKyAgICAgICAgc3lzdGVtLiBUaGUgZ29hbCBhdCB0aGlzIHBvaW50IGlz
IG5vdCB0byBlbmFibGUgYWNyb3NzLXRoZS1ib2FyZAorICAgICAgICBjbG9uYWJpbGl0eSwgYnV0
IGp1c3QgZm9yIGhhbmRsaW5nIHRoZSBwYXJ0aWN1bGFyIHVzZSBjYXNlLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlRE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRET01GaWxlU3lzdGVtKToKKwogMjAxMi0wNi0x
MSAgTWljaGFlbCBCcsO8bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XVtXSzJdIENvbXB1dGUgYW5kIHNldCBjYWNoZSBjYXBhY2l0aWVzIHVzaW5nIHRoZSBj
dXJyZW50IENhY2hlTW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCmluZGV4IDMzY2MxMzAxYzY1MzVhMWJlYzc4
M2U4ZGMxZWY3ZmUyZTkxOGU2YTQuLjhiYjRkN2IyZWZkN2IxNjJkMzBiYjIzNDQ5ZWRhNWUyMTYw
MDViYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01G
aWxlU3lzdGVtQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RPTUZpbGVTeXN0ZW1CYXNlLmNwcApAQCAtNjAsNiArNjAsNyBAQCBET01GaWxlU3lzdGVtQmFz
ZTo6RE9NRmlsZVN5c3RlbUJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaQogICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
ZmlsZXN5c3RlbVJvb3RVUkwocm9vdFVSTCkKKyAgICAsIG1fY2xvbmFibGUoZmFsc2UpCiAgICAg
LCBtX2FzeW5jRmlsZVN5c3RlbShhc3luY0ZpbGVTeXN0ZW0pCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCmluZGV4
IDhlYTRmZTI0MTljNjA0NWFkMTQ2MWY0ZWE0Mjg2ZjMzZGMzZTEwODQuLjM2ZjkyMzQzYmNkZWQ0
MWFlZTUwMTI1Y2QxZjM4YTA2YjRiNDFmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5oCkBAIC03Niw2ICs3NiwxMiBA
QCBwdWJsaWM6CiAgICAgQXN5bmNGaWxlU3lzdGVtKiBhc3luY0ZpbGVTeXN0ZW0oKSBjb25zdCB7
IHJldHVybiBtX2FzeW5jRmlsZVN5c3RlbS5nZXQoKTsgfQogICAgIFNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgLy8gVGhlIGNsb25hYmxlIGZsYWcgaXMgdXNl
ZCBpbiB0aGUgc3RydWN0dXJlZCBjbG9uZSBhbGdvcml0aG0gdG8gdGVzdAorICAgIC8vIHdoZXRo
ZXIgdGhlIEZpbGVTeXN0ZW0gQVBJIG9iamVjdCBpcyBwZXJtaXR0ZWQgdG8gYmUgY2xvbmVkLiBJ
dCBkZWZhdWx0cworICAgIC8vIHRvIGZhbHNlLCBhbmQgbXVzdCBiZSBleHBsaWNpdGx5IHNldCBi
eSBpbnRlcm5hbCBjb2RlIHBlcm1pdCBjbG9uaW5nLgorICAgIHZvaWQgbWFrZUNsb25hYmxlKCkg
eyBtX2Nsb25hYmxlID0gdHJ1ZTsgfQorICAgIGJvb2wgY2xvbmFibGUoKSBjb25zdCB7IHJldHVy
biBtX2Nsb25hYmxlOyB9CisKICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShGaWxlU3lzdGVt
VHlwZSk7CiAgICAgc3RhdGljIGJvb2wgY3JhY2tGaWxlU3lzdGVtVVJMKGNvbnN0IEtVUkwmLCBG
aWxlU3lzdGVtVHlwZSYsIFN0cmluZyYgZmlsZVBhdGgpOwogICAgIGJvb2wgc3VwcG9ydHNUb1VS
TCgpIGNvbnN0OwpAQCAtMTAyLDYgKzEwOCw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgbV9u
YW1lOwogICAgIEZpbGVTeXN0ZW1UeXBlIG1fdHlwZTsKICAgICBLVVJMIG1fZmlsZXN5c3RlbVJv
b3RVUkw7CisgICAgYm9vbCBtX2Nsb25hYmxlOwogCiAgICAgbXV0YWJsZSBPd25QdHI8QXN5bmNG
aWxlU3lzdGVtPiBtX2FzeW5jRmlsZVN5c3RlbTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA2MGQwNTNiNDJm
ODc0ZWM2YzQ5YzZlMWUyY2IxMWI1Yjc5YmE0ZDUzLi4xNTVmNmQxMzk5Njg2ODdmZmVkNTVmN2M1
YjMxZDMyZjhhMTE1NzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2luY2x1ZGUg
IkFzeW5jRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlICJCbG9iLmgiCkBAIC01NCw2ICs1
NSw5IEBACiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKICNpbmNsdWRlICJWOEJsb2IuaCIKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisjaW5j
bHVkZSAiVjhET01GaWxlU3lzdGVtLmgiCisjZW5kaWYKICNpbmNsdWRlICJWOERhdGFWaWV3Lmgi
CiAjaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVkZSAiVjhGaWxlTGlzdC5oIgpAQCAtMTg3LDYg
KzE5MSw5IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgTnVtYmVyVGFnID0gJ04nLCAv
LyB2YWx1ZTpkb3VibGUgLT4gTnVtYmVyCiAgICAgQmxvYlRhZyA9ICdiJywgLy8gdXJsOldlYkNv
cmVTdHJpbmcsIHR5cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1aW50NjRfdCAtPiBCbG9iIChyZWYp
CiAgICAgRmlsZVRhZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxlIC0+IEZpbGUgKHJlZikKKyNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCisgICAgRE9NRmlsZVN5c3RlbVRhZyA9ICdkJywgLy8gdHlwZTpp
bnQzMl90LCBuYW1lOldlYkNvcmVTdHJpbmcsIHVybDpXZWJDb3JlU3RyaW5nIC0+IEZpbGVTeXN0
ZW0gKHJlZikKKyNlbmRpZgogICAgIEZpbGVMaXN0VGFnID0gJ2wnLCAvLyBsZW5ndGg6dWludDMy
X3QsIGZpbGVzOlJhd0ZpbGVbbGVuZ3RoXSAtPiBGaWxlTGlzdCAocmVmKQogICAgIEltYWdlRGF0
YVRhZyA9ICcjJywgLy8gd2lkdGg6dWludDMyX3QsIGhlaWdodDp1aW50MzJfdCwgcGl4ZWxEYXRh
TGVuZ3RoOnVpbnQzMl90LCBkYXRhOmJ5dGVbcGl4ZWxEYXRhTGVuZ3RoXSAtPiBJbWFnZURhdGEg
KHJlZikKICAgICBPYmplY3RUYWcgPSAneycsIC8vIG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4g
cG9wcyB0aGUgbGFzdCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKQEAgLTM2MCw2ICszNjcs
MTYgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlVWludDY0KHNpemUpOwogICAgIH0KIAorI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICB2b2lkIHdyaXRlRE9NRmlsZVN5c3RlbShpbnQgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAg
IGFwcGVuZChET01GaWxlU3lzdGVtVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMih0eXBlKTsK
KyAgICAgICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7CisgICAgICAgIGRvV3JpdGVXZWJD
b3JlU3RyaW5nKHVybCk7CisgICAgfQorI2VuZGlmCisKICAgICB2b2lkIHdyaXRlRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUpCiAg
ICAgewogICAgICAgICBhcHBlbmQoRmlsZVRhZyk7CkBAIC05ODIsNiArOTk5LDE5IEBAIHByaXZh
dGU6CiAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVybCgpLnN0cmluZygpKTsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgU3RhdGVCYXNlKiB3cml0ZURPTUZp
bGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0ZUJhc2UqIG5leHQpCisg
ICAgeworICAgICAgICBET01GaWxlU3lzdGVtKiBmcyA9IFY4RE9NRmlsZVN5c3RlbTo6dG9OYXRp
dmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CisgICAgICAgIGlmICghZnMpCisgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFmcy0+Y2xvbmFibGUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBoYW5kbGVFcnJvcihEYXRhQ2xvbmVFcnJvciwgbmV4dCk7CisgICAgICAgIG1fd3JpdGVy
LndyaXRlRE9NRmlsZVN5c3RlbShmcy0+dHlwZSgpLCBmcy0+bmFtZSgpLCBmcy0+cm9vdFVSTCgp
LnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmCisKICAgICB2b2lk
IHdyaXRlRmlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgewogICAgICAgICBG
aWxlKiBmaWxlID0gVjhGaWxlOjp0b05hdGl2ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKQEAg
LTExODMsNiArMTIxMywxMCBAQCBTZXJpYWxpemVyOjpTdGF0ZUJhc2UqIFNlcmlhbGl6ZXI6OmRv
U2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdAogICAgICAgICAgICAg
d3JpdGVGaWxlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZSh2
YWx1ZSkpCiAgICAgICAgICAgICB3cml0ZUJsb2IodmFsdWUpOworI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKKyAgICAgICAgZWxzZSBpZiAoVjhET01GaWxlU3lzdGVtOjpIYXNJbnN0YW5jZSh2YWx1
ZSkpCisgICAgICAgICAgICByZXR1cm4gd3JpdGVET01GaWxlU3lzdGVtKHZhbHVlLCBuZXh0KTsK
KyNlbmRpZgogICAgICAgICBlbHNlIGlmIChWOEZpbGVMaXN0OjpIYXNJbnN0YW5jZSh2YWx1ZSkp
CiAgICAgICAgICAgICB3cml0ZUZpbGVMaXN0KHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoVjhJ
bWFnZURhdGE6Okhhc0luc3RhbmNlKHZhbHVlKSkKQEAgLTEzMjAsNiArMTM1NCwxMyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY3JlYXRvci5w
dXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFC
TEUoRklMRV9TWVNURU0pCisgICAgICAgIGNhc2UgRE9NRmlsZVN5c3RlbVRhZzoKKyAgICAgICAg
ICAgIGlmICghcmVhZERPTUZpbGVTeXN0ZW0odmFsdWUpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUp
OworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBGaWxlTGlzdFRhZzoK
ICAgICAgICAgICAgIGlmICghcmVhZEZpbGVMaXN0KHZhbHVlKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xNzI5LDYgKzE3NzAsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIGJvb2wgcmVh
ZERPTUZpbGVTeXN0ZW0odjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIHVpbnQzMl90IHR5cGU7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBTdHJpbmcg
dXJsOworICAgICAgICBpZiAoIWRvUmVhZFVpbnQzMigmdHlwZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICghcmVhZFdlYkNvcmVTdHJpbmcoJm5hbWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZ1cmwp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBSZWZQdHI8RE9NRmlsZVN5c3Rl
bT4gZnMgPSBET01GaWxlU3lzdGVtOjpjcmVhdGUoZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBuYW1lLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaWxlU3lzdGVtVHlwZT4odHlwZSksIEtVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBBc3luY0ZpbGVTeXN0ZW06OmNyZWF0ZSgpKTsKKyAgICAg
ICAgKnZhbHVlID0gdG9WOChmcy5yZWxlYXNlKCksIG1faXNvbGF0ZSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgYm9vbCByZWFkRmlsZSh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsKICAgICAgICAgU3RyaW5nIHBhdGg7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3luY0ZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAK
aW5kZXggZWI1MDIxMDAzM2IzMGNmZTI2NGU4YmQ5NmFjNmQwNDBkNjgyOWIxMC4uNGNiMTE1YzJj
NmNmMDQ4MGNhNDgyODQ1NGI2YjAxMTg3N2VlMjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0FzeW5jRmlsZVN5c3RlbUNocm9taXVtLmNwcApAQCAtOTIsNiAr
OTIsMTIgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlCiAKIC8vIHN0YXRpYworUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IEFzeW5jRmlsZVN5c3RlbTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1
cm4gQXN5bmNGaWxlU3lzdGVtQ2hyb21pdW06OmNyZWF0ZSgpOworfQorCisvLyBzdGF0aWMKIGJv
b2wgQXN5bmNGaWxlU3lzdGVtOjppc0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMGQyMmZlMzllNWY4NzVlZGRmN2ZmMmRjZDhmOGRlZmQwNWJhMGZmOS4uNmJmNTdiMWEw
MzM5OWVjZDA1MTQ4ZDVlYzQ3N2ZiYjk5YjA2YTQxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTA2LTExICBHcmVnIEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgorCisgICAgICAg
IEFkZCBmaWxlc3lzdGVtIHJlZ3Jlc3Npb24gdGVzdCB0byBjaGVjayB0aGF0IHRoZSBmaWxlc3lz
dGVtIG9iamVjdCBpcworICAgICAgICBub3Qgc2VyaWFsaXphYmxlIGFzIGNyZWF0ZWQgYnkgamF2
YXNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6
YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3Rz
L2ZpbGVzeXN0ZW0tdW5zZXJpYWxpemFibGUuanM6IEFkZGVkLgorCiAyMDEyLTA2LTExICBTemls
YXJkIExlZGFuICA8c3psZWRhbkBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBHYXJk
ZW5pbmcsIHNraXAgbmV3IGZhaWxpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA3YzhlMWJkMTJiOTIxYzRiZjNmOTlmODE5NzhiMGYyZWZh
MmUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxl
c3lzdGVtLXVuc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlz
IHRlc3RzIGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBpcyB1bnNlcmlhbGl6YWJsZSBieSBkZWZh
dWx0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitEQVRBX0NMT05FX0VSUjogRE9N
IEV4Y2VwdGlvbiAyNQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9maWxlc3lz
dGVtLXVuc2VyaWFsaXphYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmls
ZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYzYxNjc4MjgzZTkyYmUx
NWFhYzczZGM0ODQ0ZWIwNjM2MTRkODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1sCkBAIC0wLDAgKzEs
MTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGls
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
ZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YTQwOTE0YWU5NGJiZDkwY2YwNGQzZDk5MGYxYTdmNWY3ZTA4ZDdmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9maWxlc3lzdGVtLXVu
c2VyaWFsaXphYmxlLmpzCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBpcyB1bnNlcmlhbGl6YWJsZSBieSBkZWZhdWx0Iik7
CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2soZXJyb3IpCit7CisgICAgdGVzdEZhaWxlZCgiRXJy
b3Igb2NjdXJyZWQ6ICIgKyBlcnJvci5jb2RlKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZnVuY3Rpb24gZmlsZVN5c3RlbUNhbGxiYWNrKGZzKQoreworICAgIHRyeSB7CisgICAgICAgIHBv
c3RNZXNzYWdlKGZzLCAnKicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZGVidWcoZS5t
ZXNzYWdlKTsKKyAgICB9CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gb25t
ZXNzYWdlKCkKK3sKK30KKworaWYgKHdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSkgewor
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdlLCBmYWxzZSk7
CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHdlYmtpdFJlcXVlc3RGaWxl
U3lzdGVtKHdpbmRvdy5URU1QT1JBUlksIDEwMCwgZmlsZVN5c3RlbUNhbGxiYWNrLCBlcnJvckNh
bGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3Rl
bSBBUEkgc3VwcG9ydC4iKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148356</attachid>
            <date>2012-06-19 10:29:07 -0700</date>
            <delta_ts>2012-06-19 16:17:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120619102907.patch</filename>
            <type>text/plain</type>
            <size>10483</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkM2Q0NWJmZWU1OTRh
YTBhMjg3NmIwYTFkZjg4NDZhZTc2OTU2My4uMThhYTViMDRhYTQ5MGJiOTQ4ZWU1NjgzN2I3OGRk
YTVjMDE0ZmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYWxsb3cgRmlsZVN5c3RlbSBB
UEkgb2JqZWN0cyB0byBiZSBkaXNwYXRjaGVkIHRvCisgICAgICAgIHdlYiBjb250ZW50IGluIG9y
ZGVyIHRvIGVuYWJsZSwgZm9yIGluc3RhbmNlLCBhbiBpbnRlbnQgbm90aWZ5aW5nIHdlYgorICAg
ICAgICBjb250ZW50IHRoYXQgYSBwYXJ0aWN1bGFyIGZpbGVzeXN0ZW0gaGFzIGJlZW4gbW91bnRl
ZCBieSB0aGUgbG9jYWwKKyAgICAgICAgc3lzdGVtLiBUaGUgZ29hbCBhdCB0aGlzIHBvaW50IGlz
IG5vdCB0byBlbmFibGUgYWNyb3NzLXRoZS1ib2FyZAorICAgICAgICBjbG9uYWJpbGl0eSwgYnV0
IGp1c3QgZm9yIGhhbmRsaW5nIHRoZSBwYXJ0aWN1bGFyIHVzZSBjYXNlLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlRE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRET01GaWxlU3lzdGVtKToKKwogMjAxMi0wNi0x
OCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBGb250
Y29uZmlnIGNhbid0IGJlIGxpbmtlZCBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKaW5kZXggNDY5MzEw
ZTMwNTY5MTljYjlmZDg0MmU0YzdkZjViNzBiOTRmNmZlNC4uZDkzOGI4MDI1NjA4NWQ0MGNjZWE0
NjQ0YjA1NjliYTI5OTgyNWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCkBAIC02Miw2ICs2Miw3IEBAIERP
TUZpbGVTeXN0ZW1CYXNlOjpET01GaWxlU3lzdGVtQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fdHlwZSh0
eXBlKQogICAgICwgbV9maWxlc3lzdGVtUm9vdFVSTChyb290VVJMKQorICAgICwgbV9jbG9uYWJs
ZShmYWxzZSkKICAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lz
dGVtQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0
ZW1CYXNlLmgKaW5kZXggMTA5ZWM3YzIwNDNlODNlMzk2YzNiNmE4ZjgwODkwNzk2OTc0M2VjOS4u
YTM3Y2FiMDRiOGU1ZGE0N2EyMjY2NDA0NDI5NGExMTEwZWNiZmExYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKQEAg
LTc4LDYgKzc4LDEyIEBAIHB1YmxpYzoKICAgICBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5
c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNGaWxlU3lzdGVtLmdldCgpOyB9CiAgICAgU2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKKyAgICAvLyBUaGUgY2xvbmFi
bGUgZmxhZyBpcyB1c2VkIGluIHRoZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSB0byB0ZXN0
CisgICAgLy8gd2hldGhlciB0aGUgRmlsZVN5c3RlbSBBUEkgb2JqZWN0IGlzIHBlcm1pdHRlZCB0
byBiZSBjbG9uZWQuIEl0IGRlZmF1bHRzCisgICAgLy8gdG8gZmFsc2UsIGFuZCBtdXN0IGJlIGV4
cGxpY2l0bHkgc2V0IGJ5IGludGVybmFsIGNvZGUgcGVybWl0IGNsb25pbmcuCisgICAgdm9pZCBt
YWtlQ2xvbmFibGUoKSB7IG1fY2xvbmFibGUgPSB0cnVlOyB9CisgICAgYm9vbCBjbG9uYWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xvbmFibGU7IH0KKwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRU
eXBlKEZpbGVTeXN0ZW1UeXBlKTsKICAgICBzdGF0aWMgYm9vbCBjcmFja0ZpbGVTeXN0ZW1VUkwo
Y29uc3QgS1VSTCYsIEZpbGVTeXN0ZW1UeXBlJiwgU3RyaW5nJiBmaWxlUGF0aCk7CiAgICAgYm9v
bCBzdXBwb3J0c1RvVVJMKCkgY29uc3Q7CkBAIC0xMDQsNiArMTEwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIFN0cmluZyBtX25hbWU7CiAgICAgRmlsZVN5c3RlbVR5cGUgbV90eXBlOwogICAgIEtVUkwg
bV9maWxlc3lzdGVtUm9vdFVSTDsKKyAgICBib29sIG1fY2xvbmFibGU7CiAKICAgICBtdXRhYmxl
IE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IDYwZDA1M2I0MmY4NzRlYzZjNDljNmUxZTJjYjExYjViNzliYTRkNTMuLjE1NWY2ZDEzOTk2
ODY4N2ZmZWQ1NWY3YzViMzFkMzJmOGExMTU3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgogCisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSA8d3RmL0FycmF5QnVm
ZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgIkJsb2Iu
aCIKQEAgLTU0LDYgKzU1LDkgQEAKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2lu
Y2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmxvYi5oIgorI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKyNpbmNsdWRlICJWOERPTUZpbGVTeXN0ZW0uaCIKKyNlbmRpZgogI2luY2x1ZGUg
IlY4RGF0YVZpZXcuaCIKICNpbmNsdWRlICJWOEZpbGUuaCIKICNpbmNsdWRlICJWOEZpbGVMaXN0
LmgiCkBAIC0xODcsNiArMTkxLDkgQEAgZW51bSBTZXJpYWxpemF0aW9uVGFnIHsKICAgICBOdW1i
ZXJUYWcgPSAnTicsIC8vIHZhbHVlOmRvdWJsZSAtPiBOdW1iZXIKICAgICBCbG9iVGFnID0gJ2In
LCAvLyB1cmw6V2ViQ29yZVN0cmluZywgdHlwZTpXZWJDb3JlU3RyaW5nLCBzaXplOnVpbnQ2NF90
IC0+IEJsb2IgKHJlZikKICAgICBGaWxlVGFnID0gJ2YnLCAvLyBmaWxlOlJhd0ZpbGUgLT4gRmls
ZSAocmVmKQorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBET01GaWxlU3lzdGVtVGFnID0g
J2QnLCAvLyB0eXBlOmludDMyX3QsIG5hbWU6V2ViQ29yZVN0cmluZywgdXJsOldlYkNvcmVTdHJp
bmcgLT4gRmlsZVN5c3RlbSAocmVmKQorI2VuZGlmCiAgICAgRmlsZUxpc3RUYWcgPSAnbCcsIC8v
IGxlbmd0aDp1aW50MzJfdCwgZmlsZXM6UmF3RmlsZVtsZW5ndGhdIC0+IEZpbGVMaXN0IChyZWYp
CiAgICAgSW1hZ2VEYXRhVGFnID0gJyMnLCAvLyB3aWR0aDp1aW50MzJfdCwgaGVpZ2h0OnVpbnQz
Ml90LCBwaXhlbERhdGFMZW5ndGg6dWludDMyX3QsIGRhdGE6Ynl0ZVtwaXhlbERhdGFMZW5ndGhd
IC0+IEltYWdlRGF0YSAocmVmKQogICAgIE9iamVjdFRhZyA9ICd7JywgLy8gbnVtUHJvcGVydGll
czp1aW50MzJfdCAtPiBwb3BzIHRoZSBsYXN0IG9iamVjdCBmcm9tIHRoZSBvcGVuIHN0YWNrOwpA
QCAtMzYwLDYgKzM2NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIGRvV3JpdGVVaW50NjQoc2l6ZSk7
CiAgICAgfQogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHZvaWQgd3JpdGVET01GaWxl
U3lzdGVtKGludCB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXJsKQor
ICAgIHsKKyAgICAgICAgYXBwZW5kKERPTUZpbGVTeXN0ZW1UYWcpOworICAgICAgICBkb1dyaXRl
VWludDMyKHR5cGUpOworICAgICAgICBkb1dyaXRlV2ViQ29yZVN0cmluZyhuYW1lKTsKKyAgICAg
ICAgZG9Xcml0ZVdlYkNvcmVTdHJpbmcodXJsKTsKKyAgICB9CisjZW5kaWYKKwogICAgIHZvaWQg
d3JpdGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgdHlwZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChGaWxlVGFnKTsKQEAgLTk4Miw2ICs5
OTksMTkgQEAgcHJpdmF0ZToKICAgICAgICAgbV9ibG9iVVJMcy5hcHBlbmQoYmxvYi0+dXJsKCku
c3RyaW5nKCkpOwogICAgIH0KIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBTdGF0ZUJh
c2UqIHdyaXRlRE9NRmlsZVN5c3RlbSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXRl
QmFzZSogbmV4dCkKKyAgICB7CisgICAgICAgIERPTUZpbGVTeXN0ZW0qIGZzID0gVjhET01GaWxl
U3lzdGVtOjp0b05hdGl2ZSh2YWx1ZS5Bczx2ODo6T2JqZWN0PigpKTsKKyAgICAgICAgaWYgKCFm
cykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAoIWZzLT5jbG9uYWJsZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKKyAg
ICAgICAgbV93cml0ZXIud3JpdGVET01GaWxlU3lzdGVtKGZzLT50eXBlKCksIGZzLT5uYW1lKCks
IGZzLT5yb290VVJMKCkuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5k
aWYKKwogICAgIHZvaWQgd3JpdGVGaWxlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAg
ICB7CiAgICAgICAgIEZpbGUqIGZpbGUgPSBWOEZpbGU6OnRvTmF0aXZlKHZhbHVlLkFzPHY4OjpP
YmplY3Q+KCkpOwpAQCAtMTE4Myw2ICsxMjEzLDEwIEBAIFNlcmlhbGl6ZXI6OlN0YXRlQmFzZSog
U2VyaWFsaXplcjo6ZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0
CiAgICAgICAgICAgICB3cml0ZUZpbGUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChWOEJsb2I6
Okhhc0luc3RhbmNlKHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlQmxvYih2YWx1ZSk7CisjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQorICAgICAgICBlbHNlIGlmIChWOERPTUZpbGVTeXN0ZW06Okhh
c0luc3RhbmNlKHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiB3cml0ZURPTUZpbGVTeXN0ZW0o
dmFsdWUsIG5leHQpOworI2VuZGlmCiAgICAgICAgIGVsc2UgaWYgKFY4RmlsZUxpc3Q6Okhhc0lu
c3RhbmNlKHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlRmlsZUxpc3QodmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChWOEltYWdlRGF0YTo6SGFzSW5zdGFuY2UodmFsdWUpKQpAQCAtMTMyMCw2ICsx
MzU0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKICAgICAgICAgICAgIGJy
ZWFrOworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICAgICAgY2FzZSBET01GaWxlU3lzdGVt
VGFnOgorICAgICAgICAgICAgaWYgKCFyZWFkRE9NRmlsZVN5c3RlbSh2YWx1ZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVm
ZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBjYXNl
IEZpbGVMaXN0VGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkRmlsZUxpc3QodmFsdWUpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE3MjksNiArMTc3MCwyNCBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0p
CisgICAgYm9vbCByZWFkRE9NRmlsZVN5c3RlbSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVl
KQorICAgIHsKKyAgICAgICAgdWludDMyX3QgdHlwZTsKKyAgICAgICAgU3RyaW5nIG5hbWU7Cisg
ICAgICAgIFN0cmluZyB1cmw7CisgICAgICAgIGlmICghZG9SZWFkVWludDMyKCZ0eXBlKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFyZWFkV2ViQ29yZVN0cmluZygm
bmFtZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghcmVhZFdlYkNv
cmVTdHJpbmcoJnVybCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIFJlZlB0
cjxET01GaWxlU3lzdGVtPiBmcyA9IERPTUZpbGVTeXN0ZW06OmNyZWF0ZShnZXRTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIG5hbWUsIHN0YXRpY19jYXN0PFdlYkNvcmU6OkZpbGVTeXN0ZW1UeXBl
Pih0eXBlKSwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCksIEFzeW5jRmlsZVN5c3RlbTo6Y3Jl
YXRlKCkpOworICAgICAgICAqdmFsdWUgPSB0b1Y4KGZzLnJlbGVhc2UoKSwgbV9pc29sYXRlKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisKICAgICBib29sIHJlYWRGaWxl
KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCiAgICAgewogICAgICAgICBTdHJpbmcgcGF0
aDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBhYmZkYmIwOTM4MTQ0MDgzNWMyZjBmNjQyOWYwMTk3NzQwYTc5OGJjLi5kYTY0
NDZmZTI0NWFiMGJkMmM3MDI2MWM3ZDFhMjJmYzM4MWZiNDg5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDYtMTEgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgQWRkIGZpbGVzeXN0ZW0gcmVncmVzc2lvbiB0ZXN0IHRvIGNoZWNrIHRoYXQgdGhlIGZp
bGVzeXN0ZW0gb2JqZWN0IGlzCisgICAgICAgIG5vdCBzZXJpYWxpemFibGUgYXMgY3JlYXRlZCBi
eSBqYXZhc2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODgyNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZmlsZXN5c3RlbS9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9maWxlc3lzdGVtLXVuc2Vy
aWFsaXphYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQt
dGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qczogQWRkZWQuCisKIDIwMTItMDYtMTgg
IFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIEdUSyBnYXJkZW5pbmcsIHVwZGF0aW5nIGJhc2VsaW5lcyBhZnRlciByb2xsb3V0cyBpbiBy
MTIwNjI3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGVzeXN0
ZW0tdW5zZXJpYWxpemFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL2ZpbGVzeXN0ZW0tdW5zZXJpYWxpemFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYw
N2M4ZTFiZDEyYjkyMWM0YmYzZjk5ZjgxOTc4YjBmMmVmYTJlMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0cyBpZiB0aGUgZmlsZXN5c3Rl
bSBvYmplY3QgaXMgdW5zZXJpYWxpemFibGUgYnkgZGVmYXVsdAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGVzeXN0ZW0tdW5zZXJpYWxpemFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYmM2MTY3ODI4M2U5MmJlMTVhYWM3M2RjNDg0NGViMDYzNjE0ZDg5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2ZpbGVzeXN0
ZW0tdW5zZXJpYWxpemFibGUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6
YWJsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZpbGVzeXN0ZW0tdW5zZXJpYWxpemFi
bGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZpbGVzeXN0
ZW0tdW5zZXJpYWxpemFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE0MDkxNGFlOTRiYmQ5MGNmMDRkM2Q5
OTBmMWE3ZjVmN2UwOGQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcwpAQCAtMCww
ICsxLDI5IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBpZiB0aGUgZmlsZXN5c3RlbSBvYmpl
Y3QgaXMgdW5zZXJpYWxpemFibGUgYnkgZGVmYXVsdCIpOworCitmdW5jdGlvbiBlcnJvckNhbGxi
YWNrKGVycm9yKQoreworICAgIHRlc3RGYWlsZWQoIkVycm9yIG9jY3VycmVkOiAiICsgZXJyb3Iu
Y29kZSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZpbGVTeXN0ZW1DYWxs
YmFjayhmcykKK3sKKyAgICB0cnkgeworICAgICAgICBwb3N0TWVzc2FnZShmcywgJyonKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGRlYnVnKGUubWVzc2FnZSk7CisgICAgfQorCisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG9ubWVzc2FnZSgpCit7Cit9CisKK2lmICh3
aW5kb3cud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0pIHsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIG9ubWVzc2FnZSwgZmFsc2UpOworICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICB3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSh3aW5kb3cuVEVNUE9SQVJZ
LCAxMDAsIGZpbGVTeXN0ZW1DYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7Cit9IGVsc2UKKyAgICBk
ZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148453</attachid>
            <date>2012-06-19 16:17:16 -0700</date>
            <delta_ts>2012-06-19 17:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88267-20120619161715.patch</filename>
            <type>text/plain</type>
            <size>11484</size>
            <attacher name="Greg Billock">gbillock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FkM2Q0NWJmZWU1OTRh
YTBhMjg3NmIwYTFkZjg4NDZhZTc2OTU2My4uMThhYTViMDRhYTQ5MGJiOTQ4ZWU1NjgzN2I3OGRk
YTVjMDE0ZmY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBTdGV2
ZSBWYW5EZUJvZ2FydCAgPHZhbmRlYm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgRE9N
RmlsZVN5c3RlbSBzZWxlY3RpdmVseSBzdHJ1Y3R1cmUgY2xvbmFibGUgc28gaXQgY2FuIGJlIHRo
ZSBib2R5IG9mIGEgd2ViIGludGVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg4MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYWxsb3cgRmlsZVN5c3RlbSBB
UEkgb2JqZWN0cyB0byBiZSBkaXNwYXRjaGVkIHRvCisgICAgICAgIHdlYiBjb250ZW50IGluIG9y
ZGVyIHRvIGVuYWJsZSwgZm9yIGluc3RhbmNlLCBhbiBpbnRlbnQgbm90aWZ5aW5nIHdlYgorICAg
ICAgICBjb250ZW50IHRoYXQgYSBwYXJ0aWN1bGFyIGZpbGVzeXN0ZW0gaGFzIGJlZW4gbW91bnRl
ZCBieSB0aGUgbG9jYWwKKyAgICAgICAgc3lzdGVtLiBUaGUgZ29hbCBhdCB0aGlzIHBvaW50IGlz
IG5vdCB0byBlbmFibGUgYWNyb3NzLXRoZS1ib2FyZAorICAgICAgICBjbG9uYWJpbGl0eSwgYnV0
IGp1c3QgZm9yIGhhbmRsaW5nIHRoZSBwYXJ0aWN1bGFyIHVzZSBjYXNlLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlRE9NRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3JpdGVET01GaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRET01GaWxlU3lzdGVtKToKKwogMjAxMi0wNi0x
OCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBGb250
Y29uZmlnIGNhbid0IGJlIGxpbmtlZCBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKaW5kZXggNDY5MzEw
ZTMwNTY5MTljYjlmZDg0MmU0YzdkZjViNzBiOTRmNmZlNC4uZDkzOGI4MDI1NjA4NWQ0MGNjZWE0
NjQ0YjA1NjliYTI5OTgyNWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbUJhc2UuY3BwCkBAIC02Miw2ICs2Miw3IEBAIERP
TUZpbGVTeXN0ZW1CYXNlOjpET01GaWxlU3lzdGVtQmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fdHlwZSh0
eXBlKQogICAgICwgbV9maWxlc3lzdGVtUm9vdFVSTChyb290VVJMKQorICAgICwgbV9jbG9uYWJs
ZShmYWxzZSkKICAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lz
dGVtQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0
ZW1CYXNlLmgKaW5kZXggMTA5ZWM3YzIwNDNlODNlMzk2YzNiNmE4ZjgwODkwNzk2OTc0M2VjOS4u
YTM3Y2FiMDRiOGU1ZGE0N2EyMjY2NDA0NDI5NGExMTEwZWNiZmExYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1CYXNlLmgKQEAg
LTc4LDYgKzc4LDEyIEBAIHB1YmxpYzoKICAgICBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5
c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fYXN5bmNGaWxlU3lzdGVtLmdldCgpOyB9CiAgICAgU2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKKyAgICAvLyBUaGUgY2xvbmFi
bGUgZmxhZyBpcyB1c2VkIGluIHRoZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSB0byB0ZXN0
CisgICAgLy8gd2hldGhlciB0aGUgRmlsZVN5c3RlbSBBUEkgb2JqZWN0IGlzIHBlcm1pdHRlZCB0
byBiZSBjbG9uZWQuIEl0IGRlZmF1bHRzCisgICAgLy8gdG8gZmFsc2UsIGFuZCBtdXN0IGJlIGV4
cGxpY2l0bHkgc2V0IGJ5IGludGVybmFsIGNvZGUgcGVybWl0IGNsb25pbmcuCisgICAgdm9pZCBt
YWtlQ2xvbmFibGUoKSB7IG1fY2xvbmFibGUgPSB0cnVlOyB9CisgICAgYm9vbCBjbG9uYWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xvbmFibGU7IH0KKwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRU
eXBlKEZpbGVTeXN0ZW1UeXBlKTsKICAgICBzdGF0aWMgYm9vbCBjcmFja0ZpbGVTeXN0ZW1VUkwo
Y29uc3QgS1VSTCYsIEZpbGVTeXN0ZW1UeXBlJiwgU3RyaW5nJiBmaWxlUGF0aCk7CiAgICAgYm9v
bCBzdXBwb3J0c1RvVVJMKCkgY29uc3Q7CkBAIC0xMDQsNiArMTEwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIFN0cmluZyBtX25hbWU7CiAgICAgRmlsZVN5c3RlbVR5cGUgbV90eXBlOwogICAgIEtVUkwg
bV9maWxlc3lzdGVtUm9vdFVSTDsKKyAgICBib29sIG1fY2xvbmFibGU7CiAKICAgICBtdXRhYmxl
IE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lzdGVtOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IDYwZDA1M2I0MmY4NzRlYzZjNDljNmUxZTJjYjExYjViNzliYTRkNTMuLmVjYmEyZTA2Mzcz
MWUzNGM0YmFjNTAxYjcwNDBiYzgxMmM5Y2Q3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMzEsMjUgKzMxLDE1
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAKLSNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvQXJyYXlC
dWZmZXJWaWV3Lmg+CisjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiQmxv
Yi5oIgogI2luY2x1ZGUgIkRhdGFWaWV3LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGaWxlTGlzdC5oIgotI2luY2x1ZGUgPHd0Zi9G
bG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CiAjaW5jbHVkZSAi
SW1hZ2VEYXRhLmgiCi0jaW5jbHVkZSA8d3RmL0ludDE2QXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYv
SW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9JbnQ4QXJyYXkuaD4KICNpbmNsdWRlICJNZXNz
YWdlUG9ydC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgPHd0Zi9VaW50
MTZBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9VaW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9V
aW50OEFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVk
ZSAiVjhBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCiAjaW5j
bHVkZSAiVjhCaW5kaW5nLmgiCkBAIC03MSwxMCArNjEsMjUgQEAKICNpbmNsdWRlICJWOFVpbnQ4
Q2xhbXBlZEFycmF5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKIAorI2luY2x1ZGUgPHd0
Zi9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9GbG9hdDMyQXJyYXkuaD4KKyNp
bmNsdWRlIDx3dGYvRmxvYXQ2NEFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL0ludDE2QXJyYXkuaD4K
KyNpbmNsdWRlIDx3dGYvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9JbnQ4QXJyYXkuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9VaW50MTZBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9VaW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5
Lmg+CisjaW5jbHVkZSA8d3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorI2luY2x1ZGUgIlY4RE9NRmlsZVN5
c3RlbS5oIgorI2VuZGlmCisKIC8vIEZJWE1FOiBjb25zaWRlciBjcmFzaGluZyBpbiBkZWJ1ZyBt
b2RlIG9uIGRlc2VyaWFsaXphdGlvbiBlcnJvcnMKIC8vIE5PVEU6IGJlIHN1cmUgdG8gY2hhbmdl
IHdpcmVGb3JtYXRWZXJzaW9uIGFzIG5lY2Vzc2FyeSEKIApAQCAtMTg3LDYgKzE5Miw5IEBAIGVu
dW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgTnVtYmVyVGFnID0gJ04nLCAvLyB2YWx1ZTpkb3Vi
bGUgLT4gTnVtYmVyCiAgICAgQmxvYlRhZyA9ICdiJywgLy8gdXJsOldlYkNvcmVTdHJpbmcsIHR5
cGU6V2ViQ29yZVN0cmluZywgc2l6ZTp1aW50NjRfdCAtPiBCbG9iIChyZWYpCiAgICAgRmlsZVRh
ZyA9ICdmJywgLy8gZmlsZTpSYXdGaWxlIC0+IEZpbGUgKHJlZikKKyNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCisgICAgRE9NRmlsZVN5c3RlbVRhZyA9ICdkJywgLy8gdHlwZTppbnQzMl90LCBuYW1l
OldlYkNvcmVTdHJpbmcsIHVybDpXZWJDb3JlU3RyaW5nIC0+IEZpbGVTeXN0ZW0gKHJlZikKKyNl
bmRpZgogICAgIEZpbGVMaXN0VGFnID0gJ2wnLCAvLyBsZW5ndGg6dWludDMyX3QsIGZpbGVzOlJh
d0ZpbGVbbGVuZ3RoXSAtPiBGaWxlTGlzdCAocmVmKQogICAgIEltYWdlRGF0YVRhZyA9ICcjJywg
Ly8gd2lkdGg6dWludDMyX3QsIGhlaWdodDp1aW50MzJfdCwgcGl4ZWxEYXRhTGVuZ3RoOnVpbnQz
Ml90LCBkYXRhOmJ5dGVbcGl4ZWxEYXRhTGVuZ3RoXSAtPiBJbWFnZURhdGEgKHJlZikKICAgICBP
YmplY3RUYWcgPSAneycsIC8vIG51bVByb3BlcnRpZXM6dWludDMyX3QgLT4gcG9wcyB0aGUgbGFz
dCBvYmplY3QgZnJvbSB0aGUgb3BlbiBzdGFjazsKQEAgLTM2MCw2ICszNjgsMTYgQEAgcHVibGlj
OgogICAgICAgICBkb1dyaXRlVWludDY0KHNpemUpOwogICAgIH0KIAorI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKyAgICB2b2lkIHdyaXRlRE9NRmlsZVN5c3RlbShpbnQgdHlwZSwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVybCkKKyAgICB7CisgICAgICAgIGFwcGVuZChET01G
aWxlU3lzdGVtVGFnKTsKKyAgICAgICAgZG9Xcml0ZVVpbnQzMih0eXBlKTsKKyAgICAgICAgZG9X
cml0ZVdlYkNvcmVTdHJpbmcobmFtZSk7CisgICAgICAgIGRvV3JpdGVXZWJDb3JlU3RyaW5nKHVy
bCk7CisgICAgfQorI2VuZGlmCisKICAgICB2b2lkIHdyaXRlRmlsZShjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgewogICAgICAg
ICBhcHBlbmQoRmlsZVRhZyk7CkBAIC05ODIsNiArMTAwMCwxOSBAQCBwcml2YXRlOgogICAgICAg
ICBtX2Jsb2JVUkxzLmFwcGVuZChibG9iLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCisjaWYg
RU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIFN0YXRlQmFzZSogd3JpdGVET01GaWxlU3lzdGVtKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSwgU3RhdGVCYXNlKiBuZXh0KQorICAgIHsKKyAgICAg
ICAgRE9NRmlsZVN5c3RlbSogZnMgPSBWOERPTUZpbGVTeXN0ZW06OnRvTmF0aXZlKHZhbHVlLkFz
PHY4OjpPYmplY3Q+KCkpOworICAgICAgICBpZiAoIWZzKQorICAgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIGlmICghZnMtPmNsb25hYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gaGFuZGxl
RXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOworICAgICAgICBtX3dyaXRlci53cml0ZURPTUZp
bGVTeXN0ZW0oZnMtPnR5cGUoKSwgZnMtPm5hbWUoKSwgZnMtPnJvb3RVUkwoKS5zdHJpbmcoKSk7
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZgorCiAgICAgdm9pZCB3cml0ZUZpbGUo
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgRmlsZSogZmlsZSA9
IFY4RmlsZTo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xMTgzLDYgKzEy
MTQsMTAgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgICAgIHdyaXRlRmlsZSh2
YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKFY4QmxvYjo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAg
ICAgICAgICAgd3JpdGVCbG9iKHZhbHVlKTsKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAg
ICAgIGVsc2UgaWYgKFY4RE9NRmlsZVN5c3RlbTo6SGFzSW5zdGFuY2UodmFsdWUpKQorICAgICAg
ICAgICAgcmV0dXJuIHdyaXRlRE9NRmlsZVN5c3RlbSh2YWx1ZSwgbmV4dCk7CisjZW5kaWYKICAg
ICAgICAgZWxzZSBpZiAoVjhGaWxlTGlzdDo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAgICAg
ICAgd3JpdGVGaWxlTGlzdCh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKFY4SW1hZ2VEYXRhOjpI
YXNJbnN0YW5jZSh2YWx1ZSkpCkBAIC0xMzIwLDYgKzEzNTUsMTMgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJl
ZmVyZW5jZSgqdmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKEZJTEVfU1lT
VEVNKQorICAgICAgICBjYXNlIERPTUZpbGVTeXN0ZW1UYWc6CisgICAgICAgICAgICBpZiAoIXJl
YWRET01GaWxlU3lzdGVtKHZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGNhc2UgRmlsZUxpc3RUYWc6CiAgICAgICAgICAg
ICBpZiAoIXJlYWRGaWxlTGlzdCh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTcyOSw2ICsxNzcxLDI0IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBib29sIHJlYWRET01GaWxlU3lz
dGVtKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB1aW50MzJf
dCB0eXBlOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgU3RyaW5nIHVybDsKKyAgICAg
ICAgaWYgKCFkb1JlYWRVaW50MzIoJnR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAoIXJlYWRXZWJDb3JlU3RyaW5nKCZuYW1lKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKCFyZWFkV2ViQ29yZVN0cmluZygmdXJsKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUmVmUHRyPERPTUZpbGVTeXN0ZW0+IGZzID0gRE9N
RmlsZVN5c3RlbTo6Y3JlYXRlKGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbmFtZSwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RmlsZVN5c3RlbVR5cGU+KHR5cGUpLCBLVVJMKFBhcnNlZFVSTFN0
cmluZywgdXJsKSwgQXN5bmNGaWxlU3lzdGVtOjpjcmVhdGUoKSk7CisgICAgICAgICp2YWx1ZSA9
IHRvVjgoZnMucmVsZWFzZSgpLCBtX2lzb2xhdGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisjZW5kaWYKKwogICAgIGJvb2wgcmVhZEZpbGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2
YWx1ZSkKICAgICB7CiAgICAgICAgIFN0cmluZyBwYXRoOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFiZmRiYjA5MzgxNDQw
ODM1YzJmMGY2NDI5ZjAxOTc3NDBhNzk4YmMuLmRhNjQ0NmZlMjQ1YWIwYmQyYzcwMjYxYzdkMWEy
MmZjMzgxZmI0ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0xMSAgR3JlZyBCaWxs
b2NrICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBBZGQgZmlsZXN5c3RlbSByZWdy
ZXNzaW9uIHRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgZmlsZXN5c3RlbSBvYmplY3QgaXMKKyAgICAg
ICAgbm90IHNlcmlhbGl6YWJsZSBhcyBjcmVhdGVkIGJ5IGphdmFzY3JpcHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL2Zp
bGVzeXN0ZW0tdW5zZXJpYWxpemFibGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlc3lzdGVtL2ZpbGVzeXN0ZW0tdW5zZXJpYWxpemFibGUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9maWxlc3lzdGVtLXVuc2VyaWFs
aXphYmxlLmpzOiBBZGRlZC4KKwogMjAxMi0wNi0xOCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJz
ZWtAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZywgdXBkYXRp
bmcgYmFzZWxpbmVzIGFmdGVyIHJvbGxvdXRzIGluIHIxMjA2MjcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA3YzhlMWJkMTJiOTIxYzRiZjNmOTlmODE5
NzhiMGYyZWZhMmUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3RzIGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBpcyB1bnNlcmlhbGl6YWJs
ZSBieSBkZWZhdWx0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitEQVRBX0NMT05F
X0VSUjogRE9NIEV4Y2VwdGlvbiAyNQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYzYxNjc4
MjgzZTkyYmUxNWFhYzczZGM0ODQ0ZWIwNjM2MTRkODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMt
dGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9maWxlc3lzdGVtLXVuc2VyaWFsaXphYmxlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3Jp
cHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmlsZXN5c3RlbS11bnNlcmlhbGl6YWJsZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYTQwOTE0YWU5NGJiZDkwY2YwNGQzZDk5MGYxYTdmNWY3ZTA4ZDdmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9maWxl
c3lzdGVtLXVuc2VyaWFsaXphYmxlLmpzCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIGlmIHRoZSBmaWxlc3lzdGVtIG9iamVjdCBpcyB1bnNlcmlhbGl6YWJsZSBieSBk
ZWZhdWx0Iik7CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2soZXJyb3IpCit7CisgICAgdGVzdEZh
aWxlZCgiRXJyb3Igb2NjdXJyZWQ6ICIgKyBlcnJvci5jb2RlKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworZnVuY3Rpb24gZmlsZVN5c3RlbUNhbGxiYWNrKGZzKQoreworICAgIHRyeSB7Cisg
ICAgICAgIHBvc3RNZXNzYWdlKGZzLCAnKicpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZGVidWcoZS5tZXNzYWdlKTsKKyAgICB9CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVu
Y3Rpb24gb25tZXNzYWdlKCkKK3sKK30KKworaWYgKHdpbmRvdy53ZWJraXRSZXF1ZXN0RmlsZVN5
c3RlbSkgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25tZXNzYWdl
LCBmYWxzZSk7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHdlYmtpdFJl
cXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5URU1QT1JBUlksIDEwMCwgZmlsZVN5c3RlbUNhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMg
RmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>