<?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>119479</bug_id>
          
          <creation_ts>2013-08-04 13:34:25 -0700</creation_ts>
          <short_desc>Inserting a JS generated keyframe animation shouldn&apos;t trigger a whole document style recalc</short_desc>
          <delta_ts>2013-10-07 17:53:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ralph T">ralpht+bugs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ralpht+bugs</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>914474</commentid>
    <comment_count>0</comment_count>
      <attachid>208099</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-08-04 13:34:25 -0700</bug_when>
    <thetext>Created attachment 208099
Example of adding an animation via JS which triggers a whole document style recalc

Inserting a keyframe animation created in JS causes a full style recalc which can be very expensive on large documents. WebKit doesn&apos;t start an animation if it was referenced by a node prior to inserting it, so hopefully it&apos;s possible to add a custom keyframe animation for only the time it takes to parse it.

The attached example causes a longer style recalc (on L26) when the keyframe rule is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935523</commentid>
    <comment_count>1</comment_count>
      <attachid>213191</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 13:36:38 -0700</bug_when>
    <thetext>Created attachment 213191
Better/slower test using CSSStyleSheet.insertRule.

This test inserts lots of elements with a style that&apos;s expensive to calculate (as seen in the timeline view), then when you click the red box it inserts a @-webkit-keyframes rule into an existing stylesheet and sets the box&apos;s webkitAnimationName to use the new rule. Currently inserting the new rule causes an invalidation of the style of every node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935530</commentid>
    <comment_count>2</comment_count>
      <attachid>213194</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 13:48:39 -0700</bug_when>
    <thetext>Created attachment 213194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935531</commentid>
    <comment_count>3</comment_count>
      <attachid>213194</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 13:49:27 -0700</bug_when>
    <thetext>Comment on attachment 213194
Patch

Clear review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935535</commentid>
    <comment_count>4</comment_count>
      <attachid>213194</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-10-02 14:00:34 -0700</bug_when>
    <thetext>Comment on attachment 213194
Patch

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

&gt; Source/WebCore/css/CSSStyleSheet.cpp:317
&gt; +        if (owner)
&gt; +            owner-&gt;ensureStyleResolver().addKeyframeStyle(static_cast&lt;StyleRuleKeyframes*&gt;(rule.get()));

If there is no StyleResolver here, I don&apos;t think we need to create one.
Use Document::styleResolverIfExists() instead, the keyframes rule will get picked up during the inevitable StyleResolver construction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935537</commentid>
    <comment_count>5</comment_count>
      <attachid>213194</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-02 14:01:24 -0700</bug_when>
    <thetext>Comment on attachment 213194
Patch

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

&gt; Source/WebCore/css/CSSStyleSheet.cpp:318
&gt; +    if (rule-&gt;type() == CSSRule::WEBKIT_KEYFRAMES_RULE) {
&gt; +        Document* owner = ownerDocument();
&gt; +        if (owner)
&gt; +            owner-&gt;ensureStyleResolver().addKeyframeStyle(static_cast&lt;StyleRuleKeyframes*&gt;(rule.get()));
&gt; +    }

I think this can go to CSSStyleSheet::didMutateRules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935539</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-02 14:02:49 -0700</bug_when>
    <thetext>The idea is right assuming there is no way for keyframe insertion to trigger animation or generally affect anything that would require style recalc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935540</commentid>
    <comment_count>7</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 14:04:36 -0700</bug_when>
    <thetext>The CSS3 Animations spec says about the &quot;animation-name&quot; property:

&quot;If the name does not match any keyframe at-rule, there are no properties to be animated and the animation will not execute.&quot;

So if you have an element that already matches the animation name you&apos;re inserting then nothing will happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935557</commentid>
    <comment_count>8</comment_count>
      <attachid>213194</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-10-02 14:44:31 -0700</bug_when>
    <thetext>Comment on attachment 213194
Patch

Attachment 213194 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/3050002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935561</commentid>
    <comment_count>9</comment_count>
      <attachid>213201</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 14:51:00 -0700</bug_when>
    <thetext>Created attachment 213201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935565</commentid>
    <comment_count>10</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-02 14:53:11 -0700</bug_when>
    <thetext>The latest patch uses styleResolverIfExists() and moves the insertion into CSSStyleSheet::didMutateRules. Next I will see what we have so far as tests for dynamic animation insertion and locally run LayoutTests on a debug build (of EFL) in case the change causes new asserts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935589</commentid>
    <comment_count>11</comment_count>
      <attachid>213201</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-02 16:01:06 -0700</bug_when>
    <thetext>Comment on attachment 213201
Patch

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

This seems like a great optimization. I think there is a slightly tighter way to code it.

&gt; Source/WebCore/css/CSSStyleSheet.cpp:175
&gt; +        ASSERT(insertedRule-&gt;type() == StyleRuleBase::Keyframes);
&gt; +        StyleResolver* resolver = 0;
&gt; +        if (owner &amp;&amp; (resolver = owner-&gt;styleResolverIfExists()))
&gt; +            resolver-&gt;addKeyframeStyle(static_cast&lt;StyleRuleKeyframes*&gt;(insertedRule));

It’s not helpful to initialize resolver to 0 since that value is never used. And also, this coding style is a bit tortured. It doesn’t really make sense to null-check owner here since we already checked that earlier. I think it should end up like this:

    if (StyleResolver* resolver = owner-&gt;styleResolverIfExists())
        return resolver-&gt;addKeyframeStyle(insertedRule);

If we did need a null check for owner, I would have suggested an early return.

&gt; Source/WebCore/css/CSSStyleSheet.cpp:427
&gt; +    , m_insertedRule(0)

Please use nullptr instead of 0 in new code.

&gt; Source/WebCore/css/CSSStyleSheet.h:88
&gt; +    enum RuleMutationType { OtherMutation, RuleInsertion, KeyframesRuleInsertion };

I don’t think a specific type of rule should be treated as a separate mutation type, especially if we have to pass the actual rule in, I suggest just using RuleInsertion combined with an inserted keyframes rule. Or eliminate the concept of RuleMutationType entirely (see below).

&gt; Source/WebCore/css/CSSStyleSheet.h:94
&gt; +        RuleMutationScope(CSSStyleSheet*, RuleMutationType = OtherMutation, StyleRuleBase* insertedRule = 0);

Please use nullptr instead of 0 in new code.

I suggest we use the type StyleRuleKeyframes* here instead of StyleRuleBase*. If we decide to use this in a more general way later, we could change that, but no reason to be needlessly general.

Another way to go would be to get rid of RuleMutationType entirely, and only pass in the inserted rule. Then a rule of nullptr would mean “other mutation”. Either way would be OK with me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935619</commentid>
    <comment_count>12</comment_count>
      <attachid>213201</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-02 17:15:27 -0700</bug_when>
    <thetext>Comment on attachment 213201
Patch

Yeah, looks good except for the now-unnecessary KeyframesRuleInsertion value. We may still want to keep the RuleMutationType enum for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935905</commentid>
    <comment_count>13</comment_count>
      <attachid>213285</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-03 12:10:46 -0700</bug_when>
    <thetext>Created attachment 213285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935917</commentid>
    <comment_count>14</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-03 12:32:49 -0700</bug_when>
    <thetext>(In reply to comment #11)

Thanks for the review, Darin!

&gt; &gt; Source/WebCore/css/CSSStyleSheet.cpp:175
&gt; &gt; +        ASSERT(insertedRule-&gt;type() == StyleRuleBase::Keyframes);
&gt; &gt; +        StyleResolver* resolver = 0;
&gt; &gt; +        if (owner &amp;&amp; (resolver = owner-&gt;styleResolverIfExists()))
&gt; &gt; +            resolver-&gt;addKeyframeStyle(static_cast&lt;StyleRuleKeyframes*&gt;(insertedRule));
&gt; 
&gt; It’s not helpful to initialize resolver to 0 since that value is never used. And also, this coding style is a bit tortured. It doesn’t really make sense to null-check owner here since we already checked that earlier. I think it should end up like this:
&gt; 
&gt;     if (StyleResolver* resolver = owner-&gt;styleResolverIfExists())
&gt;         return resolver-&gt;addKeyframeStyle(insertedRule);
&gt; 
&gt; If we did need a null check for owner, I would have suggested an early return.

I reworked this and folded into the existing RuleInsertion branch since they&apos;re now share the same conditions. It&apos;s a lot better now :).

&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSheet.cpp:427
&gt; &gt; +    , m_insertedRule(0)
&gt; 
&gt; Please use nullptr instead of 0 in new code.

Done.

&gt; &gt; Source/WebCore/css/CSSStyleSheet.h:94
&gt; &gt; +        RuleMutationScope(CSSStyleSheet*, RuleMutationType = OtherMutation, StyleRuleBase* insertedRule = 0);
&gt; 
&gt; Please use nullptr instead of 0 in new code.
&gt; 

Done.

&gt; I suggest we use the type StyleRuleKeyframes* here instead of StyleRuleBase*. If we decide to use this in a more general way later, we could change that, but no reason to be needlessly general.

I did this, and changed the name to m_insertedKeyframesRule.

&gt; Another way to go would be to get rid of RuleMutationType entirely, and only pass in the inserted rule. Then a rule of nullptr would mean “other mutation”. Either way would be OK with me.

I kept the enum because maybe there will be other optimized cases in the future (like deleting keyframes?).

I still plan on making a new test for dynamically creating animations (I haven&apos;t done this before; it&apos;s going to look a bit like animations/change-keyframes.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935934</commentid>
    <comment_count>15</comment_count>
      <attachid>213285</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-03 12:54:27 -0700</bug_when>
    <thetext>Comment on attachment 213285
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:9
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=119479
&gt; +
&gt; +        Change CSSStyleSheet::didMutateRules to not invalidate all node&apos;s styles when inserting a
&gt; +        @-webkit-keyframes rule, and to instead insert the rule directly into the StyleResolver.
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

Reviewed-by line usually goes after the URL, before the descriptive text.

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests (OOPS!).

Some tests for dynamic insertions (and deletions too) would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936044</commentid>
    <comment_count>16</comment_count>
      <attachid>213316</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-03 17:35:44 -0700</bug_when>
    <thetext>Created attachment 213316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936047</commentid>
    <comment_count>17</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-03 17:39:37 -0700</bug_when>
    <thetext>Most recent patch includes a test case which adds some keyframes rules and removes  them before and after the animation has started.

Unfortunately I was unable to produce a working build of DumpRenderTree or WKTR, so I haven&apos;t been able to generate expected results. Antti, would you be able to do this for me? (I&apos;m not sure of the process here, this is the first time I&apos;ve added a test). I will keep trying to make a working WKTR in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936278</commentid>
    <comment_count>18</comment_count>
      <attachid>213382</attachid>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-04 11:35:33 -0700</bug_when>
    <thetext>Created attachment 213382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936286</commentid>
    <comment_count>19</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-04 11:41:18 -0700</bug_when>
    <thetext>Ok, I figured out my WKTR woes and built expected results for the test. Antti -- is this what you had in mind for tests? If so could you set r+ and cq+ for me (I&apos;m not a committer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936357</commentid>
    <comment_count>20</comment_count>
      <attachid>213382</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-04 13:45:34 -0700</bug_when>
    <thetext>Comment on attachment 213382
Patch

Clearing flags on attachment: 213382

Committed r156912: &lt;http://trac.webkit.org/changeset/156912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936358</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-04 13:45:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937195</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-07 12:48:32 -0700</bug_when>
    <thetext>I&apos;m confused about the behavior with this patch. If an element has: -webkit-animation-name: foo and you insert @-webkit-keyframes foo {...}, does the animation start?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937221</commentid>
    <comment_count>23</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-07 13:43:25 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; I&apos;m confused about the behavior with this patch. If an element has: -webkit-animation-name: foo and you insert @-webkit-keyframes foo {...}, does the animation start?

It does not, and it didn&apos;t before this patch either. I think the relevant part of the CSS 3 Animations Spec is &quot;If the name does not match any keyframe at-rule, there are no properties to be animated and the animation will not execute.&quot;

I read that to mean that at the time the webkitAnimationName property is set if there&apos;s no keyframes at-rule with that name then it&apos;s ignored, but it&apos;s not explicitly spelled out. I don&apos;t believe the patch changed any WebKit behavior, however.

I can definitely add some more test cases around this, or raise the issue on www-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937222</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-07 14:01:47 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; I can definitely add some more test cases around this, or raise the issue on www-style.

Please do raise it on www-style so the behavior is specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937277</commentid>
    <comment_count>25</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-07 16:32:01 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; I can definitely add some more test cases around this, or raise the issue on www-style.
&gt; 
&gt; Please do raise it on www-style so the behavior is specified.

Ok, raised: http://lists.w3.org/Archives/Public/www-style/2013Oct/0248.html

As I mentioned in the email, I also tested in Firefox and that does start the animation when just adding the @keyframes rule (also they&apos;re very quick starting the animation, so I&apos;d like to learn what&apos;s going on there!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937295</commentid>
    <comment_count>26</comment_count>
    <who name="Ralph T">ralpht+bugs</who>
    <bug_when>2013-10-07 17:53:10 -0700</bug_when>
    <thetext>Ok, so I was mistaken and an animation should start in the case Simon described -- and there&apos;s even a bug for it: https://bugs.webkit.org/show_bug.cgi?id=27881 .. Oops! I&apos;ll follow up on that bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>208099</attachid>
            <date>2013-08-04 13:34:25 -0700</date>
            <delta_ts>2013-10-02 13:36:38 -0700</delta_ts>
            <desc>Example of adding an animation via JS which triggers a whole document style recalc</desc>
            <filename>styleAnimInval.html</filename>
            <type>text/html</type>
            <size>936</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c3R5bGU+CiN0ZXN0IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAg
IHdpZHRoOiAyMCU7IGhlaWdodDogMjAlOwogICAgbGVmdDogNSU7IHRvcDogNSU7CiAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogNXM7CiAg
ICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwp9Cjwvc3R5bGU+
CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InRlc3QiPkNsaWNrIGhlcmU8L2Rpdj4KPHNjcmlwdD4K
dmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwp2YXIgc2hlZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwpzaGVldC50eXBlID0gJ3RleHQvY3NzJzsKZG9j
dW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzaGVldCk7IC8vIFRoaXMgaW52YWxpZGF0ZXMgc3R5bGUs
IGJ1dCBpdCdzIGFuIGVtcHR5IHNoZWV0LgoKdC5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICB2
YXIgYW5pbSA9ICdALXdlYmtpdC1rZXlmcmFtZXMgYW5pbSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZVgoMTAwcHgpOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWSgyMDBweCk7IH0gfSc7CiAgICAvLyBXb3VsZCBsaWtlIGZvciB0aGlzIHRvIG5vdCBpbnZh
bCBzdHlsZSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQuIEN1cnJlbnRseSBpdCBpbnZhbGlkYXRlcyBh
bmQgZm9yY2VzIHJlY2FsYy4KICAgIHNoZWV0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKGFuaW0pKTsKCiAgICAvLyBUaGlzIHdpbGwgaGF2ZSB0byBpbnZhbCBzdHlsZSBvbiB0
aGUgbm9kZSB0LgogICAgdC5zdHlsZS53ZWJraXRBbmltYXRpb25OYW1lID0gJ2FuaW0nOwp9Cjwv
c2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>213191</attachid>
            <date>2013-10-02 13:36:38 -0700</date>
            <delta_ts>2013-10-02 13:36:38 -0700</delta_ts>
            <desc>Better/slower test using CSSStyleSheet.insertRule.</desc>
            <filename>style-inval.html</filename>
            <type>text/html</type>
            <size>2382</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgo8c3R5bGU+CiN0ZXN0IHsKICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKICAgIHdpZHRoOiAyMCU7IGhlaWdodDogMjAlOwogICAgbGVmdDogNSU7IHRvcDogNSU7
CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlv
bjogNXM7CiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwog
ICAgei1pbmRleDogMTAwOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Cn0K
Cgouc2xvdyB7CiAgICB3aWR0aDogOTZweDsKICAgIGhlaWdodDogOTZweDsKICAgIG1hcmdpbjog
NXB4OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwoK
ICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMjUwbXM7CiAgICAtd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKfQouc2xvdy1iaXRtYXAgewogICAgYm9yZGVy
LXJhZGl1czogNXB4OwogICAgd2lkdGg6IDk2cHg7IGhlaWdodDogOTZweDsKICAgIGJhY2tncm91
bmQtc2l6ZTogY29udGFpbjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBi
YWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7Cn0KLnNsb3c+c3BhbiB7CiAgICBkaXNwbGF5OiBi
bG9jazsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAg
IHRvcDogMTA1JTsKICAgIGxlZnQ6IDA7CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAg
IHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgd2lkdGg6IDEw
MCU7Cn0KPC9zdHlsZT4KPGJvZHk+CjxkaXYgaWQ9InRlc3QiID5DbGljayBoZXJlPC9kaXY+Cjxz
Y3JpcHQ+CnZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKdmFyIHNoZWV0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKc2hlZXQudHlwZSA9ICd0ZXh0L2Nz
cyc7CmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2hlZXQpOyAvLyBUaGlzIGludmFsaWRhdGVz
IHN0eWxlLCBidXQgaXQncyBhbiBlbXB0eSBzaGVldC4KCnQub25jbGljayA9IGZ1bmN0aW9uKCkg
ewogICAgdmFyIGFuaW0gPSAnQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0geyAwJSB7IC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHB4KTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZVkoMjAwcHgpOyB9IH0nOwogICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGlzIHRvIGlu
dmFsaWRhdGUgc3R5bGUgb24gdGhlIHdob2xlIGRvY3VtZW50LgogICAgc2hlZXQuc2hlZXQuaW5z
ZXJ0UnVsZShhbmltKTsKICAgIC8vIFRoaXMgd2lsbCBoYXZlIHRvIGludmFsIHN0eWxlIG9uIHRo
ZSBub2RlLCBzbyB0aGUgcmVjYWxjIHNob3VsZCBiZSBjaGVhcGVyLgogICAgdC5zdHlsZS53ZWJr
aXRBbmltYXRpb25OYW1lID0gJ2FuaW0nOwp9CgovLyBBZGQgYSBsb3Qgb2YgZXhwZW5zaXZlIHN0
dWZmIHNvIHRoYXQgc3R5bGUgcmVjYWxjcyBhcmUgc2xvdy4KZnVuY3Rpb24gbWFrZVNsb3coaWNv
bkltYWdlLCB0aXRsZVRleHQpIHsKICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICByb290LmNsYXNzTmFtZSA9ICdzbG93JzsKICAgIHZhciBpbWFnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgaW1hZ2UuY2xhc3NOYW1lID0gJ3Nsb3ct
Yml0bWFwJzsKICAgIHJvb3QuYXBwZW5kQ2hpbGQoaW1hZ2UpOwogICAgdmFyIHRpdGxlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgdGl0bGUuaW5uZXJUZXh0ID0gdGl0bGVU
ZXh0OwogICAgcm9vdC5pbnNlcnRCZWZvcmUodGl0bGUsIGltYWdlKTsKICAgIGltYWdlLnN0eWxl
LmJhY2tncm91bmRJbWFnZSA9IGljb25JbWFnZTsKCiAgICByZXR1cm4gcm9vdDsKfQoKZnVuY3Rp
b24gbG9hZE4obikgewogICAgdmFyIGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
ICAgIGQuY2xhc3NOYW1lID0gJ3BhZ2UnOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKysp
IHsKICAgICAgICBkLmFwcGVuZENoaWxkKG1ha2VTbG93KCcnLCAnSWNvbicpKTsKICAgIH0KICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7Cn0KCndpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
biBvbmxvYWQoKSB7CiAgICBsb2FkTig1MDAwKTsKICAgIHNldFRpbWVvdXQobG9hZE4uYmluZChu
dWxsLCA1MDAwKSwgMCk7Cn0KPC9zY3JpcHQ+CgoKPC9ib2R5PjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213194</attachid>
            <date>2013-10-02 13:48:39 -0700</date>
            <delta_ts>2013-10-02 14:50:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119479-20131002134838.patch</filename>
            <type>text/plain</type>
            <size>3894</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZmM4ZTZlNjc4YWYw
ZWQwOTAwNjdlMWJkOTRmNTc5MWNlOWQ5NS4uODM3MTJlYWQ5Zjk1NzE5NGJmNjc4MmM1NGM5Yzlj
YjQwYjA1ZGRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTAyICBSYWxw
aCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIEpTIGdl
bmVyYXRlZCBrZXlmcmFtZSBhbmltYXRpb24gc2hvdWxkbid0IHRyaWdnZXIgYSB3aG9sZSBkb2N1
bWVudCBzdHlsZSByZWNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTQ3OQorCisgICAgICAgIFRoaXMgaXMgYSBob3JyaWJsZSBoYWNrLCBub3Qg
aW50ZW5kZWQgZm9yIGxhbmRpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpkaWRNdXRh
dGVSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OmRlbGV0ZVJ1bGUpOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVNoZWV0Lmg6CisKIDIwMTMtMTAtMDIgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFuIHVwIG1vcmUgPHN0eWxlIHNjb3Bl
ZD4gZnJvbSBzdHlsZSByZXNvbHV0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAK
aW5kZXggZThjY2YyOGU1MWU3MGUxZDI3MTcwYmYxOTFjZTYyZmFiZjU1MGNmMy4uZmJhYTdmNTAy
MThmMTNkZTYxYjJlYzE2NDZkOTlmMzg0ZWU3YzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNoZWV0LmNwcApAQCAtMzcsOCArMzcsMTAgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN0
eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xNjYsNiArMTY4LDEwIEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZXMoUnVs
ZU11dGF0aW9uVHlwZSBtdXRhdGlvblR5cGUsIFdoZXRoZXJDb250ZW50CiAgICAgaWYgKCFvd25l
cikKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG11dGF0aW9uVHlwZSA9PSBLZXlmcmFtZXNS
dWxlSW5zZXJ0aW9uICYmICFjb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiAmJiAhb3duZXIt
PnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkuYWN0aXZlU3R5bGVTaGVldHNDb250YWlucyh0aGlzKSkg
eworICAgICAgICAvLyBBbHJlYWR5IGhhbmRsZWQgaW4gaW5zZXJ0UnVsZSBieSBoYWNraW5nIGFu
ZCBtYW5nbGluZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAobXV0YXRpb25UeXBl
ID09IFJ1bGVJbnNlcnRpb24gJiYgIWNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uICYmICFv
d25lci0+c3R5bGVTaGVldENvbGxlY3Rpb24oKS5hY3RpdmVTdHlsZVNoZWV0c0NvbnRhaW5zKHRo
aXMpKSB7CiAgICAgICAgIG93bmVyLT5zY2hlZHVsZU9wdGltaXplZFN0eWxlU2hlZXRVcGRhdGUo
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjk1LDcgKzMwMSw3IEBAIHVuc2lnbmVkIENTU1N0eWxl
U2hlZXQ6Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlU3RyaW5nLCB1bnNpZ25lZCBpbmRl
eCwgRXhjCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJ1bGVNdXRhdGlvblNjb3Bl
IG11dGF0aW9uU2NvcGUodGhpcywgUnVsZUluc2VydGlvbik7CisgICAgUnVsZU11dGF0aW9uU2Nv
cGUgbXV0YXRpb25TY29wZSh0aGlzLCBydWxlLT50eXBlKCkgPT0gQ1NTUnVsZTo6V0VCS0lUX0tF
WUZSQU1FU19SVUxFID8gS2V5ZnJhbWVzUnVsZUluc2VydGlvbiA6IFJ1bGVJbnNlcnRpb24pOwog
CiAgICAgYm9vbCBzdWNjZXNzID0gbV9jb250ZW50cy0+d3JhcHBlckluc2VydFJ1bGUocnVsZSwg
aW5kZXgpOwogICAgIGlmICghc3VjY2VzcykgewpAQCAtMzA1LDYgKzMxMSwxMSBAQCB1bnNpZ25l
ZCBDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKGNvbnN0IFN0cmluZyYgcnVsZVN0cmluZywgdW5z
aWduZWQgaW5kZXgsIEV4YwogICAgIGlmICghbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLmlzRW1w
dHkoKSkKICAgICAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLmluc2VydChpbmRleCwgUmVm
UHRyPENTU1J1bGU+KCkpOwogCisgICAgaWYgKHJ1bGUtPnR5cGUoKSA9PSBDU1NSdWxlOjpXRUJL
SVRfS0VZRlJBTUVTX1JVTEUpIHsKKyAgICAgICAgRG9jdW1lbnQqIG93bmVyID0gb3duZXJEb2N1
bWVudCgpOworICAgICAgICBpZiAob3duZXIpCisgICAgICAgICAgICBvd25lci0+ZW5zdXJlU3R5
bGVSZXNvbHZlcigpLmFkZEtleWZyYW1lU3R5bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJh
bWVzKj4ocnVsZS5nZXQoKSkpOworICAgIH0KICAgICByZXR1cm4gaW5kZXg7CiB9CiAKQEAgLTMx
Nyw2ICszMjgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OmRlbGV0ZVJ1bGUodW5zaWduZWQgaW5k
ZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorCiAgICAgUnVsZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29w
ZSh0aGlzKTsKIAogICAgIG1fY29udGVudHMtPndyYXBwZXJEZWxldGVSdWxlKGluZGV4KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCmluZGV4IDMyYjVjZTEwYTM0NTdlYWJiMjE3YWIxMWNh
ODNiMzFkYmY0M2QwMDUuLjBkMDI1NWJmYzMzMzM4ZGM3YTZmMDllYzEzYTc3MDNiZmI4YTExNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRNZWRpYVF1ZXJpZXMoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5U2V0Pik7CiAg
ICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKSB7IG1fdGl0bGUgPSB0aXRsZTsg
fQogCi0gICAgZW51bSBSdWxlTXV0YXRpb25UeXBlIHsgT3RoZXJNdXRhdGlvbiwgUnVsZUluc2Vy
dGlvbiB9OworICAgIGVudW0gUnVsZU11dGF0aW9uVHlwZSB7IE90aGVyTXV0YXRpb24sIFJ1bGVJ
bnNlcnRpb24sIEtleWZyYW1lc1J1bGVJbnNlcnRpb24gfTsKICAgICBlbnVtIFdoZXRoZXJDb250
ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiB7IENvbnRlbnRzV2VyZU5vdENsb25lZEZvck11dGF0
aW9uID0gMCwgQ29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gfTsKIAogICAgIGNsYXNzIFJ1
bGVNdXRhdGlvblNjb3BlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213201</attachid>
            <date>2013-10-02 14:51:00 -0700</date>
            <delta_ts>2013-10-03 12:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119479-20131002145100.patch</filename>
            <type>text/plain</type>
            <size>6211</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZmM4ZTZlNjc4YWYw
ZWQwOTAwNjdlMWJkOTRmNTc5MWNlOWQ5NS4uZGY4ZTAxNWQ2YmE3YjU4MjFiMjc2NWVkOTc0NTNl
M2RmYmJjMzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTAyICBSYWxw
aCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIEpTIGdl
bmVyYXRlZCBrZXlmcmFtZSBhbmltYXRpb24gc2hvdWxkbid0IHRyaWdnZXIgYSB3aG9sZSBkb2N1
bWVudCBzdHlsZSByZWNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTQ3OQorCisgICAgICAgIENoYW5nZSBDU1NTdHlsZVNoZWV0OjpkaWRNdXRh
dGVSdWxlcyB0byBub3QgaW52YWxpZGF0ZSBhbGwgbm9kZSdzIHN0eWxlcyB3aGVuIGluc2VydGlu
ZyBhCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBydWxlLCBhbmQgdG8gaW5zdGVhZCBpbnNl
cnQgdGhlIHJ1bGUgZGlyZWN0bHkgaW50byB0aGUgU3R5bGVSZXNvbHZlci4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2hlZXQ6OmRpZE11dGF0ZVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2hlZXQ6Omluc2VydFJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmg6CisK
IDIwMTMtMTAtMDIgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENsZWFuIHVwIG1vcmUgPHN0eWxlIHNjb3BlZD4gZnJvbSBzdHlsZSByZXNvbHV0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggZThjY2YyOGU1MWU3MGUxZDI3
MTcwYmYxOTFjZTYyZmFiZjU1MGNmMy4uYzc3MjI2NzVhM2M3Yjc4MmM2ZGYyYzcxYjhiMjM1ZWRj
NjE1MDRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtMzcsOCArMzcs
MTAgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRl
ICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTcsNyArMTU5LDcgQEAgdm9pZCBD
U1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKQogICAg
IGRpZE11dGF0ZSgpOwogfQogCi12b2lkIENTU1N0eWxlU2hlZXQ6OmRpZE11dGF0ZVJ1bGVzKFJ1
bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlLCBXaGV0aGVyQ29udGVudHNXZXJlQ2xvbmVkRm9y
TXV0YXRpb24gY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24pCit2b2lkIENTU1N0eWxlU2hl
ZXQ6OmRpZE11dGF0ZVJ1bGVzKFJ1bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlLCBXaGV0aGVy
Q29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRp
b24sIFN0eWxlUnVsZUJhc2UqIGluc2VydGVkUnVsZSkKIHsKICAgICBBU1NFUlQobV9jb250ZW50
cy0+aXNNdXRhYmxlKCkpOwogICAgIEFTU0VSVChtX2NvbnRlbnRzLT5oYXNPbmVDbGllbnQoKSk7
CkBAIC0xNjYsNiArMTY4LDEzIEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZXMo
UnVsZU11dGF0aW9uVHlwZSBtdXRhdGlvblR5cGUsIFdoZXRoZXJDb250ZW50CiAgICAgaWYgKCFv
d25lcikKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG11dGF0aW9uVHlwZSA9PSBLZXlmcmFt
ZXNSdWxlSW5zZXJ0aW9uICYmICFjb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiAmJiAhb3du
ZXItPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkuYWN0aXZlU3R5bGVTaGVldHNDb250YWlucyh0aGlz
KSkgeworICAgICAgICBBU1NFUlQoaW5zZXJ0ZWRSdWxlLT50eXBlKCkgPT0gU3R5bGVSdWxlQmFz
ZTo6S2V5ZnJhbWVzKTsKKyAgICAgICAgU3R5bGVSZXNvbHZlciogcmVzb2x2ZXIgPSAwOworICAg
ICAgICBpZiAob3duZXIgJiYgKHJlc29sdmVyID0gb3duZXItPnN0eWxlUmVzb2x2ZXJJZkV4aXN0
cygpKSkKKyAgICAgICAgICAgIHJlc29sdmVyLT5hZGRLZXlmcmFtZVN0eWxlKHN0YXRpY19jYXN0
PFN0eWxlUnVsZUtleWZyYW1lcyo+KGluc2VydGVkUnVsZSkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQogICAgIGlmIChtdXRhdGlvblR5cGUgPT0gUnVsZUluc2VydGlvbiAmJiAhY29udGVudHNX
ZXJlQ2xvbmVkRm9yTXV0YXRpb24gJiYgIW93bmVyLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLmFj
dGl2ZVN0eWxlU2hlZXRzQ29udGFpbnModGhpcykpIHsKICAgICAgICAgb3duZXItPnNjaGVkdWxl
T3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZSgpOwogICAgICAgICByZXR1cm47CkBAIC0yOTUsNyAr
MzA0LDggQEAgdW5zaWduZWQgQ1NTU3R5bGVTaGVldDo6aW5zZXJ0UnVsZShjb25zdCBTdHJpbmcm
IHJ1bGVTdHJpbmcsIHVuc2lnbmVkIGluZGV4LCBFeGMKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgUnVsZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzLCBSdWxlSW5zZXJ0
aW9uKTsKKyAgICBSdWxlTXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSA9IHJ1bGUtPnR5cGUoKSA9
PSBTdHlsZVJ1bGVCYXNlOjpLZXlmcmFtZXMgPyBLZXlmcmFtZXNSdWxlSW5zZXJ0aW9uIDogUnVs
ZUluc2VydGlvbjsKKyAgICBSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKHRoaXMsIG11
dGF0aW9uVHlwZSwgcnVsZS5nZXQoKSk7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBtX2NvbnRlbnRz
LT53cmFwcGVySW5zZXJ0UnVsZShydWxlLCBpbmRleCk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CkBA
IC00MDEsOSArNDExLDEwIEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6Y2xlYXJDaGlsZFJ1bGVDU1NP
TVdyYXBwZXJzKCkKICAgICBtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMuY2xlYXIoKTsKIH0KIAot
Q1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6OlJ1bGVNdXRhdGlvblNjb3BlKENTU1N0
eWxlU2hlZXQqIHNoZWV0LCBSdWxlTXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSkKK0NTU1N0eWxl
U2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlOjpSdWxlTXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0
KiBzaGVldCwgUnVsZU11dGF0aW9uVHlwZSBtdXRhdGlvblR5cGUsIFN0eWxlUnVsZUJhc2UqIGlu
c2VydGVkUnVsZSkKICAgICA6IG1fc3R5bGVTaGVldChzaGVldCkKICAgICAsIG1fbXV0YXRpb25U
eXBlKG11dGF0aW9uVHlwZSkKKyAgICAsIG1faW5zZXJ0ZWRSdWxlKGluc2VydGVkUnVsZSkKIHsK
ICAgICBBU1NFUlQobV9zdHlsZVNoZWV0KTsKICAgICBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11
dGF0aW9uID0gbV9zdHlsZVNoZWV0LT53aWxsTXV0YXRlUnVsZXMoKTsKQEAgLTQxMyw2ICs0MjQs
NyBAQCBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2NvcGUo
Q1NTUnVsZSogcnVsZSkKICAgICA6IG1fc3R5bGVTaGVldChydWxlID8gcnVsZS0+cGFyZW50U3R5
bGVTaGVldCgpIDogMCkKICAgICAsIG1fbXV0YXRpb25UeXBlKE90aGVyTXV0YXRpb24pCiAgICAg
LCBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKENvbnRlbnRzV2VyZU5vdENsb25lZEZv
ck11dGF0aW9uKQorICAgICwgbV9pbnNlcnRlZFJ1bGUoMCkKIHsKICAgICBpZiAobV9zdHlsZVNo
ZWV0KQogICAgICAgICBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uID0gbV9zdHlsZVNo
ZWV0LT53aWxsTXV0YXRlUnVsZXMoKTsKQEAgLTQyMSw3ICs0MzMsNyBAQCBDU1NTdHlsZVNoZWV0
OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2NvcGUoQ1NTUnVsZSogcnVsZSkKIENT
U1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlOjp+UnVsZU11dGF0aW9uU2NvcGUoKQogewog
ICAgIGlmIChtX3N0eWxlU2hlZXQpCi0gICAgICAgIG1fc3R5bGVTaGVldC0+ZGlkTXV0YXRlUnVs
ZXMobV9tdXRhdGlvblR5cGUsIG1fY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24pOworICAg
ICAgICBtX3N0eWxlU2hlZXQtPmRpZE11dGF0ZVJ1bGVzKG1fbXV0YXRpb25UeXBlLCBtX2NvbnRl
bnRzV2VyZUNsb25lZEZvck11dGF0aW9uLCBtX2luc2VydGVkUnVsZSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5oCmluZGV4IDMyYjVjZTEwYTM0NTdlYWJiMjE3YWIxMWNhODNi
MzFkYmY0M2QwMDUuLjc1NWQ3ZjE5NzE2YWU5ZTc1M2YxODE1ZDAwZmVmYTQ4MGJjYWFkNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaApAQCAtODUsMTMgKzg1LDEzIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1lZGlhUXVlcmllcyhQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+KTsKICAg
ICB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpIHsgbV90aXRsZSA9IHRpdGxlOyB9
CiAKLSAgICBlbnVtIFJ1bGVNdXRhdGlvblR5cGUgeyBPdGhlck11dGF0aW9uLCBSdWxlSW5zZXJ0
aW9uIH07CisgICAgZW51bSBSdWxlTXV0YXRpb25UeXBlIHsgT3RoZXJNdXRhdGlvbiwgUnVsZUlu
c2VydGlvbiwgS2V5ZnJhbWVzUnVsZUluc2VydGlvbiB9OwogICAgIGVudW0gV2hldGhlckNvbnRl
bnRzV2VyZUNsb25lZEZvck11dGF0aW9uIHsgQ29udGVudHNXZXJlTm90Q2xvbmVkRm9yTXV0YXRp
b24gPSAwLCBDb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiB9OwogCiAgICAgY2xhc3MgUnVs
ZU11dGF0aW9uU2NvcGUgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlTXV0YXRp
b25TY29wZSk7CiAgICAgcHVibGljOgotICAgICAgICBSdWxlTXV0YXRpb25TY29wZShDU1NTdHls
ZVNoZWV0KiwgUnVsZU11dGF0aW9uVHlwZSA9IE90aGVyTXV0YXRpb24pOworICAgICAgICBSdWxl
TXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiwgUnVsZU11dGF0aW9uVHlwZSA9IE90aGVyTXV0
YXRpb24sIFN0eWxlUnVsZUJhc2UqIGluc2VydGVkUnVsZSA9IDApOwogICAgICAgICBSdWxlTXV0
YXRpb25TY29wZShDU1NSdWxlKik7CiAgICAgICAgIH5SdWxlTXV0YXRpb25TY29wZSgpOwogCkBA
IC05OSwxMCArOTksMTEgQEAgcHVibGljOgogICAgICAgICBDU1NTdHlsZVNoZWV0KiBtX3N0eWxl
U2hlZXQ7CiAgICAgICAgIFJ1bGVNdXRhdGlvblR5cGUgbV9tdXRhdGlvblR5cGU7CiAgICAgICAg
IFdoZXRoZXJDb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiBtX2NvbnRlbnRzV2VyZUNsb25l
ZEZvck11dGF0aW9uOworICAgICAgICBTdHlsZVJ1bGVCYXNlKiBtX2luc2VydGVkUnVsZTsKICAg
ICB9OwogCiAgICAgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uIHdpbGxNdXRh
dGVSdWxlcygpOwotICAgIHZvaWQgZGlkTXV0YXRlUnVsZXMoUnVsZU11dGF0aW9uVHlwZSwgV2hl
dGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKTsKKyAgICB2b2lkIGRpZE11dGF0ZVJ1
bGVzKFJ1bGVNdXRhdGlvblR5cGUsIFdoZXRoZXJDb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlv
biwgU3R5bGVSdWxlQmFzZSogaW5zZXJ0ZWRSdWxlKTsKICAgICB2b2lkIGRpZE11dGF0ZVJ1bGVG
cm9tQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwogICAgIHZvaWQgZGlkTXV0YXRlKCk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213285</attachid>
            <date>2013-10-03 12:10:46 -0700</date>
            <delta_ts>2013-10-03 17:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119479-20131003121045.patch</filename>
            <type>text/plain</type>
            <size>5863</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZmM4ZTZlNjc4YWYw
ZWQwOTAwNjdlMWJkOTRmNTc5MWNlOWQ5NS4uZGY4ZTAxNWQ2YmE3YjU4MjFiMjc2NWVkOTc0NTNl
M2RmYmJjMzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTAyICBSYWxw
aCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIEpTIGdl
bmVyYXRlZCBrZXlmcmFtZSBhbmltYXRpb24gc2hvdWxkbid0IHRyaWdnZXIgYSB3aG9sZSBkb2N1
bWVudCBzdHlsZSByZWNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTQ3OQorCisgICAgICAgIENoYW5nZSBDU1NTdHlsZVNoZWV0OjpkaWRNdXRh
dGVSdWxlcyB0byBub3QgaW52YWxpZGF0ZSBhbGwgbm9kZSdzIHN0eWxlcyB3aGVuIGluc2VydGlu
ZyBhCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBydWxlLCBhbmQgdG8gaW5zdGVhZCBpbnNl
cnQgdGhlIHJ1bGUgZGlyZWN0bHkgaW50byB0aGUgU3R5bGVSZXNvbHZlci4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2hlZXQ6OmRpZE11dGF0ZVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2hlZXQ6Omluc2VydFJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmg6CisK
IDIwMTMtMTAtMDIgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENsZWFuIHVwIG1vcmUgPHN0eWxlIHNjb3BlZD4gZnJvbSBzdHlsZSByZXNvbHV0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggZThjY2YyOGU1MWU3MGUxZDI3
MTcwYmYxOTFjZTYyZmFiZjU1MGNmMy4uZWYwZWVjNzg4NDYyMzQ4ZTEyZmYwOTliZjFkNTZjZDRm
ZGE4ZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtMzcsOCArMzcs
MTAgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRl
ICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTcsNyArMTU5LDcgQEAgdm9pZCBD
U1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKQogICAg
IGRpZE11dGF0ZSgpOwogfQogCi12b2lkIENTU1N0eWxlU2hlZXQ6OmRpZE11dGF0ZVJ1bGVzKFJ1
bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlLCBXaGV0aGVyQ29udGVudHNXZXJlQ2xvbmVkRm9y
TXV0YXRpb24gY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24pCit2b2lkIENTU1N0eWxlU2hl
ZXQ6OmRpZE11dGF0ZVJ1bGVzKFJ1bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlLCBXaGV0aGVy
Q29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRp
b24sIFN0eWxlUnVsZUtleWZyYW1lcyogaW5zZXJ0ZWRLZXlmcmFtZXNSdWxlKQogewogICAgIEFT
U0VSVChtX2NvbnRlbnRzLT5pc011dGFibGUoKSk7CiAgICAgQVNTRVJUKG1fY29udGVudHMtPmhh
c09uZUNsaWVudCgpKTsKQEAgLTE2Nyw2ICsxNjksMTEgQEAgdm9pZCBDU1NTdHlsZVNoZWV0Ojpk
aWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSwgV2hldGhlckNvbnRl
bnQKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG11dGF0aW9uVHlwZSA9PSBSdWxlSW5zZXJ0
aW9uICYmICFjb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiAmJiAhb3duZXItPnN0eWxlU2hl
ZXRDb2xsZWN0aW9uKCkuYWN0aXZlU3R5bGVTaGVldHNDb250YWlucyh0aGlzKSkgeworICAgICAg
ICBpZiAoaW5zZXJ0ZWRLZXlmcmFtZXNSdWxlKSB7CisgICAgICAgICAgICBpZiAoU3R5bGVSZXNv
bHZlciogcmVzb2x2ZXIgPSBvd25lci0+c3R5bGVSZXNvbHZlcklmRXhpc3RzKCkpCisgICAgICAg
ICAgICAgICAgcmVzb2x2ZXItPmFkZEtleWZyYW1lU3R5bGUoaW5zZXJ0ZWRLZXlmcmFtZXNSdWxl
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBvd25lci0+c2NoZWR1
bGVPcHRpbWl6ZWRTdHlsZVNoZWV0VXBkYXRlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0yOTUsNyArMzAyLDcgQEAgdW5zaWduZWQgQ1NTU3R5bGVTaGVldDo6aW5zZXJ0UnVsZShjb25z
dCBTdHJpbmcmIHJ1bGVTdHJpbmcsIHVuc2lnbmVkIGluZGV4LCBFeGMKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCi0gICAgUnVsZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzLCBS
dWxlSW5zZXJ0aW9uKTsKKyAgICBSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKHRoaXMs
IFJ1bGVJbnNlcnRpb24sIHJ1bGUtPnR5cGUoKSA9PSBTdHlsZVJ1bGVCYXNlOjpLZXlmcmFtZXMg
PyBzdGF0aWNfY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXMqPihydWxlLmdldCgpKSA6IDApOwogCiAg
ICAgYm9vbCBzdWNjZXNzID0gbV9jb250ZW50cy0+d3JhcHBlckluc2VydFJ1bGUocnVsZSwgaW5k
ZXgpOwogICAgIGlmICghc3VjY2VzcykgewpAQCAtNDAxLDkgKzQwOCwxMCBAQCB2b2lkIENTU1N0
eWxlU2hlZXQ6OmNsZWFyQ2hpbGRSdWxlQ1NTT01XcmFwcGVycygpCiAgICAgbV9jaGlsZFJ1bGVD
U1NPTVdyYXBwZXJzLmNsZWFyKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNj
b3BlOjpSdWxlTXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiBzaGVldCwgUnVsZU11dGF0aW9u
VHlwZSBtdXRhdGlvblR5cGUpCitDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZTo6UnVs
ZU11dGF0aW9uU2NvcGUoQ1NTU3R5bGVTaGVldCogc2hlZXQsIFJ1bGVNdXRhdGlvblR5cGUgbXV0
YXRpb25UeXBlLCBTdHlsZVJ1bGVLZXlmcmFtZXMqIGluc2VydGVkS2V5ZnJhbWVzUnVsZSkKICAg
ICA6IG1fc3R5bGVTaGVldChzaGVldCkKICAgICAsIG1fbXV0YXRpb25UeXBlKG11dGF0aW9uVHlw
ZSkKKyAgICAsIG1faW5zZXJ0ZWRLZXlmcmFtZXNSdWxlKGluc2VydGVkS2V5ZnJhbWVzUnVsZSkK
IHsKICAgICBBU1NFUlQobV9zdHlsZVNoZWV0KTsKICAgICBtX2NvbnRlbnRzV2VyZUNsb25lZEZv
ck11dGF0aW9uID0gbV9zdHlsZVNoZWV0LT53aWxsTXV0YXRlUnVsZXMoKTsKQEAgLTQxMyw2ICs0
MjEsNyBAQCBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2Nv
cGUoQ1NTUnVsZSogcnVsZSkKICAgICA6IG1fc3R5bGVTaGVldChydWxlID8gcnVsZS0+cGFyZW50
U3R5bGVTaGVldCgpIDogMCkKICAgICAsIG1fbXV0YXRpb25UeXBlKE90aGVyTXV0YXRpb24pCiAg
ICAgLCBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKENvbnRlbnRzV2VyZU5vdENsb25l
ZEZvck11dGF0aW9uKQorICAgICwgbV9pbnNlcnRlZEtleWZyYW1lc1J1bGUobnVsbHB0cikKIHsK
ICAgICBpZiAobV9zdHlsZVNoZWV0KQogICAgICAgICBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11
dGF0aW9uID0gbV9zdHlsZVNoZWV0LT53aWxsTXV0YXRlUnVsZXMoKTsKQEAgLTQyMSw3ICs0MzAs
NyBAQCBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2NvcGUo
Q1NTUnVsZSogcnVsZSkKIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlOjp+UnVsZU11
dGF0aW9uU2NvcGUoKQogewogICAgIGlmIChtX3N0eWxlU2hlZXQpCi0gICAgICAgIG1fc3R5bGVT
aGVldC0+ZGlkTXV0YXRlUnVsZXMobV9tdXRhdGlvblR5cGUsIG1fY29udGVudHNXZXJlQ2xvbmVk
Rm9yTXV0YXRpb24pOworICAgICAgICBtX3N0eWxlU2hlZXQtPmRpZE11dGF0ZVJ1bGVzKG1fbXV0
YXRpb25UeXBlLCBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uLCBtX2luc2VydGVkS2V5
ZnJhbWVzUnVsZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCmluZGV4IDMy
YjVjZTEwYTM0NTdlYWJiMjE3YWIxMWNhODNiMzFkYmY0M2QwMDUuLjMxOTVhZWJhZmUxYTQ5ZTJh
NzA2NTE2ZWYwMmNkNTY2ZTdiNzU2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaApA
QCAtNDAsNiArNDAsNyBAQCBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5U2V0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBT
dHlsZVJ1bGVLZXlmcmFtZXM7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiAKIHR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CkBAIC05MSw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICBjbGFzcyBS
dWxlTXV0YXRpb25TY29wZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJ1bGVNdXRh
dGlvblNjb3BlKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJ1bGVNdXRhdGlvblNjb3BlKENTU1N0
eWxlU2hlZXQqLCBSdWxlTXV0YXRpb25UeXBlID0gT3RoZXJNdXRhdGlvbik7CisgICAgICAgIFJ1
bGVNdXRhdGlvblNjb3BlKENTU1N0eWxlU2hlZXQqLCBSdWxlTXV0YXRpb25UeXBlID0gT3RoZXJN
dXRhdGlvbiwgU3R5bGVSdWxlS2V5ZnJhbWVzKiBpbnNlcnRlZEtleWZyYW1lc1J1bGUgPSBudWxs
cHRyKTsKICAgICAgICAgUnVsZU11dGF0aW9uU2NvcGUoQ1NTUnVsZSopOwogICAgICAgICB+UnVs
ZU11dGF0aW9uU2NvcGUoKTsKIApAQCAtOTksMTAgKzEwMCwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IENTU1N0eWxlU2hlZXQqIG1fc3R5bGVTaGVldDsKICAgICAgICAgUnVsZU11dGF0aW9uVHlwZSBt
X211dGF0aW9uVHlwZTsKICAgICAgICAgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0
aW9uIG1fY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb247CisgICAgICAgIFN0eWxlUnVsZUtl
eWZyYW1lcyogbV9pbnNlcnRlZEtleWZyYW1lc1J1bGU7CiAgICAgfTsKIAogICAgIFdoZXRoZXJD
b250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiB3aWxsTXV0YXRlUnVsZXMoKTsKLSAgICB2b2lk
IGRpZE11dGF0ZVJ1bGVzKFJ1bGVNdXRhdGlvblR5cGUsIFdoZXRoZXJDb250ZW50c1dlcmVDbG9u
ZWRGb3JNdXRhdGlvbik7CisgICAgdm9pZCBkaWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBl
LCBXaGV0aGVyQ29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24sIFN0eWxlUnVsZUtleWZyYW1l
cyogaW5zZXJ0ZWRLZXlmcmFtZXNSdWxlKTsKICAgICB2b2lkIGRpZE11dGF0ZVJ1bGVGcm9tQ1NT
U3R5bGVEZWNsYXJhdGlvbigpOwogICAgIHZvaWQgZGlkTXV0YXRlKCk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213316</attachid>
            <date>2013-10-03 17:35:44 -0700</date>
            <delta_ts>2013-10-04 11:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119479-20131003173543.patch</filename>
            <type>text/plain</type>
            <size>9816</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZmM4ZTZlNjc4YWYw
ZWQwOTAwNjdlMWJkOTRmNTc5MWNlOWQ5NS4uOGMyN2JlYjUwYzMyYTE1NzUzZjg1MTk4NjU3ZjZj
YjRkMGE4N2Y3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTEwLTAyICBSYWxw
aCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIEpTIGdl
bmVyYXRlZCBrZXlmcmFtZSBhbmltYXRpb24gc2hvdWxkbid0IHRyaWdnZXIgYSB3aG9sZSBkb2N1
bWVudCBzdHlsZSByZWNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENoYW5nZSBDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyB0byBub3QgaW52
YWxpZGF0ZSBhbGwgbm9kZSdzIHN0eWxlcyB3aGVuIGluc2VydGluZyBhCisgICAgICAgIEAtd2Vi
a2l0LWtleWZyYW1lcyBydWxlLCBhbmQgdG8gaW5zdGVhZCBpbnNlcnQgdGhlIHJ1bGUgZGlyZWN0
bHkgaW50byB0aGUgU3R5bGVSZXNvbHZlci4KKworICAgICAgICBUZXN0OiBhbmltYXRpb24va2V5
ZnJhbWVzLWR5bmFtaWMuaHRtbDogYWRkcyBhbmQgcmVtb3ZlcyBrZXlmcmFtZSBydWxlcyB1c2lu
ZyBKYXZhU2NyaXB0IGFuZAorICAgICAgICB2YWxpZGF0ZXMgdGhhdCB0aGUgY29ycmVjdCBlbGVt
ZW50cyBhcmUgYW5pbWF0ZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5oOgorCiAyMDEzLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhbiB1cCBtb3JlIDxzdHlsZSBzY29wZWQ+IGZyb20g
c3R5bGUgcmVzb2x1dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IGU4
Y2NmMjhlNTFlNzBlMWQyNzE3MGJmMTkxY2U2MmZhYmY1NTBjZjMuLmVmMGVlYzc4ODQ2MjM0OGUx
MmZmMDk5YmYxZDU2Y2Q0ZmRhOGQzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5j
cHAKQEAgLTM3LDggKzM3LDEwIEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRl
bnRzLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU3LDcg
KzE1OSw3IEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZUZyb21DU1NTdHlsZURl
Y2xhcmF0aW9uKCkKICAgICBkaWRNdXRhdGUoKTsKIH0KIAotdm9pZCBDU1NTdHlsZVNoZWV0Ojpk
aWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSwgV2hldGhlckNvbnRl
bnRzV2VyZUNsb25lZEZvck11dGF0aW9uIGNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKQor
dm9pZCBDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlIG11dGF0
aW9uVHlwZSwgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uIGNvbnRlbnRzV2Vy
ZUNsb25lZEZvck11dGF0aW9uLCBTdHlsZVJ1bGVLZXlmcmFtZXMqIGluc2VydGVkS2V5ZnJhbWVz
UnVsZSkKIHsKICAgICBBU1NFUlQobV9jb250ZW50cy0+aXNNdXRhYmxlKCkpOwogICAgIEFTU0VS
VChtX2NvbnRlbnRzLT5oYXNPbmVDbGllbnQoKSk7CkBAIC0xNjcsNiArMTY5LDExIEBAIHZvaWQg
Q1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZXMoUnVsZU11dGF0aW9uVHlwZSBtdXRhdGlvblR5
cGUsIFdoZXRoZXJDb250ZW50CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtdXRhdGlvblR5
cGUgPT0gUnVsZUluc2VydGlvbiAmJiAhY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gJiYg
IW93bmVyLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLmFjdGl2ZVN0eWxlU2hlZXRzQ29udGFpbnMo
dGhpcykpIHsKKyAgICAgICAgaWYgKGluc2VydGVkS2V5ZnJhbWVzUnVsZSkgeworICAgICAgICAg
ICAgaWYgKFN0eWxlUmVzb2x2ZXIqIHJlc29sdmVyID0gb3duZXItPnN0eWxlUmVzb2x2ZXJJZkV4
aXN0cygpKQorICAgICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRLZXlmcmFtZVN0eWxlKGluc2Vy
dGVkS2V5ZnJhbWVzUnVsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAg
ICAgb3duZXItPnNjaGVkdWxlT3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMjk1LDcgKzMwMiw3IEBAIHVuc2lnbmVkIENTU1N0eWxlU2hlZXQ6
Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlU3RyaW5nLCB1bnNpZ25lZCBpbmRleCwgRXhj
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJ1bGVNdXRhdGlvblNjb3BlIG11dGF0
aW9uU2NvcGUodGhpcywgUnVsZUluc2VydGlvbik7CisgICAgUnVsZU11dGF0aW9uU2NvcGUgbXV0
YXRpb25TY29wZSh0aGlzLCBSdWxlSW5zZXJ0aW9uLCBydWxlLT50eXBlKCkgPT0gU3R5bGVSdWxl
QmFzZTo6S2V5ZnJhbWVzID8gc3RhdGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJhbWVzKj4ocnVsZS5n
ZXQoKSkgOiAwKTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1fY29udGVudHMtPndyYXBwZXJJbnNl
cnRSdWxlKHJ1bGUsIGluZGV4KTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKQEAgLTQwMSw5ICs0MDgs
MTAgQEAgdm9pZCBDU1NTdHlsZVNoZWV0OjpjbGVhckNoaWxkUnVsZUNTU09NV3JhcHBlcnMoKQog
ICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycy5jbGVhcigpOwogfQogCi1DU1NTdHlsZVNoZWV0
OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2NvcGUoQ1NTU3R5bGVTaGVldCogc2hl
ZXQsIFJ1bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlKQorQ1NTU3R5bGVTaGVldDo6UnVsZU11
dGF0aW9uU2NvcGU6OlJ1bGVNdXRhdGlvblNjb3BlKENTU1N0eWxlU2hlZXQqIHNoZWV0LCBSdWxl
TXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSwgU3R5bGVSdWxlS2V5ZnJhbWVzKiBpbnNlcnRlZEtl
eWZyYW1lc1J1bGUpCiAgICAgOiBtX3N0eWxlU2hlZXQoc2hlZXQpCiAgICAgLCBtX211dGF0aW9u
VHlwZShtdXRhdGlvblR5cGUpCisgICAgLCBtX2luc2VydGVkS2V5ZnJhbWVzUnVsZShpbnNlcnRl
ZEtleWZyYW1lc1J1bGUpCiB7CiAgICAgQVNTRVJUKG1fc3R5bGVTaGVldCk7CiAgICAgbV9jb250
ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiA9IG1fc3R5bGVTaGVldC0+d2lsbE11dGF0ZVJ1bGVz
KCk7CkBAIC00MTMsNiArNDIxLDcgQEAgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6
OlJ1bGVNdXRhdGlvblNjb3BlKENTU1J1bGUqIHJ1bGUpCiAgICAgOiBtX3N0eWxlU2hlZXQocnVs
ZSA/IHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA6IDApCiAgICAgLCBtX211dGF0aW9uVHlwZShP
dGhlck11dGF0aW9uKQogICAgICwgbV9jb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbihDb250
ZW50c1dlcmVOb3RDbG9uZWRGb3JNdXRhdGlvbikKKyAgICAsIG1faW5zZXJ0ZWRLZXlmcmFtZXNS
dWxlKG51bGxwdHIpCiB7CiAgICAgaWYgKG1fc3R5bGVTaGVldCkKICAgICAgICAgbV9jb250ZW50
c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiA9IG1fc3R5bGVTaGVldC0+d2lsbE11dGF0ZVJ1bGVzKCk7
CkBAIC00MjEsNyArNDMwLDcgQEAgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6OlJ1
bGVNdXRhdGlvblNjb3BlKENTU1J1bGUqIHJ1bGUpCiBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRp
b25TY29wZTo6flJ1bGVNdXRhdGlvblNjb3BlKCkKIHsKICAgICBpZiAobV9zdHlsZVNoZWV0KQot
ICAgICAgICBtX3N0eWxlU2hlZXQtPmRpZE11dGF0ZVJ1bGVzKG1fbXV0YXRpb25UeXBlLCBtX2Nv
bnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKTsKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5kaWRN
dXRhdGVSdWxlcyhtX211dGF0aW9uVHlwZSwgbV9jb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlv
biwgbV9pbnNlcnRlZEtleWZyYW1lc1J1bGUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuaAppbmRleCAzMmI1Y2UxMGEzNDU3ZWFiYjIxN2FiMTFjYTgzYjMxZGJmNDNkMDA1Li4z
MTk1YWViYWZlMWE0OWUyYTcwNjUxNmVmMDJjZDU2NmU3Yjc1Njc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFRdWVyeVNldDsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOworY2xhc3MgU3R5bGVSdWxlS2V5ZnJhbWVzOwogY2xhc3MgU3R5bGVTaGVldENvbnRl
bnRzOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtOTEsNyArOTIsNyBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgUnVsZU11dGF0aW9uU2NvcGUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSdWxlTXV0YXRpb25TY29wZSk7CiAgICAgcHVibGljOgotICAgICAgICBSdWxlTXV0
YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiwgUnVsZU11dGF0aW9uVHlwZSA9IE90aGVyTXV0YXRp
b24pOworICAgICAgICBSdWxlTXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiwgUnVsZU11dGF0
aW9uVHlwZSA9IE90aGVyTXV0YXRpb24sIFN0eWxlUnVsZUtleWZyYW1lcyogaW5zZXJ0ZWRLZXlm
cmFtZXNSdWxlID0gbnVsbHB0cik7CiAgICAgICAgIFJ1bGVNdXRhdGlvblNjb3BlKENTU1J1bGUq
KTsKICAgICAgICAgflJ1bGVNdXRhdGlvblNjb3BlKCk7CiAKQEAgLTk5LDEwICsxMDAsMTEgQEAg
cHVibGljOgogICAgICAgICBDU1NTdHlsZVNoZWV0KiBtX3N0eWxlU2hlZXQ7CiAgICAgICAgIFJ1
bGVNdXRhdGlvblR5cGUgbV9tdXRhdGlvblR5cGU7CiAgICAgICAgIFdoZXRoZXJDb250ZW50c1dl
cmVDbG9uZWRGb3JNdXRhdGlvbiBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uOworICAg
ICAgICBTdHlsZVJ1bGVLZXlmcmFtZXMqIG1faW5zZXJ0ZWRLZXlmcmFtZXNSdWxlOwogICAgIH07
CiAKICAgICBXaGV0aGVyQ29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gd2lsbE11dGF0ZVJ1
bGVzKCk7Ci0gICAgdm9pZCBkaWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlLCBXaGV0aGVy
Q29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24pOworICAgIHZvaWQgZGlkTXV0YXRlUnVsZXMo
UnVsZU11dGF0aW9uVHlwZSwgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uLCBT
dHlsZVJ1bGVLZXlmcmFtZXMqIGluc2VydGVkS2V5ZnJhbWVzUnVsZSk7CiAgICAgdm9pZCBkaWRN
dXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKICAgICB2b2lkIGRpZE11dGF0ZSgp
OwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtZHlu
YW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtZHluYW1pYy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlkNzhmM2QyOWJhYTg5NGZmZDU1NTY1NWU4Y2Y4YTA5ZTU5YjhjZmEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1keW5hbWlj
Lmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi
PgorICA8dGl0bGU+RHluYW1pYyBLZXlmcmFtZXMgdGVzdDwvdGl0bGU+CisgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgdG9wOiAxMDBweDsKKyAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOworICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7
CisgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAg
IH0KKyAgICAjYm94MiB7IHRvcDogMjEwcHg7IH0KKyAgICAjYm94MyB7IHRvcDogMzIwcHg7IH0K
KyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3Qt
aGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4K
KyAgICAKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24t
bmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFu
Y2VdCisgICAgICBbImFuaW0xIiwgMC4zLCAiYm94MSIsICJsZWZ0IiwgMTAwLCAxXSwKKyAgICAg
IFsiYW5pbTEiLCAwLjcsICJib3gxIiwgImxlZnQiLCAyMDAsIDFdLAorICAgICAgWyJhbmltMiIs
IDAuMywgImJveDIiLCAibGVmdCIsIDEwMCwgMV0sCisgICAgICBbImFuaW0yIiwgMC43LCAiYm94
MiIsICJsZWZ0IiwgMjAwLCAxXSwKKyAgICBdOworCisgICAgZnVuY3Rpb24gYWRkS2V5ZnJhbWVz
KCkgeworICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScp
OworICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKKyAgICAgICAgdmFy
IGtleWZyYW1lcyA9CisgICAgICAgICAgICAie1xuIiArCisgICAgICAgICAgICAiICAgIGZyb20g
eyBsZWZ0OiA1MHB4OyB9XG4iICsKKyAgICAgICAgICAgICIgICAgMjAlICB7IGxlZnQ6IDEwMHB4
OyB9XG4iICsKKyAgICAgICAgICAgICIgICAgNDAlICB7IGxlZnQ6IDEwMHB4OyB9XG4iICsKKyAg
ICAgICAgICAgICIgICAgNjAlICB7IGxlZnQ6IDIwMHB4OyB9XG4iICsKKyAgICAgICAgICAgICIg
ICAgODAlICB7IGxlZnQ6IDIwMHB4OyB9XG4iICsKKyAgICAgICAgICAgICIgICAgdG8gICB7IGxl
ZnQ6IDMwMHB4OyB9XG4iICsKKyAgICAgICAgICAgICJ9IjsKKyAgICAgICAgdmFyIGJveDFLZXlm
cmFtZXMgPSAiQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0xICIgKyBrZXlmcmFtZXM7CisgICAgICAg
IHZhciBib3gyS2V5ZnJhbWVzID0gIkAtd2Via2l0LWtleWZyYW1lcyBhbmltMiAiICsga2V5ZnJh
bWVzOworICAgICAgICB2YXIgYm94M0tleWZyYW1lcyA9ICJALXdlYmtpdC1rZXlmcmFtZXMgYW5p
bTMgIiArIGtleWZyYW1lczsKKworICAgICAgICBzdHlsZS5zaGVldC5pbnNlcnRSdWxlKGJveDFL
ZXlmcmFtZXMsIDApOworICAgICAgICB2YXIgYm94MkluZGV4ID0gc3R5bGUuc2hlZXQuaW5zZXJ0
UnVsZShib3gyS2V5ZnJhbWVzLCAwKTsKKyAgICAgICAgdmFyIGJveDNJbmRleCA9IHN0eWxlLnNo
ZWV0Lmluc2VydFJ1bGUoYm94M0tleWZyYW1lcywgMCk7CisgICAgICAgIAorICAgICAgICB2YXIg
Ym94MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gxIik7CisgICAgICAgIHZhciBib3gy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveDIiKTsKKyAgICAgICAgdmFyIGJveDMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94MyIpOworCisgICAgICAgIGJveDEuc3R5bGUud2Vi
a2l0QW5pbWF0aW9uTmFtZSA9ICdhbmltMSc7CisgICAgICAgIGJveDIuc3R5bGUud2Via2l0QW5p
bWF0aW9uTmFtZSA9ICdhbmltMic7CisgICAgICAgIGJveDMuc3R5bGUud2Via2l0QW5pbWF0aW9u
TmFtZSA9ICdhbmltMyc7CisKKyAgICAgICAgYm94Mi5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRB
bmltYXRpb25TdGFydCcsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgc3R5bGUuc2hlZXQucmVt
b3ZlUnVsZShib3gySW5kZXgpOyB9LCB0cnVlKTsKKworICAgICAgICBzdHlsZS5zaGVldC5yZW1v
dmVSdWxlKGJveDNJbmRleCk7CisKKyAgICAgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZh
bHVlcyk7CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICBp
ZiAoaW50ZXJuYWxzLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KCJhbmltMyIsIDAuMSwg
Ym94MykpCisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIC0gYm94MyBhbmltYXRpb24g
d2FzIHJ1bm5pbmc8YnI+IjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gIlBBU1MgLSBib3gzIGFuaW1hdGlvbiB3YXMgbm90IHJ1bm5pbmc8YnI+IjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVu
dExvYWRlZCcsIGFkZEtleWZyYW1lcywgZmFsc2UpOworICAgIAorICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgbGVmdCBw
cm9wZXJ0eS4gSXQgc2hvdWxkIHN0b3AgZm9yIDEwMG1zIGF0IDEwMHB4IGFuZCAyMDBweAorV2Ug
dGVzdCBmb3IgdGhvc2UgdmFsdWVzIDUwbXMgYWZ0ZXIgaXQgaGFzIHN0b3BwZWQgYXQgZWFjaCBw
b3NpdGlvbi4gVGhlIGFuaW1hdGlvbnMgZm9yIHRoZSB0aHJlZQorYm94ZXMgYXJlIGluc2VydGVk
IGJ5IEphdmFTY3JpcHQuIFRoZSBmaXJzdCBib3gncyBrZXlmcmFtZXMgcmVtYWluIGluIHRoZSBz
dHlsZXNoZWV0LiBUaGUgc2Vjb25kCitib3gncyBrZXlmcmFtZXMgYXJlIHJlbW92ZWQgYWZ0ZXIg
aXRzIGFuaW1hdGlvbiBzdGFydHMgKGJ1dCBpdCBzaG91bGQgYW5pbWF0ZSkuIFRoZSB0aGlyZCBi
b3gncwora2V5ZnJhbWVzIGFyZSByZW1vdmVkIGJlZm9yZSBpdHMgYW5pbWF0aW9uIHN0YXJ0cywg
YW5kIGl0IHNob3VsZCBub3QgYW5pbWF0ZS4KKzxkaXYgY2xhc3M9ImJveCIgaWQ9ImJveDEiPgor
PC9kaXY+Cis8ZGl2IGNsYXNzPSJib3giIGlkPSJib3gyIj4KKzwvZGl2PgorPGRpdiBjbGFzcz0i
Ym94IiBpZD0iYm94MyI+Cis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213382</attachid>
            <date>2013-10-04 11:35:33 -0700</date>
            <delta_ts>2013-10-04 13:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119479-20131004113534.patch</filename>
            <type>text/plain</type>
            <size>10964</size>
            <attacher name="Ralph T">ralpht+bugs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk1ZmM4ZTZlNjc4YWYw
ZWQwOTAwNjdlMWJkOTRmNTc5MWNlOWQ5NS4uOGMyN2JlYjUwYzMyYTE1NzUzZjg1MTk4NjU3ZjZj
YjRkMGE4N2Y3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTEwLTAyICBSYWxw
aCBUaG9tYXMgIDxyYWxwaHRAZ21haWwuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIEpTIGdl
bmVyYXRlZCBrZXlmcmFtZSBhbmltYXRpb24gc2hvdWxkbid0IHRyaWdnZXIgYSB3aG9sZSBkb2N1
bWVudCBzdHlsZSByZWNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExOTQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENoYW5nZSBDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyB0byBub3QgaW52
YWxpZGF0ZSBhbGwgbm9kZSdzIHN0eWxlcyB3aGVuIGluc2VydGluZyBhCisgICAgICAgIEAtd2Vi
a2l0LWtleWZyYW1lcyBydWxlLCBhbmQgdG8gaW5zdGVhZCBpbnNlcnQgdGhlIHJ1bGUgZGlyZWN0
bHkgaW50byB0aGUgU3R5bGVSZXNvbHZlci4KKworICAgICAgICBUZXN0OiBhbmltYXRpb24va2V5
ZnJhbWVzLWR5bmFtaWMuaHRtbDogYWRkcyBhbmQgcmVtb3ZlcyBrZXlmcmFtZSBydWxlcyB1c2lu
ZyBKYXZhU2NyaXB0IGFuZAorICAgICAgICB2YWxpZGF0ZXMgdGhhdCB0aGUgY29ycmVjdCBlbGVt
ZW50cyBhcmUgYW5pbWF0ZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5oOgorCiAyMDEzLTEwLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhbiB1cCBtb3JlIDxzdHlsZSBzY29wZWQ+IGZyb20g
c3R5bGUgcmVzb2x1dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IGU4
Y2NmMjhlNTFlNzBlMWQyNzE3MGJmMTkxY2U2MmZhYmY1NTBjZjMuLmVmMGVlYzc4ODQ2MjM0OGUx
MmZmMDk5YmYxZDU2Y2Q0ZmRhOGQzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5j
cHAKQEAgLTM3LDggKzM3LDEwIEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTdHlsZVJlc29s
dmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRl
bnRzLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU3LDcg
KzE1OSw3IEBAIHZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZUZyb21DU1NTdHlsZURl
Y2xhcmF0aW9uKCkKICAgICBkaWRNdXRhdGUoKTsKIH0KIAotdm9pZCBDU1NTdHlsZVNoZWV0Ojpk
aWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSwgV2hldGhlckNvbnRl
bnRzV2VyZUNsb25lZEZvck11dGF0aW9uIGNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKQor
dm9pZCBDU1NTdHlsZVNoZWV0OjpkaWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlIG11dGF0
aW9uVHlwZSwgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uIGNvbnRlbnRzV2Vy
ZUNsb25lZEZvck11dGF0aW9uLCBTdHlsZVJ1bGVLZXlmcmFtZXMqIGluc2VydGVkS2V5ZnJhbWVz
UnVsZSkKIHsKICAgICBBU1NFUlQobV9jb250ZW50cy0+aXNNdXRhYmxlKCkpOwogICAgIEFTU0VS
VChtX2NvbnRlbnRzLT5oYXNPbmVDbGllbnQoKSk7CkBAIC0xNjcsNiArMTY5LDExIEBAIHZvaWQg
Q1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZXMoUnVsZU11dGF0aW9uVHlwZSBtdXRhdGlvblR5
cGUsIFdoZXRoZXJDb250ZW50CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtdXRhdGlvblR5
cGUgPT0gUnVsZUluc2VydGlvbiAmJiAhY29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gJiYg
IW93bmVyLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLmFjdGl2ZVN0eWxlU2hlZXRzQ29udGFpbnMo
dGhpcykpIHsKKyAgICAgICAgaWYgKGluc2VydGVkS2V5ZnJhbWVzUnVsZSkgeworICAgICAgICAg
ICAgaWYgKFN0eWxlUmVzb2x2ZXIqIHJlc29sdmVyID0gb3duZXItPnN0eWxlUmVzb2x2ZXJJZkV4
aXN0cygpKQorICAgICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRLZXlmcmFtZVN0eWxlKGluc2Vy
dGVkS2V5ZnJhbWVzUnVsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAg
ICAgb3duZXItPnNjaGVkdWxlT3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMjk1LDcgKzMwMiw3IEBAIHVuc2lnbmVkIENTU1N0eWxlU2hlZXQ6
Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlU3RyaW5nLCB1bnNpZ25lZCBpbmRleCwgRXhj
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJ1bGVNdXRhdGlvblNjb3BlIG11dGF0
aW9uU2NvcGUodGhpcywgUnVsZUluc2VydGlvbik7CisgICAgUnVsZU11dGF0aW9uU2NvcGUgbXV0
YXRpb25TY29wZSh0aGlzLCBSdWxlSW5zZXJ0aW9uLCBydWxlLT50eXBlKCkgPT0gU3R5bGVSdWxl
QmFzZTo6S2V5ZnJhbWVzID8gc3RhdGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJhbWVzKj4ocnVsZS5n
ZXQoKSkgOiAwKTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IG1fY29udGVudHMtPndyYXBwZXJJbnNl
cnRSdWxlKHJ1bGUsIGluZGV4KTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKQEAgLTQwMSw5ICs0MDgs
MTAgQEAgdm9pZCBDU1NTdHlsZVNoZWV0OjpjbGVhckNoaWxkUnVsZUNTU09NV3JhcHBlcnMoKQog
ICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycy5jbGVhcigpOwogfQogCi1DU1NTdHlsZVNoZWV0
OjpSdWxlTXV0YXRpb25TY29wZTo6UnVsZU11dGF0aW9uU2NvcGUoQ1NTU3R5bGVTaGVldCogc2hl
ZXQsIFJ1bGVNdXRhdGlvblR5cGUgbXV0YXRpb25UeXBlKQorQ1NTU3R5bGVTaGVldDo6UnVsZU11
dGF0aW9uU2NvcGU6OlJ1bGVNdXRhdGlvblNjb3BlKENTU1N0eWxlU2hlZXQqIHNoZWV0LCBSdWxl
TXV0YXRpb25UeXBlIG11dGF0aW9uVHlwZSwgU3R5bGVSdWxlS2V5ZnJhbWVzKiBpbnNlcnRlZEtl
eWZyYW1lc1J1bGUpCiAgICAgOiBtX3N0eWxlU2hlZXQoc2hlZXQpCiAgICAgLCBtX211dGF0aW9u
VHlwZShtdXRhdGlvblR5cGUpCisgICAgLCBtX2luc2VydGVkS2V5ZnJhbWVzUnVsZShpbnNlcnRl
ZEtleWZyYW1lc1J1bGUpCiB7CiAgICAgQVNTRVJUKG1fc3R5bGVTaGVldCk7CiAgICAgbV9jb250
ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiA9IG1fc3R5bGVTaGVldC0+d2lsbE11dGF0ZVJ1bGVz
KCk7CkBAIC00MTMsNiArNDIxLDcgQEAgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6
OlJ1bGVNdXRhdGlvblNjb3BlKENTU1J1bGUqIHJ1bGUpCiAgICAgOiBtX3N0eWxlU2hlZXQocnVs
ZSA/IHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA6IDApCiAgICAgLCBtX211dGF0aW9uVHlwZShP
dGhlck11dGF0aW9uKQogICAgICwgbV9jb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlvbihDb250
ZW50c1dlcmVOb3RDbG9uZWRGb3JNdXRhdGlvbikKKyAgICAsIG1faW5zZXJ0ZWRLZXlmcmFtZXNS
dWxlKG51bGxwdHIpCiB7CiAgICAgaWYgKG1fc3R5bGVTaGVldCkKICAgICAgICAgbV9jb250ZW50
c1dlcmVDbG9uZWRGb3JNdXRhdGlvbiA9IG1fc3R5bGVTaGVldC0+d2lsbE11dGF0ZVJ1bGVzKCk7
CkBAIC00MjEsNyArNDMwLDcgQEAgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6OlJ1
bGVNdXRhdGlvblNjb3BlKENTU1J1bGUqIHJ1bGUpCiBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRp
b25TY29wZTo6flJ1bGVNdXRhdGlvblNjb3BlKCkKIHsKICAgICBpZiAobV9zdHlsZVNoZWV0KQot
ICAgICAgICBtX3N0eWxlU2hlZXQtPmRpZE11dGF0ZVJ1bGVzKG1fbXV0YXRpb25UeXBlLCBtX2Nv
bnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uKTsKKyAgICAgICAgbV9zdHlsZVNoZWV0LT5kaWRN
dXRhdGVSdWxlcyhtX211dGF0aW9uVHlwZSwgbV9jb250ZW50c1dlcmVDbG9uZWRGb3JNdXRhdGlv
biwgbV9pbnNlcnRlZEtleWZyYW1lc1J1bGUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuaAppbmRleCAzMmI1Y2UxMGEzNDU3ZWFiYjIxN2FiMTFjYTgzYjMxZGJmNDNkMDA1Li4z
MTk1YWViYWZlMWE0OWUyYTcwNjUxNmVmMDJjZDU2NmU3Yjc1Njc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTWVkaWFRdWVyeVNldDsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOworY2xhc3MgU3R5bGVSdWxlS2V5ZnJhbWVzOwogY2xhc3MgU3R5bGVTaGVldENvbnRl
bnRzOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtOTEsNyArOTIsNyBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgUnVsZU11dGF0aW9uU2NvcGUgewogICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSdWxlTXV0YXRpb25TY29wZSk7CiAgICAgcHVibGljOgotICAgICAgICBSdWxlTXV0
YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiwgUnVsZU11dGF0aW9uVHlwZSA9IE90aGVyTXV0YXRp
b24pOworICAgICAgICBSdWxlTXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0KiwgUnVsZU11dGF0
aW9uVHlwZSA9IE90aGVyTXV0YXRpb24sIFN0eWxlUnVsZUtleWZyYW1lcyogaW5zZXJ0ZWRLZXlm
cmFtZXNSdWxlID0gbnVsbHB0cik7CiAgICAgICAgIFJ1bGVNdXRhdGlvblNjb3BlKENTU1J1bGUq
KTsKICAgICAgICAgflJ1bGVNdXRhdGlvblNjb3BlKCk7CiAKQEAgLTk5LDEwICsxMDAsMTEgQEAg
cHVibGljOgogICAgICAgICBDU1NTdHlsZVNoZWV0KiBtX3N0eWxlU2hlZXQ7CiAgICAgICAgIFJ1
bGVNdXRhdGlvblR5cGUgbV9tdXRhdGlvblR5cGU7CiAgICAgICAgIFdoZXRoZXJDb250ZW50c1dl
cmVDbG9uZWRGb3JNdXRhdGlvbiBtX2NvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uOworICAg
ICAgICBTdHlsZVJ1bGVLZXlmcmFtZXMqIG1faW5zZXJ0ZWRLZXlmcmFtZXNSdWxlOwogICAgIH07
CiAKICAgICBXaGV0aGVyQ29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24gd2lsbE11dGF0ZVJ1
bGVzKCk7Ci0gICAgdm9pZCBkaWRNdXRhdGVSdWxlcyhSdWxlTXV0YXRpb25UeXBlLCBXaGV0aGVy
Q29udGVudHNXZXJlQ2xvbmVkRm9yTXV0YXRpb24pOworICAgIHZvaWQgZGlkTXV0YXRlUnVsZXMo
UnVsZU11dGF0aW9uVHlwZSwgV2hldGhlckNvbnRlbnRzV2VyZUNsb25lZEZvck11dGF0aW9uLCBT
dHlsZVJ1bGVLZXlmcmFtZXMqIGluc2VydGVkS2V5ZnJhbWVzUnVsZSk7CiAgICAgdm9pZCBkaWRN
dXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKICAgICB2b2lkIGRpZE11dGF0ZSgp
OwogICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZXMtZHlu
YW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1keW5h
bWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjA5ZjE4NGQ2NDkwMjUxZmMwNTFhNzhiZDE0
ZDgyZDVjOTYyODU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9r
ZXlmcmFtZXMtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3Qg
cGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRoZSBsZWZ0IHByb3BlcnR5LiBJdCBzaG91bGQgc3Rv
cCBmb3IgMTAwbXMgYXQgMTAwcHggYW5kIDIwMHB4IFdlIHRlc3QgZm9yIHRob3NlIHZhbHVlcyA1
MG1zIGFmdGVyIGl0IGhhcyBzdG9wcGVkIGF0IGVhY2ggcG9zaXRpb24uIFRoZSBhbmltYXRpb25z
IGZvciB0aGUgdGhyZWUgYm94ZXMgYXJlIGluc2VydGVkIGJ5IEphdmFTY3JpcHQuIFRoZSBmaXJz
dCBib3gncyBrZXlmcmFtZXMgcmVtYWluIGluIHRoZSBzdHlsZXNoZWV0LiBUaGUgc2Vjb25kIGJv
eCdzIGtleWZyYW1lcyBhcmUgcmVtb3ZlZCBhZnRlciBpdHMgYW5pbWF0aW9uIHN0YXJ0cyAoYnV0
IGl0IHNob3VsZCBhbmltYXRlKS4gVGhlIHRoaXJkIGJveCdzIGtleWZyYW1lcyBhcmUgcmVtb3Zl
ZCBiZWZvcmUgaXRzIGFuaW1hdGlvbiBzdGFydHMsIGFuZCBpdCBzaG91bGQgbm90IGFuaW1hdGUu
CitQQVNTIC0gYm94MyBhbmltYXRpb24gd2FzIG5vdCBydW5uaW5nCitQQVNTIC0gImxlZnQiIHBy
b3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAwLjNzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDEwMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMC43cyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJi
b3gyIiBlbGVtZW50IGF0IDAuM3Mgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTAwCitQQVNTIC0g
ImxlZnQiIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAwLjdzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDIwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZy
YW1lcy1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lcy1keW5h
bWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ3OGYzZDI5YmFhODk0ZmZkNTU1NjU1ZThjZjhhMDllNTli
OGNmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWVz
LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMu
b3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCI+CisgIDx0aXRsZT5EeW5hbWljIEtleWZyYW1lcyB0ZXN0PC90aXRsZT4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDEwMHB4
OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0
aW9uOiAxczsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5l
YXI7CisgICAgfQorICAgICNib3gyIHsgdG9wOiAyMTBweDsgfQorICAgICNib3gzIHsgdG9wOiAz
MjBweDsgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRp
b24tdGVzdC1oZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorICAgIAorICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW2Fu
aW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUs
IHRvbGVyYW5jZV0KKyAgICAgIFsiYW5pbTEiLCAwLjMsICJib3gxIiwgImxlZnQiLCAxMDAsIDFd
LAorICAgICAgWyJhbmltMSIsIDAuNywgImJveDEiLCAibGVmdCIsIDIwMCwgMV0sCisgICAgICBb
ImFuaW0yIiwgMC4zLCAiYm94MiIsICJsZWZ0IiwgMTAwLCAxXSwKKyAgICAgIFsiYW5pbTIiLCAw
LjcsICJib3gyIiwgImxlZnQiLCAyMDAsIDFdLAorICAgIF07CisKKyAgICBmdW5jdGlvbiBhZGRL
ZXlmcmFtZXMoKSB7CisgICAgICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3N0eWxlJyk7CisgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOworICAg
ICAgICB2YXIga2V5ZnJhbWVzID0KKyAgICAgICAgICAgICJ7XG4iICsKKyAgICAgICAgICAgICIg
ICAgZnJvbSB7IGxlZnQ6IDUwcHg7IH1cbiIgKworICAgICAgICAgICAgIiAgICAyMCUgIHsgbGVm
dDogMTAwcHg7IH1cbiIgKworICAgICAgICAgICAgIiAgICA0MCUgIHsgbGVmdDogMTAwcHg7IH1c
biIgKworICAgICAgICAgICAgIiAgICA2MCUgIHsgbGVmdDogMjAwcHg7IH1cbiIgKworICAgICAg
ICAgICAgIiAgICA4MCUgIHsgbGVmdDogMjAwcHg7IH1cbiIgKworICAgICAgICAgICAgIiAgICB0
byAgIHsgbGVmdDogMzAwcHg7IH1cbiIgKworICAgICAgICAgICAgIn0iOworICAgICAgICB2YXIg
Ym94MUtleWZyYW1lcyA9ICJALXdlYmtpdC1rZXlmcmFtZXMgYW5pbTEgIiArIGtleWZyYW1lczsK
KyAgICAgICAgdmFyIGJveDJLZXlmcmFtZXMgPSAiQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0yICIg
KyBrZXlmcmFtZXM7CisgICAgICAgIHZhciBib3gzS2V5ZnJhbWVzID0gIkAtd2Via2l0LWtleWZy
YW1lcyBhbmltMyAiICsga2V5ZnJhbWVzOworCisgICAgICAgIHN0eWxlLnNoZWV0Lmluc2VydFJ1
bGUoYm94MUtleWZyYW1lcywgMCk7CisgICAgICAgIHZhciBib3gySW5kZXggPSBzdHlsZS5zaGVl
dC5pbnNlcnRSdWxlKGJveDJLZXlmcmFtZXMsIDApOworICAgICAgICB2YXIgYm94M0luZGV4ID0g
c3R5bGUuc2hlZXQuaW5zZXJ0UnVsZShib3gzS2V5ZnJhbWVzLCAwKTsKKyAgICAgICAgCisgICAg
ICAgIHZhciBib3gxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveDEiKTsKKyAgICAgICAg
dmFyIGJveDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94MiIpOworICAgICAgICB2YXIg
Ym94MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gzIik7CisKKyAgICAgICAgYm94MS5z
dHlsZS53ZWJraXRBbmltYXRpb25OYW1lID0gJ2FuaW0xJzsKKyAgICAgICAgYm94Mi5zdHlsZS53
ZWJraXRBbmltYXRpb25OYW1lID0gJ2FuaW0yJzsKKyAgICAgICAgYm94My5zdHlsZS53ZWJraXRB
bmltYXRpb25OYW1lID0gJ2FuaW0zJzsKKworICAgICAgICBib3gyLmFkZEV2ZW50TGlzdGVuZXIo
J3dlYmtpdEFuaW1hdGlvblN0YXJ0JywKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBzdHlsZS5z
aGVldC5yZW1vdmVSdWxlKGJveDJJbmRleCk7IH0sIHRydWUpOworCisgICAgICAgIHN0eWxlLnNo
ZWV0LnJlbW92ZVJ1bGUoYm94M0luZGV4KTsKKworICAgICAgICBydW5BbmltYXRpb25UZXN0KGV4
cGVjdGVkVmFsdWVzKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIGlmIChpbnRlcm5hbHMucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoImFuaW0z
IiwgMC4xLCBib3gzKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwgLSBib3gzIGFu
aW1hdGlvbiB3YXMgcnVubmluZzxicj4iOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiUEFTUyAtIGJveDMgYW5pbWF0aW9uIHdhcyBub3QgcnVubmluZzxicj4i
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdE
T01Db250ZW50TG9hZGVkJywgYWRkS2V5ZnJhbWVzLCBmYWxzZSk7CisgICAgCisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRo
ZSBsZWZ0IHByb3BlcnR5LiBJdCBzaG91bGQgc3RvcCBmb3IgMTAwbXMgYXQgMTAwcHggYW5kIDIw
MHB4CitXZSB0ZXN0IGZvciB0aG9zZSB2YWx1ZXMgNTBtcyBhZnRlciBpdCBoYXMgc3RvcHBlZCBh
dCBlYWNoIHBvc2l0aW9uLiBUaGUgYW5pbWF0aW9ucyBmb3IgdGhlIHRocmVlCitib3hlcyBhcmUg
aW5zZXJ0ZWQgYnkgSmF2YVNjcmlwdC4gVGhlIGZpcnN0IGJveCdzIGtleWZyYW1lcyByZW1haW4g
aW4gdGhlIHN0eWxlc2hlZXQuIFRoZSBzZWNvbmQKK2JveCdzIGtleWZyYW1lcyBhcmUgcmVtb3Zl
ZCBhZnRlciBpdHMgYW5pbWF0aW9uIHN0YXJ0cyAoYnV0IGl0IHNob3VsZCBhbmltYXRlKS4gVGhl
IHRoaXJkIGJveCdzCitrZXlmcmFtZXMgYXJlIHJlbW92ZWQgYmVmb3JlIGl0cyBhbmltYXRpb24g
c3RhcnRzLCBhbmQgaXQgc2hvdWxkIG5vdCBhbmltYXRlLgorPGRpdiBjbGFzcz0iYm94IiBpZD0i
Ym94MSI+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9ImJveCIgaWQ9ImJveDIiPgorPC9kaXY+Cis8ZGl2
IGNsYXNzPSJib3giIGlkPSJib3gzIj4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>