<?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>154875</bug_id>
          
          <creation_ts>2016-03-01 13:49:19 -0800</creation_ts>
          <short_desc>Small-caps non-BMP characters are garbled in the complex text codepath</short_desc>
          <delta_ts>2016-03-01 22:13:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>
          
          <blocked>154842</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169562</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-01 13:49:19 -0800</bug_when>
    <thetext>In platform/graphics/mac/ComplexTextController.cpp::capitalize() the ASSERT is firing for a baseCharacter value of 66639 (\u{1044f}) which has a u_toupper() value of 66599 (\u{10427}).

static inline Optional&lt;UChar32&gt; capitalized(UChar32 baseCharacter)
{
    if (U_GET_GC_MASK(baseCharacter) &amp; U_GC_M_MASK)
        return Nullopt;

    UChar32 uppercaseCharacter = u_toupper(baseCharacter);
    ASSERT(uppercaseCharacter == baseCharacter || uppercaseCharacter &lt;= 0xFFFF);
    if (uppercaseCharacter != baseCharacter)
        return uppercaseCharacter;
    return Nullopt;
}

The ASSERT checks that the upper case value is in the BMP.  If we care about the whether or not the upper case character stays in the same plane, a better ASSERT would be:
    ASSERT(uppercaseCharacter == baseCharacter || (U_IS_BMP(baseCharacter) == U_IS_BMP(uppercaseCharacter)));
If we don&apos;t care about the same plane, we could eliminate the ASSERT altogether.

Here is the crash trace:
ASSERTION FAILED: uppercaseCharacter == baseCharacter || uppercaseCharacter &lt;= 0xFFFF
/Volumes/Data/src/webkit/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp(301) : Optional&lt;UChar32&gt; WebCore::capitalized(UChar32)
1   0x104b78ad0 WTFCrash
2   0x1098a5aa2 WebCore::capitalized(int)
3   0x1098a3219 WebCore::ComplexTextController::collectComplexTextRuns()
4   0x1098a2aaf WebCore::ComplexTextController::ComplexTextController(WebCore::FontCascade const&amp;, WebCore::TextRun const&amp;, bool, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, bool)
5   0x1098a4c04 WebCore::ComplexTextController::ComplexTextController(WebCore::FontCascade const&amp;, WebCore::TextRun const&amp;, bool, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, bool)
6   0x109efb58f WebCore::FontCascade::floatWidthForComplexText(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, WebCore::GlyphOverflow*) const
7   0x109ee8488 WebCore::FontCascade::width(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, WebCore::GlyphOverflow*) const
8   0x10b34f90c WebCore::RenderText::widthFromCache(WebCore::FontCascade const&amp;, int, int, float, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, WebCore::GlyphOverflow*, WebCore::RenderStyle const&amp;) const
9   0x10b34cc3a WebCore::RenderText::width(unsigned int, unsigned int, WebCore::FontCascade const&amp;, float, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, WebCore::GlyphOverflow*) const
10  0x10b34c9a5 WebCore::RenderText::width(unsigned int, unsigned int, float, bool, WTF::HashSet&lt;WebCore::Font const*, WTF::PtrHash&lt;WebCore::Font const*&gt;, WTF::HashTraits&lt;WebCore::Font const*&gt; &gt;*, WebCore::GlyphOverflow*) const
11  0x10b08cfde WebCore::setLogicalWidthForTextRun(WebCore::RootInlineBox*, WebCore::BidiRun*, WebCore::RenderText&amp;, float, WebCore::LineInfo const&amp;, WTF::HashMap&lt;WebCore::InlineTextBox const*, std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt;, WTF::PtrHash&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt; &gt; &gt;&amp;, WebCore::VerticalPositionCache&amp;, WTF::Vector&lt;WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow, 16ul&gt;&amp;)
12  0x10b08ba6e WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment(WebCore::RootInlineBox*, WebCore::LineInfo const&amp;, WebCore::ETextAlign, float&amp;, float&amp;, WebCore::BidiRun*, WebCore::BidiRun*, WTF::HashMap&lt;WebCore::InlineTextBox const*, std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt;, WTF::PtrHash&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt; &gt; &gt;&amp;, WebCore::VerticalPositionCache&amp;, WTF::Vector&lt;WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow, 16ul&gt;&amp;)
13  0x10b08b171 WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine(WebCore::RootInlineBox*, WebCore::LineInfo const&amp;, WebCore::BidiRun*, WebCore::BidiRun*, bool, WTF::HashMap&lt;WebCore::InlineTextBox const*, std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt;, WTF::PtrHash&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;WebCore::InlineTextBox const*&gt;, WTF::HashTraits&lt;std::__1::pair&lt;WTF::Vector&lt;WebCore::Font const*, 0ul, WTF::CrashOnOverflow, 16ul&gt;, WebCore::GlyphOverflow&gt; &gt; &gt;&amp;, WebCore::VerticalPositionCache&amp;, WTF::Vector&lt;WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow, 16ul&gt;&amp;)
14  0x10b08da37 WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns(unsigned int, WebCore::BidiRunList&lt;WebCore::BidiRun&gt;&amp;, WebCore::InlineIterator const&amp;, WebCore::LineInfo&amp;, WebCore::VerticalPositionCache&amp;, WebCore::BidiRun*, WTF::Vector&lt;WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow, 16ul&gt;&amp;)
15  0x10b08fb11 WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange(WebCore::LineLayoutState&amp;, WebCore::BidiResolverWithIsolate&lt;WebCore::InlineIterator, WebCore::BidiRun, WebCore::BidiIsolatedRun&gt;&amp;, WebCore::InlineIterator const&amp;, WebCore::BidiStatus const&amp;, unsigned int)
16  0x10b08dffb WebCore::RenderBlockFlow::layoutRunsAndFloats(WebCore::LineLayoutState&amp;, bool)
17  0x10b092caa WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
18  0x10b06ae82 WebCore::RenderBlockFlow::layoutInlineChildren(bool, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
19  0x10b069eff WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
20  0x10b034f89 WebCore::RenderBlock::layout()
21  0x10b06d6ec WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
22  0x10b06b0e6 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
23  0x10b069f22 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
24  0x10b034f89 WebCore::RenderBlock::layout()
25  0x10b06d6ec WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
26  0x10b06b0e6 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
27  0x10b069f22 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
28  0x10b034f89 WebCore::RenderBlock::layout()
29  0x10b06d6ec WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
30  0x10b06b0e6 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
31  0x10b069f22 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169563</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-01 13:50:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/24915740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169603</commentid>
    <comment_count>2</comment_count>
      <attachid>272601</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-01 15:44:20 -0800</bug_when>
    <thetext>Created attachment 272601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169609</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-01 15:59:53 -0800</bug_when>
    <thetext>Committed r197423: &lt;http://trac.webkit.org/changeset/197423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169633</commentid>
    <comment_count>4</comment_count>
      <attachid>272601</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-01 16:36:27 -0800</bug_when>
    <thetext>Comment on attachment 272601
Patch

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

&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:301
&gt; -    ASSERT(uppercaseCharacter == baseCharacter || uppercaseCharacter &lt;= 0xFFFF);
&gt; +    ASSERT(uppercaseCharacter == baseCharacter || (U_IS_BMP(baseCharacter) == U_IS_BMP(uppercaseCharacter)));

This change is incorrect. The assertion correctly reflects what the code that calls this function can currently handle. The code that calls capitalized does not handle a replaced character that is non-BMP correctly. This function should have been returning Optional&lt;UChar&gt; given what the callers expect.

Look for code below that puts the capitalized character into m_smallCapsBuffer. It does not turn the non-BMP character into a surrogate pair, and so depends on what was asserted here before. We need test cases that cover this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169658</commentid>
    <comment_count>5</comment_count>
      <attachid>272601</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-01 17:10:45 -0800</bug_when>
    <thetext>Comment on attachment 272601
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:301
&gt;&gt; +    ASSERT(uppercaseCharacter == baseCharacter || (U_IS_BMP(baseCharacter) == U_IS_BMP(uppercaseCharacter)));
&gt; 
&gt; This change is incorrect. The assertion correctly reflects what the code that calls this function can currently handle. The code that calls capitalized does not handle a replaced character that is non-BMP correctly. This function should have been returning Optional&lt;UChar&gt; given what the callers expect.
&gt; 
&gt; Look for code below that puts the capitalized character into m_smallCapsBuffer. It does not turn the non-BMP character into a surrogate pair, and so depends on what was asserted here before. We need test cases that cover this.

Yes, you are correct. Michael and I are writing a patch write now to fix this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169675</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-01 18:06:04 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169676</commentid>
    <comment_count>7</comment_count>
      <attachid>272620</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-01 18:06:05 -0800</bug_when>
    <thetext>Created attachment 272620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169677</commentid>
    <comment_count>8</comment_count>
      <attachid>272620</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-03-01 18:11:05 -0800</bug_when>
    <thetext>Comment on attachment 272620
Patch

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

r=me.  Remove the duplicate change in capitalized().

&gt; Source/WebCore/platform/graphics/mac/ComplexTextController.cpp:301
&gt; -    ASSERT(uppercaseCharacter == baseCharacter || uppercaseCharacter &lt;= 0xFFFF);
&gt; +    ASSERT(uppercaseCharacter == baseCharacter || (U_IS_BMP(baseCharacter) == U_IS_BMP(uppercaseCharacter)));

This is not needed since it is the prior patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169680</commentid>
    <comment_count>9</comment_count>
      <attachid>272622</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-01 18:16:52 -0800</bug_when>
    <thetext>Created attachment 272622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169686</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-01 18:50:18 -0800</bug_when>
    <thetext>Committed r197435: &lt;http://trac.webkit.org/changeset/197435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169738</commentid>
    <comment_count>11</comment_count>
      <attachid>272622</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-01 22:13:35 -0800</bug_when>
    <thetext>Comment on attachment 272622
Patch

Clearing review flag, as the bug is in RESOLVED state.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272601</attachid>
            <date>2016-03-01 15:44:20 -0800</date>
            <delta_ts>2016-03-01 18:06:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>154875.patch</filename>
            <type>text/plain</type>
            <size>4550</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzQxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTAzLTAxICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVCBpbiBwbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDo6Y2FwaXRhbGl6ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ4NzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgYW4g
QVNTRVJUIHRvIHZlcmlmeSB0aGF0IHVwZXIgY2FzaW5nIGEgY2hhcmFjdGVyIGRvZXNuJ3QgY2hh
bmdlIGl0cyBzaXplLgorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9yZWdyZXNzLTE1NDg3NS5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhcGl0YWxpemVkKToKKwogMjAxNi0wMy0wMSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgVGlt
ZXIgYWxpZ25tZW50IGluIHNlcGFyYXRlIHdlYiBwcm9jZXNzZXMgc2hvdWxkIG5vdCBhbGwgc3lu
YyB1cCB0byB0aGUgc2FtZSBwb2ludC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiAxOTc0MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk4LDcgKzI5
OCw3IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uYWw8VUNoYXIzMj4gY2FwaXRhbGkKICAgICAgICAg
cmV0dXJuIE51bGxvcHQ7CiAKICAgICBVQ2hhcjMyIHVwcGVyY2FzZUNoYXJhY3RlciA9IHVfdG91
cHBlcihiYXNlQ2hhcmFjdGVyKTsKLSAgICBBU1NFUlQodXBwZXJjYXNlQ2hhcmFjdGVyID09IGJh
c2VDaGFyYWN0ZXIgfHwgdXBwZXJjYXNlQ2hhcmFjdGVyIDw9IDB4RkZGRik7CisgICAgQVNTRVJU
KHVwcGVyY2FzZUNoYXJhY3RlciA9PSBiYXNlQ2hhcmFjdGVyIHx8IChVX0lTX0JNUChiYXNlQ2hh
cmFjdGVyKSA9PSBVX0lTX0JNUCh1cHBlcmNhc2VDaGFyYWN0ZXIpKSk7CiAgICAgaWYgKHVwcGVy
Y2FzZUNoYXJhY3RlciAhPSBiYXNlQ2hhcmFjdGVyKQogICAgICAgICByZXR1cm4gdXBwZXJjYXNl
Q2hhcmFjdGVyOwogICAgIHJldHVybiBOdWxsb3B0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NDA5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTYtMDMtMDEgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVNTRVJUIGluIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwOjpjYXBpdGFsaXplKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NDg3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyB0ZXN0LgorCisgICAgICAgICogZmFzdC90ZXh0L3JlZ3Jlc3MtMTU0
ODc1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3JlZ3Jlc3MtMTU0
ODc1Lmh0bWw6IEFkZGVkLgorCiAyMDE2LTAyLTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVHVybiBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UgaW50byBhbiBp
bnRyaW5zaWMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9yZWdyZXNzLTE1NDg3NS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3JlZ3Jlc3MtMTU0
ODc1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9y
ZWdyZXNzLTE1NDg3NS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBA
QAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6
ZSA3ODR4MAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgwCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHg3MworICAgICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAzNDh4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDE4MDogIlJlZ3Jlc3Npb24gdGVzdCBmb3IgMTU0ODc1LiAiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTc5LDApIHdpZHRoIDE2OTogIlRoaXMgdGVzdCBzaG91bGQgbm90IGNyYXNoLiIK
KyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0eDIxCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEpIHNpemUgMjE1eDE4CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxKSB3aWR0aCAxNjg6ICJUaGlzIGlzIGEgVW5pY29kZSBzdHJpbmc6IFwi
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE2NywxKSB3aWR0aCAxNTogIlx4ezYwMH0iCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTgxLDEpIHdpZHRoIDM0OiAiIFx4e0Q4MDF9XHh7REMy
OX1ceHtEODAxfVx4e0RDMkF9XHh7RDgwMX1ceHtEQzJCfVwiIgorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1NSkgc2l6ZSA3ODR4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAxNTB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDE1MDogIlBBU1M6IFRlc3QgZGlkbid0IGNyYXNoIgorICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsNzMpIHNpemUgNzg0eDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3JlZ3Jlc3Mt
MTU0ODc1Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3JlZ3Jlc3Mt
MTU0ODc1Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVncmVz
cy0xNTQ4NzUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9o
ZWFkPgorPGJvZHk+Cis8c3BhbiBpZD0ic3BhbiI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlJlZ3Jl
c3Npb24gdGVzdCBmb3IgMTU0ODc1LiAgVGhpcyB0ZXN0IHNob3VsZCBub3QgY3Jhc2guPC9wPgor
PGRpdiBpZD0idW5pY29kZS10ZXh0IiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IHNtYWxsLWNhcHM7
Ij48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndW5pY29kZS10ZXh0JykuaW5uZXJIVE1MID0gIlRoaXMgaXMgYSBV
bmljb2RlIHN0cmluZzogXCJcdTA2MDAgXHV7MTA0Mjl9XHV7MTA0MmF9XHV7MTA0MmJ9XCIiOwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MID0gIlBBU1M6
IFRlc3QgZGlkbid0IGNyYXNoIjsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272620</attachid>
            <date>2016-03-01 18:06:05 -0800</date>
            <delta_ts>2016-03-01 18:16:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154875-20160301180550.patch</filename>
            <type>text/plain</type>
            <size>6181</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzEyZDY3ZWY1MDcwMzVj
ZmJkMGI1MTNjNmNjZmI3NDgzYWMzMzNlOS4uNmE2ZGIxYjVmYmMyNzMzMDBmNzQwNTUyMjNjODRh
OGM0YTY1YWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTAzLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgU21hbGwtY2Fw
cyBub24tQk1QIGNoYXJhY3RlcnMgYXJlIGdhcmJsZWQgaW4gdGhlIGNvbXBsZXggdGV4dCBjb2Rl
cGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
ODc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2VyZSBhc3N1bWluZyB0aGF0IGFsbCBjaGFyYWN0ZXJzIGFibGUgdG8gYmUgY2FwaXRhbGl6ZWQg
YXJlIGluIEJNUC4gVGhpcyBpcyBub3QgdHJ1ZS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQv
Y29tcGxleC1zbWFsbC1jYXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS5odG1sCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhcGl0YWxpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVucyk6CisKIDIwMTYtMDItMjkgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZkNvdW50ZXI8
VD46OkV2ZW50IC0+IFJlZkNvdW50ZXJFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcApp
bmRleCBiM2E4YjgyZThhY2Y2ZjJkOGQxNjgzMmRmMGIzODliMjVhZTMxMzczLi4xYzljZTBiNmEy
YjllOGRjODRlMmQwY2E1OWQzNGIzZTIyMjU3NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVy
LmNwcApAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uYWw8VUNoYXIzMj4g
Y2FwaXRhbGl6ZWQoVUNoYXIzMiBiYXNlQ2hhcmFjdGVyKQogICAgICAgICByZXR1cm4gTnVsbG9w
dDsKIAogICAgIFVDaGFyMzIgdXBwZXJjYXNlQ2hhcmFjdGVyID0gdV90b3VwcGVyKGJhc2VDaGFy
YWN0ZXIpOwotICAgIEFTU0VSVCh1cHBlcmNhc2VDaGFyYWN0ZXIgPT0gYmFzZUNoYXJhY3RlciB8
fCB1cHBlcmNhc2VDaGFyYWN0ZXIgPD0gMHhGRkZGKTsKKyAgICBBU1NFUlQodXBwZXJjYXNlQ2hh
cmFjdGVyID09IGJhc2VDaGFyYWN0ZXIgfHwgKFVfSVNfQk1QKGJhc2VDaGFyYWN0ZXIpID09IFVf
SVNfQk1QKHVwcGVyY2FzZUNoYXJhY3RlcikpKTsKICAgICBpZiAodXBwZXJjYXNlQ2hhcmFjdGVy
ICE9IGJhc2VDaGFyYWN0ZXIpCiAgICAgICAgIHJldHVybiB1cHBlcmNhc2VDaGFyYWN0ZXI7CiAg
ICAgcmV0dXJuIE51bGxvcHQ7CkBAIC0zNTAsOCArMzUwLDEwIEBAIHZvaWQgQ29tcGxleFRleHRD
b250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zKCkKICAgICAgICAgJiYgIW5leHRGb250
LT52YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhlc2lzKGZvbnRWYXJpYW50Q2Fw
cywgYmFzZUNoYXJhY3RlcikpIHsKICAgICAgICAgc3ludGhlc2l6ZWRGb250ID0gJm5leHRGb250
LT5ub1N5bnRoZXNpemFibGVGZWF0dXJlc0ZvbnQoKTsKICAgICAgICAgc21hbGxTeW50aGVzaXpl
ZEZvbnQgPSBzeW50aGVzaXplZEZvbnQtPnNtYWxsQ2Fwc0ZvbnQobV9mb250LmZvbnREZXNjcmlw
dGlvbigpKTsKLSAgICAgICAgbV9zbWFsbENhcHNCdWZmZXJbMF0gPSBjYXBpdGFsaXplZEJhc2Ug
PyBjYXBpdGFsaXplZEJhc2UudmFsdWUoKSA6IGNwWzBdOwotICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxOyBjcCArIGkgPCBjdXJyOyArK2kpCisgICAgICAgIFVDaGFyMzIgY2hhcmFjdGVyVG9X
cml0ZSA9IGNhcGl0YWxpemVkQmFzZSA/IGNhcGl0YWxpemVkQmFzZS52YWx1ZSgpIDogY3BbMF07
CisgICAgICAgIHVuc2lnbmVkIGNoYXJhY3RlckluZGV4ID0gMDsKKyAgICAgICAgVTE2X0FQUEVO
RF9VTlNBRkUobV9zbWFsbENhcHNCdWZmZXIsIGNoYXJhY3RlckluZGV4LCBjaGFyYWN0ZXJUb1dy
aXRlKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gY2hhcmFjdGVySW5kZXg7IGNwICsgaSA8
IGN1cnI7ICsraSkKICAgICAgICAgICAgIG1fc21hbGxDYXBzQnVmZmVyW2ldID0gY3BbaV07CiAg
ICAgICAgIG5leHRJc1NtYWxsQ2FwcyA9IHRydWU7CiAgICAgfQpAQCAtMzY2LDkgKzM2OCwxMCBA
QCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVucygpCiAK
ICAgICAgICAgaWYgKHN5bnRoZXNpemVkRm9udCkgewogICAgICAgICAgICAgaWYgKGF1dG8gY2Fw
aXRhbGl6ZWRCYXNlID0gY2FwaXRhbGl6ZWQoYmFzZUNoYXJhY3RlcikpIHsKLSAgICAgICAgICAg
ICAgICBtX3NtYWxsQ2Fwc0J1ZmZlcltpbmRleF0gPSBjYXBpdGFsaXplZEJhc2UudmFsdWUoKTsK
KyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyYWN0ZXJJbmRleCA9IGluZGV4OworICAgICAg
ICAgICAgICAgIFUxNl9BUFBFTkRfVU5TQUZFKG1fc21hbGxDYXBzQnVmZmVyLCBjaGFyYWN0ZXJJ
bmRleCwgY2FwaXRhbGl6ZWRCYXNlLnZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtYXJrQ291bnQ7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbV9z
bWFsbENhcHNCdWZmZXJbaW5kZXggKyBpICsgMV0gPSBjcFtpbmRleCArIGkgKyAxXTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9zbWFsbENhcHNCdWZmZXJbaSArIGNoYXJhY3RlckluZGV4XSA9IGNw
W2kgKyBjaGFyYWN0ZXJJbmRleF07CiAgICAgICAgICAgICAgICAgbmV4dElzU21hbGxDYXBzID0g
dHJ1ZTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKGVuZ2FnZUFs
bFNtYWxsQ2Fwc1Byb2Nlc3NpbmcpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMWVjYjI0MTkyYzg5OTZhOTIyMmZhNGMw
YWU3ZTc3ZDlmNDg5MDRkLi41ZjQwZTUzYTZlZmI0ODEzYTFiYzE1NTdhYjg2N2ExNjIzODcyMmJl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMDMtMDEgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBTbWFsbC1jYXBzIG5vbi1CTVAgY2hhcmFj
dGVycyBhcmUgZ2FyYmxlZCBpbiB0aGUgY29tcGxleCB0ZXh0IGNvZGVwYXRoCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ4NzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC9jb21wbGV4
LXNtYWxsLWNhcHMtbm9uLWJtcC1jYXBpdGFsaXplLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvdGV4dC9jb21wbGV4LXNtYWxsLWNhcHMtbm9uLWJtcC1jYXBpdGFsaXplLmh0
bWw6IEFkZGVkLgorCiAyMDE2LTAyLTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBj
cmYuY2Fub24uZnI+CiAKICAgICAgICAgc3RyZWFtcy9waXBlLXRvLmh0bWwgZmxha3kgb24gbWFj
LXdrMSBkZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbXBsZXgtc21h
bGwtY2Fwcy1ub24tYm1wLWNhcGl0YWxpemUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9jb21wbGV4LXNtYWxsLWNhcHMtbm9uLWJtcC1jYXBpdGFsaXplLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUzMTQ5OWNkODI5MmU5NjRlMzQ0YmQ5NzM0MGVhMGViNTMyNGNiZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb21wbGV4LXNtYWxsLWNh
cHMtbm9uLWJtcC1jYXBpdGFsaXplLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IG1ha2Vz
IHN1cmUgdGhhdCB0aGUgY29tcGxleCB0ZXh0IGNvZGVwYXRoIGNhbiBoYW5kbGUgc21hbGwgY2Fw
cyB3aXRoIG5vbi1CTVAgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXBwZXJjYXNlZC48L3A+Cis8
ZGl2IHN0eWxlPSJmb250LXNpemU6IDcwcHg7Ij4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgbGVmdDogMTZweDsgdG9wOiAxNnB4OyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTAw
cHg7Ij4mI3g2NDI7PC9zcGFuPiYjeDEwNDAwOzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAxMTZweDsgdG9wOiAxNnB4OyI+JiN4MTA0MDA7PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTogMTAwcHg7Ij4mI3g2NDI7PC9zcGFuPjwvZGl2PgorPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAyMTZweDsgdG9wOiAxNnB4OyI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTogMTAwcHg7Ij4mI3g2NDI7PC9zcGFuPiYjeDEwNDAwOyYjeDMwMDs8L2Rpdj4KKzxk
aXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMzE2cHg7IHRvcDogMTZweDsiPiYj
eDEwNDAwOyYjeDMwMDs8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMDBweDsiPiYjeDY0Mjs8L3Nw
YW4+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29tcGxleC1zbWFsbC1j
YXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbXBs
ZXgtc21hbGwtY2Fwcy1ub24tYm1wLWNhcGl0YWxpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWMxOGRi
OTg2MzgyYjEzYTg5MDA2MjY2YWI3OTg3M2U0NDg5YjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2NvbXBsZXgtc21hbGwtY2Fwcy1ub24tYm1wLWNhcGl0YWxpemUu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRoZSBjb21wbGV4IHRleHQgY29k
ZXBhdGggY2FuIGhhbmRsZSBzbWFsbCBjYXBzIHdpdGggbm9uLUJNUCBjaGFyYWN0ZXJzIHdoaWNo
IGNhbiBiZSB1cHBlcmNhc2VkLjwvcD4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTAwcHg7IGZv
bnQtdmFyaWFudDogc21hbGwtY2FwcyI+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7
IGxlZnQ6IDE2cHg7IHRvcDogMTZweDsiPiYjeDY0MjsmI3gxMDQyODs8L2Rpdj4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTE2cHg7IHRvcDogMTZweDsiPiYjeDEwNDI4
OyYjeDY0Mjs8L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjE2
cHg7IHRvcDogMTZweDsiPiYjeDY0MjsmI3gxMDQyODsmI3gzMDA7PC9kaXY+Cis8ZGl2IHN0eWxl
PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMxNnB4OyB0b3A6IDE2cHg7Ij4mI3gxMDQyODsm
I3gzMDA7JiN4NjQyOzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272622</attachid>
            <date>2016-03-01 18:16:52 -0800</date>
            <delta_ts>2016-03-01 22:13:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154875-20160301181636.patch</filename>
            <type>text/plain</type>
            <size>8139</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE5MmRmYTAwNmIwYjhk
YTU3YmRmODM5ZDgwZTY4MWNmY2MwNWQ1OS4uMzcyNjAyNmY2YzRlOTA4Yzg1ZTlhNTk3ODJlYzAz
YWFhMDM1NmRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTAzLTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgU21hbGwtY2Fw
cyBub24tQk1QIGNoYXJhY3RlcnMgYXJlIGdhcmJsZWQgaW4gdGhlIGNvbXBsZXggdGV4dCBjb2Rl
cGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
ODc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2VyZSBhc3N1bWluZyB0aGF0IGFsbCBjaGFyYWN0ZXJzIGFibGUgdG8gYmUgY2FwaXRhbGl6ZWQg
YXJlIGluIEJNUC4gVGhpcyBpcyBub3QgdHJ1ZS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQv
Y29tcGxleC1zbWFsbC1jYXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS5odG1sCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhcGl0YWxpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVucyk6CisKIDIwMTYtMDMtMDEgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIGludGVy
bmFsIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCBkNThjMzExZTFkNWJj
NzEzNTE2YzMyMzUyZTJlMDJjMzcxZmNlNjFiLi4xYzljZTBiNmEyYjllOGRjODRlMmQwY2E1OWQz
NGIzZTIyMjU3NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcApAQCAtMzUwLDggKzM1
MCwxMCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVu
cygpCiAgICAgICAgICYmICFuZXh0Rm9udC0+dmFyaWFudENhcHNTdXBwb3J0c0NoYXJhY3RlckZv
clN5bnRoZXNpcyhmb250VmFyaWFudENhcHMsIGJhc2VDaGFyYWN0ZXIpKSB7CiAgICAgICAgIHN5
bnRoZXNpemVkRm9udCA9ICZuZXh0Rm9udC0+bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KCk7
CiAgICAgICAgIHNtYWxsU3ludGhlc2l6ZWRGb250ID0gc3ludGhlc2l6ZWRGb250LT5zbWFsbENh
cHNGb250KG1fZm9udC5mb250RGVzY3JpcHRpb24oKSk7Ci0gICAgICAgIG1fc21hbGxDYXBzQnVm
ZmVyWzBdID0gY2FwaXRhbGl6ZWRCYXNlID8gY2FwaXRhbGl6ZWRCYXNlLnZhbHVlKCkgOiBjcFsw
XTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgY3AgKyBpIDwgY3VycjsgKytpKQorICAg
ICAgICBVQ2hhcjMyIGNoYXJhY3RlclRvV3JpdGUgPSBjYXBpdGFsaXplZEJhc2UgPyBjYXBpdGFs
aXplZEJhc2UudmFsdWUoKSA6IGNwWzBdOworICAgICAgICB1bnNpZ25lZCBjaGFyYWN0ZXJJbmRl
eCA9IDA7CisgICAgICAgIFUxNl9BUFBFTkRfVU5TQUZFKG1fc21hbGxDYXBzQnVmZmVyLCBjaGFy
YWN0ZXJJbmRleCwgY2hhcmFjdGVyVG9Xcml0ZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IGNoYXJhY3RlckluZGV4OyBjcCArIGkgPCBjdXJyOyArK2kpCiAgICAgICAgICAgICBtX3NtYWxs
Q2Fwc0J1ZmZlcltpXSA9IGNwW2ldOwogICAgICAgICBuZXh0SXNTbWFsbENhcHMgPSB0cnVlOwog
ICAgIH0KQEAgLTM2Niw5ICszNjgsMTAgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNv
bGxlY3RDb21wbGV4VGV4dFJ1bnMoKQogCiAgICAgICAgIGlmIChzeW50aGVzaXplZEZvbnQpIHsK
ICAgICAgICAgICAgIGlmIChhdXRvIGNhcGl0YWxpemVkQmFzZSA9IGNhcGl0YWxpemVkKGJhc2VD
aGFyYWN0ZXIpKSB7Ci0gICAgICAgICAgICAgICAgbV9zbWFsbENhcHNCdWZmZXJbaW5kZXhdID0g
Y2FwaXRhbGl6ZWRCYXNlLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhcmFj
dGVySW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBVMTZfQVBQRU5EX1VOU0FGRShtX3Nt
YWxsQ2Fwc0J1ZmZlciwgY2hhcmFjdGVySW5kZXgsIGNhcGl0YWxpemVkQmFzZS52YWx1ZSgpKTsK
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWFya0NvdW50OyArK2kp
Ci0gICAgICAgICAgICAgICAgICAgIG1fc21hbGxDYXBzQnVmZmVyW2luZGV4ICsgaSArIDFdID0g
Y3BbaW5kZXggKyBpICsgMV07CisgICAgICAgICAgICAgICAgICAgIG1fc21hbGxDYXBzQnVmZmVy
W2kgKyBjaGFyYWN0ZXJJbmRleF0gPSBjcFtpICsgY2hhcmFjdGVySW5kZXhdOwogICAgICAgICAg
ICAgICAgIG5leHRJc1NtYWxsQ2FwcyA9IHRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgIGlmIChlbmdhZ2VBbGxTbWFsbENhcHNQcm9jZXNzaW5nKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZWFlNmM5ZDNhNDI5YzIwNjQ0YWQ5Y2M0ODVlZmEwMTBjZjUwMTU4OS4uMzg2YzMyMzgxZWNkNmZi
YTQ0YzhjMjA1ZGUxOWFkOWRjMGM5MDMxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTAz
LTAxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
U21hbGwtY2FwcyBub24tQk1QIGNoYXJhY3RlcnMgYXJlIGdhcmJsZWQgaW4gdGhlIGNvbXBsZXgg
dGV4dCBjb2RlcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0ODc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L3RleHQvY29tcGxleC1zbWFsbC1jYXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvY29tcGxleC1zbWFsbC1j
YXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQv
cmVncmVzcy0xNTQ4NzUtZXhwZWN0ZWQudHh0OiBEZWxldGVkCisgICAgICAgICogZmFzdC90ZXh0
L3JlZ3Jlc3MtMTU0ODc1Lmh0bWw6IERlbGV0ZWQKKwogMjAxNi0wMy0wMSAgTWljaGFlbCBTYWJv
ZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBbRVM2XSBBZGQgc3VwcG9ydCBmb3Ig
VW5pY29kZSByZWd1bGFyIGV4cHJlc3Npb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY29tcGxleC1zbWFsbC1jYXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbXBsZXgtc21hbGwtY2Fwcy1ub24tYm1wLWNhcGl0
YWxpemUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTMxNDk5Y2Q4MjkyZTk2NGUzNDRiZDk3
MzQwZWEwZWI1MzI0Y2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NvbXBsZXgtc21hbGwtY2Fwcy1ub24tYm1wLWNhcGl0YWxpemUtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRoZSBjb21wbGV4IHRleHQgY29kZXBhdGggY2Fu
IGhhbmRsZSBzbWFsbCBjYXBzIHdpdGggbm9uLUJNUCBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBiZSB1
cHBlcmNhc2VkLjwvcD4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNzBweDsiPgorPGRpdiBzdHls
ZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxNnB4OyB0b3A6IDE2cHg7Ij48c3BhbiBzdHls
ZT0iZm9udC1zaXplOiAxMDBweDsiPiYjeDY0Mjs8L3NwYW4+JiN4MTA0MDA7PC9kaXY+Cis8ZGl2
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDExNnB4OyB0b3A6IDE2cHg7Ij4mI3gx
MDQwMDs8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMDBweDsiPiYjeDY0Mjs8L3NwYW4+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIxNnB4OyB0b3A6IDE2cHg7
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMDBweDsiPiYjeDY0Mjs8L3NwYW4+JiN4MTA0MDA7
JiN4MzAwOzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAzMTZw
eDsgdG9wOiAxNnB4OyI+JiN4MTA0MDA7JiN4MzAwOzxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEw
MHB4OyI+JiN4NjQyOzwvc3Bhbj48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9jb21wbGV4LXNtYWxsLWNhcHMtbm9uLWJtcC1jYXBpdGFsaXplLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY29tcGxleC1zbWFsbC1jYXBzLW5vbi1ibXAtY2FwaXRhbGl6ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRhYzE4ZGI5ODYzODJiMTNhODkwMDYyNjZhYjc5ODczZTQ0ODliNmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29tcGxleC1zbWFsbC1jYXBzLW5v
bi1ibXAtY2FwaXRhbGl6ZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGhl
IGNvbXBsZXggdGV4dCBjb2RlcGF0aCBjYW4gaGFuZGxlIHNtYWxsIGNhcHMgd2l0aCBub24tQk1Q
IGNoYXJhY3RlcnMgd2hpY2ggY2FuIGJlIHVwcGVyY2FzZWQuPC9wPgorPGRpdiBzdHlsZT0iZm9u
dC1zaXplOiAxMDBweDsgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzIj4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTZweDsgdG9wOiAxNnB4OyI+JiN4NjQyOyYjeDEwNDI4
OzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMTZweDsgdG9w
OiAxNnB4OyI+JiN4MTA0Mjg7JiN4NjQyOzwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAyMTZweDsgdG9wOiAxNnB4OyI+JiN4NjQyOyYjeDEwNDI4OyYjeDMwMDs8
L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMzE2cHg7IHRvcDog
MTZweDsiPiYjeDEwNDI4OyYjeDMwMDsmI3g2NDI7PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9yZWdyZXNzLTE1NDg3NS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvcmVncmVzcy0xNTQ4NzUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMzMxZGI2ODZjYmM0Y2QxZjQ3YTE4YzI1MDFlNjIzNjE3ZmQ3ZTkz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9yZWdyZXNzLTE1NDg3NS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3Vz
KSBhdCAoMCwwKSBzaXplIDc4NHgwCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKLSAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDczCi0g
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAotICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM0OHgxOAotICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMTgwOiAiUmVncmVzc2lvbiB0ZXN0IGZvciAxNTQ4NzUuICIKLSAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxNzksMCkgd2lkdGggMTY5OiAiVGhpcyB0ZXN0IHNob3Vs
ZCBub3QgY3Jhc2guIgotICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3
ODR4MjEKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMSkgc2l6ZSAyMTV4MTgK
LSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEpIHdpZHRoIDE2ODogIlRoaXMgaXMgYSBVbmlj
b2RlIHN0cmluZzogXCIiCi0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTY3LDEpIHdpZHRoIDE1
OiAiXHh7NjAwfSIKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxODEsMSkgd2lkdGggMzQ6ICIg
XHh7RDgwMX1ceHtEQzI5fVx4e0Q4MDF9XHh7REMyQX1ceHtEODAxfVx4e0RDMkJ9XCIiCi0gICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU1KSBzaXplIDc4NHgxOAotICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1MHgxOAotICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMTUwOiAiUEFTUzogVGVzdCBkaWRuJ3QgY3Jhc2giCi0gICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw3Mykgc2l6ZSA3ODR4MAotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvcmVncmVzcy0xNTQ4NzUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9y
ZWdyZXNzLTE1NDg3NS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDA4ODNh
YTNlNzgwZDFmNmZiYjI4ZmIzZWI3YWM3Yjk3M2FiZmMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9yZWdyZXNzLTE1
NDg3NS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4K
LTxib2R5PgotPHNwYW4gaWQ9InNwYW4iPgotPHAgaWQ9ImRlc2NyaXB0aW9uIj5SZWdyZXNzaW9u
IHRlc3QgZm9yIDE1NDg3NS4gIFRoaXMgdGVzdCBzaG91bGQgbm90IGNyYXNoLjwvcD4KLTxkaXYg
aWQ9InVuaWNvZGUtdGV4dCIgc3R5bGU9InRleHQtdHJhbnNmb3JtOiBzbWFsbC1jYXBzOyI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3VuaWNvZGUtdGV4dCcpLmlubmVySFRNTCA9ICJUaGlzIGlzIGEgVW5pY29k
ZSBzdHJpbmc6IFwiXHUwNjAwIFx1ezEwNDI5fVx1ezEwNDJhfVx1ezEwNDJifVwiIjsKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9ICJQQVNTOiBUZXN0
IGRpZG4ndCBjcmFzaCI7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>