<?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>67640</bug_id>
          
          <creation_ts>2011-09-06 06:40:06 -0700</creation_ts>
          <short_desc>ReadAV(NULL) @ chrome.dll!ubrk_setText_46 #3c121a35,7beced32,3f8c5464</short_desc>
          <delta_ts>2012-03-12 10:23:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berend-Jan Wever">skylined</reporter>
          <assigned_to name="Jungshik Shin">jshin</assigned_to>
          <cc>ap</cc>
    
    <cc>cachobot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>jshin</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>462485</commentid>
    <comment_count>0</comment_count>
      <attachid>106412</attachid>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-09-06 06:40:06 -0700</bug_when>
    <thetext>Created attachment 106412
Repro

Chromium: https://code.google.com/p/chromium/issues/detail?id=95486

Repro:
&lt;style&gt;
  * {
    -webkit-locale: &apos;xx-_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&apos;;
    -webkit-text-security: disc;
  }
&lt;/style&gt;
xx

There seem to be a number of problems here in WebKit and icu that combine to cause this:
- A missing NULL check in acquireLineBreakIterator,
- A hardcoded size limit for a buffer in ures_open,
- Code that fills a buffer completely, leaving no room for a terminating NULL in _canonicalize.

Source code for WebCore::acquireLineBreakIterator [webkit\source\webcore\platform\text\textbreakiteratoricu.cpp]
--------------
TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&amp; locale)
{
    UBreakIterator* iterator = LineBreakIteratorPool::sharedPool().take(locale); /// RETURN NULL

    UErrorCode setTextStatus = U_ZERO_ERROR;
    ubrk_setText(iterator, string, length, &amp;setTextStatus);                      /// NULL ptr crash
    if (U_FAILURE(setTextStatus)) {
        LOG_ERROR(&quot;ubrk_setText failed with status %d&quot;, setTextStatus);
        return 0;
    }

    return reinterpret_cast&lt;TextBreakIterator*&gt;(iterator);
}
--------------
The code path that sets iterator to NULL is:

WebCore::LineBreakIteratorPool::take [webkit\source\webcore\platform\text\linebreakiteratorpoolicu.h]
ubrk_open [icu\source\common\ubrk.cpp]
BreakIterator::createLineInstance [icu\source\common\brkiter.cpp]
BreakIterator::createInstance [icu\source\common\brkiter.cpp]
BreakIterator::makeInstance [icu\source\common\brkiter.cpp]
BreakIterator::buildInstance [icu\source\common\brkiter.cpp]
ures_open [icu\source\common\uresbund.c]

Parital source code for ures_open:
---------------
U_CAPI UResourceBundle*  U_EXPORT2
ures_open(const char* path,
                    const char* localeID,
                    UErrorCode* status)
{
    char canonLocaleID[100];
    UResourceDataEntry *hasData = NULL;
    UResourceBundle *r;

    if(status == NULL || U_FAILURE(*status)) {
        return NULL;
    }

    /* first &quot;canonicalize&quot; the locale ID */
    uloc_getBaseName(localeID, canonLocaleID, sizeof(canonLocaleID), status); /// SEE BELOW ///
    if(U_FAILURE(*status) || *status == U_STRING_NOT_TERMINATED_WARNING) {
        *status = U_ILLEGAL_ARGUMENT_ERROR;
        return NULL;
    }
--------------
The max locale size for uloc_getBaseName is limited to 100 by the hardcoded &quot;canonLocaleID&quot; buffer. It might be wise to switch to a dynamically allocated buffer here, if possible?

Continuing down the code path:

uloc_getBaseName [icu\source\common\uloc.c]
_canonicalize [icu\source\common\uloc.c]

Parital source code for _canonicalize:
---------------
    return u_terminateChars(result, resultCapacity, len, err);
---------------
&quot;resultCapacity&quot; is the hardcoded 100 limit mentioned above. The locale we provided is 100 chars, so result if filled with 100 chars in the code before this return statement. It might be wise for the code to not fill the entire buffer, but leave some space for the terminate chars? Otherwise, all our efforts have been in vain. Continuing down the code path:

u_terminateChars [icu\source\common\ustring.c]
Source code for u_terminateChars:
----------------
U_CAPI int32_t U_EXPORT2
u_terminateChars(char *dest, int32_t destCapacity, int32_t length, UErrorCode *pErrorCode) {
    __TERMINATE_STRING(dest, destCapacity, length, pErrorCode);
    return length;
}
----------------
#define __TERMINATE_STRING(dest, destCapacity, length, pErrorCode)      \
    if(pErrorCode!=NULL &amp;&amp; U_SUCCESS(*pErrorCode)) {                    \
        /* not a public function, so no complete argument checking */   \
                                                                        \
        if(length&lt;0) {                                                  \
            /* assume that the caller handles this */                   \
        } else if(length&lt;destCapacity) {                                \
            /* NUL-terminate the string, the NUL fits */                \
            dest[length]=0;                                             \
            /* unset the not-terminated warning but leave all others */ \
            if(*pErrorCode==U_STRING_NOT_TERMINATED_WARNING) {          \
                *pErrorCode=U_ZERO_ERROR;                               \
            }                                                           \
        } else if(length==destCapacity) {                               \
            /* unable to NUL-terminate, but the string itself fit - set a warning code */ \
            *pErrorCode=U_STRING_NOT_TERMINATED_WARNING;                \
        } else /* length&gt;destCapacity */ {                              \
            /* even the string itself did not fit - set an error code */ \
            *pErrorCode=U_BUFFER_OVERFLOW_ERROR;                        \
        }                                                               \
    }
----------------
Since length is 100 and destCapacity is also 100, pErrorCode is set to U_STRING_NOT_TERMINATED_WARNING. Going back up the code path, from ures_open onwards, functions will return NULL leading to a NULL pointer in ubrk_setText.

ubrk_setText [icu\source\common\ubrk.cpp]
----------------
U_CAPI void U_EXPORT2
ubrk_setText(UBreakIterator* bi,
             const UChar*    text,
             int32_t         textLength,
             UErrorCode*     status)
{
    BreakIterator *brit = (BreakIterator *)bi;                  //// bi and brit are NULL
    UText  ut = UTEXT_INITIALIZER;
    utext_openUChars(&amp;ut, text, textLength, status);
    brit-&gt;setText(&amp;ut, *status);                                //// brit is NULL -&gt; crash
    // A stack allocated UText wrapping a UCHar * string
    //   can be dumped without explicitly closing it.
}

It might make sense to add a NULL check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464261</commentid>
    <comment_count>1</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2011-09-08 12:44:39 -0700</bug_when>
    <thetext>For builds that cannot patch ICU, we&apos;d better add a null check to TextBreakIteratorICU.cpp. 

What layout test should we add?  The attachment here would suffice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557435</commentid>
    <comment_count>2</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-15 11:52:45 -0800</bug_when>
    <thetext>I have  a simple patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562607</commentid>
    <comment_count>3</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-22 17:23:41 -0800</bug_when>
    <thetext>The ICU-side of change I made is not acceptable because it&apos;s not in line with ICU C API convention about &apos;NULL&apos; check.  See  http://bugs.icu-project.org/trac/ticket/9115

I&apos;ll upload a webkit change to better handle this situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563690</commentid>
    <comment_count>4</comment_count>
      <attachid>128604</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-23 16:51:54 -0800</bug_when>
    <thetext>Created attachment 128604
patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563704</commentid>
    <comment_count>5</comment_count>
      <attachid>128609</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-23 16:56:43 -0800</bug_when>
    <thetext>Created attachment 128609
patch with a missing file added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563709</commentid>
    <comment_count>6</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-23 17:04:17 -0800</bug_when>
    <thetext>This bug affects all webkit ports that rely on ICU including Safari on Mac. 

mitz, if you can review it, it&apos;ll be greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564123</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2012-02-24 02:14:04 -0800</bug_when>
    <thetext>Attachment 128609 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
LayoutTests/ChangeLog:4:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:4:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 6 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564736</commentid>
    <comment_count>8</comment_count>
      <attachid>128825</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-24 16:09:57 -0800</bug_when>
    <thetext>Created attachment 128825
patch (fix style nits)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565343</commentid>
    <comment_count>9</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-26 22:42:12 -0800</bug_when>
    <thetext>Darin, can you take a look in case mitz cannot?  Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565375</commentid>
    <comment_count>10</comment_count>
      <attachid>128825</attachid>
    <who name="">mitz</who>
    <bug_when>2012-02-26 23:26:37 -0800</bug_when>
    <thetext>Comment on attachment 128825
patch (fix style nits)

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

Looks good, r- because I think you’re not handling an error case that was previously handled.

&gt; Source/WebCore/platform/text/LineBreakIteratorPoolICU.h:64
&gt; +            bool isLocaleEmpty = locale.isEmpty();

I think the question phrase “isLocaleEmpty” isn’t a great name for this variable. You could call it “localeIsEmpty”.

&gt; Source/WebCore/platform/text/LineBreakIteratorPoolICU.h:67
&gt; +            // locale comes from a web page and it can be invalid leading ICU
&gt; +            // to fail, in which case we fall back to the default locale.

You’re missing a comma after “invalid”.

&gt; Source/WebCore/platform/text/LineBreakIteratorPoolICU.h:75
&gt; +                if (U_FAILURE(openStatus)) {
&gt; +                    LOG_ERROR(&quot;ubrk_open failed with status %d&quot;, openStatus);
&gt; +                    return 0;
&gt; +                }

This should go outside the “if (!isLocalEmpty &amp;&amp; U_FAILURE(openStatus))” block, otherwise we’re not handling the case of ubrk_open failing with the currentTextBreakLocaleID() when locale *is* empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566869</commentid>
    <comment_count>11</comment_count>
      <attachid>129290</attachid>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-02-28 10:54:48 -0800</bug_when>
    <thetext>Created attachment 129290
patch updated per mitz&apos;s comments

mitz, thanks for the review.  Can you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566904</commentid>
    <comment_count>12</comment_count>
      <attachid>129290</attachid>
    <who name="">mitz</who>
    <bug_when>2012-02-28 11:24:20 -0800</bug_when>
    <thetext>Comment on attachment 129290
patch updated per mitz&apos;s comments

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576235</commentid>
    <comment_count>13</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2012-03-12 10:23:49 -0700</bug_when>
    <thetext>Landed on Feb 28 as 

http://trac.webkit.org/changeset/109144</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>106412</attachid>
            <date>2011-09-06 06:40:06 -0700</date>
            <delta_ts>2011-09-06 06:40:06 -0700</delta_ts>
            <desc>Repro</desc>
            <filename>repro.html</filename>
            <type>text/html</type>
            <size>186</size>
            <attacher name="Berend-Jan Wever">skylined</attacher>
            
              <data encoding="base64">PHN0eWxlPgogICogewogICAgLXdlYmtpdC1sb2NhbGU6ICd4eC1feHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4JzsKICAgIC13ZWJraXQtdGV4dC1zZWN1cml0eTogZGlzYzsK
ICB9Cjwvc3R5bGU+Cnh4
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128604</attachid>
            <date>2012-02-23 16:51:54 -0800</date>
            <delta_ts>2012-02-23 16:56:43 -0800</delta_ts>
            <desc>patch for review</desc>
            <filename>67640.patch.1</filename>
            <type>text/plain</type>
            <size>4882</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIzICBKdW5nc2hp
ayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHBh
dGggdG8gTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVIHdoZW4gdGhlIGxvY2FsZQorCW5hbWUgZnJv
bSBhIHdlYiBwYWdlIGlzIGludmFsaWQgYW5kIElDVSBmYWlscyB0byBnZXQgYSBsaW5lIGJyZWFr
CisJaXRlcmF0b3IgaW5zdGFuY2UuIEFsc28gYWRkIGEgbnVsbCBjaGVjayB0byAKKwlUZXh0QnJl
YWtJdGVyYXRvcklDVTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY0MAorCisgICAgICAgIFRlc3Q6
IGZhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZUJyZWFr
SXRlcmF0b3JQb29sOjp0YWtlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjcXVpcmVMaW5lQnJlYWtJdGVyYXRv
cik6CisKIDIwMTItMDItMjMgIERhbmllbCBTaWV2ZXJzICA8c2lldmVyc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgdmlkZW8gc3RyZWFtIHRleHR1cmUgc3VwcG9ydApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJ
Q1UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVh
a0l0ZXJhdG9yUG9vbElDVS5oCShyZXZpc2lvbiAxMDg2NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02MSwxMCArNjEsMTggQEAgcHVibGljOgogCiAgICAgICAgIGlmICghaXRlcmF0b3IpIHsKICAg
ICAgICAgICAgIFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICAgICAg
ICAgIGl0ZXJhdG9yID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlLmlzRW1wdHkoKSA/IGN1
cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IDAsIDAsICZvcGVuU3RhdHVzKTsKLSAgICAgICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1
cykpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoInVicmtfb3BlbiBmYWlsZWQgd2l0aCBz
dGF0dXMgJWQiLCBvcGVuU3RhdHVzKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIGJvb2wgaXNMb2NhbGVFbXB0eSA9IGxvY2FsZS5pc0VtcHR5KCk7CisgICAgICAgICAg
ICBpdGVyYXRvciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGlzTG9jYWxlRW1wdHkgPyBjdXJyZW50
VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAw
LCAmb3BlblN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBw
YWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCBsZWFkaW5nIElDVQorICAgICAgICAgICAgLy8gdG8g
ZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgor
ICAgICAgICAgICAgaWYgKCFpc0xvY2FsZUVtcHR5ICYmIFVfRkFJTFVSRShvcGVuU3RhdHVzKSkg
eworICAgICAgICAgICAgICAgIG9wZW5TdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgICAg
ICAgICAgaXRlcmF0b3IgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBjdXJyZW50VGV4dEJyZWFrTG9j
YWxlSUQoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICAgICAg
TE9HX0VSUk9SKCJ1YnJrX29wZW4gZmFpbGVkIHdpdGggc3RhdHVzICVkIiwgb3BlblN0YXR1cyk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gMTA4Njc3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDggQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRC
cmVha0l0ZXJhdG9yKGNvbgogVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsZSkKIHsKICAgICBVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IgPSBMaW5lQnJlYWtJdGVy
YXRvclBvb2w6OnNoYXJlZFBvb2woKS50YWtlKGxvY2FsZSk7CisgICAgaWYgKCFpdGVyYXRvcikK
KyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBVRXJyb3JDb2RlIHNldFRleHRTdGF0dXMgPSBVX1pF
Uk9fRVJST1I7CiAgICAgdWJya19zZXRUZXh0KGl0ZXJhdG9yLCBzdHJpbmcsIGxlbmd0aCwgJnNl
dFRleHRTdGF0dXMpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4Njk4KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMjMgIEp1
bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgZmFsbGJh
Y2sgcGF0aCB0byBMaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1Ugd2hlbiB0aGUgbG9jYWxlCisJbmFt
ZSBmcm9tIGEgd2ViIHBhZ2UgaXMgaW52YWxpZCBhbmQgSUNVIGZhaWxzIHRvIGdldCBhIGxpbmUg
YnJlYWsKKwlpdGVyYXRvciBpbnN0YW5jZS4gQWxzbyBhZGQgYSBudWxsIGNoZWNrIHRvIAorCVRl
eHRCcmVha0l0ZXJhdG9ySUNVOjphY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxp
ZC1sb2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxp
ZC1sb2NhbGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMjMgIEFkcmllbm5lIFdhbGtlciAgPGVu
bmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LiBSZS1lbmFibGUgYSBoYW5kZnVsIG9mIHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2ludmFsaWQtbG9jYWxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvaW52YWxpZC1sb2NhbGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSBAQAorRGlkIG5vdCBjcmFzaCAtIFNVQ0NFU1MuIFNlZSBidWcgNjc2
NDAuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW52YWxpZC1sb2NhbGUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW52YWxpZC1sb2NhbGUuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIGxvYWRlZCgpIHsKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9pbnZhbGlkLWxvY2FsZS5o
dG1sIiBvbmxvYWQ9ImxvYWRlZCgpIj4KKzwvaWZyYW1lPkRpZCBub3QgY3Jhc2ggLSBTVUNDRVNT
LiBTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2
NDAiPmJ1ZyA2NzY0MDwvYT4uCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128609</attachid>
            <date>2012-02-23 16:56:43 -0800</date>
            <delta_ts>2012-02-24 16:09:57 -0800</delta_ts>
            <desc>patch with a missing file added</desc>
            <filename>67640.patch.1b</filename>
            <type>text/plain</type>
            <size>5470</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIzICBKdW5nc2hp
ayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHBh
dGggdG8gTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVIHdoZW4gdGhlIGxvY2FsZQorCW5hbWUgZnJv
bSBhIHdlYiBwYWdlIGlzIGludmFsaWQgYW5kIElDVSBmYWlscyB0byBnZXQgYSBsaW5lIGJyZWFr
CisJaXRlcmF0b3IgaW5zdGFuY2UuIEFsc28gYWRkIGEgbnVsbCBjaGVjayB0byAKKwlUZXh0QnJl
YWtJdGVyYXRvcklDVTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY0MAorCisgICAgICAgIFRlc3Q6
IGZhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAgICAoV2ViQ29yZTo6TGluZUJyZWFr
SXRlcmF0b3JQb29sOjp0YWtlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjcXVpcmVMaW5lQnJlYWtJdGVyYXRv
cik6CisKIDIwMTItMDItMjMgIERhbmllbCBTaWV2ZXJzICA8c2lldmVyc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgdmlkZW8gc3RyZWFtIHRleHR1cmUgc3VwcG9ydApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lQnJlYWtJdGVyYXRvclBvb2xJ
Q1UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVh
a0l0ZXJhdG9yUG9vbElDVS5oCShyZXZpc2lvbiAxMDg2NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02MSwxMCArNjEsMTggQEAgcHVibGljOgogCiAgICAgICAgIGlmICghaXRlcmF0b3IpIHsKICAg
ICAgICAgICAgIFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICAgICAg
ICAgIGl0ZXJhdG9yID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlLmlzRW1wdHkoKSA/IGN1
cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IDAsIDAsICZvcGVuU3RhdHVzKTsKLSAgICAgICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1
cykpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoInVicmtfb3BlbiBmYWlsZWQgd2l0aCBz
dGF0dXMgJWQiLCBvcGVuU3RhdHVzKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgIGJvb2wgaXNMb2NhbGVFbXB0eSA9IGxvY2FsZS5pc0VtcHR5KCk7CisgICAgICAgICAg
ICBpdGVyYXRvciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGlzTG9jYWxlRW1wdHkgPyBjdXJyZW50
VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAw
LCAmb3BlblN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBw
YWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCBsZWFkaW5nIElDVQorICAgICAgICAgICAgLy8gdG8g
ZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgor
ICAgICAgICAgICAgaWYgKCFpc0xvY2FsZUVtcHR5ICYmIFVfRkFJTFVSRShvcGVuU3RhdHVzKSkg
eworICAgICAgICAgICAgICAgIG9wZW5TdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgICAg
ICAgICAgaXRlcmF0b3IgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBjdXJyZW50VGV4dEJyZWFrTG9j
YWxlSUQoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICAgICAg
TE9HX0VSUk9SKCJ1YnJrX29wZW4gZmFpbGVkIHdpdGggc3RhdHVzICVkIiwgb3BlblN0YXR1cyk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gMTA4Njc3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDggQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRC
cmVha0l0ZXJhdG9yKGNvbgogVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsZSkKIHsKICAgICBVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IgPSBMaW5lQnJlYWtJdGVy
YXRvclBvb2w6OnNoYXJlZFBvb2woKS50YWtlKGxvY2FsZSk7CisgICAgaWYgKCFpdGVyYXRvcikK
KyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBVRXJyb3JDb2RlIHNldFRleHRTdGF0dXMgPSBVX1pF
Uk9fRVJST1I7CiAgICAgdWJya19zZXRUZXh0KGl0ZXJhdG9yLCBzdHJpbmcsIGxlbmd0aCwgJnNl
dFRleHRTdGF0dXMpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4Njk4KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDItMjMgIEp1
bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgZmFsbGJh
Y2sgcGF0aCB0byBMaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1Ugd2hlbiB0aGUgbG9jYWxlCisJbmFt
ZSBmcm9tIGEgd2ViIHBhZ2UgaXMgaW52YWxpZCBhbmQgSUNVIGZhaWxzIHRvIGdldCBhIGxpbmUg
YnJlYWsKKwlpdGVyYXRvciBpbnN0YW5jZS4gQWxzbyBhZGQgYSBudWxsIGNoZWNrIHRvIAorCVRl
eHRCcmVha0l0ZXJhdG9ySUNVOjphY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxp
ZC1sb2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxp
ZC1sb2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3Jlc291cmNlcy9pbnZh
bGlkLWxvY2FsZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yMyAgQWRyaWVubmUgV2Fsa2VyICA8
ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5p
bmcuIFJlLWVuYWJsZSBhIGhhbmRmdWwgb2YgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3RleHQvaW52YWxpZC1sb2NhbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW52YWxpZC1sb2NhbGUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxIEBACitEaWQgbm90IGNyYXNoIC0gU1VDQ0VTUy4gU2VlIGJ1ZyA2
NzY0MC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
K30KKworZnVuY3Rpb24gbG9hZGVkKCkgeworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ludmFsaWQtbG9jYWxl
Lmh0bWwiIG9ubG9hZD0ibG9hZGVkKCkiPgorPC9pZnJhbWU+RGlkIG5vdCBjcmFzaCAtIFNVQ0NF
U1MuIFNlZSA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NzY0MCI+YnVnIDY3NjQwPC9hPi4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvdGV4dC9yZXNvdXJjZXMvaW52YWxpZC1sb2NhbGUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ludmFsaWQtbG9jYWxlLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ludmFsaWQtbG9jYWxl
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorICA8aGVhZD4KKzxz
dHlsZT4KKyAgKiB7CisgICAgLXdlYmtpdC1sb2NhbGU6ICd4eC1feHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4JzsKKyAgICAtd2Via2l0LXRleHQtc2VjdXJpdHk6IGRpc2M7
CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK3h4Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128825</attachid>
            <date>2012-02-24 16:09:57 -0800</date>
            <delta_ts>2012-02-28 10:54:48 -0800</delta_ts>
            <desc>patch (fix style nits)</desc>
            <filename>67640.patch.1c</filename>
            <type>text/plain</type>
            <size>5512</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIzICBKdW5nc2hp
ayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHBh
dGggdG8gTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVIHdoZW4gdGhlIGxvY2FsZQorICAgICAgICBu
YW1lIGZyb20gYSB3ZWIgcGFnZSBpcyBpbnZhbGlkIGFuZCBJQ1UgZmFpbHMgdG8gZ2V0IGEgbGlu
ZSBicmVhaworICAgICAgICBpdGVyYXRvciBpbnN0YW5jZS4gQWxzbyBhZGQgYSBudWxsIGNoZWNr
IHRvIAorICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcklDVTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJh
dG9yLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NzY0MAorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGluZUJyZWFrSXRlcmF0b3JQb29sOjp0YWtlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFj
cXVpcmVMaW5lQnJlYWtJdGVyYXRvcik6CisKIDIwMTItMDItMjMgIERhbmllbCBTaWV2ZXJzICA8
c2lldmVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgdmlkZW8gc3Ry
ZWFtIHRleHR1cmUgc3VwcG9ydApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
aW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oCShyZXZpc2lvbiAxMDg2Nzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElD
VS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxMCArNjEsMTggQEAgcHVibGljOgogCiAgICAgICAg
IGlmICghaXRlcmF0b3IpIHsKICAgICAgICAgICAgIFVFcnJvckNvZGUgb3BlblN0YXR1cyA9IFVf
WkVST19FUlJPUjsKLSAgICAgICAgICAgIGl0ZXJhdG9yID0gdWJya19vcGVuKFVCUktfTElORSwg
bG9jYWxlLmlzRW1wdHkoKSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKLSAgICAgICAgICAgIGlm
IChVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoInVi
cmtfb3BlbiBmYWlsZWQgd2l0aCBzdGF0dXMgJWQiLCBvcGVuU3RhdHVzKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIGJvb2wgaXNMb2NhbGVFbXB0eSA9IGxvY2FsZS5p
c0VtcHR5KCk7CisgICAgICAgICAgICBpdGVyYXRvciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGlz
TG9jYWxlRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2Nh
bGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCBsZWFkaW5nIElD
VQorICAgICAgICAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8g
dGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAgICAgICAgaWYgKCFpc0xvY2FsZUVtcHR5ICYmIFVf
RkFJTFVSRShvcGVuU3RhdHVzKSkgeworICAgICAgICAgICAgICAgIG9wZW5TdGF0dXMgPSBVX1pF
Uk9fRVJST1I7CisgICAgICAgICAgICAgICAgaXRlcmF0b3IgPSB1YnJrX29wZW4oVUJSS19MSU5F
LCBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChVX0ZBSUxVUkUob3BlblN0YXR1cykpIHsK
KyAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJ1YnJrX29wZW4gZmFpbGVkIHdpdGggc3Rh
dHVzICVkIiwgb3BlblN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNw
cAkocmV2aXNpb24gMTA4Njc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDggQEAgVGV4
dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbgogVGV4dEJyZWFrSXRlcmF0b3Iq
IGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3Ro
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSkKIHsKICAgICBVQnJlYWtJdGVyYXRvciogaXRl
cmF0b3IgPSBMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS50YWtlKGxvY2FsZSk7
CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBVRXJyb3JDb2Rl
IHNldFRleHRTdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgdWJya19zZXRUZXh0KGl0ZXJhdG9y
LCBzdHJpbmcsIGxlbmd0aCwgJnNldFRleHRTdGF0dXMpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4
Njk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTItMDItMjMgIEp1bmdzaGlrIFNoaW4gIDxqc2hpbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgQWRkIGEgZmFsbGJhY2sgcGF0aCB0byBMaW5lQnJlYWtJdGVyYXRvclBvb2xJQ1Ug
d2hlbiB0aGUgbG9jYWxlCisgICAgICAgIG5hbWUgZnJvbSBhIHdlYiBwYWdlIGlzIGludmFsaWQg
YW5kIElDVSBmYWlscyB0byBnZXQgYSBsaW5lIGJyZWFrCisgICAgICAgIGl0ZXJhdG9yIGluc3Rh
bmNlLiBBbHNvIGFkZCBhIG51bGwgY2hlY2sgdG8gCisgICAgICAgIFRleHRCcmVha0l0ZXJhdG9y
SUNVOjphY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxpZC1sb2NhbGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW52YWxpZC1sb2NhbGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3Jlc291cmNlcy9pbnZhbGlkLWxvY2FsZS5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMi0yMyAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29t
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIFJlLWVuYWJsZSBh
IGhhbmRmdWwgb2YgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW52YWxpZC1s
b2NhbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC9p
bnZhbGlkLWxvY2FsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RleHQvaW52YWxpZC1sb2NhbGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxIEBACitEaWQgbm90IGNyYXNoIC0gU1VDQ0VTUy4gU2VlIGJ1ZyA2NzY0MC4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24g
bG9hZGVkKCkgeworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ludmFsaWQtbG9jYWxlLmh0bWwiIG9ubG9hZD0i
bG9hZGVkKCkiPgorPC9pZnJhbWU+RGlkIG5vdCBjcmFzaCAtIFNVQ0NFU1MuIFNlZSA8YSBocmVm
PSJodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY0MCI+YnVnIDY3NjQw
PC9hPi4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC9yZXNv
dXJjZXMvaW52YWxpZC1sb2NhbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3RleHQvcmVzb3VyY2VzL2ludmFsaWQtbG9jYWxlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ludmFsaWQtbG9jYWxlLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorICA8aGVhZD4KKzxzdHlsZT4KKyAgKiB7Cisg
ICAgLXdlYmtpdC1sb2NhbGU6ICd4eC1feHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4JzsKKyAgICAtd2Via2l0LXRleHQtc2VjdXJpdHk6IGRpc2M7CisgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KK3h4Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="131324"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129290</attachid>
            <date>2012-02-28 10:54:48 -0800</date>
            <delta_ts>2012-02-28 11:24:20 -0800</delta_ts>
            <desc>patch updated per mitz&apos;s comments</desc>
            <filename>67640.patch.1d</filename>
            <type>text/plain</type>
            <size>5324</size>
            <attacher name="Jungshik Shin">jshin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODY3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTIzICBKdW5nc2hp
ayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIGZhbGxiYWNrIHBh
dGggdG8gTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVIHdoZW4gdGhlIGxvY2FsZQorICAgICAgICBu
YW1lIGZyb20gYSB3ZWIgcGFnZSBpcyBpbnZhbGlkIGFuZCBJQ1UgZmFpbHMgdG8gZ2V0IGEgbGlu
ZSBicmVhaworICAgICAgICBpdGVyYXRvciBpbnN0YW5jZS4gQWxzbyBhZGQgYSBudWxsIGNoZWNr
IHRvIAorICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcklDVTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJh
dG9yLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NzY0MAorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGluZUJyZWFrSXRlcmF0b3JQb29sOjp0YWtlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFj
cXVpcmVMaW5lQnJlYWtJdGVyYXRvcik6CisKIDIwMTItMDItMjMgIERhbmllbCBTaWV2ZXJzICA8
c2lldmVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgdmlkZW8gc3Ry
ZWFtIHRleHR1cmUgc3VwcG9ydApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
aW5lQnJlYWtJdGVyYXRvclBvb2xJQ1UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oCShyZXZpc2lvbiAxMDg2Nzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElD
VS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSwxNSBAQCBwdWJsaWM6CiAKICAgICAgICAg
aWYgKCFpdGVyYXRvcikgewogICAgICAgICAgICAgVUVycm9yQ29kZSBvcGVuU3RhdHVzID0gVV9a
RVJPX0VSUk9SOwotICAgICAgICAgICAgaXRlcmF0b3IgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBs
b2NhbGUuaXNFbXB0eSgpID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOworICAgICAgICAgICAgYm9v
bCBsb2NhbGVJc0VtcHR5ID0gbG9jYWxlLmlzRW1wdHkoKTsKKyAgICAgICAgICAgIGl0ZXJhdG9y
ID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtM
b2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3Rh
dHVzKTsKKyAgICAgICAgICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2ViIHBhZ2UgYW5kIGl0
IGNhbiBiZSBpbnZhbGlkLCBsZWFkaW5nIElDVQorICAgICAgICAgICAgLy8gdG8gZmFpbCwgaW4g
d2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAgICAg
ICAgaWYgKCFsb2NhbGVJc0VtcHR5ICYmIFVfRkFJTFVSRShvcGVuU3RhdHVzKSkgeworICAgICAg
ICAgICAgICAgIG9wZW5TdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgICAgICAgICAgaXRl
cmF0b3IgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSwg
MCwgMCwgJm9wZW5TdGF0dXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKFVfRkFJTFVSRShvcGVuU3RhdHVzKSkgewogICAgICAgICAgICAgICAgIExP
R19FUlJPUigidWJya19vcGVuIGZhaWxlZCB3aXRoIHN0YXR1cyAlZCIsIG9wZW5TdGF0dXMpOwog
ICAgICAgICAgICAgICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDEwODY3
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSw4IEBAIFRleHRCcmVha0l0ZXJhdG9yKiB3
b3JkQnJlYWtJdGVyYXRvcihjb24KIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFr
SXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbGUpCiB7CiAgICAgVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yID0gTGluZUJyZWFr
SXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkudGFrZShsb2NhbGUpOworICAgIGlmICghaXRlcmF0
b3IpCisgICAgICAgIHJldHVybiAwOwogCiAgICAgVUVycm9yQ29kZSBzZXRUZXh0U3RhdHVzID0g
VV9aRVJPX0VSUk9SOwogICAgIHVicmtfc2V0VGV4dChpdGVyYXRvciwgc3RyaW5nLCBsZW5ndGgs
ICZzZXRUZXh0U3RhdHVzKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODY5OCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTIz
ICBKdW5nc2hpayBTaGluICA8anNoaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIGZh
bGxiYWNrIHBhdGggdG8gTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVIHdoZW4gdGhlIGxvY2FsZQor
ICAgICAgICBuYW1lIGZyb20gYSB3ZWIgcGFnZSBpcyBpbnZhbGlkIGFuZCBJQ1UgZmFpbHMgdG8g
Z2V0IGEgbGluZSBicmVhaworICAgICAgICBpdGVyYXRvciBpbnN0YW5jZS4gQWxzbyBhZGQgYSBu
dWxsIGNoZWNrIHRvIAorICAgICAgICBUZXh0QnJlYWtJdGVyYXRvcklDVTo6YWNxdWlyZUxpbmVC
cmVha0l0ZXJhdG9yLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvdGV4dC9yZXNvdXJjZXMvaW52YWxpZC1sb2NhbGUuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDItMjMgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hy
b21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBSZS1lbmFibGUgYSBoYW5kZnVsIG9mIHRlc3Rz
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludmFsaWQtbG9jYWxlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvaW52YWxpZC1sb2NhbGUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludmFsaWQt
bG9jYWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorRGlkIG5vdCBj
cmFzaCAtIFNVQ0NFU1MuIFNlZSBidWcgNjc2NDAuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaW52YWxpZC1sb2NhbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaW52YWxpZC1sb2NhbGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
dGV4dC9pbnZhbGlkLWxvY2FsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRlZCgpIHsKKyAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9
InJlc291cmNlcy9pbnZhbGlkLWxvY2FsZS5odG1sIiBvbmxvYWQ9ImxvYWRlZCgpIj4KKzwvaWZy
YW1lPkRpZCBub3QgY3Jhc2ggLSBTVUNDRVNTLiBTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2NDAiPmJ1ZyA2NzY0MDwvYT4uCis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvcmVzb3VyY2VzL2ludmFsaWQtbG9j
YWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Jlc291cmNlcy9p
bnZhbGlkLWxvY2FsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3Jlc291cmNlcy9pbnZhbGlkLWxvY2FsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEz
IEBACis8aHRtbD4KKyAgPGhlYWQ+Cis8c3R5bGU+CisgICogeworICAgIC13ZWJraXQtbG9jYWxl
OiAneHgtX3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4
eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCc7CisgICAgLXdl
YmtpdC10ZXh0LXNlY3VyaXR5OiBkaXNjOworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cit4eAorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="131937"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>