<?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>139678</bug_id>
          
          <creation_ts>2014-12-16 06:25:43 -0800</creation_ts>
          <short_desc>Extend :lang() with string arguments</short_desc>
          <delta_ts>2015-01-09 14:25:30 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dhi Aurrahman">diorahman</reporter>
          <assigned_to name="Dhi Aurrahman">diorahman</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055968</commentid>
    <comment_count>0</comment_count>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-16 06:25:43 -0800</bug_when>
    <thetext>Extend :lang() with string arguments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055969</commentid>
    <comment_count>1</comment_count>
      <attachid>243358</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-16 06:34:25 -0800</bug_when>
    <thetext>Created attachment 243358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055970</commentid>
    <comment_count>2</comment_count>
      <attachid>243358</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-16 06:47:46 -0800</bug_when>
    <thetext>Comment on attachment 243358
Patch

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

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:13
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;*-1997&quot;, &quot;*-1998&quot;) { }&apos;) is &apos;:lang(*-1997, *-1998) { }&apos;

Per David Baron&apos;s comment http://lists.w3.org/Archives/Public/www-style/2014Dec/0169.html it can be done correctly.

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:14
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;   *-1997   &quot;, &quot;   *-1998   &quot;) { }&apos;) is &apos;:lang(*-1997, *-1998) { }&apos;

This is my speculation, yet my own assumption for striping the white spaces inside the &quot;&quot;. I&apos;m not sure if this is the expected behavior.

Or, is the &quot;&quot; specially dedicated for escaping non-css valid values and has the same behavior with \\? Hence, :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) will give :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) instead of :lang(*-1997)?

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:17
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot; &quot;) { }&apos;) threw exception TypeError: undefined is not an object (evaluating &apos;styleElement.sheet.cssRules[0].cssText&apos;).

Yet another assumption, since the argument only provides white spaces.

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:19
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;* - 1997&quot;) { }&apos;) threw exception TypeError: undefined is not an object (evaluating &apos;styleElement.sheet.cssRules[0].cssText&apos;).

This one is an attempt to be consistent with previous assumptions. After left and right stripping, if the value inside &quot;&quot; (the string)  still has white spaces, then it is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056267</commentid>
    <comment_count>3</comment_count>
      <attachid>243358</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-16 21:40:38 -0800</bug_when>
    <thetext>Comment on attachment 243358
Patch

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

&gt; Source/WebCore/css/CSSGrammar.y.in:1109
&gt; +    $1.stripWhiteSpace();

I am not sure we want to do that. I would just use the literal as given.

&gt; Source/WebCore/css/CSSGrammar.y.in:1118
&gt; +        if ($1.length() &gt; 0) {

I am not sure we should have an exception for empty strings.

&gt; Source/WebCore/css/CSSGrammar.y.in:1125
&gt; +        if ($$ &amp;&amp; $5.length() &gt; 0)

ditto

&gt; Source/WebCore/css/CSSGrammar.y.in:1406
&gt; +        if ($4 &amp;&amp; $4-&gt;size() &gt; 0) {

ditto

&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:13
&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;*-1997&quot;, &quot;*-1998&quot;) { }&apos;) is &apos;:lang(*-1997, *-1998) { }&apos;
&gt; 
&gt; Per David Baron&apos;s comment http://lists.w3.org/Archives/Public/www-style/2014Dec/0169.html it can be done correctly.

Yup, that&apos;s awesome

&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:14
&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;   *-1997   &quot;, &quot;   *-1998   &quot;) { }&apos;) is &apos;:lang(*-1997, *-1998) { }&apos;
&gt; 
&gt; This is my speculation, yet my own assumption for striping the white spaces inside the &quot;&quot;. I&apos;m not sure if this is the expected behavior.
&gt; 
&gt; Or, is the &quot;&quot; specially dedicated for escaping non-css valid values and has the same behavior with \\? Hence, :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) will give :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) instead of :lang(*-1997)?

I would not try to do any additional rules over the string. Anything passed as a string would be interpreted as it is.

Using the string as-is gives a lot more power for developers, they can literally use anything for language, including space characters.

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:16
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;&quot;) { }&apos;) threw exception TypeError: undefined is not an object (evaluating &apos;styleElement.sheet.cssRules[0].cssText&apos;).

This case is a bit annoying. I am torn between an invalid selector or a selector that never match anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056273</commentid>
    <comment_count>4</comment_count>
      <attachid>243358</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-16 22:47:42 -0800</bug_when>
    <thetext>Comment on attachment 243358
Patch

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

&gt;&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:14
&gt;&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;   *-1997   &quot;, &quot;   *-1998   &quot;) { }&apos;) is &apos;:lang(*-1997, *-1998) { }&apos;
&gt;&gt; 
&gt;&gt; This is my speculation, yet my own assumption for striping the white spaces inside the &quot;&quot;. I&apos;m not sure if this is the expected behavior.
&gt;&gt; 
&gt;&gt; Or, is the &quot;&quot; specially dedicated for escaping non-css valid values and has the same behavior with \\? Hence, :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) will give :lang(&quot;&lt;space&gt;*-1997&lt;space&gt;&quot;) instead of :lang(*-1997)?
&gt; 
&gt; I would not try to do any additional rules over the string. Anything passed as a string would be interpreted as it is.
&gt; 
&gt; Using the string as-is gives a lot more power for developers, they can literally use anything for language, including space characters.

Understood. In that case, we can just add:

lang_range: LANGRANGE | IDENT | STRING

to the grammar. Nice!

&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:16
&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;&quot;) { }&apos;) threw exception TypeError: undefined is not an object (evaluating &apos;styleElement.sheet.cssRules[0].cssText&apos;).
&gt; 
&gt; This case is a bit annoying. I am torn between an invalid selector or a selector that never match anything.

Yes. If we consider this as a valid selector, it will give us :lang() which is invalid in &quot;normal&quot; setup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056755</commentid>
    <comment_count>5</comment_count>
      <attachid>243492</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-18 05:09:33 -0800</bug_when>
    <thetext>Created attachment 243492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057245</commentid>
    <comment_count>6</comment_count>
      <attachid>243596</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-19 18:36:17 -0800</bug_when>
    <thetext>Created attachment 243596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057250</commentid>
    <comment_count>7</comment_count>
      <attachid>243598</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-19 18:57:27 -0800</bug_when>
    <thetext>Created attachment 243598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057251</commentid>
    <comment_count>8</comment_count>
      <attachid>243599</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-19 18:58:58 -0800</bug_when>
    <thetext>Created attachment 243599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057252</commentid>
    <comment_count>9</comment_count>
      <attachid>243600</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-19 19:02:43 -0800</bug_when>
    <thetext>Created attachment 243600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057254</commentid>
    <comment_count>10</comment_count>
      <attachid>243600</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-19 19:07:25 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt; LayoutTests/fast/selectors/lang-extended-filtering-with-string-arguments-expected.txt:10
&gt; +PASS document.querySelectorAll(&apos;:lang(&quot;&quot;)&apos;).length is 0

test on :lang(&quot;&quot;) to give never matching.

&gt; LayoutTests/fast/selectors/lang-extended-filtering-with-string-arguments-expected.txt:12
&gt; +PASS document.querySelectorAll(&apos;:lang(&quot;&quot;, &quot;*-1997&quot;)&apos;).length is 1

given: en, &quot;&quot;, de-1997. 

:lang(&quot;en&quot;, &quot;*-1997&quot;) gives two, while :lang(&quot;&quot;, *-1997) gives only one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057290</commentid>
    <comment_count>11</comment_count>
      <attachid>243600</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-20 17:01:05 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:6
&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;a&quot;) { }&apos;) is &apos;:lang(a) { }&apos;

I think ideally the canonicalization would keep the same form as the original token.

The canonical version of :lang(   a    ) would be :lang(a). The canonical version of :lang(    &quot;a&quot;      ) would be :lang(&quot;a&quot;).

WebKit has other canonicalization bugs and I doubt this one is critical so I am okay with keeping the internal representation for simplicity. But I think it may be better to always canonicalize :lang() to string instead of identifier. For example,
:lang(foo, \*-bar) would be canonicalized to :lang(&quot;foo&quot;, &quot;*-bar&quot;).

Do you have an opinion on this?
If we do that, we&apos;ll need a massive test result rebaseline... :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057291</commentid>
    <comment_count>12</comment_count>
      <attachid>243600</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-20 17:19:08 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:6
&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;a&quot;) { }&apos;) is &apos;:lang(a) { }&apos;
&gt; 
&gt; I think ideally the canonicalization would keep the same form as the original token.
&gt; 
&gt; The canonical version of :lang(   a    ) would be :lang(a). The canonical version of :lang(    &quot;a&quot;      ) would be :lang(&quot;a&quot;).
&gt; 
&gt; WebKit has other canonicalization bugs and I doubt this one is critical so I am okay with keeping the internal representation for simplicity. But I think it may be better to always canonicalize :lang() to string instead of identifier. For example,
&gt; :lang(foo, \*-bar) would be canonicalized to :lang(&quot;foo&quot;, &quot;*-bar&quot;).
&gt; 
&gt; Do you have an opinion on this?
&gt; If we do that, we&apos;ll need a massive test result rebaseline... :(

I&apos;m not sure I&apos;m familiar with this canonicalization in css selector context and its impact to selector checker. 

In order to always canonicalize :lang() to string, does that mean the result of parseThenSerializeRule() should be in string (with quotes)? Should we change the appendArgumentList() in CSSSelector too? Does this specifically only give impact to :lang()?

Anyway, I&apos;m ok to do test result rebaseline.

&gt; WebKit has other canonicalization bugs
Can I get more info about this? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057303</commentid>
    <comment_count>13</comment_count>
      <attachid>243600</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-12-20 20:02:01 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:161
&gt; -    if (language.isNull())
&gt; +    if (language.isNull() || language.isEmpty())

All null strings are empty, so we don’t need to check both. Should change isNull to isEmpty rather than adding a new check.

&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:173
&gt; +        if (range.isEmpty())
&gt; +            continue;

Why exactly is this needed? Which of the tests fails without this line of code? What kind of failure do we see?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057304</commentid>
    <comment_count>14</comment_count>
      <attachid>243600</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-20 20:23:12 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt;&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:161
&gt;&gt; +    if (language.isNull() || language.isEmpty())
&gt; 
&gt; All null strings are empty, so we don’t need to check both. Should change isNull to isEmpty rather than adding a new check.

OK, I&apos;ll update it. Thanks.

&gt;&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:173
&gt;&gt; +            continue;
&gt; 
&gt; Why exactly is this needed? Which of the tests fails without this line of code? What kind of failure do we see?

From my understanding, the &quot;&quot; (empty string) argument for :lang() is always treated as never matching, e.g. if we have :lang(&quot;&quot;, &quot;*-1997&quot;, de-DE), I believe it is better to jump right away to the next range (*-1997) as soon as the current range (e.g. the first range &quot;&quot;) is detected as an empty string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057532</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-22 19:36:40 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Why exactly is this needed? Which of the tests fails without this line of code? What kind of failure do we see?
&gt; 
&gt; From my understanding, the &quot;&quot; (empty string) argument for :lang() is always
&gt; treated as never matching, e.g. if we have :lang(&quot;&quot;, &quot;*-1997&quot;, de-DE), I
&gt; believe it is better to jump right away to the next range (*-1997) as soon
&gt; as the current range (e.g. the first range &quot;&quot;) is detected as an empty
&gt; string.

Darin&apos;s argument is that the empty string would not match anyway in the later code.

But I am not sure we can remove the isEmpty() check. I suspect we will crash at rangeSubtags.first() since rangeSubtags would be empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057535</commentid>
    <comment_count>16</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-22 19:50:41 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 243600 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243600&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:6
&gt; &gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;a&quot;) { }&apos;) is &apos;:lang(a) { }&apos;
&gt; &gt; 
&gt; &gt; I think ideally the canonicalization would keep the same form as the original token.
&gt; &gt; 
&gt; &gt; The canonical version of :lang(   a    ) would be :lang(a). The canonical version of :lang(    &quot;a&quot;      ) would be :lang(&quot;a&quot;).
&gt; &gt; 
&gt; &gt; WebKit has other canonicalization bugs and I doubt this one is critical so I am okay with keeping the internal representation for simplicity. But I think it may be better to always canonicalize :lang() to string instead of identifier. For example,
&gt; &gt; :lang(foo, \*-bar) would be canonicalized to :lang(&quot;foo&quot;, &quot;*-bar&quot;).
&gt; &gt; 
&gt; &gt; Do you have an opinion on this?
&gt; &gt; If we do that, we&apos;ll need a massive test result rebaseline... :(
&gt; 
&gt; I&apos;m not sure I&apos;m familiar with this canonicalization in css selector context
&gt; and its impact to selector checker. 

The canonical form is defined by CSSOM: http://dev.w3.org/csswg/cssom/#serializing-selectors

I *think* the only relavant entry points in WebKit are through CSSSelector::selectorText() and CSSSelectorList::selectorText().

&gt; In order to always canonicalize :lang() to string, does that mean the result
&gt; of parseThenSerializeRule() should be in string (with quotes)? 

Yep.

&gt; Should we
&gt; change the appendArgumentList() in CSSSelector too? Does this specifically
&gt; only give impact to :lang()?

Since appendArgumentList() is only used by :lang(), we can just update its definition.

Something like appendLanguageArgumentList/appendLangArgumentList/appendStringArgumentList?

&gt; Anyway, I&apos;m ok to do test result rebaseline.
&gt; 
&gt; &gt; WebKit has other canonicalization bugs
&gt; Can I get more info about this? :)

The canonical form of Selectors is supposed to escape identifiers characters and escape some characters of strings.

Take http://codepen.io/anon/pen/vEXOYx for example. Firefox serializes it nicely, WebKit just returns the parsed identifier.

-

Note that we have at least one more thing to do for :lang() before we can qualify it: evaluate performance. We should make sure the matching is efficient, WebKit should be faster than the other engines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057754</commentid>
    <comment_count>17</comment_count>
      <attachid>243600</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-12-23 22:21:55 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt;&gt;&gt;&gt; LayoutTests/fast/css/css-lang-selector-with-string-arguments-text-expected.txt:6
&gt;&gt;&gt;&gt; +PASS parseThenSerializeRule(&apos;:lang(&quot;a&quot;) { }&apos;) is &apos;:lang(a) { }&apos;
&gt;&gt;&gt; 
&gt;&gt;&gt; I think ideally the canonicalization would keep the same form as the original token.
&gt;&gt;&gt; 
&gt;&gt;&gt; The canonical version of :lang(   a    ) would be :lang(a). The canonical version of :lang(    &quot;a&quot;      ) would be :lang(&quot;a&quot;).
&gt;&gt;&gt; 
&gt;&gt;&gt; WebKit has other canonicalization bugs and I doubt this one is critical so I am okay with keeping the internal representation for simplicity. But I think it may be better to always canonicalize :lang() to string instead of identifier. For example,
&gt;&gt;&gt; :lang(foo, \*-bar) would be canonicalized to :lang(&quot;foo&quot;, &quot;*-bar&quot;).
&gt;&gt;&gt; 
&gt;&gt;&gt; Do you have an opinion on this?
&gt;&gt;&gt; If we do that, we&apos;ll need a massive test result rebaseline... :(
&gt;&gt; 
&gt;&gt; I&apos;m not sure I&apos;m familiar with this canonicalization in css selector context and its impact to selector checker. 
&gt;&gt; 
&gt;&gt; In order to always canonicalize :lang() to string, does that mean the result of parseThenSerializeRule() should be in string (with quotes)? Should we change the appendArgumentList() in CSSSelector too? Does this specifically only give impact to :lang()?
&gt;&gt; 
&gt;&gt; Anyway, I&apos;m ok to do test result rebaseline.
&gt; 
&gt; The canonical form is defined by CSSOM: http://dev.w3.org/csswg/cssom/#serializing-selectors
&gt; 
&gt; I *think* the only relavant entry points in WebKit are through CSSSelector::selectorText() and CSSSelectorList::selectorText().

Hi Benjamin, I put the ideas to always canonicalize :lang() arguments as strings in following patch: https://bugs.webkit.org/show_bug.cgi?id=139928</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057894</commentid>
    <comment_count>18</comment_count>
      <attachid>243600</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-12-25 22:53:10 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057900</commentid>
    <comment_count>19</comment_count>
      <attachid>243600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-25 23:34:43 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

Clearing flags on attachment: 243600

Committed r177745: &lt;http://trac.webkit.org/changeset/177745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057901</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-25 23:34:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057994</commentid>
    <comment_count>21</comment_count>
      <attachid>243600</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-12-27 13:26:41 -0800</bug_when>
    <thetext>Comment on attachment 243600
Patch

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

&gt;&gt;&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:161
&gt;&gt;&gt; +    if (language.isNull() || language.isEmpty())
&gt;&gt; 
&gt;&gt; All null strings are empty, so we don’t need to check both. Should change isNull to isEmpty rather than adding a new check.
&gt; 
&gt; OK, I&apos;ll update it. Thanks.

Looks like the patch was landed without the change I requested here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060272</commentid>
    <comment_count>22</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-09 14:25:30 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Comment on attachment 243600 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243600&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/css/SelectorCheckerTestFunctions.h:161
&gt; &gt;&gt;&gt; +    if (language.isNull() || language.isEmpty())
&gt; &gt;&gt; 
&gt; &gt;&gt; All null strings are empty, so we don’t need to check both. Should change isNull to isEmpty rather than adding a new check.
&gt; &gt; 
&gt; &gt; OK, I&apos;ll update it. Thanks.
&gt; 
&gt; Looks like the patch was landed without the change I requested here.

My bad, fixed here: http://trac.webkit.org/changeset/178198</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243358</attachid>
            <date>2014-12-16 06:34:25 -0800</date>
            <delta_ts>2014-12-18 05:09:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141216213512.patch</filename>
            <type>text/plain</type>
            <size>10726</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlMzZkOWFmOGMyMDFl
MDMwMTFhYjU2NTQ5NTk0Zjg0YzVjNmMxMS4uY2Q5OWUwNDQzOWM4MTFkMzJkZWEzNTRkZmQ2MTI4
MDA5NWZjZGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTEyLTE2ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0ZW5kIDps
YW5nKCkgd2l0aCBzdHJpbmcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbGxvd2luZyBzdHJpbmcgYXMgYXJndW1lbnQgZm9yIDpsYW5n
KClbMV0uCisKKyAgICAgICAgWzFdIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGlj
L3d3dy1zdHlsZS8yMDE0RGVjLzAxNjkuaHRtbAorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2Nz
cy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpoYXNOb25XaGl0ZVNwYWNlQ2hhcmFjdGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXJTdHJpbmc6OnN0cmlwV2hpdGVTcGFjZSk6CisgICAgICAgICogY3Nz
L0NTU1BhcnNlclZhbHVlcy5oOgorCiAyMDE0LTEyLTE1ICBCZXRoIERha2luICA8YmRha2luQGFw
cGxlLmNvbT4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueS5pbgppbmRleCBiN2Y0OGU3OWI2ZmU1YmMxNWU4ZjIxOTA0YjBhMDczYmQ2M2Nm
OTMyLi5jMTJkZTU4Mzc2NTlmZDA3MzE4Y2NhNzY3MmFlOGVkM2RkMDNhODRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAgLTMzNyw2ICszMzcsNyBAQCBzdGF0aWMgYm9vbCBzZWxl
Y3Rvckxpc3REb2VzTm90TWF0Y2hBbnlQc2V1ZG9FbGVtZW50KGNvbnN0IFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdAogCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0CiAldHlwZSA8c3RyaW5n
PiBsYW5nX3JhbmdlCisldHlwZSA8c3RyaW5nPiBsYW5nX3JhbmdlX3N0cmluZwogJXVuaW9uIHsg
VmVjdG9yPENTU1BhcnNlclN0cmluZz4qIHN0cmluZ0xpc3Q7IH0KICV0eXBlIDxzdHJpbmdMaXN0
PiBjb21tYV9zZXBhcmF0ZWRfbGFuZ19yYW5nZXMKICVkZXN0cnVjdG9yIHsgZGVsZXRlICQkOyB9
IGNvbW1hX3NlcGFyYXRlZF9sYW5nX3JhbmdlcwpAQCAtMTEwNCwxNiArMTEwNSwyNCBAQCBuZXN0
ZWRfc2VsZWN0b3JfbGlzdDoKICAgICA7CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQKLWxhbmdfcmFuZ2U6IExBTkdSQU5HRSB8IElERU5UIAorbGFuZ19yYW5nZV9zdHJpbmc6IFNU
UklORyB7CisgICAgJDEuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgJCQgPSAkMTsKK30KKworbGFu
Z19yYW5nZTogTEFOR1JBTkdFIHwgSURFTlQgfCBsYW5nX3JhbmdlX3N0cmluZwogCiBjb21tYV9z
ZXBhcmF0ZWRfbGFuZ19yYW5nZXM6CiAgICAgbGFuZ19yYW5nZSAlcHJlYyBVTklNUE9SVEFOVF9U
T0sgewotICAgICAgICAkJCA9IG5ldyBWZWN0b3I8Q1NTUGFyc2VyU3RyaW5nPjsKLSAgICAgICAg
JCQtPmFwcGVuZCgkMSk7CisgICAgICAgICQkID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKCQxLmxl
bmd0aCgpID4gMCkgeworICAgICAgICAgICAgJCQgPSBuZXcgVmVjdG9yPENTU1BhcnNlclN0cmlu
Zz47CisgICAgICAgICAgICAkJC0+YXBwZW5kKCQxKTsKKyAgICAgICAgfQogICAgIH0KICAgICB8
IGNvbW1hX3NlcGFyYXRlZF9sYW5nX3JhbmdlcyBtYXliZV9zcGFjZSAnLCcgbWF5YmVfc3BhY2Ug
bGFuZ19yYW5nZSAlcHJlYyBVTklNUE9SVEFOVF9UT0sgewogICAgICAgICAkJCA9ICQxOwotICAg
ICAgICBpZiAoJCQpCisgICAgICAgIGlmICgkJCAmJiAkNS5sZW5ndGgoKSA+IDApCiAgICAgICAg
ICAgICAkMS0+YXBwZW5kKCQ1KTsKICAgICB9CiAgICAgfCBjb21tYV9zZXBhcmF0ZWRfbGFuZ19y
YW5nZXMgZXJyb3IgewpAQCAtMTM5NCw3ICsxNDAzLDcgQEAgcHNldWRvOgogCiAgICAgfCAnOicg
TEFOR0ZVTkNUSU9OIG1heWJlX3NwYWNlIGNvbW1hX3NlcGFyYXRlZF9sYW5nX3JhbmdlcyBtYXli
ZV9zcGFjZSAnKScgewogICAgICAgICAkJCA9IG51bGxwdHI7Ci0gICAgICAgIGlmICgkNCkgewor
ICAgICAgICBpZiAoJDQgJiYgJDQtPnNpemUoKSA+IDApIHsKICAgICAgICAgICAgIGF1dG8gc2Vs
ZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICAg
ICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAg
ICAgICBzZWxlY3Rvci0+c2V0QXJndW1lbnRMaXN0KCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPENT
U1BhcnNlclN0cmluZz4+KCQ0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDc1NTJh
NzExMDJiNTQwY2NmZTViOGQyMTMxZjgxMjM0NmY5ZTliYTIuLmJmOTU2OWE3NmE1NzNmY2FhOTg5
NjZmZDkwYzc4MDQyZDRiMjY4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0zNjIs
NiArMzYyLDI4IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgbWFrZUxvd2VyKGNvbnN0IENo
YXJhY3RlclR5cGUqIGlucHV0LCBDaGFyYWN0ZXJUeXBlKiBvCiAgICAgfQogfQogCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK0FMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFz
Tm9uV2hpdGVTcGFjZUNoYXJhY3RlcnMoY29uc3QgQ2hhcmFjdGVyVHlwZSogaW5wdXQsIHVuc2ln
bmVkJiBzdGFydCwgdW5zaWduZWQmIGVuZCwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIEFTU0VS
VChpbnB1dCk7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHN0YXJ0ID0gMDsKKyAgICBlbmQgPSBsZW5ndGggLSAxOworICAgIAorICAgIHdoaWxlIChzdGFy
dCA8PSBlbmQgJiYgaXNIVE1MU3BhY2UoaW5wdXRbc3RhcnRdKSkKKyAgICAgICAgKytzdGFydDsK
KworICAgIGlmIChzdGFydCA+IGVuZCkgCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHdo
aWxlIChlbmQgJiYgaXNIVE1MU3BhY2UoaW5wdXRbZW5kXSkpCisgICAgICAgIGVuZC0tOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQ1NTUGFyc2VyU3RyaW5nOjpsb3dlcigpCiB7CiAg
ICAgaWYgKGlzOEJpdCgpKSB7CkBAIC0zNzIsNiArMzk0LDM4IEBAIHZvaWQgQ1NTUGFyc2VyU3Ry
aW5nOjpsb3dlcigpCiAgICAgbWFrZUxvd2VyKGNoYXJhY3RlcnMxNigpLCBjaGFyYWN0ZXJzMTYo
KSwgbGVuZ3RoKCkpOwogfQogCit2b2lkIENTU1BhcnNlclN0cmluZzo6c3RyaXBXaGl0ZVNwYWNl
KCkKK3sKKyAgICAvLyBGSVhNRTogcmVuYW1lIHRoaXMgZnVuY3Rpb24sIGl0IGFsc28gY2xlYXJz
ICp0aGlzKiBzdHJpbmcgd2hlbjoKKyAgICAvLyAgICAgICAgMS4gaGFzIG5vbiB3aGl0ZXNwYWNl
IGNoYXJzLgorICAgIC8vICAgICAgICAyLiBzdGlsbCBoYXMgc3BhY2UgYWZ0ZXIgbGVmdCBhbmQg
cmlnaHQgd2hpdGVzcGFjZXMgYXJlIHN0cmlwcGVkLiBlLmcgIiogLSBlbiAtIHUgcyIKKyAgICB1
bnNpZ25lZCBzdGFydDsKKyAgICB1bnNpZ25lZCBlbmQ7CisKKyAgICBpZiAoaXM4Qml0KCkpIHsK
KyAgICAgICAgaWYgKCFoYXNOb25XaGl0ZVNwYWNlQ2hhcmFjdGVycyhtX2RhdGEuY2hhcmFjdGVy
czgsIHN0YXJ0LCBlbmQsIGxlbmd0aCgpKSkgeworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoU3RyaW5nKG1fZGF0YS5jaGFy
YWN0ZXJzOCArIHN0YXJ0LCBlbmQgKyAxIC0gc3RhcnQpLmNvbnRhaW5zKCIgIikpIHsKKyAgICAg
ICAgICAgIGNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
aW5pdChtX2RhdGEuY2hhcmFjdGVyczggKyBzdGFydCwgZW5kICsgMSAtIHN0YXJ0KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChoYXNOb25XaGl0ZVNwYWNlQ2hhcmFjdGVycyht
X2RhdGEuY2hhcmFjdGVyczE2LCBzdGFydCwgZW5kLCBsZW5ndGgoKSkpIHsKKyAgICAgICAgY2xl
YXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoU3RyaW5nKG1fZGF0YS5jaGFy
YWN0ZXJzMTYgKyBzdGFydCwgZW5kICsgMSAtIHN0YXJ0KS5jb250YWlucygiICIpKSB7CisgICAg
ICAgIGNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaW5pdChtX2RhdGEuY2hh
cmFjdGVyczE2ICsgc3RhcnQsIGVuZCArIDEgLSBzdGFydCk7Cit9CisKIHZvaWQgQ1NTUGFyc2Vy
OjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIHVuc2lnbmVkIHByZWZpeExlbmd0aCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IGNoYXIqIHN1ZmZpeCwgdW5zaWduZWQgc3VmZml4
TGVuZ3RoKQogewogICAgIG1fcGFyc2VkVGV4dFByZWZpeExlbmd0aCA9IHByZWZpeExlbmd0aDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAppbmRleCAzNWE3ODIwNjJiNmFjZDZlYjU3
YjQzYzcyOTViZjJhN2ZhY2JjZDg3Li5mYWNiZGU3ZDVlNTQzZDU0YzBhZDBjMTcwMDYzNDc0MDYx
YThlNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCkBAIC03Niw2ICs3Niw3
IEBAIHN0cnVjdCBDU1NQYXJzZXJTdHJpbmcgewogICAgIHZvaWQgc2V0TGVuZ3RoKHVuc2lnbmVk
IGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsgfQogCiAgICAgdm9pZCBsb3dlcigpOworICAg
IHZvaWQgc3RyaXBXaGl0ZVNwYWNlKCk7CiAKICAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2lnbmVk
IGkpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwM2IzNGFlNzkwMzNhNjc5YjBhZjhjYzExMzBmMjIx
MmJkMWU5ZmMuLjgwNjE1ODc5NmFhYWEwZmU5ZDg4NWU3MTU3ZTRkZDgzOTI1ZGZjOGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxNC0xMi0xNiAgRGhpIEF1cnJhaG1hbiAgPGRpb3JhaG1hbkBy
b2NreWJhcnMuY29tPgorCisgICAgICAgIEV4dGVuZCA6bGFuZygpIHdpdGggc3RyaW5nIGFyZ3Vt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5
Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWw6IEFkZGVkLgorCiAyMDE0LTEyLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFN3aXRjaGluZyBzcmMgb2Yg
PHZpZGVvPiB3aXRoIGNsaXBwaW5nIGxheWVyIHJlc3VsdHMgaW4gZW1wdHkgYmxhY2sgc3F1YXJl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0
aC1zdHJpbmctYXJndW1lbnRzLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJmZDk5ZjI0OTBhNzkzMDhhMDdlOGMwOTIxZmU2N2U5MmYzOWI0ZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rv
ci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBA
QAorVGhpcyB0ZXN0cyBwYXJzaW5nIGFuZCByZS1zZXJpYWxpemF0aW9uIG9mIDpsYW5nKCkgQ1NT
IHNlbGVjdG9ycyB3aXRoIHN0cmluZyByYW5nZSBpbnB1dHMKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoImEiKSB7IH0n
KSBpcyAnOmxhbmcoYSkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygi
YWEiKSB7IH0nKSBpcyAnOmxhbmcoYWEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnOmxhbmcoImNjYyIpIHsgfScpIGlzICc6bGFuZyhjY2MpIHsgfScKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnOmxhbmcoImRkZGQiLCBlZWVlKSB7IH0nKSBpcyAnOmxhbmcoZGRkZCwg
ZWVlZSkgeyB9JworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIgYSAiLCAi
IGIgIikgeyB9JykgaXMgJzpsYW5nKGEsIGIpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoICAgIiAgIGRlLUxhdG4tREUgICAiICAsICAgIiAgIGZyLUJFICAgIiAgICkg
eyB9JykgaXMgJzpsYW5nKGRlLUxhdG4tREUsIGZyLUJFKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IikgeyB9JykgaXMgJzpsYW5nKCot
MTk5NywgKi0xOTk4KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIg
ICAqLTE5OTcgICAiLCAiICAgKi0xOTk4ICAgIikgeyB9JykgaXMgJzpsYW5nKCotMTk5NywgKi0x
OTk4KSB7IH0nCisKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoIiIpIHsgfScp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygiICIpIHsgfScpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHls
ZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCc6bGFuZygiICAgICAgICAgICIpIHsgfScpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdzdHlsZUVsZW1l
bnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dCcpLgorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZygiKiAtIDE5OTciKSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50LnNoZWV0
LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxh
bmcoIiogLSAxOTk3IiwgIiAgKiAtIDE5OTgiKSB7IH0nKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnc3R5bGVFbGVtZW50
LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQnKS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRz
LXRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTlhZDY1MmZmNTdjNzZiOTBmY2IwMmNhMzMyODc1NzI2
M2EwYmE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmct
c2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRtbApAQCAtMCwwICsxLDYzIEBA
Cis8aHRtbD4KKzxoZWFkIGlkPSJoZWFkIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBwYXJzaW5nIGFuZCByZS1zZXJpYWxpemF0aW9uIG9mIDps
YW5nKCkgQ1NTIHNlbGVjdG9ycyB3aXRoIHN0cmluZyByYW5nZSBpbnB1dHMiKTsKKworZnVuY3Rp
b24gcGFyc2VUaGVuU2VyaWFsaXplUnVsZShydWxlKQoreworICAgIHZhciBzdHlsZUVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGUiKTsKKyAgICB2YXIgaGVhZCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkIik7CisgICAgaWYgKHN0eWxlRWxlbWVudCkKKyAgICAg
ICAgaGVhZC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpOworCisgICAgc3R5bGVFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKKyAgICBzdHlsZUVsZW1lbnQuaWQgPSAi
c3R5bGUiOworICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWQiKTsK
KyAgICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CisgICAgCisgICAgc3R5bGVFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJ1bGUpKTsKKyAgICByZXR1
cm4gc3R5bGVFbGVtZW50LnNoZWV0LmNzc1J1bGVzWzBdLmNzc1RleHQ7Cit9CisKK2Z1bmN0aW9u
IHN0cmlwUXVvdGVzQW5kV2hpdGVzcGFjZXMocmFuZ2UpIHsKKyAgICByZXR1cm4gcmFuZ2Uuc3Bs
aXQoJyInKS5qb2luKCcnKS5zcGxpdCgnICcpLmpvaW4oJycpOworfQorCitmdW5jdGlvbiB0ZXN0
U2VsZWN0b3JSb3VuZFRyaXAoc2VsZWN0b3IpCit7CisgICAgdmFyIHJhbmdlcyA9IHNlbGVjdG9y
LnNwbGl0KCcsJyk7CisgICAgdmFyIGV4cGVjdGVkID0gc3RyaXBRdW90ZXNBbmRXaGl0ZXNwYWNl
cyhyYW5nZXNbMF0pOworICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgIGV4cGVjdGVkICs9ICIsICIgKyBzdHJpcFF1b3Rlc0FuZFdoaXRlc3BhY2Vz
KHJhbmdlc1tpXSk7CisgICAgfQorICAgIHNob3VsZEJlKCJwYXJzZVRoZW5TZXJpYWxpemVSdWxl
KCciICsgc2VsZWN0b3IgKyAiIHsgfScpIiwgIiciICsgZXhwZWN0ZWQgKyAiIHsgfSciKTsKK30K
KwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6bGFuZygiYSIpJyk7Cit0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoJzpsYW5nKCJhYSIpJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCJjY2Mi
KScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6bGFuZygiZGRkZCIsIGVlZWUpJyk7CisKK2Rl
YnVnKCcnKQorCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIgYSAiLCAiIGIgIiknKTsK
K3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoICAgIiAgIGRlLUxhdG4tREUgICAiICAsICAg
IiAgIGZyLUJFICAgIiAgICknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoIiotMTk5
NyIsICIqLTE5OTgiKScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6bGFuZygiICAgKi0xOTk3
ICAgIiwgIiAgICotMTk5OCAgICIpJyk7CisKK2RlYnVnKCcnKQorCitzaG91bGRUaHJvdygicGFy
c2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoXCJcIikgeyB9JykiKTsKK3Nob3VsZFRocm93KCJw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhcIiBcIikgeyB9JykiKTsKK3Nob3VsZFRocm93
KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhcIiAgICAgICAgICBcIikgeyB9JykiKTsK
K3Nob3VsZFRocm93KCJwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZyhcIiogLSAxOTk3XCIp
IHsgfScpIik7CitzaG91bGRUaHJvdygicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoXCIq
IC0gMTk5N1wiLCBcIiAgKiAtIDE5OThcIikgeyB9JykiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243492</attachid>
            <date>2014-12-18 05:09:33 -0800</date>
            <delta_ts>2014-12-19 18:36:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141218200932.patch</filename>
            <type>text/plain</type>
            <size>4737</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlMzZkOWFmOGMyMDFl
MDMwMTFhYjU2NTQ5NTk0Zjg0YzVjNmMxMS4uMWIzMjYyYTkwZDE3M2IzZjMxMmQ2MWQyYTg3MTk5
ZjI0MGFlZjk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTEyLTE4ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cgc3Ry
aW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdHJpbmdzIGNhbiBiZSB1c2UgYXMgYXJndW1lbnQgdG8gOmxh
bmcoKSB3aGVuIGl0IGlzIG5lZWRlZFsxXS4KKworICAgICAgICBbMV0gaHR0cDovL3d3dy53My5v
cmcvYmxvZy9DU1MvMjAxNC8xMi8xMS9taW51dGVzLXRlbGVjb24tMjMxLworCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0
Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisKIDIwMTQtMTItMTUgIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNwZWN1bGF0aXZlIGJ1aWxk
IGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IGI3ZjQ4ZTc5YjZmZTViYzE1
ZThmMjE5MDRiMGEwNzNiZDYzY2Y5MzIuLjczOTI3YjgyZmQ0ZDU0NTBkNjc0Mjc1NzIxOWY5YTIz
M2ZkYzc1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTEwNCw3ICsxMTA0
LDcgQEAgbmVzdGVkX3NlbGVjdG9yX2xpc3Q6CiAgICAgOwogCiAjaWYgRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0Ci1sYW5nX3JhbmdlOiBMQU5HUkFOR0UgfCBJREVOVCAKK2xhbmdfcmFuZ2U6
IExBTkdSQU5HRSB8IElERU5UIHwgU1RSSU5HCiAKIGNvbW1hX3NlcGFyYXRlZF9sYW5nX3Jhbmdl
czoKICAgICBsYW5nX3JhbmdlICVwcmVjIFVOSU1QT1JUQU5UX1RPSyB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDAzYjM0
YWU3OTAzM2E2NzliMGFmOGNjMTEzMGYyMjEyYmQxZTlmYy4uMjlkN2Q4OTMyZDExYjNlMTExOGJl
Y2M5NGY1N2I2NmQ2NGE0N2VkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTEyLTE4ICBE
aGkgQXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cg
c3RyaW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgt
c3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRtbDog
QWRkZWQuCisKIDIwMTQtMTItMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3dpdGNoaW5nIHNyYyBvZiA8dmlkZW8+IHdpdGggY2xpcHBpbmcgbGF5ZXIgcmVz
dWx0cyBpbiBlbXB0eSBibGFjayBzcXVhcmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmlu
Zy1hcmd1bWVudHMtdGV4dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmYWY5MDY1MGExMjUx
MTBlYWI1MzM5NDRjMmJhYTVkMWMzMmFiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3RzIHBhcnNpbmcgYW5kIHJlLXNl
cmlhbGl6YXRpb24gb2YgOmxhbmcgQ1NTIHNlbGVjdG9yIHdpdGggc3RyaW5nIGFyZ3VtZW50cwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCc6bGFuZygiYSIpIHsgfScpIGlzICc6bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJzpsYW5nKCJiYiIsIGNjKSB7IH0nKSBpcyAnOmxhbmcoYmIsIGNjKSB7IH0n
CitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCJkZGQiLCBlZWUpIHsgfScpIGlz
ICc6bGFuZyhkZGQsIGVlZSkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFu
ZygiKi0xOTk3IikgeyB9JykgaXMgJzpsYW5nKCotMTk5NykgeyB9JworUEFTUyBwYXJzZVRoZW5T
ZXJpYWxpemVSdWxlKCc6bGFuZygiKi0xOTk3IiwgIiotMTk5OCIpIHsgfScpIGlzICc6bGFuZygq
LTE5OTcsICotMTk5OCkgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygi
IikgeyB9JykgaXMgJzpsYW5nKCkgeyB9JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nz
cy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyMjc1ZjkzNWJmMzkxYzZlNzBlNzczMjRlOWE3MWM5MWMwNDk1
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxl
Y3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzxo
dG1sPgorPGhlYWQgaWQ9ImhlYWQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHBhcnNpbmcgYW5kIHJlLXNlcmlhbGl6YXRpb24gb2YgOmxhbmcg
Q1NTIHNlbGVjdG9yIHdpdGggc3RyaW5nIGFyZ3VtZW50cyIpOworCitmdW5jdGlvbiBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKHJ1bGUpCit7CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdHlsZSIpOworICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhlYWQiKTsKKyAgICBpZiAoc3R5bGVFbGVtZW50KQorICAgICAgICBoZWFkLnJl
bW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7CisKKyAgICBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzdHlsZSIpOworICAgIHN0eWxlRWxlbWVudC5pZCA9ICJzdHlsZSI7Cisg
ICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZCIpOworICAgIGhlYWQu
YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKKyAgICAKKyAgICBzdHlsZUVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocnVsZSkpOworICAgIHJldHVybiBzdHlsZUVs
ZW1lbnQuc2hlZXQuY3NzUnVsZXNbMF0uY3NzVGV4dDsKK30KKworZnVuY3Rpb24gdGVzdFNlbGVj
dG9yUm91bmRUcmlwKHNlbGVjdG9yKQoreworICAgIHZhciBleHBlY3RlZCA9IHNlbGVjdG9yLnNw
bGl0KCciJykuam9pbignJyk7CisgICAgc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
JyIgKyBzZWxlY3RvciArICIgeyB9JykiLCAiJyIgKyBleHBlY3RlZCArICIgeyB9JyIpOworfQor
Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCJhIiknKTsKK3Rlc3RTZWxlY3RvclJvdW5k
VHJpcCgnOmxhbmcoImJiIiwgY2MpJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCJk
ZGQiLCBlZWUpJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIqLTE5OTciKScpOwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6bGFuZygiKi0xOTk3IiwgIiotMTk5OCIpJyk7Cit0ZXN0
U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIiKScpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243596</attachid>
            <date>2014-12-19 18:36:17 -0800</date>
            <delta_ts>2014-12-19 18:57:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141220093615.patch</filename>
            <type>text/plain</type>
            <size>8169</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViMDZiYmNkNDYxMGQw
ODliMDhiYmQxNTRiY2VlNTJiNGJmNTRiMi4uNGQ5YjQzZmY3OTRlM2RiODU1MWQxODBlNTQ5ZjUw
ZmI1OWQ5YmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTE5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cgc3Ry
aW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzdHJpbmdzIGFzIGFyZ3VtZW50IHRvIDpsYW5nKClb
MV0uIFRoZSBzZWxlY3RvciB3aXRoIGVtcHR5IHN0cmluZyBhcmd1bWVudCAoZS5nLiA6bGFuZygi
IikpCisgICAgICAgIGlzIGhhbmRsZWQgYXMgbmV2ZXIgbWF0Y2hpbmcuCisKKyAgICAgICAgWzFd
IGh0dHA6Ly93d3cudzMub3JnL2Jsb2cvQ1NTLzIwMTQvMTIvMTEvbWludXRlcy10ZWxlY29uLTIz
MS8KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICogY3NzL1NlbGVj
dG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNMYW5n
UHNldWRvQ2xhc3MpOgorCiAyMDE0LTEyLTE4ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIE1vcmUgc3BlY3VsYXRpdmUgYnVpbGQgZml4aW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggYjdmNDhlNzliNmZlNWJjMTVlOGYyMTkwNGIwYTA3
M2JkNjNjZjkzMi4uNzM5MjdiODJmZDRkNTQ1MGQ2NzQyNzU3MjE5ZjlhMjMzZmRjNzUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTA0LDcgKzExMDQsNyBAQCBuZXN0ZWRf
c2VsZWN0b3JfbGlzdDoKICAgICA7CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQK
LWxhbmdfcmFuZ2U6IExBTkdSQU5HRSB8IElERU5UIAorbGFuZ19yYW5nZTogTEFOR1JBTkdFIHwg
SURFTlQgfCBTVFJJTkcKIAogY29tbWFfc2VwYXJhdGVkX2xhbmdfcmFuZ2VzOgogICAgIGxhbmdf
cmFuZ2UgJXByZWMgVU5JTVBPUlRBTlRfVE9LIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCmluZGV4IGMzNDk3MjNjN2U3MjFhNTY1NGZm
NTFiYWJlNTRmNWJhYzZlNGUyZTUuLmU5YzNiNTZiMDdkMTc3YjU1YjA4YmQxOTdhYmIxM2ZiMWEy
MmVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0
RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaApAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSBib29sIG1hdGNoZXNMYW5nUHNl
dWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0b21pY1N0CiAj
ZW5kaWYKICAgICAgICAgbGFuZ3VhZ2UgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3Vh
Z2UoKTsKIAotICAgIGlmIChsYW5ndWFnZS5pc051bGwoKSkKKyAgICBpZiAobGFuZ3VhZ2UuaXNO
dWxsKCkgfHwgbGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBJbXBsZW1lbnQgYmFzaWMgYW5kIGV4dGVuZGVkIGZpbHRlcmluZ3Mgb2YgZ2l2ZW4gbGFu
Z3VhZ2UgdGFncyAKQEAgLTE2OSw2ICsxNjksOSBAQCBpbmxpbmUgYm9vbCBtYXRjaGVzTGFuZ1Bz
ZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxBdG9taWNTdAog
ICAgIGxhbmd1YWdlLnN0cmluZygpLnNwbGl0KCctJywgdHJ1ZSwgbGFuZ3VhZ2VTdWJ0YWdzKTsK
IAogICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nJiByYW5nZSA6IHJhbmdlcykgeworICAgICAg
ICBpZiAocmFuZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAg
aWYgKHJhbmdlID09ICIqIikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUy
ZGIzN2I0OTI2Yzc4OWZlMTg1ZTE5ZWUyNjhjMGY5Y2RlOWNiMC4uZDZhZjVjNGVhM2MyN2RkYTY2
NWI0ZGQzNTI4NTRjYzlkZGM3NWFlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTE5
ICBEaGkgQXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0
ZW5kIDpsYW5nKCkgd2l0aCBzdHJpbmcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJp
bmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJpbmctd2l0aC1zdHJpbmctYXJndW1l
bnRzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEyLTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFj
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFJlY3Vyc2l2ZSBjcmFzaCBhdCBXZWJDb3JlOjph
Y2Nlc3NpYmxlTmFtZUZvck5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nz
cy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3Vt
ZW50cy10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGZhZjkwNjUwYTEyNTExMGVhYjUz
Mzk0NGMyYmFhNWQxYzMyYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXph
dGlvbiBvZiA6bGFuZyBDU1Mgc2VsZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzps
YW5nKCJhIikgeyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoImJiIiwgY2MpIHsgfScpIGlzICc6bGFuZyhiYiwgY2MpIHsgfScKK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoImRkZCIsIGVlZSkgeyB9JykgaXMgJzpsYW5n
KGRkZCwgZWVlKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIqLTE5
OTciKSB7IH0nKSBpcyAnOmxhbmcoKi0xOTk3KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IikgeyB9JykgaXMgJzpsYW5nKCotMTk5Nywg
Ki0xOTk4KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIiKSB7IH0n
KSBpcyAnOmxhbmcoKSB7IH0nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmct
c2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzIyNzVmOTM1YmYzOTFjNmU3MGU3NzMyNGU5YTcxYzkxYzA0OTViMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8
aGVhZCBpZD0iaGVhZCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXphdGlvbiBvZiA6bGFuZyBDU1Mgc2Vs
ZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzIik7CisKK2Z1bmN0aW9uIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUocnVsZSkKK3sKKyAgICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0eWxlIik7CisgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaGVhZCIpOworICAgIGlmIChzdHlsZUVsZW1lbnQpCisgICAgICAgIGhlYWQucmVtb3ZlQ2hp
bGQoc3R5bGVFbGVtZW50KTsKKworICAgIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInN0eWxlIik7CisgICAgc3R5bGVFbGVtZW50LmlkID0gInN0eWxlIjsKKyAgICB2YXIg
aGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkIik7CisgICAgaGVhZC5hcHBlbmRD
aGlsZChzdHlsZUVsZW1lbnQpOworICAgIAorICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7CisgICAgcmV0dXJuIHN0eWxlRWxlbWVudC5z
aGVldC5jc3NSdWxlc1swXS5jc3NUZXh0OworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoc2VsZWN0b3IpCit7CisgICAgdmFyIGV4cGVjdGVkID0gc2VsZWN0b3Iuc3BsaXQoJyIn
KS5qb2luKCcnKTsKKyAgICBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnIiArIHNl
bGVjdG9yICsgIiB7IH0nKSIsICInIiArIGV4cGVjdGVkICsgIiB7IH0nIik7Cit9CisKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImEiKScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6
bGFuZygiYmIiLCBjYyknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImRkZCIsIGVl
ZSknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoIiotMTk5NyIpJyk7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IiknKTsKK3Rlc3RTZWxlY3Rv
clJvdW5kVHJpcCgnOmxhbmcoIiIpJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0
ZXJpbmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdkYTk1Zjk2MWM5MTIyNWU0YjQxZTAyZTgxZTRh
NTM4ZWI0MzA2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNCBAQAorVmVyaWZ5IHNlbGVjdG9yIHNwZWNpZnlpbmcgZXh0ZW5kZWQg
ZmlsdGVyaW5nIG9mIDpsYW5nKCkgcHNldWRvIGNsYXNzIHdpdGggc3RyaW5nIGFyZ3VtZW50cwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCc6bGFuZygiZW4iKScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJzpsYW5nKCIiKScpLmxlbmd0aCBpcyAwCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJzpsYW5nKCJkZS0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiKi0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiIiwgIiotMTk5NyIpJykubGVuZ3RoIGlzIDEK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWV4dGVuZGVkLWZpbHRlcmlu
Zy13aXRoLXN0cmluZy1hcmd1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFhMzg2MGYwODY2ZjYxMzIzMjhmODA0ZWI4MTdjNDFlNGEzNjAxYTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWV4dGVuZGVkLWZpbHRl
cmluZy13aXRoLXN0cmluZy1hcmd1bWVudHMuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgbGFuZz0i
ZW4iPjwvZGl2PgorICAgIDxkaXYgbGFuZz0iIj48L2Rpdj4KKyAgICA8ZGl2IGxhbmc9ImRlLTE5
OTctTGF0biI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbignVmVyaWZ5IHNl
bGVjdG9yIHNwZWNpZnlpbmcgZXh0ZW5kZWQgZmlsdGVyaW5nIG9mIDpsYW5nKCkgcHNldWRvIGNs
YXNzIHdpdGggc3RyaW5nIGFyZ3VtZW50cycpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKFwnOmxhbmcoImVuIilcJykubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRC
ZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCIiKVwnKS5sZW5ndGgnLCAnMCcp
OworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwnOmxhbmcoImRlLTE5
OTciKVwnKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKFwnOmxhbmcoIiotMTk5NyIpXCcpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUo
J2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCc6bGFuZygiIiwgIiotMTk5NyIpXCcpLmxlbmd0
aCcsICcxJyk7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243598</attachid>
            <date>2014-12-19 18:57:27 -0800</date>
            <delta_ts>2014-12-19 18:58:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141220095726.patch</filename>
            <type>text/plain</type>
            <size>8519</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViMDZiYmNkNDYxMGQw
ODliMDhiYmQxNTRiY2VlNTJiNGJmNTRiMi4uNGQ5YjQzZmY3OTRlM2RiODU1MWQxODBlNTQ5ZjUw
ZmI1OWQ5YmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTE5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cgc3Ry
aW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzdHJpbmdzIGFzIGFyZ3VtZW50IHRvIDpsYW5nKClb
MV0uIFRoZSBzZWxlY3RvciB3aXRoIGVtcHR5IHN0cmluZyBhcmd1bWVudCAoZS5nLiA6bGFuZygi
IikpCisgICAgICAgIGlzIGhhbmRsZWQgYXMgbmV2ZXIgbWF0Y2hpbmcuCisKKyAgICAgICAgWzFd
IGh0dHA6Ly93d3cudzMub3JnL2Jsb2cvQ1NTLzIwMTQvMTIvMTEvbWludXRlcy10ZWxlY29uLTIz
MS8KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICogY3NzL1NlbGVj
dG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNMYW5n
UHNldWRvQ2xhc3MpOgorCiAyMDE0LTEyLTE4ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIE1vcmUgc3BlY3VsYXRpdmUgYnVpbGQgZml4aW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggYjdmNDhlNzliNmZlNWJjMTVlOGYyMTkwNGIwYTA3
M2JkNjNjZjkzMi4uNzM5MjdiODJmZDRkNTQ1MGQ2NzQyNzU3MjE5ZjlhMjMzZmRjNzUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTA0LDcgKzExMDQsNyBAQCBuZXN0ZWRf
c2VsZWN0b3JfbGlzdDoKICAgICA7CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQK
LWxhbmdfcmFuZ2U6IExBTkdSQU5HRSB8IElERU5UIAorbGFuZ19yYW5nZTogTEFOR1JBTkdFIHwg
SURFTlQgfCBTVFJJTkcKIAogY29tbWFfc2VwYXJhdGVkX2xhbmdfcmFuZ2VzOgogICAgIGxhbmdf
cmFuZ2UgJXByZWMgVU5JTVBPUlRBTlRfVE9LIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCmluZGV4IGMzNDk3MjNjN2U3MjFhNTY1NGZm
NTFiYWJlNTRmNWJhYzZlNGUyZTUuLmU5YzNiNTZiMDdkMTc3YjU1YjA4YmQxOTdhYmIxM2ZiMWEy
MmVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0
RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaApAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSBib29sIG1hdGNoZXNMYW5nUHNl
dWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0b21pY1N0CiAj
ZW5kaWYKICAgICAgICAgbGFuZ3VhZ2UgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3Vh
Z2UoKTsKIAotICAgIGlmIChsYW5ndWFnZS5pc051bGwoKSkKKyAgICBpZiAobGFuZ3VhZ2UuaXNO
dWxsKCkgfHwgbGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBJbXBsZW1lbnQgYmFzaWMgYW5kIGV4dGVuZGVkIGZpbHRlcmluZ3Mgb2YgZ2l2ZW4gbGFu
Z3VhZ2UgdGFncyAKQEAgLTE2OSw2ICsxNjksOSBAQCBpbmxpbmUgYm9vbCBtYXRjaGVzTGFuZ1Bz
ZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxBdG9taWNTdAog
ICAgIGxhbmd1YWdlLnN0cmluZygpLnNwbGl0KCctJywgdHJ1ZSwgbGFuZ3VhZ2VTdWJ0YWdzKTsK
IAogICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nJiByYW5nZSA6IHJhbmdlcykgeworICAgICAg
ICBpZiAocmFuZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAg
aWYgKHJhbmdlID09ICIqIikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUy
ZGIzN2I0OTI2Yzc4OWZlMTg1ZTE5ZWUyNjhjMGY5Y2RlOWNiMC4uZDZhZjVjNGVhM2MyN2RkYTY2
NWI0ZGQzNTI4NTRjYzlkZGM3NWFlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTE5
ICBEaGkgQXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0
ZW5kIDpsYW5nKCkgd2l0aCBzdHJpbmcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJp
bmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJpbmctd2l0aC1zdHJpbmctYXJndW1l
bnRzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEyLTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFj
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFJlY3Vyc2l2ZSBjcmFzaCBhdCBXZWJDb3JlOjph
Y2Nlc3NpYmxlTmFtZUZvck5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nz
cy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3Vt
ZW50cy10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGZhZjkwNjUwYTEyNTExMGVhYjUz
Mzk0NGMyYmFhNWQxYzMyYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXph
dGlvbiBvZiA6bGFuZyBDU1Mgc2VsZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzps
YW5nKCJhIikgeyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoImJiIiwgY2MpIHsgfScpIGlzICc6bGFuZyhiYiwgY2MpIHsgfScKK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoImRkZCIsIGVlZSkgeyB9JykgaXMgJzpsYW5n
KGRkZCwgZWVlKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIqLTE5
OTciKSB7IH0nKSBpcyAnOmxhbmcoKi0xOTk3KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IikgeyB9JykgaXMgJzpsYW5nKCotMTk5Nywg
Ki0xOTk4KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIiKSB7IH0n
KSBpcyAnOmxhbmcoKSB7IH0nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmct
c2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzIyNzVmOTM1YmYzOTFjNmU3MGU3NzMyNGU5YTcxYzkxYzA0OTViMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8
aGVhZCBpZD0iaGVhZCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXphdGlvbiBvZiA6bGFuZyBDU1Mgc2Vs
ZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzIik7CisKK2Z1bmN0aW9uIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUocnVsZSkKK3sKKyAgICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0eWxlIik7CisgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaGVhZCIpOworICAgIGlmIChzdHlsZUVsZW1lbnQpCisgICAgICAgIGhlYWQucmVtb3ZlQ2hp
bGQoc3R5bGVFbGVtZW50KTsKKworICAgIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInN0eWxlIik7CisgICAgc3R5bGVFbGVtZW50LmlkID0gInN0eWxlIjsKKyAgICB2YXIg
aGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkIik7CisgICAgaGVhZC5hcHBlbmRD
aGlsZChzdHlsZUVsZW1lbnQpOworICAgIAorICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7CisgICAgcmV0dXJuIHN0eWxlRWxlbWVudC5z
aGVldC5jc3NSdWxlc1swXS5jc3NUZXh0OworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoc2VsZWN0b3IpCit7CisgICAgdmFyIGV4cGVjdGVkID0gc2VsZWN0b3Iuc3BsaXQoJyIn
KS5qb2luKCcnKTsKKyAgICBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnIiArIHNl
bGVjdG9yICsgIiB7IH0nKSIsICInIiArIGV4cGVjdGVkICsgIiB7IH0nIik7Cit9CisKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImEiKScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6
bGFuZygiYmIiLCBjYyknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImRkZCIsIGVl
ZSknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoIiotMTk5NyIpJyk7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IiknKTsKK3Rlc3RTZWxlY3Rv
clJvdW5kVHJpcCgnOmxhbmcoIiIpJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0
ZXJpbmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RkYjg3MjNkMjg2YWNiMWE0ZmFlNDQyNWI0NGRh
NmUxMDMxN2I5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorVmVyaWZ5IHNlbGVjdG9yIHNwZWNpZnlpbmcgZXh0ZW5kZWQg
ZmlsdGVyaW5nIG9mIDpsYW5nKCkgcHNldWRvIGNsYXNzIHdpdGggc3RyaW5nIGFyZ3VtZW50cwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCc6bGFuZygiZW4iKScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJzpsYW5nKCIiKScpLmxlbmd0aCBpcyAwCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJzpsYW5nKCJkZS0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiKi0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiIiwgIiotMTk5NyIpJykubGVuZ3RoIGlzIDEK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmxhbmcoIiIiIiknKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5n
LWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRl
ZC1maWx0ZXJpbmctd2l0aC1zdHJpbmctYXJndW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyZTdm
NTc0NDVjNzAyY2UxYzQwN2NjNDIxZDliYjMwYWExNWI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3Ry
aW5nLWFyZ3VtZW50cy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBsYW5nPSJlbiI+PC9kaXY+Cisg
ICAgPGRpdiBsYW5nPSIiPjwvZGl2PgorICAgIDxkaXYgbGFuZz0iXCJcIiI+PC9kaXY+CisgICAg
PGRpdiBsYW5nPSJkZS0xOTk3LUxhdG4iPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oJ1ZlcmlmeSBzZWxlY3RvciBzcGVjaWZ5aW5nIGV4dGVuZGVkIGZpbHRlcmluZyBvZiA6
bGFuZygpIHBzZXVkbyBjbGFzcyB3aXRoIHN0cmluZyBhcmd1bWVudHMnKTsKKyAgICBzaG91bGRC
ZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCJlbiIpXCcpLmxlbmd0aCcsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCc6bGFuZygiZGUt
MTk5NyIpXCcpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoXCc6bGFuZygiKi0xOTk3IilcJykubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRC
ZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoXCdcJykiKS5sZW5ndGgnLCAiMCIp
OworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwnOmxhbmcoIiIpXCcp
Lmxlbmd0aCcsICcwJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
XCc6bGFuZygiZW4iLCAiKi0xOTk3IilcJykubGVuZ3RoJywgJzInKTsKKyAgICBzaG91bGRCZSgn
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCIiLCAiKi0xOTk3IilcJykubGVuZ3Ro
JywgJzEnKTsKKworICAgIHNob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwn
OmxhbmcoIiIiIilcJyknKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243599</attachid>
            <date>2014-12-19 18:58:58 -0800</date>
            <delta_ts>2014-12-19 19:02:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141220095857.patch</filename>
            <type>text/plain</type>
            <size>8645</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViMDZiYmNkNDYxMGQw
ODliMDhiYmQxNTRiY2VlNTJiNGJmNTRiMi4uNGQ5YjQzZmY3OTRlM2RiODU1MWQxODBlNTQ5ZjUw
ZmI1OWQ5YmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTE5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cgc3Ry
aW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzdHJpbmdzIGFzIGFyZ3VtZW50IHRvIDpsYW5nKClb
MV0uIFRoZSBzZWxlY3RvciB3aXRoIGVtcHR5IHN0cmluZyBhcmd1bWVudCAoZS5nLiA6bGFuZygi
IikpCisgICAgICAgIGlzIGhhbmRsZWQgYXMgbmV2ZXIgbWF0Y2hpbmcuCisKKyAgICAgICAgWzFd
IGh0dHA6Ly93d3cudzMub3JnL2Jsb2cvQ1NTLzIwMTQvMTIvMTEvbWludXRlcy10ZWxlY29uLTIz
MS8KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICogY3NzL1NlbGVj
dG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoZXNMYW5n
UHNldWRvQ2xhc3MpOgorCiAyMDE0LTEyLTE4ICBKZXNzaWUgQmVybGluICA8amJlcmxpbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIE1vcmUgc3BlY3VsYXRpdmUgYnVpbGQgZml4aW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggYjdmNDhlNzliNmZlNWJjMTVlOGYyMTkwNGIwYTA3
M2JkNjNjZjkzMi4uNzM5MjdiODJmZDRkNTQ1MGQ2NzQyNzU3MjE5ZjlhMjMzZmRjNzUyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTA0LDcgKzExMDQsNyBAQCBuZXN0ZWRf
c2VsZWN0b3JfbGlzdDoKICAgICA7CiAKICNpZiBFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQK
LWxhbmdfcmFuZ2U6IExBTkdSQU5HRSB8IElERU5UIAorbGFuZ19yYW5nZTogTEFOR1JBTkdFIHwg
SURFTlQgfCBTVFJJTkcKIAogY29tbWFfc2VwYXJhdGVkX2xhbmdfcmFuZ2VzOgogICAgIGxhbmdf
cmFuZ2UgJXByZWMgVU5JTVBPUlRBTlRfVE9LIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCmluZGV4IGMzNDk3MjNjN2U3MjFhNTY1NGZm
NTFiYWJlNTRmNWJhYzZlNGUyZTUuLmU5YzNiNTZiMDdkMTc3YjU1YjA4YmQxOTdhYmIxM2ZiMWEy
MmVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0
RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaApAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSBib29sIG1hdGNoZXNMYW5nUHNl
dWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgVmVjdG9yPEF0b21pY1N0CiAj
ZW5kaWYKICAgICAgICAgbGFuZ3VhZ2UgPSBlbGVtZW50LT5jb21wdXRlSW5oZXJpdGVkTGFuZ3Vh
Z2UoKTsKIAotICAgIGlmIChsYW5ndWFnZS5pc051bGwoKSkKKyAgICBpZiAobGFuZ3VhZ2UuaXNO
dWxsKCkgfHwgbGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBJbXBsZW1lbnQgYmFzaWMgYW5kIGV4dGVuZGVkIGZpbHRlcmluZ3Mgb2YgZ2l2ZW4gbGFu
Z3VhZ2UgdGFncyAKQEAgLTE2OSw2ICsxNjksOSBAQCBpbmxpbmUgYm9vbCBtYXRjaGVzTGFuZ1Bz
ZXVkb0NsYXNzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxBdG9taWNTdAog
ICAgIGxhbmd1YWdlLnN0cmluZygpLnNwbGl0KCctJywgdHJ1ZSwgbGFuZ3VhZ2VTdWJ0YWdzKTsK
IAogICAgIGZvciAoY29uc3QgQXRvbWljU3RyaW5nJiByYW5nZSA6IHJhbmdlcykgeworICAgICAg
ICBpZiAocmFuZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAg
aWYgKHJhbmdlID09ICIqIikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDUy
ZGIzN2I0OTI2Yzc4OWZlMTg1ZTE5ZWUyNjhjMGY5Y2RlOWNiMC4uZDZhZjVjNGVhM2MyN2RkYTY2
NWI0ZGQzNTI4NTRjYzlkZGM3NWFlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTE5
ICBEaGkgQXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgRXh0
ZW5kIDpsYW5nKCkgd2l0aCBzdHJpbmcgYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJp
bmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0ZXJpbmctd2l0aC1zdHJpbmctYXJndW1l
bnRzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEyLTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFj
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFJlY3Vyc2l2ZSBjcmFzaCBhdCBXZWJDb3JlOjph
Y2Nlc3NpYmxlTmFtZUZvck5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nz
cy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3Vt
ZW50cy10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGZhZjkwNjUwYTEyNTExMGVhYjUz
Mzk0NGMyYmFhNWQxYzMyYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLWxhbmctc2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXph
dGlvbiBvZiA6bGFuZyBDU1Mgc2VsZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzps
YW5nKCJhIikgeyB9JykgaXMgJzpsYW5nKGEpIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnOmxhbmcoImJiIiwgY2MpIHsgfScpIGlzICc6bGFuZyhiYiwgY2MpIHsgfScKK1BBU1Mg
cGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOmxhbmcoImRkZCIsIGVlZSkgeyB9JykgaXMgJzpsYW5n
KGRkZCwgZWVlKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIqLTE5
OTciKSB7IH0nKSBpcyAnOmxhbmcoKi0xOTk3KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6
ZVJ1bGUoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IikgeyB9JykgaXMgJzpsYW5nKCotMTk5Nywg
Ki0xOTk4KSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCIiKSB7IH0n
KSBpcyAnOmxhbmcoKSB7IH0nCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWxhbmct
c2VsZWN0b3Itd2l0aC1zdHJpbmctYXJndW1lbnRzLXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzIyNzVmOTM1YmYzOTFjNmU3MGU3NzMyNGU5YTcxYzkxYzA0OTViMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdp
dGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8
aGVhZCBpZD0iaGVhZCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgcGFyc2luZyBhbmQgcmUtc2VyaWFsaXphdGlvbiBvZiA6bGFuZyBDU1Mgc2Vs
ZWN0b3Igd2l0aCBzdHJpbmcgYXJndW1lbnRzIik7CisKK2Z1bmN0aW9uIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUocnVsZSkKK3sKKyAgICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0eWxlIik7CisgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaGVhZCIpOworICAgIGlmIChzdHlsZUVsZW1lbnQpCisgICAgICAgIGhlYWQucmVtb3ZlQ2hp
bGQoc3R5bGVFbGVtZW50KTsKKworICAgIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInN0eWxlIik7CisgICAgc3R5bGVFbGVtZW50LmlkID0gInN0eWxlIjsKKyAgICB2YXIg
aGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkIik7CisgICAgaGVhZC5hcHBlbmRD
aGlsZChzdHlsZUVsZW1lbnQpOworICAgIAorICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShydWxlKSk7CisgICAgcmV0dXJuIHN0eWxlRWxlbWVudC5z
aGVldC5jc3NSdWxlc1swXS5jc3NUZXh0OworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3JSb3Vu
ZFRyaXAoc2VsZWN0b3IpCit7CisgICAgdmFyIGV4cGVjdGVkID0gc2VsZWN0b3Iuc3BsaXQoJyIn
KS5qb2luKCcnKTsKKyAgICBzaG91bGRCZSgicGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnIiArIHNl
bGVjdG9yICsgIiB7IH0nKSIsICInIiArIGV4cGVjdGVkICsgIiB7IH0nIik7Cit9CisKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImEiKScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCc6
bGFuZygiYmIiLCBjYyknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImRkZCIsIGVl
ZSknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoIiotMTk5NyIpJyk7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIqLTE5OTciLCAiKi0xOTk4IiknKTsKK3Rlc3RTZWxlY3Rv
clJvdW5kVHJpcCgnOmxhbmcoIiIpJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvbGFuZy1leHRlbmRlZC1maWx0
ZXJpbmctd2l0aC1zdHJpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk4MGQxMDdmODdlZDVmZmFmNjQ1OWM3MTU3Njc2
NjJmY2NmNGQ1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVmVyaWZ5IHNlbGVjdG9yIHNwZWNpZnlpbmcgZXh0ZW5kZWQg
ZmlsdGVyaW5nIG9mIDpsYW5nKCkgcHNldWRvIGNsYXNzIHdpdGggc3RyaW5nIGFyZ3VtZW50cwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCc6bGFuZygiZW4iKScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJzpsYW5nKCJkZS0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiKi0xOTk3IiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6bGFuZygnJykiKS5sZW5ndGggaXMgMAorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiIiknKS5sZW5ndGggaXMgMAorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiZW4iLCAiKi0xOTk3IiknKS5sZW5ndGggaXMg
MgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFuZygiIiwgIiotMTk5NyIpJyku
bGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmxhbmcoIiIiIikn
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5n
LXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMv
bGFuZy1leHRlbmRlZC1maWx0ZXJpbmctd2l0aC1zdHJpbmctYXJndW1lbnRzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODIyZTdmNTc0NDVjNzAyY2UxYzQwN2NjNDIxZDliYjMwYWExNWI0YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVy
aW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBsYW5nPSJl
biI+PC9kaXY+CisgICAgPGRpdiBsYW5nPSIiPjwvZGl2PgorICAgIDxkaXYgbGFuZz0iXCJcIiI+
PC9kaXY+CisgICAgPGRpdiBsYW5nPSJkZS0xOTk3LUxhdG4iPjwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oJ1ZlcmlmeSBzZWxlY3RvciBzcGVjaWZ5aW5nIGV4dGVuZGVkIGZp
bHRlcmluZyBvZiA6bGFuZygpIHBzZXVkbyBjbGFzcyB3aXRoIHN0cmluZyBhcmd1bWVudHMnKTsK
KyAgICBzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCJlbiIpXCcp
Lmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
XCc6bGFuZygiZGUtMTk5NyIpXCcpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUoJ2RvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCc6bGFuZygiKi0xOTk3IilcJykubGVuZ3RoJywgJzEnKTsK
KyAgICBzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOmxhbmcoXCdcJykiKS5s
ZW5ndGgnLCAiMCIpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwn
OmxhbmcoIiIpXCcpLmxlbmd0aCcsICcwJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoXCc6bGFuZygiZW4iLCAiKi0xOTk3IilcJykubGVuZ3RoJywgJzInKTsKKyAg
ICBzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCIiLCAiKi0xOTk3
IilcJykubGVuZ3RoJywgJzEnKTsKKworICAgIHNob3VsZFRocm93KCdkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKFwnOmxhbmcoIiIiIilcJyknKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243600</attachid>
            <date>2014-12-19 19:02:43 -0800</date>
            <delta_ts>2014-12-25 23:34:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139678-20141220100241.patch</filename>
            <type>text/plain</type>
            <size>8802</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViMDZiYmNkNDYxMGQw
ODliMDhiYmQxNTRiY2VlNTJiNGJmNTRiMi4uOWYxOTIxZGYzZTJiYjRkYjBmZTk0N2JkNmVlN2Qw
ZTcyNjliNGNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTEyLTE5ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgQWxsb3cgc3Ry
aW5ncyBhcyBhcmd1bWVudCB0byA6bGFuZygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzdHJpbmdzIGFzIGFyZ3VtZW50IHRvIDpsYW5nKClb
MV0uIFRoZSBzZWxlY3RvciB3aXRoIGVtcHR5IHN0cmluZyBhcmd1bWVudCAoZS5nLiA6bGFuZygi
IikpCisgICAgICAgIGlzIGhhbmRsZWQgYXMgbmV2ZXIgbWF0Y2hpbmcuCisKKyAgICAgICAgWzFd
IGh0dHA6Ly93d3cudzMub3JnL2Jsb2cvQ1NTLzIwMTQvMTIvMTEvbWludXRlcy10ZWxlY29uLTIz
MS8KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmlu
Zy1hcmd1bWVudHMtdGV4dC5odG1sCisgICAgICAgICAgICAgIGZhc3Qvc2VsZWN0b3JzL2xhbmct
ZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sCisKKyAgICAgICAg
KiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXJUZXN0
RnVuY3Rpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjptYXRjaGVzTGFuZ1BzZXVkb0NsYXNzKToK
KwogMjAxNC0xMi0xOCAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBNb3JlIHNwZWN1bGF0aXZlIGJ1aWxkIGZpeGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1h
ci55LmluCmluZGV4IGI3ZjQ4ZTc5YjZmZTViYzE1ZThmMjE5MDRiMGEwNzNiZDYzY2Y5MzIuLjcz
OTI3YjgyZmQ0ZDU0NTBkNjc0Mjc1NzIxOWY5YTIzM2ZkYzc1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueS5pbgpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgbmVzdGVkX3NlbGVjdG9yX2xpc3Q6
CiAgICAgOwogCiAjaWYgRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0Ci1sYW5nX3JhbmdlOiBM
QU5HUkFOR0UgfCBJREVOVCAKK2xhbmdfcmFuZ2U6IExBTkdSQU5HRSB8IElERU5UIHwgU1RSSU5H
CiAKIGNvbW1hX3NlcGFyYXRlZF9sYW5nX3JhbmdlczoKICAgICBsYW5nX3JhbmdlICVwcmVjIFVO
SU1QT1JUQU5UX1RPSyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyVGVzdEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
clRlc3RGdW5jdGlvbnMuaAppbmRleCBjMzQ5NzIzYzdlNzIxYTU2NTRmZjUxYmFiZTU0ZjViYWM2
ZTRlMmU1Li5lOWMzYjU2YjA3ZDE3N2I1NWIwOGJkMTk3YWJiMTNmYjFhMjJlZDE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgKQEAg
LTE1OCw3ICsxNTgsNyBAQCBpbmxpbmUgYm9vbCBtYXRjaGVzTGFuZ1BzZXVkb0NsYXNzKGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxBdG9taWNTdAogI2VuZGlmCiAgICAgICAg
IGxhbmd1YWdlID0gZWxlbWVudC0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCk7CiAKLSAgICBp
ZiAobGFuZ3VhZ2UuaXNOdWxsKCkpCisgICAgaWYgKGxhbmd1YWdlLmlzTnVsbCgpIHx8IGxhbmd1
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSW1wbGVtZW50
IGJhc2ljIGFuZCBleHRlbmRlZCBmaWx0ZXJpbmdzIG9mIGdpdmVuIGxhbmd1YWdlIHRhZ3MgCkBA
IC0xNjksNiArMTY5LDkgQEAgaW5saW5lIGJvb2wgbWF0Y2hlc0xhbmdQc2V1ZG9DbGFzcyhjb25z
dCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBWZWN0b3I8QXRvbWljU3QKICAgICBsYW5ndWFnZS5z
dHJpbmcoKS5zcGxpdCgnLScsIHRydWUsIGxhbmd1YWdlU3VidGFncyk7CiAKICAgICBmb3IgKGNv
bnN0IEF0b21pY1N0cmluZyYgcmFuZ2UgOiByYW5nZXMpIHsKKyAgICAgICAgaWYgKHJhbmdlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIGlmIChyYW5nZSA9PSAi
KiIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA1MmRiMzdiNDkyNmM3ODlm
ZTE4NWUxOWVlMjY4YzBmOWNkZTljYjAuLmQ2YWY1YzRlYTNjMjdkZGE2NjViNGRkMzUyODU0Y2M5
ZGRjNzVhZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMi0xOSAgRGhpIEF1cnJhaG1h
biAgPGRpb3JhaG1hbkByb2NreWJhcnMuY29tPgorCisgICAgICAgIEV4dGVuZCA6bGFuZygpIHdp
dGggc3RyaW5nIGFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM5Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1
bWVudHMtdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1s
YW5nLXNlbGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5n
LWFyZ3VtZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3Jz
L2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sOiBBZGRl
ZC4KKwogMjAxNC0xMi0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgog
CiAgICAgICAgIEFYOiBSZWN1cnNpdmUgY3Jhc2ggYXQgV2ViQ29yZTo6YWNjZXNzaWJsZU5hbWVG
b3JOb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rv
ci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmYWY5MDY1MGExMjUxMTBlYWI1MzM5NDRjMmJhYTVkMWMz
MmFiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNl
bGVjdG9yLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE1IEBACitUaGlzIHRlc3RzIHBhcnNpbmcgYW5kIHJlLXNlcmlhbGl6YXRpb24gb2YgOmxhbmcg
Q1NTIHNlbGVjdG9yIHdpdGggc3RyaW5nIGFyZ3VtZW50cworCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygiYSIpIHsgfScp
IGlzICc6bGFuZyhhKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzpsYW5nKCJi
YiIsIGNjKSB7IH0nKSBpcyAnOmxhbmcoYmIsIGNjKSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlh
bGl6ZVJ1bGUoJzpsYW5nKCJkZGQiLCBlZWUpIHsgfScpIGlzICc6bGFuZyhkZGQsIGVlZSkgeyB9
JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygiKi0xOTk3IikgeyB9JykgaXMg
JzpsYW5nKCotMTk5NykgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygi
Ki0xOTk3IiwgIiotMTk5OCIpIHsgfScpIGlzICc6bGFuZygqLTE5OTcsICotMTk5OCkgeyB9Jwor
UEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6bGFuZygiIikgeyB9JykgaXMgJzpsYW5nKCkg
eyB9JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1sYW5nLXNlbGVjdG9yLXdpdGgt
c3RyaW5nLWFyZ3VtZW50cy10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFu
Zy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1bWVudHMtdGV4dC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcy
Mjc1ZjkzNWJmMzkxYzZlNzBlNzczMjRlOWE3MWM5MWMwNDk1YjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtbGFuZy1zZWxlY3Rvci13aXRoLXN0cmluZy1hcmd1
bWVudHMtdGV4dC5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sPgorPGhlYWQgaWQ9ImhlYWQi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHBh
cnNpbmcgYW5kIHJlLXNlcmlhbGl6YXRpb24gb2YgOmxhbmcgQ1NTIHNlbGVjdG9yIHdpdGggc3Ry
aW5nIGFyZ3VtZW50cyIpOworCitmdW5jdGlvbiBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKHJ1bGUp
Cit7CisgICAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHls
ZSIpOworICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWQiKTsKKyAg
ICBpZiAoc3R5bGVFbGVtZW50KQorICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVu
dCk7CisKKyAgICBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIp
OworICAgIHN0eWxlRWxlbWVudC5pZCA9ICJzdHlsZSI7CisgICAgdmFyIGhlYWQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaGVhZCIpOworICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVt
ZW50KTsKKyAgICAKKyAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUocnVsZSkpOworICAgIHJldHVybiBzdHlsZUVsZW1lbnQuc2hlZXQuY3NzUnVsZXNb
MF0uY3NzVGV4dDsKK30KKworZnVuY3Rpb24gdGVzdFNlbGVjdG9yUm91bmRUcmlwKHNlbGVjdG9y
KQoreworICAgIHZhciBleHBlY3RlZCA9IHNlbGVjdG9yLnNwbGl0KCciJykuam9pbignJyk7Cisg
ICAgc2hvdWxkQmUoInBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJyIgKyBzZWxlY3RvciArICIgeyB9
JykiLCAiJyIgKyBleHBlY3RlZCArICIgeyB9JyIpOworfQorCit0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJzpsYW5nKCJhIiknKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgnOmxhbmcoImJiIiwgY2Mp
Jyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCJkZGQiLCBlZWUpJyk7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoJzpsYW5nKCIqLTE5OTciKScpOwordGVzdFNlbGVjdG9yUm91bmRUcmlw
KCc6bGFuZygiKi0xOTk3IiwgIiotMTk5OCIpJyk7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzps
YW5nKCIiKScpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQtZmlsdGVyaW5nLXdpdGgtc3Ry
aW5nLWFyZ3VtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9s
YW5nLWV4dGVuZGVkLWZpbHRlcmluZy13aXRoLXN0cmluZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU5ODBkMTA3Zjg3ZWQ1ZmZhZjY0NTljNzE1NzY3NjYyZmNjZjRkNWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWV4dGVuZGVk
LWZpbHRlcmluZy13aXRoLXN0cmluZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTcgQEAKK1ZlcmlmeSBzZWxlY3RvciBzcGVjaWZ5aW5nIGV4dGVuZGVkIGZpbHRlcmluZyBvZiA6
bGFuZygpIHBzZXVkbyBjbGFzcyB3aXRoIHN0cmluZyBhcmd1bWVudHMKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOmxhbmco
ImVuIiknKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6bGFu
ZygiZGUtMTk5NyIpJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnOmxhbmcoIiotMTk5NyIpJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiOmxhbmcoJycpIikubGVuZ3RoIGlzIDAKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnOmxhbmcoIiIpJykubGVuZ3RoIGlzIDAKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnOmxhbmcoImVuIiwgIiotMTk5NyIpJykubGVuZ3RoIGlzIDIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnOmxhbmcoIiIsICIqLTE5OTciKScpLmxlbmd0aCBpcyAxCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpsYW5nKCIiIiIpJykgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWV4dGVuZGVkLWZpbHRlcmluZy13aXRoLXN0cmluZy1h
cmd1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2xhbmctZXh0ZW5kZWQt
ZmlsdGVyaW5nLXdpdGgtc3RyaW5nLWFyZ3VtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyMmU3ZjU3
NDQ1YzcwMmNlMWM0MDdjYzQyMWQ5YmIzMGFhMTViNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9sYW5nLWV4dGVuZGVkLWZpbHRlcmluZy13aXRoLXN0cmlu
Zy1hcmd1bWVudHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgbGFuZz0iZW4iPjwvZGl2PgorICAg
IDxkaXYgbGFuZz0iIj48L2Rpdj4KKyAgICA8ZGl2IGxhbmc9IlwiXCIiPjwvZGl2PgorICAgIDxk
aXYgbGFuZz0iZGUtMTk5Ny1MYXRuIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCdWZXJpZnkgc2VsZWN0b3Igc3BlY2lmeWluZyBleHRlbmRlZCBmaWx0ZXJpbmcgb2YgOmxh
bmcoKSBwc2V1ZG8gY2xhc3Mgd2l0aCBzdHJpbmcgYXJndW1lbnRzJyk7CisgICAgc2hvdWxkQmUo
J2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCc6bGFuZygiZW4iKVwnKS5sZW5ndGgnLCAnMScp
OworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwnOmxhbmcoImRlLTE5
OTciKVwnKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKFwnOmxhbmcoIiotMTk5NyIpXCcpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUo
J2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpsYW5nKFwnXCcpIikubGVuZ3RoJywgIjAiKTsK
KyAgICBzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzpsYW5nKCIiKVwnKS5s
ZW5ndGgnLCAnMCcpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwn
OmxhbmcoImVuIiwgIiotMTk5NyIpXCcpLmxlbmd0aCcsICcyJyk7CisgICAgc2hvdWxkQmUoJ2Rv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCc6bGFuZygiIiwgIiotMTk5NyIpXCcpLmxlbmd0aCcs
ICcxJyk7CisKKyAgICBzaG91bGRUaHJvdygnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcJzps
YW5nKCIiIiIpXCcpJyk7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>