<?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>145890</bug_id>
          
          <creation_ts>2015-06-11 12:16:20 -0700</creation_ts>
          <short_desc>[OS X] Decoding fonts may return nil when using force click</short_desc>
          <delta_ts>2015-06-19 16:34:20 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101347</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 12:16:20 -0700</bug_when>
    <thetext>[OS X] Decoding fonts may return nil when using force click</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101348</commentid>
    <comment_count>1</comment_count>
      <attachid>254739</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 12:17:35 -0700</bug_when>
    <thetext>Created attachment 254739
Speculative fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101349</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 12:18:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/21170487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101419</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 14:30:31 -0700</bug_when>
    <thetext>Committed r185475: &lt;http://trac.webkit.org/changeset/185475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101468</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 18:36:28 -0700</bug_when>
    <thetext>This is not the best solution to this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101469</commentid>
    <comment_count>5</comment_count>
      <attachid>254773</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 18:38:20 -0700</bug_when>
    <thetext>Created attachment 254773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101472</commentid>
    <comment_count>6</comment_count>
      <attachid>254773</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 19:14:34 -0700</bug_when>
    <thetext>Comment on attachment 254773
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:345
&gt; +            [dictionary setObject:value.get() forKey:key.get()];

Simon suggested that we may not even want to be in the business of claiming to transmit fonts in the first place (in favor of font attributes dictionaries). This would push this recreation failure logic into the user of IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101473</commentid>
    <comment_count>7</comment_count>
      <attachid>254773</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 19:15:07 -0700</bug_when>
    <thetext>Comment on attachment 254773
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:431
&gt; +        if (value)

Transmitting an array with smaller size than the one sent seems incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101480</commentid>
    <comment_count>8</comment_count>
      <attachid>254773</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 19:38:36 -0700</bug_when>
    <thetext>Comment on attachment 254773
Patch

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

&gt;&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:345
&gt;&gt; +            [dictionary setObject:value.get() forKey:key.get()];
&gt; 
&gt; Simon suggested that we may not even want to be in the business of claiming to transmit fonts in the first place (in favor of font attributes dictionaries). This would push this recreation failure logic into the user of IPC.

This approach doesn&apos;t really work for attributed strings - forcing clients to recreate an attributed string from components seems needlessly complex. Perhaps instead I could have the attributed string encoding function inspect its argument for NSFonts upon ingestion.

Moving this to an encoding function rather than a decoding function seems cleaner. There may be a way to recognize a web font without trying a full encode / decode cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101482</commentid>
    <comment_count>9</comment_count>
      <attachid>254773</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-11 19:46:12 -0700</bug_when>
    <thetext>Comment on attachment 254773
Patch

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

&gt;&gt;&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:345
&gt;&gt;&gt; +            [dictionary setObject:value.get() forKey:key.get()];
&gt;&gt; 
&gt;&gt; Simon suggested that we may not even want to be in the business of claiming to transmit fonts in the first place (in favor of font attributes dictionaries). This would push this recreation failure logic into the user of IPC.
&gt; 
&gt; This approach doesn&apos;t really work for attributed strings - forcing clients to recreate an attributed string from components seems needlessly complex. Perhaps instead I could have the attributed string encoding function inspect its argument for NSFonts upon ingestion.
&gt; 
&gt; Moving this to an encoding function rather than a decoding function seems cleaner. There may be a way to recognize a web font without trying a full encode / decode cycle.

Another alternative is to make the client of the IPC subsystem check for these non-serializable fonts, and then maintain an invariant that any font inside the IPC subsystem is serializable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101593</commentid>
    <comment_count>10</comment_count>
      <attachid>254773</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 09:11:53 -0700</bug_when>
    <thetext>Comment on attachment 254773
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:345
&gt;&gt;&gt;&gt; +            [dictionary setObject:value.get() forKey:key.get()];
&gt;&gt;&gt; 
&gt;&gt;&gt; Simon suggested that we may not even want to be in the business of claiming to transmit fonts in the first place (in favor of font attributes dictionaries). This would push this recreation failure logic into the user of IPC.
&gt;&gt; 
&gt;&gt; This approach doesn&apos;t really work for attributed strings - forcing clients to recreate an attributed string from components seems needlessly complex. Perhaps instead I could have the attributed string encoding function inspect its argument for NSFonts upon ingestion.
&gt;&gt; 
&gt;&gt; Moving this to an encoding function rather than a decoding function seems cleaner. There may be a way to recognize a web font without trying a full encode / decode cycle.
&gt; 
&gt; Another alternative is to make the client of the IPC subsystem check for these non-serializable fonts, and then maintain an invariant that any font inside the IPC subsystem is serializable.

Dictionary decoding seems too low a level to make a decision like this one, and changing the shape of the dictionary seems wrong to me. At this level the only behaviors that make sense to me are:

1) Failing entirely.
2) Turning an unsuccessfully transmitted value into some kind of object like an NSNull.

And I strongly prefer (1).

Generally speaking the encoders and decoders are too low a level to be dealing with this. Sure, the encoder could detect that this is a font that we can’t recreate by changing it into a font descriptor, and that seems better than having the decoder detect it, but there is no reasonable way for the encoder and decoder to handle that. The idea that we can send an attributed string across the process boundary with a web font as the font seems fundamentally flawed.

*** I think the primary problem here is that we are trying to change the code before we have decided what behavior we are trying to implement. What do we want the UI process to receive in the case of a string that is supposed to be using a font that exists only in the web process? ***

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:368
&gt; -    return result;
&gt; +    return true;

I’m not sure that you will want to roll this out once we make our final decision about behavior. I don’t know that “successfully” decoding a null NSFont is going to end up being a valuable part of the solution.

I don’t think that nil is a good way to represent “failed to transmit the NSFont successfully”. It seems more appropriate to use nil to encode something that was nil on the sending side, and some other way to indicate that we couldn’t transmit an NSFont across the process boundary.

&gt;&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:431
&gt;&gt; +        if (value)
&gt; 
&gt; Transmitting an array with smaller size than the one sent seems incorrect.

I agree; array decoding is too low a level to make a decision like this one and changing the size of the array seems wrong to me. At this level the only behaviors that make sense to me are:

1) Failing entirely.
2) Turning an unsuccessfully transmitted value into some kind of object like an NSNull.

And I strongly prefer (1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101596</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 09:13:56 -0700</bug_when>
    <thetext>For example, do we want to substitute a different font? If so, which font?

Do we want to transmit the entire font to the UI process (seems bad for sandboxing)? Generally speaking I don’t think it’s safe for the UI process to try to render a web font.

I am pretty sure that this work should be done on the web process side in a separate step *before* trying to transmit the attributed string rather than as part of the encoding/decoding process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101597</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 09:14:46 -0700</bug_when>
    <thetext>I think while we try to figure that out we should make this fail cleanly and get that into the build, if the previous patch was insufficient for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102054</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-15 14:57:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/21390877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102422</commentid>
    <comment_count>14</comment_count>
      <attachid>254988</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-16 18:13:12 -0700</bug_when>
    <thetext>Created attachment 254988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102423</commentid>
    <comment_count>15</comment_count>
      <attachid>254989</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-16 18:15:09 -0700</bug_when>
    <thetext>Created attachment 254989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102445</commentid>
    <comment_count>16</comment_count>
      <attachid>254989</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-16 19:18:41 -0700</bug_when>
    <thetext>Comment on attachment 254989
Patch

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

&gt; Source/WebKit2/ChangeLog:5
&gt; +        &lt;rdar://problem/21170487&gt;

Wrong radar number</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102447</commentid>
    <comment_count>17</comment_count>
      <attachid>254989</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-16 19:27:05 -0700</bug_when>
    <thetext>Comment on attachment 254989
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:579
&gt; +            if (fontCanSurviveSerialization(font))
&gt; +                [scaledAttributes setObject:font forKey:NSFontAttributeName];

This doesn’t remove the font from scaledAttributes if it can’t survive serialization. Need an else that calls removeObjectForKey: and you also need to do some testing to verify this does what you want it to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103120</commentid>
    <comment_count>18</comment_count>
      <attachid>255160</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-18 18:24:08 -0700</bug_when>
    <thetext>Created attachment 255160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103133</commentid>
    <comment_count>19</comment_count>
      <attachid>255160</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-18 19:28:35 -0700</bug_when>
    <thetext>Comment on attachment 255160
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:215
&gt; +    return [NSFontDescriptor fontDescriptorWithFontAttributes:[[font fontDescriptor] fontAttributes]];

Turns out this actually returns success if its run in the same process as the web font :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103139</commentid>
    <comment_count>20</comment_count>
      <attachid>255165</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-18 19:52:04 -0700</bug_when>
    <thetext>Created attachment 255165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103141</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-18 19:59:39 -0700</bug_when>
    <thetext>It looks like our lookup tests don&apos;t actually perform any IPC serialization</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103285</commentid>
    <comment_count>22</comment_count>
      <attachid>255165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-19 10:39:58 -0700</bug_when>
    <thetext>Comment on attachment 255165
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:218
&gt; +static inline bool fontIsSerializable(NSFont *font)
&gt; +{
&gt; +    return adoptCF(CTFontCopyAttribute((CTFontRef)font, kCTFontURLAttribute));
&gt; +}

All three call sites that use this are using it the same way. They want a function that distinguishes non-serializable fonts from all other objects. Given the function name, filterUnserializableValues, below, I suggest adding this function:

    static inline bool isSerializableValue(id value)
    {
        return ![value isKindOfClass:[NSFont class]] || fontIsSerializable(value);
    }

You could use that in all three call sites.

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:222
&gt; +    auto result = adoptNS([NSMutableDictionary new]);

We almost always use alloc/init instead of new; new is smaller code and slightly slower. I don’t think this function is a good one to be the first that does this!

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:223
&gt; +    for (NSString *key in dictionary) {

I think it would be more efficient to do this with enumerateKeysAndObjectsUsingBlock: rather than a for loop.

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:224
&gt; +        ASSERT([key isKindOfClass:[NSString class]]);

Doesn’t seem important to assert this.

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:225
&gt; +        id object = dictionary[key];

This won’t compile on older platforms we still support. Needs to be:

    id object = [dictionary objectForKey:key];

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:226
&gt; +        if (object &amp;&amp; (![object isKindOfClass:[NSFont class]] || fontIsSerializable(object)))

Looks like this is compiling for iOS. To state the obvious, need to do an #if, since NSFont is not present on iOS. Or possibly use typedef to make the equivalent code work with UIFont?

No need to do if (object) here. That can be an assertion. NSDictionary doesn’t support having a key with an object of nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103286</commentid>
    <comment_count>23</comment_count>
      <attachid>255165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-19 10:41:58 -0700</bug_when>
    <thetext>Comment on attachment 255165
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:220
&gt; +static inline RetainPtr&lt;NSDictionary&gt; filterUnserializableValues(NSDictionary *dictionary)

Kind of annoying that this always copies the entire dictionary even though the common case is that we don’t have to filter anything. Consider optimizing the case where we didn’t have to filter anything to discard the mutable dictionary and just return the passed-in dictionary? Or even use a two pass algorithm. The first pass checks for the normal case to make it faster. Or keep it simple since copying the dictionary is no big deal, I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103443</commentid>
    <comment_count>24</comment_count>
      <attachid>255165</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-19 15:34:23 -0700</bug_when>
    <thetext>Comment on attachment 255165
Patch

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

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:217
&gt; +    return adoptCF(CTFontCopyAttribute((CTFontRef)font, kCTFontURLAttribute));

This is the wrong kind of cast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103467</commentid>
    <comment_count>25</comment_count>
      <attachid>255243</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-19 16:11:14 -0700</bug_when>
    <thetext>Created attachment 255243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103470</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-19 16:13:38 -0700</bug_when>
    <thetext>Attachment 255243 did not pass style-queue:


ERROR: Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:236:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:246:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
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>1103471</commentid>
    <comment_count>27</comment_count>
      <attachid>255243</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-06-19 16:17:26 -0700</bug_when>
    <thetext>Comment on attachment 255243
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        Upon consulting with Anders, Thorton, and Beth, we realized that the best place to stop the serialization

no need for this naming of names

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:30
&gt; +#if !USE(APPKIT)

PLATFORM(IOS)?

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:246
&gt; +    [dictionary enumerateKeysAndObjectsUsingBlock:^(id __nonnull key, id __nonnull object, BOOL * __nonnull stop) {

Do you really need all these __nonnulls here?

&gt; Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:248
&gt; +            [result.get() setObject:object forKey:key];

No need for the .get()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103479</commentid>
    <comment_count>28</comment_count>
      <attachid>255243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-19 16:29:48 -0700</bug_when>
    <thetext>Comment on attachment 255243
Patch

All of Tim’s comments make sense to me. Not sure why he didn’t say review+, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103480</commentid>
    <comment_count>29</comment_count>
      <attachid>255245</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-19 16:30:19 -0700</bug_when>
    <thetext>Created attachment 255245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103483</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-19 16:32:04 -0700</bug_when>
    <thetext>Attachment 255245 did not pass style-queue:


ERROR: Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:236:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/Shared/mac/ArgumentCodersMac.mm:246:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
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>1103486</commentid>
    <comment_count>31</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-19 16:34:20 -0700</bug_when>
    <thetext>Committed r185775: &lt;http://trac.webkit.org/changeset/185775&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254739</attachid>
            <date>2015-06-11 12:17:35 -0700</date>
            <delta_ts>2015-06-11 18:38:18 -0700</delta_ts>
            <desc>Speculative fix</desc>
            <filename>bug-145890-20150611121706.patch</filename>
            <type>text/plain</type>
            <size>1462</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjA0MGIxMDFkZDY1ZDdi
MWRlMTBiZDQxYzNhMmRlNDllYmViZTAxNS4uMjViZjcyMmRkODkwZTQ3ZWFmNmYzNzU2MzQ2MjUy
Nzc3MjZiMjQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA2LTExICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW09TIFhdIERl
Y29kaW5nIGZvbnRzIG1heSByZXR1cm4gbmlsIHdoZW4gdXNpbmcgZm9yY2UgY2xpY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtOU0ZvbnREZXNjcmlw
dG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRBdHRyaWJ1dGVzXSBtaWdodCByZXR1cm4gbmlsLCB3
aGljaAorICAgICAgICBjYXVzZXMgdGhlIGVuY29kaW5nIG9mIGFuIE5TRm9udCB0byBlcnJvbmVv
dXNseSByZXR1cm4gdHJ1ZS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNN
YWMubW06CisgICAgICAgIChJUEM6OmRlY29kZSk6CisKIDIwMTUtMDYtMTAgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmUg
c2hvdWxkIGhhbmRsZSByZW1vdmluZyBwbHVnLWluIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IDg5ODY5MWU4NTEzOWI0MjNmMDc5
Mzk5NzJlZDRiYWVmZjZhYzEzNDAuLmQzZGI5Y2VmZGQ0NDg4YzI4MmEzZGNmYjU2ZGJmZGU5Nzgz
NTdlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2Rl
cnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01h
Yy5tbQpAQCAtMzYzLDcgKzM2Myw3IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmV0YWluUHRyPE5TRm9udD4mIHJlc3VsdCkKICAgICBOU0ZvbnREZXNjcmlwdG9yICpm
b250RGVzY3JpcHRvciA9IFtOU0ZvbnREZXNjcmlwdG9yIGZvbnREZXNjcmlwdG9yV2l0aEZvbnRB
dHRyaWJ1dGVzOmZvbnRBdHRyaWJ1dGVzLmdldCgpXTsKICAgICByZXN1bHQgPSBbTlNGb250IGZv
bnRXaXRoRGVzY3JpcHRvcjpmb250RGVzY3JpcHRvciBzaXplOjBdOwogCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254773</attachid>
            <date>2015-06-11 18:38:20 -0700</date>
            <delta_ts>2015-06-16 18:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150611183748.patch</filename>
            <type>text/plain</type>
            <size>2289</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjA1OWNhMTk5ZThmMDI2
YTQzOTJhY2M1YWQ1OTBlYTAyMmFiMzE2Ni4uMDNkN2Q3MTE1ZmRiZTAzMTRhMDMxMGE3YjA2ZGU2
MGZiNWYyOTZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTExICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW09TIFhdIERl
Y29kaW5nIGZvbnRzIG1heSByZXR1cm4gbmlsIHdoZW4gdXNpbmcgZm9yY2UgY2xpY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg5MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjExNzA0ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gYWJvcnQgdGhlIHdob2xlIG1lc3NhZ2Us
IHdlIHNob3VsZCB0ZWFjaCBhcmd1bWVudCBkZWNvZGVycyB0aGF0IHNvbWUKKyAgICAgICAgb2Jq
ZWN0cywgbGlrZSB3ZWJmb250cywganVzdCBjYW4ndCBiZSBzZXJpYWxpemVkLgorCisgICAgICAg
ICogU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6ZGVjb2Rl
KToKKwogMjAxNS0wNi0xMSAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWVkaWEgU2Vzc2lvbjogQWRkIHBsdW1iaW5nIGZvciBtZWRpYSBjb250cm9sIGV2ZW50IGRl
bGl2ZXJ5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENv
ZGVyc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMu
bW0KaW5kZXggZDNkYjljZWZkZDQ0ODhjMjgyYTNkY2ZiNTZkYmZkZTk3ODM1N2VmMC4uZmRlYzQw
YzY4N2Y0ODA5YTI0ZmM0MTc4NjM0NTBhNmNkMjFjMzI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCkBAIC0zNDAsNyArMzQwLDkgQEAgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5
PiYgcmVzdWx0KQogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCB2YWx1ZSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OnZhbHVl
LmdldCgpIGZvcktleTprZXkuZ2V0KCldOworICAgICAgICAvLyBTb21lIHZhbHVlcywgc3VjaCBh
cyB3ZWIgZm9udHMsIGNhbm5vdCBiZSBzZXJpYWxpemVkLgorICAgICAgICBpZiAodmFsdWUpCisg
ICAgICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6dmFsdWUuZ2V0KCkgZm9yS2V5OmtleS5n
ZXQoKV07CiAgICAgfQogCiAgICAgcmVzdWx0ID0gYWRvcHROUyhkaWN0aW9uYXJ5LmxlYWtSZWYo
KSk7CkBAIC0zNjMsNyArMzY1LDcgQEAgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZXRhaW5QdHI8TlNGb250PiYgcmVzdWx0KQogICAgIE5TRm9udERlc2NyaXB0b3IgKmZv
bnREZXNjcmlwdG9yID0gW05TRm9udERlc2NyaXB0b3IgZm9udERlc2NyaXB0b3JXaXRoRm9udEF0
dHJpYnV0ZXM6Zm9udEF0dHJpYnV0ZXMuZ2V0KCldOwogICAgIHJlc3VsdCA9IFtOU0ZvbnQgZm9u
dFdpdGhEZXNjcmlwdG9yOmZvbnREZXNjcmlwdG9yIHNpemU6MF07CiAKLSAgICByZXR1cm4gcmVz
dWx0OworICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCiAKQEAgLTQyNSw3ICs0MjcsOSBAQCBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxOU0FycmF5PiYg
cmVzdWx0KQogICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCB2YWx1ZSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgW2FycmF5IGFkZE9iamVjdDp2YWx1ZS5nZXQoKV07
CisgICAgICAgIC8vIFNvbWUgdmFsdWVzLCBzdWNoIGFzIHdlYiBmb250cywgY2Fubm90IGJlIHNl
cmlhbGl6ZWQuCisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgIFthcnJheSBhZGRPYmpl
Y3Q6dmFsdWUuZ2V0KCldOwogICAgIH0KIAogICAgIHJlc3VsdCA9IGFkb3B0TlMoYXJyYXkubGVh
a1JlZigpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254988</attachid>
            <date>2015-06-16 18:13:12 -0700</date>
            <delta_ts>2015-06-16 18:15:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150616181236.patch</filename>
            <type>text/plain</type>
            <size>2487</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2VhZTkwMGRiOTc0NWQy
MjM3OWUzMzI1NTg5YWI1ZmQ3MzQ4MjEzNS4uNzUzODUwZDU0MDFlZTgwZDE0YTYyN2M0Zjk1Zjk4
MDUzNDZkZjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA2LTE2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW09TIFhdIERl
Y29kaW5nIGZvbnRzIG1heSByZXR1cm4gbmlsIHdoZW4gdXNpbmcgZm9yY2UgY2xpY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgZm9udHMsIHN1
Y2ggYXMgd2ViIGZvbnRzLCBjYW4ndCBiZSBzZXJpYWxpemVkLiBXaGVuIHBlcmZvcm1pbmcgYSBk
ZWVwIGNsaWNrLCBzaW1wbHkgZmlsdGVyCisgICAgICAgIG91dCB0aGVzZSBmb250cyBmcm9tIGJl
aW5nIHNlbnQgYWNyb3NzIHByb2Nlc3MgYm91bmRhcmllcy4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Zm9udENhblN1
cnZpdmVTZXJpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGljdGlvbmFy
eVBvcHVwSW5mb0ZvclJhbmdlKToKKwogMjAxNS0wNi0xNiAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNo
b2lAbmF2ZXJjb3JwLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhdHRlbXB0
IG9uIENNYWtlIGJhc2VkIHBvcnQgYWZ0ZXIgcjE4NTYyMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA5M2ZhNjBlM2Iw
OGQ3OTRkMTQ2ZTFjODM3MWY0ZGZlMDhjODdiMTk1Li4zNzE3MWQ2NzNkM2ZhMTJhZjNiZjE2ODQ1
YzQ0NzlhMmUzMjk5ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC01MzksNiArNTM5LDExIEBAIHZvaWQgV2ViUGFn
ZTo6cGVyZm9ybURpY3Rpb25hcnlMb29rdXBPZkN1cnJlbnRTZWxlY3Rpb24oKQogICAgIHBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwRm9yU2VsZWN0aW9uKGZyYW1lLCBmcmFtZS0+c2VsZWN0aW9uKCku
c2VsZWN0aW9uKCksIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2VB
bmRDcm9zc2ZhZGUpOwogfQogCitzdGF0aWMgYm9vbCBmb250Q2FuU3Vydml2ZVNlcmlhbGl6YXRp
b24oTlNGb250ICpmb250KQoreworICAgIHJldHVybiBbTlNGb250RGVzY3JpcHRvciBmb250RGVz
Y3JpcHRvcldpdGhGb250QXR0cmlidXRlczpbW2ZvbnQgZm9udERlc2NyaXB0b3JdIGZvbnRBdHRy
aWJ1dGVzXV07Cit9CisKIERpY3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBv
cHVwSW5mb0ZvclJhbmdlKEZyYW1lKiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBOU0RpY3Rpb25hcnkg
KipvcHRpb25zLCBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiBwcmVzZW50YXRp
b25UcmFuc2l0aW9uKQogewogICAgIERpY3Rpb25hcnlQb3B1cEluZm8gZGljdGlvbmFyeVBvcHVw
SW5mbzsKQEAgLTU3MCw3ICs1NzUsOCBAQCBEaWN0aW9uYXJ5UG9wdXBJbmZvIFdlYlBhZ2U6OmRp
Y3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJiByYQogICAgICAg
ICBOU0ZvbnQgKmZvbnQgPSBbc2NhbGVkQXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0
cmlidXRlTmFtZV07CiAgICAgICAgIGlmIChmb250KSB7CiAgICAgICAgICAgICBmb250ID0gW2Zv
bnRNYW5hZ2VyIGNvbnZlcnRGb250OmZvbnQgdG9TaXplOltmb250IHBvaW50U2l6ZV0gKiBwYWdl
U2NhbGVGYWN0b3IoKV07Ci0gICAgICAgICAgICBbc2NhbGVkQXR0cmlidXRlcyBzZXRPYmplY3Q6
Zm9udCBmb3JLZXk6TlNGb250QXR0cmlidXRlTmFtZV07CisgICAgICAgICAgICBpZiAoZm9udENh
blN1cnZpdmVTZXJpYWxpemF0aW9uKGZvbnQpKQorICAgICAgICAgICAgICAgIFtzY2FsZWRBdHRy
aWJ1dGVzIHNldE9iamVjdDpmb250IGZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXTsKICAgICAg
ICAgfQogCiAgICAgICAgIFtzY2FsZWROU0F0dHJpYnV0ZWRTdHJpbmcgYWRkQXR0cmlidXRlczpz
Y2FsZWRBdHRyaWJ1dGVzLmdldCgpIHJhbmdlOnJhbmdlXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254989</attachid>
            <date>2015-06-16 18:15:09 -0700</date>
            <delta_ts>2015-06-18 18:24:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150616181433.patch</filename>
            <type>text/plain</type>
            <size>2529</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2VhZTkwMGRiOTc0NWQy
MjM3OWUzMzI1NTg5YWI1ZmQ3MzQ4MjEzNS4uY2FmNDU4ZTc2NWNkZDlmZDMyNDJmMWU0OTY3Nzcw
NDk4ZDY3MzM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTA2LTE2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW09TIFhdIERl
Y29kaW5nIGZvbnRzIG1heSByZXR1cm4gbmlsIHdoZW4gdXNpbmcgZm9yY2UgY2xpY2sKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTg5MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjExNzA0ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU29tZSBmb250cywgc3VjaCBhcyB3ZWIgZm9udHMsIGNhbid0
IGJlIHNlcmlhbGl6ZWQuIFdoZW4gcGVyZm9ybWluZyBhIGRlZXAgY2xpY2ssIHNpbXBseSBmaWx0
ZXIKKyAgICAgICAgb3V0IHRoZXNlIGZvbnRzIGZyb20gYmVpbmcgc2VudCBhY3Jvc3MgcHJvY2Vz
cyBib3VuZGFyaWVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpmb250Q2FuU3Vydml2ZVNlcmlhbGl6YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWN0aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UpOgor
CiAyMDE1LTA2LTE2ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGF0dGVtcHQgb24gQ01ha2UgYmFzZWQgcG9ydCBh
ZnRlciByMTg1NjIzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDkzZmE2MGUzYjA4ZDc5NGQxNDZlMWM4MzcxZjRkZmUw
OGM4N2IxOTUuLjkyMjdmYTJiNTg4ODQxYzVkNGRhODJlZDU3YjAxZWYyMzliOGNjMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KQEAgLTUzOSw2ICs1MzksMTEgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cE9mQ3VycmVudFNlbGVjdGlvbigpCiAgICAgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JT
ZWxlY3Rpb24oZnJhbWUsIGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSwgVGV4dEluZGlj
YXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkJvdW5jZUFuZENyb3NzZmFkZSk7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgYm9vbCBmb250Q2FuU3Vydml2ZVNlcmlhbGl6YXRpb24oTlNGb250ICpmb250
KQoreworICAgIHJldHVybiBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250
QXR0cmlidXRlczpbW2ZvbnQgZm9udERlc2NyaXB0b3JdIGZvbnRBdHRyaWJ1dGVzXV07Cit9CisK
IERpY3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdl
KEZyYW1lKiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBOU0RpY3Rpb25hcnkgKipvcHRpb25zLCBUZXh0
SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiBwcmVzZW50YXRpb25UcmFuc2l0aW9uKQog
ewogICAgIERpY3Rpb25hcnlQb3B1cEluZm8gZGljdGlvbmFyeVBvcHVwSW5mbzsKQEAgLTU3MCw3
ICs1NzUsOCBAQCBEaWN0aW9uYXJ5UG9wdXBJbmZvIFdlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cElu
Zm9Gb3JSYW5nZShGcmFtZSogZnJhbWUsIFJhbmdlJiByYQogICAgICAgICBOU0ZvbnQgKmZvbnQg
PSBbc2NhbGVkQXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNGb250QXR0cmlidXRlTmFtZV07CiAg
ICAgICAgIGlmIChmb250KSB7CiAgICAgICAgICAgICBmb250ID0gW2ZvbnRNYW5hZ2VyIGNvbnZl
cnRGb250OmZvbnQgdG9TaXplOltmb250IHBvaW50U2l6ZV0gKiBwYWdlU2NhbGVGYWN0b3IoKV07
Ci0gICAgICAgICAgICBbc2NhbGVkQXR0cmlidXRlcyBzZXRPYmplY3Q6Zm9udCBmb3JLZXk6TlNG
b250QXR0cmlidXRlTmFtZV07CisgICAgICAgICAgICBpZiAoZm9udENhblN1cnZpdmVTZXJpYWxp
emF0aW9uKGZvbnQpKQorICAgICAgICAgICAgICAgIFtzY2FsZWRBdHRyaWJ1dGVzIHNldE9iamVj
dDpmb250IGZvcktleTpOU0ZvbnRBdHRyaWJ1dGVOYW1lXTsKICAgICAgICAgfQogCiAgICAgICAg
IFtzY2FsZWROU0F0dHJpYnV0ZWRTdHJpbmcgYWRkQXR0cmlidXRlczpzY2FsZWRBdHRyaWJ1dGVz
LmdldCgpIHJhbmdlOnJhbmdlXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255160</attachid>
            <date>2015-06-18 18:24:08 -0700</date>
            <delta_ts>2015-06-18 19:52:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150618182330.patch</filename>
            <type>text/plain</type>
            <size>3586</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTRhZmJjZjUzY2U3OTgx
ZGZjZDQ5ZWIzZDI0OGU5OGQ5MmRiMDI1YS4uZDJiOTNjNDdkZDY0OGM5NzU4MDA2YzU1N2NjN2Rl
NDNhNDZlMjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA2LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTg1NDc1KTogW01hY10gQVNTRVJUKCkgd2hlbiBjbGlja2luZyBvbiB0ZXh0IHVzaW5nIHdl
YiBmb250cyB3aXRoIGZvcmNlIHRvdWNoIHRyYWNrcGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMzkwODc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwb24gY29uc3VsdGluZyB3aXRoIEFuZGVycywgVGhvcnRvbiwgYW5kIEJldGgsIHdlIHJl
YWxpemVkIHRoYXQgdGhlIGJlc3QgcGxhY2UgdG8gc3RvcCB0aGUgc2VyaWFsaXphdGlvbgorICAg
ICAgICBvZiB1bnNlcmlhbGl6YWJsZSBmb250cyBpcyBpbnNpZGUgV2ViS2l0MidzIElQQyBjb2Rl
LiBXZSB3YW50IHRoaXMgbG9naWMgdG8gb2NjdXIgd2hlbiBlbmNvZGluZyBhbgorICAgICAgICBO
U0F0dHJpYnV0ZWRTdHJpbmcsIHJhdGhlciB0aGFuIHdoZW4gZW5jb2RpbmcgYW4gTlNEaWN0aW9u
YXJ5LCBiZWNhdXNlIGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbgorICAgICAgICBOU0F0dHJpYnV0
ZWRTdHJpbmcgaXMgbGVzcyBsaWtlbHkgdG8gcmVzdWx0IGluIHByb2JsZW1zIHJhdGhlciB0aGFu
IGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbiBOU0RpY3Rpb25hcnkuCisKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpmb250SXNTZXJpYWxp
emFibGUpOgorICAgICAgICAoSVBDOjpmaWx0ZXJVbnNlcmlhbGl6YWJsZVZhbHVlcyk6CisgICAg
ICAgIChJUEM6OmVuY29kZSk6CisKIDIwMTUtMDYtMTggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBBVktpdCB1c2FnZSBvZiBwaXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGQzZGI5Y2VmZGQ0NDg4
YzI4MmEzZGNmYjU2ZGJmZGU5NzgzNTdlZjAuLjk5OTg5ZjY3NjE0ZTY3NGM1MTc1N2RiMjVlMTk0
MzNhMjBhYTEyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1l
bnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENv
ZGVyc01hYy5tbQpAQCAtMjEwLDYgKzIxMCwyMyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmb250SXNTZXJpYWxpemFibGUoTlNGb250ICpmb250KQor
eworICAgIHJldHVybiBbTlNGb250RGVzY3JpcHRvciBmb250RGVzY3JpcHRvcldpdGhGb250QXR0
cmlidXRlczpbW2ZvbnQgZm9udERlc2NyaXB0b3JdIGZvbnRBdHRyaWJ1dGVzXV07Cit9CisKK3N0
YXRpYyBpbmxpbmUgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gZmlsdGVyVW5zZXJpYWxpemFibGVW
YWx1ZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHROUyhbTlNNdXRhYmxlRGljdGlvbmFyeSBuZXddKTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkg
aW4gZGljdGlvbmFyeSkgeworICAgICAgICBBU1NFUlQoW2tleSBpc0tpbmRPZkNsYXNzOltOU1N0
cmluZyBjbGFzc11dKTsKKyAgICAgICAgaWQgb2JqZWN0ID0gZGljdGlvbmFyeVtrZXldOworICAg
ICAgICBpZiAob2JqZWN0ICYmICghW29iamVjdCBpc0tpbmRPZkNsYXNzOltOU0ZvbnQgY2xhc3Nd
XSB8fCBmb250SXNTZXJpYWxpemFibGUob2JqZWN0KSkpCisgICAgICAgICAgICBbcmVzdWx0Lmdl
dCgpIHNldE9iamVjdDpvYmplY3QgZm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiByZXN1
bHQ7Cit9CisKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNBdHRyaWJ1
dGVkU3RyaW5nICpzdHJpbmcpCiB7CiAgICAgLy8gRXZlbiB0aG91Z2ggTlNBdHRyaWJ1dGVkU3Ry
aW5nIGlzIHRvbGwgZnJlZSBicmlkZ2VkIHdpdGggQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmLCBhdHRy
aWJ1dGVzJyB2YWx1ZXMgbWF5IGJlIG5vdCwgc28gd2Ugc2hvdWxkIHN0YXkgd2l0aGluIHRoaXMg
ZmlsZSdzIGNvZGUuCkBAIC0yMjksNyArMjQ2LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKICAgICAgICAgQVNTRVJU
KGVmZmVjdGl2ZVJhbmdlLmxlbmd0aCk7CiAgICAgICAgIEFTU0VSVChOU01heFJhbmdlKGVmZmVj
dGl2ZVJhbmdlKSA8PSBsZW5ndGgpOwogCi0gICAgICAgIHJhbmdlcy5hcHBlbmQoc3RkOjptYWtl
X3BhaXIoZWZmZWN0aXZlUmFuZ2UsIGF0dHJpYnV0ZXNBdEluZGV4KSk7CisgICAgICAgIHJhbmdl
cy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoZWZmZWN0aXZlUmFuZ2UsIGZpbHRlclVuc2VyaWFsaXph
YmxlVmFsdWVzKGF0dHJpYnV0ZXNBdEluZGV4LmdldCgpKSkpOwogCiAgICAgICAgIHBvc2l0aW9u
ID0gTlNNYXhSYW5nZShlZmZlY3RpdmVSYW5nZSk7CiAgICAgfQpAQCAtMzEzLDYgKzMzMCw3IEBA
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNEaWN0aW9uYXJ5ICpkaWN0
aW9uYXJ5KQogICAgICAgICBBU1NFUlQoa2V5KTsKICAgICAgICAgQVNTRVJUKFtrZXkgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CisgICAg
ICAgIEFTU0VSVCghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRm9udCBjbGFzc11dIHx8IGZvbnRJ
c1NlcmlhbGl6YWJsZSh2YWx1ZSkpOwogCiAgICAgICAgIC8vIElnbm9yZSB2YWx1ZXMgd2UgZG9u
J3QgcmVjb2duaXplLgogICAgICAgICBpZiAodHlwZUZyb21PYmplY3QodmFsdWUpID09IFVua25v
d24pCkBAIC00MDksNiArNDI3LDggQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBOU0FycmF5ICphcnJheSkKICAgICAgICAgaWYgKHR5cGVGcm9tT2JqZWN0KHZhbHVlKSA9
PSBVbmtub3duKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgQVNTRVJUKCFbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNGb250IGNsYXNzXV0gfHwgZm9udElzU2VyaWFsaXphYmxlKHZh
bHVlKSk7CisKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255165</attachid>
            <date>2015-06-18 19:52:04 -0700</date>
            <delta_ts>2015-06-19 16:11:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150618195126.patch</filename>
            <type>text/plain</type>
            <size>3754</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTRhZmJjZjUzY2U3OTgx
ZGZjZDQ5ZWIzZDI0OGU5OGQ5MmRiMDI1YS4uZDJiOTNjNDdkZDY0OGM5NzU4MDA2YzU1N2NjN2Rl
NDNhNDZlMjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA2LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTg1NDc1KTogW01hY10gQVNTRVJUKCkgd2hlbiBjbGlja2luZyBvbiB0ZXh0IHVzaW5nIHdl
YiBmb250cyB3aXRoIGZvcmNlIHRvdWNoIHRyYWNrcGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMzkwODc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwb24gY29uc3VsdGluZyB3aXRoIEFuZGVycywgVGhvcnRvbiwgYW5kIEJldGgsIHdlIHJl
YWxpemVkIHRoYXQgdGhlIGJlc3QgcGxhY2UgdG8gc3RvcCB0aGUgc2VyaWFsaXphdGlvbgorICAg
ICAgICBvZiB1bnNlcmlhbGl6YWJsZSBmb250cyBpcyBpbnNpZGUgV2ViS2l0MidzIElQQyBjb2Rl
LiBXZSB3YW50IHRoaXMgbG9naWMgdG8gb2NjdXIgd2hlbiBlbmNvZGluZyBhbgorICAgICAgICBO
U0F0dHJpYnV0ZWRTdHJpbmcsIHJhdGhlciB0aGFuIHdoZW4gZW5jb2RpbmcgYW4gTlNEaWN0aW9u
YXJ5LCBiZWNhdXNlIGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbgorICAgICAgICBOU0F0dHJpYnV0
ZWRTdHJpbmcgaXMgbGVzcyBsaWtlbHkgdG8gcmVzdWx0IGluIHByb2JsZW1zIHJhdGhlciB0aGFu
IGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbiBOU0RpY3Rpb25hcnkuCisKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpmb250SXNTZXJpYWxp
emFibGUpOgorICAgICAgICAoSVBDOjpmaWx0ZXJVbnNlcmlhbGl6YWJsZVZhbHVlcyk6CisgICAg
ICAgIChJUEM6OmVuY29kZSk6CisKIDIwMTUtMDYtMTggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBBVktpdCB1c2FnZSBvZiBwaXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGQzZGI5Y2VmZGQ0NDg4
YzI4MmEzZGNmYjU2ZGJmZGU5NzgzNTdlZjAuLmE3ZWMyZWE5YWNiMTkyMDM0OThkMmEzNmI0Njdi
YzcxNTc2ZTQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1l
bnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENv
ZGVyc01hYy5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0
ICJBcmd1bWVudENvZGVyc01hYy5oIgogCisjaW1wb3J0IDxDb3JlVGV4dC9Db3JlVGV4dC5oPgor
CiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJBcmd1bWVudERlY29kZXIu
aCIKICNpbXBvcnQgIkFyZ3VtZW50RW5jb2Rlci5oIgpAQCAtMjEwLDYgKzIxMiwyMyBAQCBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmb250SXNTZXJpYWxp
emFibGUoTlNGb250ICpmb250KQoreworICAgIHJldHVybiBhZG9wdENGKENURm9udENvcHlBdHRy
aWJ1dGUoKENURm9udFJlZilmb250LCBrQ1RGb250VVJMQXR0cmlidXRlKSk7Cit9CisKK3N0YXRp
YyBpbmxpbmUgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gZmlsdGVyVW5zZXJpYWxpemFibGVWYWx1
ZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRO
UyhbTlNNdXRhYmxlRGljdGlvbmFyeSBuZXddKTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4g
ZGljdGlvbmFyeSkgeworICAgICAgICBBU1NFUlQoW2tleSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dKTsKKyAgICAgICAgaWQgb2JqZWN0ID0gZGljdGlvbmFyeVtrZXldOworICAgICAg
ICBpZiAob2JqZWN0ICYmICghW29iamVjdCBpc0tpbmRPZkNsYXNzOltOU0ZvbnQgY2xhc3NdXSB8
fCBmb250SXNTZXJpYWxpemFibGUob2JqZWN0KSkpCisgICAgICAgICAgICBbcmVzdWx0LmdldCgp
IHNldE9iamVjdDpvYmplY3QgZm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNBdHRyaWJ1dGVk
U3RyaW5nICpzdHJpbmcpCiB7CiAgICAgLy8gRXZlbiB0aG91Z2ggTlNBdHRyaWJ1dGVkU3RyaW5n
IGlzIHRvbGwgZnJlZSBicmlkZ2VkIHdpdGggQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmLCBhdHRyaWJ1
dGVzJyB2YWx1ZXMgbWF5IGJlIG5vdCwgc28gd2Ugc2hvdWxkIHN0YXkgd2l0aGluIHRoaXMgZmls
ZSdzIGNvZGUuCkBAIC0yMjksNyArMjQ4LDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKICAgICAgICAgQVNTRVJUKGVm
ZmVjdGl2ZVJhbmdlLmxlbmd0aCk7CiAgICAgICAgIEFTU0VSVChOU01heFJhbmdlKGVmZmVjdGl2
ZVJhbmdlKSA8PSBsZW5ndGgpOwogCi0gICAgICAgIHJhbmdlcy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIoZWZmZWN0aXZlUmFuZ2UsIGF0dHJpYnV0ZXNBdEluZGV4KSk7CisgICAgICAgIHJhbmdlcy5h
cHBlbmQoc3RkOjptYWtlX3BhaXIoZWZmZWN0aXZlUmFuZ2UsIGZpbHRlclVuc2VyaWFsaXphYmxl
VmFsdWVzKGF0dHJpYnV0ZXNBdEluZGV4LmdldCgpKSkpOwogCiAgICAgICAgIHBvc2l0aW9uID0g
TlNNYXhSYW5nZShlZmZlY3RpdmVSYW5nZSk7CiAgICAgfQpAQCAtMzEzLDYgKzMzMiw3IEBAIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNEaWN0aW9uYXJ5ICpkaWN0aW9u
YXJ5KQogICAgICAgICBBU1NFUlQoa2V5KTsKICAgICAgICAgQVNTRVJUKFtrZXkgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CiAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgICAg
IEFTU0VSVCghW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRm9udCBjbGFzc11dIHx8IGZvbnRJc1Nl
cmlhbGl6YWJsZSh2YWx1ZSkpOwogCiAgICAgICAgIC8vIElnbm9yZSB2YWx1ZXMgd2UgZG9uJ3Qg
cmVjb2duaXplLgogICAgICAgICBpZiAodHlwZUZyb21PYmplY3QodmFsdWUpID09IFVua25vd24p
CkBAIC00MDksNiArNDI5LDggQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBOU0FycmF5ICphcnJheSkKICAgICAgICAgaWYgKHR5cGVGcm9tT2JqZWN0KHZhbHVlKSA9PSBV
bmtub3duKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgQVNTRVJUKCFbdmFsdWUg
aXNLaW5kT2ZDbGFzczpbTlNGb250IGNsYXNzXV0gfHwgZm9udElzU2VyaWFsaXphYmxlKHZhbHVl
KSk7CisKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255243</attachid>
            <date>2015-06-19 16:11:14 -0700</date>
            <delta_ts>2015-06-19 16:30:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150619161036.patch</filename>
            <type>text/plain</type>
            <size>4291</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTRhZmJjZjUzY2U3OTgx
ZGZjZDQ5ZWIzZDI0OGU5OGQ5MmRiMDI1YS4uZDJiOTNjNDdkZDY0OGM5NzU4MDA2YzU1N2NjN2Rl
NDNhNDZlMjYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA2LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTg1NDc1KTogW01hY10gQVNTRVJUKCkgd2hlbiBjbGlja2luZyBvbiB0ZXh0IHVzaW5nIHdl
YiBmb250cyB3aXRoIGZvcmNlIHRvdWNoIHRyYWNrcGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMzkwODc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwb24gY29uc3VsdGluZyB3aXRoIEFuZGVycywgVGhvcnRvbiwgYW5kIEJldGgsIHdlIHJl
YWxpemVkIHRoYXQgdGhlIGJlc3QgcGxhY2UgdG8gc3RvcCB0aGUgc2VyaWFsaXphdGlvbgorICAg
ICAgICBvZiB1bnNlcmlhbGl6YWJsZSBmb250cyBpcyBpbnNpZGUgV2ViS2l0MidzIElQQyBjb2Rl
LiBXZSB3YW50IHRoaXMgbG9naWMgdG8gb2NjdXIgd2hlbiBlbmNvZGluZyBhbgorICAgICAgICBO
U0F0dHJpYnV0ZWRTdHJpbmcsIHJhdGhlciB0aGFuIHdoZW4gZW5jb2RpbmcgYW4gTlNEaWN0aW9u
YXJ5LCBiZWNhdXNlIGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbgorICAgICAgICBOU0F0dHJpYnV0
ZWRTdHJpbmcgaXMgbGVzcyBsaWtlbHkgdG8gcmVzdWx0IGluIHByb2JsZW1zIHJhdGhlciB0aGFu
IGNoYW5naW5nIHRoZSBzaGFwZSBvZiBhbiBOU0RpY3Rpb25hcnkuCisKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tOgorICAgICAgICAoSVBDOjpmb250SXNTZXJpYWxp
emFibGUpOgorICAgICAgICAoSVBDOjpmaWx0ZXJVbnNlcmlhbGl6YWJsZVZhbHVlcyk6CisgICAg
ICAgIChJUEM6OmVuY29kZSk6CisKIDIwMTUtMDYtMTggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBBVktpdCB1c2FnZSBvZiBwaXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tCmluZGV4IGQzZGI5Y2VmZGQ0NDg4
YzI4MmEzZGNmYjU2ZGJmZGU5NzgzNTdlZjAuLjliNzRhZWQ1NjRkYTI1MTI5MzY4OTUwMTJhNDBl
YWMxNjU3MmJlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1l
bnRDb2RlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Bcmd1bWVudENv
ZGVyc01hYy5tbQpAQCAtMjYsNiArMjYsMTEgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiQXJndW1lbnRDb2RlcnNNYWMuaCIKIAorI2ltcG9ydCA8Q29yZVRleHQvQ29yZVRleHQuaD4K
KyNpZiAhVVNFKEFQUEtJVCkKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjZW5kaWYKKwogI2lt
cG9ydCAiQXJndW1lbnRDb2RlcnNDRi5oIgogI2ltcG9ydCAiQXJndW1lbnREZWNvZGVyLmgiCiAj
aW1wb3J0ICJBcmd1bWVudEVuY29kZXIuaCIKQEAgLTIxMCw2ICsyMTUsNDEgQEAgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiByZXN1bHQpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTZXJpYWxpemFibGVGb250
KENURm9udFJlZiBmb250KQoreworICAgIHJldHVybiBhZG9wdENGKENURm9udENvcHlBdHRyaWJ1
dGUoZm9udCwga0NURm9udFVSTEF0dHJpYnV0ZSkpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wg
aXNTZXJpYWxpemFibGVWYWx1ZShpZCB2YWx1ZSkKK3sKKyNpZiBVU0UoQVBQS0lUKQorICAgIGF1
dG8gZm9udENsYXNzID0gW05TRm9udCBjbGFzc107CisjZWxzZQorICAgIGF1dG8gZm9udENsYXNz
ID0gW1VJRm9udCBjbGFzc107CisjZW5kaWYKKyAgICByZXR1cm4gIVt2YWx1ZSBpc0tpbmRPZkNs
YXNzOmZvbnRDbGFzc10gfHwgaXNTZXJpYWxpemFibGVGb250KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RG
b250UmVmPih2YWx1ZSkpOworfQorCitzdGF0aWMgaW5saW5lIFJldGFpblB0cjxOU0RpY3Rpb25h
cnk+IGZpbHRlclVuc2VyaWFsaXphYmxlVmFsdWVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkK
K3sKKyAgICBfX2Jsb2NrIGJvb2wgbW9kaWZpY2F0aW9uTmVjZXNzYXJ5ID0gZmFsc2U7CisgICAg
W2RpY3Rpb25hcnkgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOl4oaWQgX19ub25u
dWxsIGtleSwgaWQgX19ub25udWxsIG9iamVjdCwgQk9PTCAqIF9fbm9ubnVsbCBzdG9wKSB7Cisg
ICAgICAgIGlmICghaXNTZXJpYWxpemFibGVWYWx1ZShvYmplY3QpKSB7CisgICAgICAgICAgICBt
b2RpZmljYXRpb25OZWNlc3NhcnkgPSB0cnVlOworICAgICAgICAgICAgKnN0b3AgPSBZRVM7Cisg
ICAgICAgIH0KKyAgICB9XTsKKyAgICBpZiAoIW1vZGlmaWNhdGlvbk5lY2Vzc2FyeSkKKyAgICAg
ICAgcmV0dXJuIGRpY3Rpb25hcnk7CisKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0TlMoW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgW2RpY3Rpb25hcnkgZW51bWVyYXRl
S2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOl4oaWQgX19ub25udWxsIGtleSwgaWQgX19ub25udWxs
IG9iamVjdCwgQk9PTCAqIF9fbm9ubnVsbCBzdG9wKSB7CisgICAgICAgIGlmIChpc1NlcmlhbGl6
YWJsZVZhbHVlKG9iamVjdCkpCisgICAgICAgICAgICBbcmVzdWx0LmdldCgpIHNldE9iamVjdDpv
YmplY3QgZm9yS2V5OmtleV07CisgICAgfV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0
cmluZykKIHsKICAgICAvLyBFdmVuIHRob3VnaCBOU0F0dHJpYnV0ZWRTdHJpbmcgaXMgdG9sbCBm
cmVlIGJyaWRnZWQgd2l0aCBDRkF0dHJpYnV0ZWRTdHJpbmdSZWYsIGF0dHJpYnV0ZXMnIHZhbHVl
cyBtYXkgYmUgbm90LCBzbyB3ZSBzaG91bGQgc3RheSB3aXRoaW4gdGhpcyBmaWxlJ3MgY29kZS4K
QEAgLTIyOSw3ICsyNjksNyBAQCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nKQogICAgICAgICBBU1NFUlQoZWZmZWN0aXZlUmFu
Z2UubGVuZ3RoKTsKICAgICAgICAgQVNTRVJUKE5TTWF4UmFuZ2UoZWZmZWN0aXZlUmFuZ2UpIDw9
IGxlbmd0aCk7CiAKLSAgICAgICAgcmFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihlZmZlY3Rp
dmVSYW5nZSwgYXR0cmlidXRlc0F0SW5kZXgpKTsKKyAgICAgICAgcmFuZ2VzLmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihlZmZlY3RpdmVSYW5nZSwgZmlsdGVyVW5zZXJpYWxpemFibGVWYWx1ZXMoYXR0
cmlidXRlc0F0SW5kZXguZ2V0KCkpKSk7CiAKICAgICAgICAgcG9zaXRpb24gPSBOU01heFJhbmdl
KGVmZmVjdGl2ZVJhbmdlKTsKICAgICB9CkBAIC0zMTMsNiArMzUzLDcgQEAgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCiAgICAg
ICAgIEFTU0VSVChrZXkpOwogICAgICAgICBBU1NFUlQoW2tleSBpc0tpbmRPZkNsYXNzOltOU1N0
cmluZyBjbGFzc11dKTsKICAgICAgICAgQVNTRVJUKHZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGlz
U2VyaWFsaXphYmxlVmFsdWUodmFsdWUpKTsKIAogICAgICAgICAvLyBJZ25vcmUgdmFsdWVzIHdl
IGRvbid0IHJlY29nbml6ZS4KICAgICAgICAgaWYgKHR5cGVGcm9tT2JqZWN0KHZhbHVlKSA9PSBV
bmtub3duKQpAQCAtNDA5LDYgKzQ1MCw4IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgTlNBcnJheSAqYXJyYXkpCiAgICAgICAgIGlmICh0eXBlRnJvbU9iamVjdCh2YWx1
ZSkgPT0gVW5rbm93bikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIEFTU0VSVChp
c1NlcmlhbGl6YWJsZVZhbHVlKHZhbHVlKSk7CisKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHZh
bHVlKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255245</attachid>
            <date>2015-06-19 16:30:19 -0700</date>
            <delta_ts>2015-06-19 16:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145890-20150619162941.patch</filename>
            <type>text/plain</type>
            <size>4159</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTRhZmJjZjUzY2U3OTgx
ZGZjZDQ5ZWIzZDI0OGU5OGQ5MmRiMDI1YS4uMzkwNWUxZTMzMDc2MzI2M2NmODEwY2E0MzExZDA2
NjVhNjBhYmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA2LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTg1NDc1KTogW01hY10gQVNTRVJUKCkgd2hlbiBjbGlja2luZyBvbiB0ZXh0IHVzaW5nIHdl
YiBmb250cyB3aXRoIGZvcmNlIHRvdWNoIHRyYWNrcGFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMzkwODc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBiZXN0IHBsYWNlIHRvIHN0b3AgdGhlIHNlcmlhbGl6YXRpb24gb2YgdW5zZXJpYWxp
emFibGUgZm9udHMgaXMgaW5zaWRlIFdlYktpdDIncyBJUEMgY29kZS4gV2Ugd2FudAorICAgICAg
ICB0aGlzIGxvZ2ljIHRvIG9jY3VyIHdoZW4gZW5jb2RpbmcgYW4gTlNBdHRyaWJ1dGVkU3RyaW5n
LCByYXRoZXIgdGhhbiB3aGVuIGVuY29kaW5nIGFuIE5TRGljdGlvbmFyeSwKKyAgICAgICAgYmVj
YXVzZSBjaGFuZ2luZyB0aGUgc2hhcGUgb2YgYW4gTlNBdHRyaWJ1dGVkU3RyaW5nIGlzIGxlc3Mg
bGlrZWx5IHRvIHJlc3VsdCBpbiBwcm9ibGVtcyByYXRoZXIgdGhhbgorICAgICAgICBjaGFuZ2lu
ZyB0aGUgc2hhcGUgb2YgYW4gTlNEaWN0aW9uYXJ5LgorCisgICAgICAgICogU2hhcmVkL21hYy9B
cmd1bWVudENvZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6Zm9udElzU2VyaWFsaXphYmxlKToK
KyAgICAgICAgKElQQzo6ZmlsdGVyVW5zZXJpYWxpemFibGVWYWx1ZXMpOgorICAgICAgICAoSVBD
OjplbmNvZGUpOgorCiAyMDE1LTA2LTE4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgQVZLaXQgdXNhZ2Ugb2YgcGlwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9Bcmd1bWVudENvZGVyc01hYy5tbQppbmRleCBkM2RiOWNlZmRkNDQ4OGMyODJhM2Rj
ZmI1NmRiZmRlOTc4MzU3ZWYwLi42NDBlN2VkZDM0NDEzOWRiMjE5YWQxYzMxMDczMGNmYTMzZmU5
OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FyZ3VtZW50Q29kZXJz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXJndW1lbnRDb2RlcnNNYWMu
bW0KQEAgLTI2LDYgKzI2LDExIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkFyZ3Vt
ZW50Q29kZXJzTWFjLmgiCiAKKyNpbXBvcnQgPENvcmVUZXh0L0NvcmVUZXh0Lmg+CisjaWYgUExB
VEZPUk0oSU9TKQorI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKyNlbmRpZgorCiAjaW1wb3J0ICJB
cmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJBcmd1bWVudERlY29kZXIuaCIKICNpbXBvcnQg
IkFyZ3VtZW50RW5jb2Rlci5oIgpAQCAtMjEwLDYgKzIxNSw0MSBAQCBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1NlcmlhbGl6YWJsZUZvbnQoQ1RGb250
UmVmIGZvbnQpCit7CisgICAgcmV0dXJuIGFkb3B0Q0YoQ1RGb250Q29weUF0dHJpYnV0ZShmb250
LCBrQ1RGb250VVJMQXR0cmlidXRlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1Nlcmlh
bGl6YWJsZVZhbHVlKGlkIHZhbHVlKQoreworI2lmIFVTRShBUFBLSVQpCisgICAgYXV0byBmb250
Q2xhc3MgPSBbTlNGb250IGNsYXNzXTsKKyNlbHNlCisgICAgYXV0byBmb250Q2xhc3MgPSBbVUlG
b250IGNsYXNzXTsKKyNlbmRpZgorICAgIHJldHVybiAhW3ZhbHVlIGlzS2luZE9mQ2xhc3M6Zm9u
dENsYXNzXSB8fCBpc1NlcmlhbGl6YWJsZUZvbnQocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+
KHZhbHVlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gZmls
dGVyVW5zZXJpYWxpemFibGVWYWx1ZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAg
IF9fYmxvY2sgYm9vbCBtb2RpZmljYXRpb25OZWNlc3NhcnkgPSBmYWxzZTsKKyAgICBbZGljdGlv
bmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6XihpZCBrZXksIGlkIG9iamVj
dCwgQk9PTCAqc3RvcCkgeworICAgICAgICBpZiAoIWlzU2VyaWFsaXphYmxlVmFsdWUob2JqZWN0
KSkgeworICAgICAgICAgICAgbW9kaWZpY2F0aW9uTmVjZXNzYXJ5ID0gdHJ1ZTsKKyAgICAgICAg
ICAgICpzdG9wID0gWUVTOworICAgICAgICB9CisgICAgfV07CisgICAgaWYgKCFtb2RpZmljYXRp
b25OZWNlc3NhcnkpCisgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5OworCisgICAgYXV0byByZXN1
bHQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIFtk
aWN0aW9uYXJ5IGVudW1lcmF0ZUtleXNBbmRPYmplY3RzVXNpbmdCbG9jazpeKGlkIGtleSwgaWQg
b2JqZWN0LCBCT09MICpzdG9wKSB7CisgICAgICAgIGlmIChpc1NlcmlhbGl6YWJsZVZhbHVlKG9i
amVjdCkpCisgICAgICAgICAgICBbcmVzdWx0IHNldE9iamVjdDpvYmplY3QgZm9yS2V5OmtleV07
CisgICAgfV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZykKIHsKICAgICAvLyBF
dmVuIHRob3VnaCBOU0F0dHJpYnV0ZWRTdHJpbmcgaXMgdG9sbCBmcmVlIGJyaWRnZWQgd2l0aCBD
RkF0dHJpYnV0ZWRTdHJpbmdSZWYsIGF0dHJpYnV0ZXMnIHZhbHVlcyBtYXkgYmUgbm90LCBzbyB3
ZSBzaG91bGQgc3RheSB3aXRoaW4gdGhpcyBmaWxlJ3MgY29kZS4KQEAgLTIyOSw3ICsyNjksNyBA
QCB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nKQogICAgICAgICBBU1NFUlQoZWZmZWN0aXZlUmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgQVNTRVJUKE5TTWF4UmFuZ2UoZWZmZWN0aXZlUmFuZ2UpIDw9IGxlbmd0aCk7CiAKLSAgICAg
ICAgcmFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihlZmZlY3RpdmVSYW5nZSwgYXR0cmlidXRl
c0F0SW5kZXgpKTsKKyAgICAgICAgcmFuZ2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihlZmZlY3Rp
dmVSYW5nZSwgZmlsdGVyVW5zZXJpYWxpemFibGVWYWx1ZXMoYXR0cmlidXRlc0F0SW5kZXguZ2V0
KCkpKSk7CiAKICAgICAgICAgcG9zaXRpb24gPSBOU01heFJhbmdlKGVmZmVjdGl2ZVJhbmdlKTsK
ICAgICB9CkBAIC0zMTMsNiArMzUzLDcgQEAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCiAgICAgICAgIEFTU0VSVChrZXkpOwog
ICAgICAgICBBU1NFUlQoW2tleSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKICAg
ICAgICAgQVNTRVJUKHZhbHVlKTsKKyAgICAgICAgQVNTRVJUKGlzU2VyaWFsaXphYmxlVmFsdWUo
dmFsdWUpKTsKIAogICAgICAgICAvLyBJZ25vcmUgdmFsdWVzIHdlIGRvbid0IHJlY29nbml6ZS4K
ICAgICAgICAgaWYgKHR5cGVGcm9tT2JqZWN0KHZhbHVlKSA9PSBVbmtub3duKQpAQCAtNDA5LDYg
KzQ1MCw4IEBAIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgTlNBcnJheSAq
YXJyYXkpCiAgICAgICAgIGlmICh0eXBlRnJvbU9iamVjdCh2YWx1ZSkgPT0gVW5rbm93bikKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIEFTU0VSVChpc1NlcmlhbGl6YWJsZVZhbHVl
KHZhbHVlKSk7CisKICAgICAgICAgZW5jb2RlKGVuY29kZXIsIHZhbHVlKTsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="280307"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>