<?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>49714</bug_id>
          
          <creation_ts>2010-11-17 22:47:35 -0800</creation_ts>
          <short_desc>Yensign hack should work with Shift_JIS encoding</short_desc>
          <delta_ts>2010-12-09 00:34:46 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://crbug.com/38653</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="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310715</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-17 22:47:35 -0800</bug_when>
    <thetext>LayoutTests/editing/selection/find-yensign-backslash.html doesn&apos;t pass or does pass unexpectedly on non-Mac platforms because
 - Shift_JIS_X0213-2000 is available only with TextCodecMac, and TextCodecICU doesn&apos;t provide it.
 - TextEncoding::backslashAsCurrencySymbol() doesn&apos;t take care of a case that atomicCanonicalTextEncodingName() result is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310717</commentid>
    <comment_count>1</comment_count>
      <attachid>74205</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-17 22:52:33 -0800</bug_when>
    <thetext>Created attachment 74205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310896</commentid>
    <comment_count>2</comment_count>
      <attachid>74205</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-18 09:37:59 -0800</bug_when>
    <thetext>Comment on attachment 74205
Patch

Out of curiosity, does TextCodecMac have both Shift_JIS and Shift_JIS_X0213-2000?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310957</commentid>
    <comment_count>3</comment_count>
      <attachid>74205</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-18 10:53:02 -0800</bug_when>
    <thetext>Comment on attachment 74205
Patch

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

Note that there are other places where we only check for the longer name - e.g. TextEncoding::backslashAsCurrencySymbol().

&gt; Out of curiosity, does TextCodecMac have both Shift_JIS and Shift_JIS_X0213-2000?

Yes. The latter doesn&apos;t come from ICU, but from mac-encodings.txt.

I&apos;d really expect a reviewer to know or at least research the answer to such a question before giving r+.

&gt; WebCore/platform/text/TextEncoding.cpp:207
&gt; +    // Shift_JIS_X0213-2000 is not the same encoding as Shift_JIS on Mac. We
&gt; +    // need to check both of them.

This is a short line, it shouldn&apos;t be split into two.

&gt; WebCore/platform/text/TextEncoding.cpp:210
&gt; +    static const char* const shiftJis = atomicCanonicalTextEncodingName(&quot;Shift_JIS&quot;);
&gt; +    static const char* const shiftJis2000 = atomicCanonicalTextEncodingName(&quot;Shift_JIS_X0213-2000&quot;);
&gt; +    static const char* const eucJp = atomicCanonicalTextEncodingName(&quot;EUC-JP&quot;);

Coding style mistake - it&apos;s &quot;Shift_JIS&quot;, not &quot;Shift_Jis&quot;, so variables should be named accordingly. Ditto for EUC-JP.

&gt; WebCore/platform/text/TextEncoding.cpp:211
&gt; +    return ((shiftJis &amp;&amp; m_name == shiftJis) || (shiftJis2000 &amp;&amp; m_name == shiftJis2000) || (eucJp &amp;&amp; m_name == eucJp)) ? 0x00A5 : &apos;\\&apos;;

I&apos;m not really sure how performance critical this function is, but it&apos;s certainly invoked a lot, so I wouldn&apos;t be adding unnecessary null checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310982</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-18 11:13:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; WebCore/platform/text/TextEncoding.cpp:211
&gt; &gt; +    return ((shiftJis &amp;&amp; m_name == shiftJis) || (shiftJis2000 &amp;&amp; m_name == shiftJis2000) || (eucJp &amp;&amp; m_name == eucJp)) ? 0x00A5 : &apos;\\&apos;;
&gt; 
&gt; I&apos;m not really sure how performance critical this function is, but it&apos;s certainly invoked a lot, so I wouldn&apos;t be adding unnecessary null checks.

I think this is a correctness check.  If the m_name is NULL and shiftJis2000 is NULL, we&apos;ll return the wrong value.  I suppose you could reduce the number of comparisons by just NULL checking m_name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310985</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-18 11:19:45 -0800</bug_when>
    <thetext>It were null checks for Shift_JIS and EUC-JP that caught my eye - every reasonable back-end should have those.

Perhaps Shift_JIS_X0213-2000 could just go inside #if PLATFORM(MAC). My recollection is that it&apos;s there simply because it was supported in Safari prior to switching to ICU, and no one had the gut to remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311049</commentid>
    <comment_count>6</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-11-18 12:58:01 -0800</bug_when>
    <thetext>As this hack is for compatibilities with IE, I think we also want other encodings with which Japanese fonts will be used. Specifically, I&apos;d add ISO-2022-JP and ISO-2022-JP-2. Could you add them in this chance? I think we can use a HashSet like TextEncoding::isJapanese.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311298</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-18 22:41:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; I suppose you could reduce the number of comparisons by just NULL checking m_name.

It&apos;s a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311302</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-18 22:49:34 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; As this hack is for compatibilities with IE, I think we also want other encodings with which Japanese fonts will be used. Specifically, I&apos;d add ISO-2022-JP and ISO-2022-JP-2. Could you add them in this chance? I think we can use a HashSet like TextEncoding::isJapanese.

I tested some encoding names with IE.
IE showed yensign for 0x5c in the following encoding names:
 EUC-JP
 Shift_JIS, Windows-31J, x-sjis
 Shift_JIS_X0213-2000
 x-mac-japanese
 ISO-2022-JP

IE showed a backslash:
 cp932
 JIS_X0201
 JIS_X0208-1983
 JIS_X0208-1990
 JIS_X0212-1990
 JIS_C6226-1978
 ISO-2022-JP-1
 ISO-2022-JP-2
 ISO-2022-JP-3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311303</commentid>
    <comment_count>9</comment_count>
      <attachid>74356</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-18 23:15:19 -0800</bug_when>
    <thetext>Created attachment 74356
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311306</commentid>
    <comment_count>10</comment_count>
      <attachid>74357</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-18 23:36:36 -0800</bug_when>
    <thetext>Created attachment 74357
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311310</commentid>
    <comment_count>11</comment_count>
      <attachid>74357</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-18 23:42:17 -0800</bug_when>
    <thetext>Comment on attachment 74357
Patch 3

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

&gt; WebCore/platform/text/TextEncoding.cpp:204
&gt; +    DEFINE_STATIC_LOCAL(HashSet&lt;const char*&gt;, set, ());

Can this code be run from a secondary thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311311</commentid>
    <comment_count>12</comment_count>
      <attachid>74357</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-18 23:47:19 -0800</bug_when>
    <thetext>Comment on attachment 74357
Patch 3

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

&gt;&gt; WebCore/platform/text/TextEncoding.cpp:204
&gt;&gt; +    DEFINE_STATIC_LOCAL(HashSet&lt;const char*&gt;, set, ());
&gt; 
&gt; Can this code be run from a secondary thread?

This code is not MT-safe.  Is TextEncoding class used by multiple threads?
TextEncoding::isJapanese() has the same issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311314</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-19 00:11:23 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt;&gt; WebCore/platform/text/TextEncoding.cpp:204
&gt; &gt;&gt; +    DEFINE_STATIC_LOCAL(HashSet&lt;const char*&gt;, set, ());
&gt; &gt; 
&gt; &gt; Can this code be run from a secondary thread?
&gt; 
&gt; This code is not MT-safe.  Is TextEncoding class used by multiple threads?
&gt; TextEncoding::isJapanese() has the same issue.

If the main thread always creates a TextEncoding instance and calls TextEncoding::isJapanese() before a secondary thread is created, we have no thread-safety issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311319</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-19 00:40:52 -0800</bug_when>
    <thetext>I remember that TextEncodingRegistry had multi-threading issues, but don&apos;t remember which exactly. I&apos;m not sure about these particular TextCodec functions. At the very least, they need isMainThread() assertions.

One direction to try would be checking svn blame for encodingRegistryMutex to see why it was added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312247</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-22 01:36:03 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; One direction to try would be checking svn blame for encodingRegistryMutex to see why it was added.

I checked Bug 22341, and found no detail of the reason :-)

Anyway, my &quot;Patch 3&quot; is wrong. If no extended encodings are used before starting workers and then extended encodings are used in the workers, multiple threads can enter the HashSet initialization path.

I tried AtomicallyInitializedStatic(), but it produced a build error about global destructor.  So I decided to move these HashSets to TextEncodingRegistry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312249</commentid>
    <comment_count>16</comment_count>
      <attachid>74532</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-22 01:37:01 -0800</bug_when>
    <thetext>Created attachment 74532
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312252</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-22 01:42:47 -0800</bug_when>
    <thetext>&gt; I checked Bug 22341, and found no detail of the reason :-)

Well, it explains that we were getting there through KURL in workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312254</commentid>
    <comment_count>18</comment_count>
      <attachid>74532</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-22 01:49:23 -0800</bug_when>
    <thetext>Comment on attachment 74532
Patch 4

+        IE shows a yensign for 0x5c code point encoded in x-mac-japanese,
+        ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000, x-sjis, and
+        Windows-31J. We follow it.

This explanation is misleading. IE chooses a default font based on encoding, and some Windows fonts have a yen sign in place of backslash. We need much more complicated logic because fonts on other platforms are different, and don&apos;t have this quirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312269</commentid>
    <comment_count>19</comment_count>
      <attachid>74535</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-22 02:55:40 -0800</bug_when>
    <thetext>Created attachment 74535
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312270</commentid>
    <comment_count>20</comment_count>
      <attachid>74536</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-22 02:59:08 -0800</bug_when>
    <thetext>Created attachment 74536
Patch 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312271</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-22 02:59:45 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 74532 [details])
&gt; +        IE shows a yensign for 0x5c code point encoded in x-mac-japanese,
&gt; +        ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000, x-sjis, and
&gt; +        Windows-31J. We follow it.
&gt; 
&gt; This explanation is misleading. IE chooses a default font based on encoding, and some Windows fonts have a yen sign in place of backslash. We need much more complicated logic because fonts on other platforms are different, and don&apos;t have this quirk.

Ok, I have updated ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318049</commentid>
    <comment_count>22</comment_count>
      <attachid>74536</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-06 20:55:28 -0800</bug_when>
    <thetext>Comment on attachment 74536
Patch 6

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

&gt; WebCore/ChangeLog:10
&gt; +        IE chooses a font which shows a yensign for 0x5c code point for a page
&gt; +        encoded in x-mac-japanese, ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000,
&gt; +        x-sjis, and Windows-31J.

I thought IE didn&apos;t support Shift_JIS_X0213-2000.

&gt; WebCore/ChangeLog:16
&gt; +        Also, we move the HashSet initialization for isJapanese() and
&gt; +        backslashAsCurrencySymbol() to TextEncodingRegistry.cpp because of
&gt; +        ease of making them multi-thread safe.

This is not a great reason - TextEncodingRegistry does not and should not care about backslashes.

&gt; WebCore/platform/text/TextEncoding.cpp:166
&gt;  bool TextEncoding::isJapanese() const

This function is misplaced - all it is needed for is to make a decision on whether to invoke charset detection. So it should be in TextResourceDecoder (not something for this patch, of course).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319100</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 16:05:27 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 74536 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74536&amp;action=review
&gt; 
&gt; &gt; WebCore/ChangeLog:10
&gt; &gt; +        IE chooses a font which shows a yensign for 0x5c code point for a page
&gt; &gt; +        encoded in x-mac-japanese, ISO-2022-JP, EUC-JP, Shift_JIS, Shift_JIS_X0213-2000,
&gt; &gt; +        x-sjis, and Windows-31J.
&gt; 
&gt; I thought IE didn&apos;t support Shift_JIS_X0213-2000.

I was surprised when I saw IE switched the default font for it.
I guess IE uses prefix-matching for encoding names.

&gt; &gt; WebCore/ChangeLog:16
&gt; &gt; +        Also, we move the HashSet initialization for isJapanese() and
&gt; &gt; +        backslashAsCurrencySymbol() to TextEncodingRegistry.cpp because of
&gt; &gt; +        ease of making them multi-thread safe.
&gt; 
&gt; This is not a great reason - TextEncodingRegistry does not and should not care about backslashes.

However, the encoding names for backslashAsCurrencySymbol() depend on TextEncodingRegistry.  If one added new Japanese encoding to TextEncodingRegistry, he/she might need to add it to nonBackslashEncodings.

Anyway, I also feel the new code is not good.  I&apos;ll add a FIXME comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319133</commentid>
    <comment_count>24</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 16:55:18 -0800</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/73566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319309</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-09 00:34:46 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73566 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/css/input-search-padding.html
fast/css/text-input-with-webkit-border-radius.html
fast/forms/box-shadow-override.html
fast/forms/control-restrict-line-height.html
fast/forms/input-appearance-height.html
fast/forms/placeholder-pseudo-style.html
fast/forms/placeholder-set-value.html
fast/forms/search-cancel-button-style-sharing.html
fast/forms/search-placeholder-value-changed.html
fast/forms/search-rtl.html
fast/forms/search-styled.html
fast/forms/search-transformed.html
fast/forms/search-vertical-alignment.html
fast/forms/search-zoomed.html
fast/forms/searchfield-heights.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74205</attachid>
            <date>2010-11-17 22:52:33 -0800</date>
            <delta_ts>2010-11-18 23:15:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49714-20101118155231.patch</filename>
            <type>text/plain</type>
            <size>5807</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMjgzOWEwOGIxYTgwNWZlN2YwMjYwMmQxNzFmZTFhMWVmOTU2Zjk0Li41MzlmMzVk
YjE0MzVlNWY1ZmQ4MmFiNGVmMmMzMWUwNDU1MjRiNWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBlbmNvZGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzE0CisKKyAgICAgICAgVXNlIFNoaWZ0X0pJUyBp
bnN0ZWFkIG9mIFNoaWZ0X0pJU19YMDIxMy0yMDAwIGJlY2F1c2UgU2hpZnRfSklTIGVuY29kaW5n
CisgICAgICAgIGlzIGF2YWlsYWJsZSBvbiBtYW55IHBsYXRmb3Jtcy4KKworICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoK
KwogMjAxMC0xMS0xNyAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQWRkIHNvbWUgdGVzdF9leHBlY3RhdGlvbnMgZm9yIGZhaWxpbmcgdGVzdHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3Ns
YXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVu
c2lnbi1hbmQtYmFja3NsYXNoLWV4cGVjdGVkLnR4dAppbmRleCBiYWEwNDkzNWIyOTA0OTY4YzFm
OWQyN2IwYjc4ZjI4ZjgwZWI3ZGYwLi5hNzEyMjNkYmFlY2MzNTRhYzlkZjI1OWE1MDlkZTNjM2Zi
NzY4YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5kLXll
bnNpZ24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0CkBAIC00
LDggKzQsOCBAQCBSZXN1bHRzCiAKIFdlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIEVVQy1KUCBw
YWdlIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwogV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2gg
aW4gRVVDLUpQIHRleHQgY29udHJvbCBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKLVdlIGNh
biBmaW5kIGEgYmFja3NsYXNoIGluIFNoaWZ0X0pJU19YMDIxMy0yMDAwIHBhZ2UgYnkgZmluZGlu
ZyBhIHllbiBzaWduOiBQQVNTCi1XZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVNf
WDAyMTMtMjAwMCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCitXZSBj
YW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVMgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNp
Z246IFBBU1MKK1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIFNoaWZ0X0pJUyB0ZXh0IGNvbnRy
b2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBiYWNrc2xh
c2ggaW4gVVRGOCBwYWdlIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwogV2UgY2FuIE5PVCBm
aW5kIGEgYmFja3NsYXNoIGluIFVURjggdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2ln
bjogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5k
LXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbAppbmRleCAxYjc0OGExOWM1MjNmYWY5
OTEzMmI4MzBjMjAyZDI5MjY2MzVjMDFhLi5mMDUwODUxZGZlNDk4OWRjMDA0NmI3MGNlZWEwMDUz
NjdlODg0ZDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5k
LXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAg
ZnVuY3Rpb24gc2hvdWxkQmVUcnVlKGNvbmRpdGlvbiwgdGVzdE5hbWUpCiBmdW5jdGlvbiB0ZXN0
KCkKIHsKICAgICAvLyBXaXRoIHRoZXNlIGVuY29kaW5ncywgYmFja3NsYXNoZXMgd2lsbCBiZSB0
cmFuc2NvZGVkIGludG8geWVuIHNpZ25zLgotICAgIHZhciBlbmNvZGluZ3MgPSBbIkVVQy1KUCIs
ICJTaGlmdF9KSVNfWDAyMTMtMjAwMCJdOworICAgIHZhciBlbmNvZGluZ3MgPSBbIkVVQy1KUCIs
ICJTaGlmdF9KSVMiXTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVuY29kaW5ncy5sZW5ndGg7
IGkrKykgewogICAgICAgICB2YXIgZW5jb2RpbmcgPSBlbmNvZGluZ3NbaV07CiAgICAgICAgIHZh
ciBmcmFtZURvY3VtZW50ID0gZnJhbWVzW2ldLmRvY3VtZW50OwpAQCAtNDIsNyArNDIsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKIDxkaXY+XC1pbi1ib2R5PC9kaXY+CiA8aW5wdXQgdmFsdWU9XC1pbi1p
bnB1dD4KIDxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PUVVQy1KUCw8Ym9keT5c
LWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1dD48L2JvZHk+Ij48L2lmcmFtZT4KLTxpZnJh
bWUgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PVNoaWZ0X0pJU19YMDIxMy0yMDAwLDxib2R5
PlwtaW4tYm9keTxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PjwvYm9keT4iPjwvaWZyYW1lPgorPGlm
cmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9U2hpZnRfSklTLDxib2R5PlwtaW4tYm9k
eTxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PjwvYm9keT4iPjwvaWZyYW1lPgogCiA8cD5SZXN1bHRz
PC9wPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKaW5kZXggMmNjNzczYjc3ZTllMmM0Y2JjY2JmNmFhZGQzNjVjMzBkMzBmMjM5
Ny4uODdhZjA1YmY5YmE5ZGFiMTZhZDUzNjE4ZjdlYWU4YWFiN2I4NzBlOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
NjkwLDggKzY5MCw2IEBAIEJVRzI4OTE2IE1BQyA6IGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS14
bWwueGh0bWwgPSBURVhUCiAvLyBGbGFreQogQlVHMzE4MDMgTUFDIExJTlVYIDogZWRpdGluZy9p
bnNlcnRpbmcvMTI4ODIuaHRtbCA9IElNQUdFIFBBU1MKIAotQlVHMzg2NTMgTUFDIDogZWRpdGlu
Zy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbCA9IFRFWFQKLQogLy8g
TmVlZCB0byBkdW1wIGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xp
Y2sodHJ1ZSkuCiBCVUdXSzM5MTA1IDogZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3Vn
Z2VzdGlvbnMuaHRtbCA9IFRFWFQKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ODc1NmU4ZDEyZmJiYWJjZTJiNWI1MWJiY2Y0OTc0NjJm
OTFlMjk5Li43NWM3MjdiMGZiNTFkNjU4MDdmYjdlYmE4YmYzYzE2ZWY3NzBiNjZhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTExLTE3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBZZW5zaWduIGhh
Y2sgc2hvdWxkIHdvcmsgd2l0aCBTaGlmdF9KSVMgZW5jb2RpbmcuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTcxNAorCisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEVuY29kaW5n
OjpiYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKToKKyAgICAgICAgIC0gQWRkIFNoaWZ0X0pJUyBl
bmNvZGluZyBjaGVjayB0b28uCisgICAgICAgICAtIEFkZCBOVUxMIGNoZWNrcy4KKwogMjAxMC0x
MS0xNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcyMjI4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcAppbmRleCA1OGU2OTFmMGQ1M2NjNzdiN2Q4M2U2MTFkZDBkMjgzMGM3Mjlh
ZWI1Li5jMjFkMjc2YTNjNTQ2MDIyYThmZDQ5NWQwNjVmYzg5NmI0MWUwODkxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcApAQCAtMjAzLDkgKzIwMywxMiBAQCBVQ2hhciBU
ZXh0RW5jb2Rpbmc6OmJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSBjb25zdAogCiAgICAgLy8g
VGhlIHRleHQgZW5jb2RpbmdzIGJlbG93IHRyZWF0IGJhY2tzbGFzaCBhcyBhIGN1cnJlbmN5IHN5
bWJvbC4KICAgICAvLyBTZWUgaHR0cDovL2Jsb2dzLm1zZG4uY29tL21pY2hrYXAvYXJjaGl2ZS8y
MDA1LzA5LzE3LzQ2OTk0MS5hc3B4IGZvciBtb3JlIGluZm9ybWF0aW9uLgotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBjb25zdCBhID0gYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgiU2hp
ZnRfSklTX1gwMjEzLTIwMDAiKTsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgYiA9IGF0
b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWUoIkVVQy1KUCIpOwotICAgIHJldHVybiAobV9u
YW1lID09IGEgfHwgbV9uYW1lID09IGIpID8gMHgwMEE1IDogJ1xcJzsKKyAgICAvLyBTaGlmdF9K
SVNfWDAyMTMtMjAwMCBpcyBub3QgdGhlIHNhbWUgZW5jb2RpbmcgYXMgU2hpZnRfSklTIG9uIE1h
Yy4gV2UKKyAgICAvLyBuZWVkIHRvIGNoZWNrIGJvdGggb2YgdGhlbS4KKyAgICBzdGF0aWMgY29u
c3QgY2hhciogY29uc3Qgc2hpZnRKaXMgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1l
KCJTaGlmdF9KSVMiKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgc2hpZnRKaXMyMDAw
ID0gYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgiU2hpZnRfSklTX1gwMjEzLTIwMDAi
KTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXVjSnAgPSBhdG9taWNDYW5vbmljYWxU
ZXh0RW5jb2RpbmdOYW1lKCJFVUMtSlAiKTsKKyAgICByZXR1cm4gKChzaGlmdEppcyAmJiBtX25h
bWUgPT0gc2hpZnRKaXMpIHx8IChzaGlmdEppczIwMDAgJiYgbV9uYW1lID09IHNoaWZ0SmlzMjAw
MCkgfHwgKGV1Y0pwICYmIG1fbmFtZSA9PSBldWNKcCkpID8gMHgwMEE1IDogJ1xcJzsKIH0KIAog
Ym9vbCBUZXh0RW5jb2Rpbmc6OmlzTm9uQnl0ZUJhc2VkRW5jb2RpbmcoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74356</attachid>
            <date>2010-11-18 23:15:19 -0800</date>
            <delta_ts>2010-11-18 23:20:34 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-49714-20101119161517.patch</filename>
            <type>text/plain</type>
            <size>7119</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOGE1YTk0NGI0OTE5MTBmNTA0MmFlMGQzYWVlOTRhOTUyYmUxOWI1Li5lYmJjZWJh
NjE3ODVlOTA1ZjZhYTY2NGY4MTZkMWVlN2E3MmI1YzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAg
ICBVc2UgU2hpZnRfSklTIGluc3RlYWQgb2YgU2hpZnRfSklTX1gwMjEzLTIwMDAgYmVjYXVzZSBT
aGlmdF9KSVNfWDAyMTMtMjAwMAorICAgICAgICBlbmNvZGluZyBpcyBhdmFpbGFibGUgb25seSBv
biBNYWMuCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIElTTy0yMDIyLUpQLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDEwLTExLTE4ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBHZW9mZiBHYXJlbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLWV4cGVjdGVkLnR4dAppbmRleCBiYWEwNDkzNWIyOTA0OTY4YzFmOWQy
N2IwYjc4ZjI4ZjgwZWI3ZGYwLi42ZjBlZTkzMGI1YjI3MDBkY2FjNDNhY2M4NGRkZjJhZDBjMjY4
NTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNp
Z24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDEx
ICsxLDEzIEBACiBcLWluLWJvZHkKLSAgCisgICAKIFJlc3VsdHMKIAogV2UgY2FuIGZpbmQgYSBi
YWNrc2xhc2ggaW4gRVVDLUpQIHBhZ2UgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBj
YW4gZmluZCBhIGJhY2tzbGFzaCBpbiBFVUMtSlAgdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5
ZW4gc2lnbjogUEFTUwotV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4gU2hpZnRfSklTX1gwMjEz
LTIwMDAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKLVdlIGNhbiBmaW5kIGEgYmFj
a3NsYXNoIGluIFNoaWZ0X0pJU19YMDIxMy0yMDAwIHRleHQgY29udHJvbCBieSBmaW5kaW5nIGEg
eWVuIHNpZ246IFBBU1MKK1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIFNoaWZ0X0pJUyBwYWdl
IGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUworV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4g
U2hpZnRfSklTIHRleHQgY29udHJvbCBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKK1dlIGNh
biBmaW5kIGEgYmFja3NsYXNoIGluIElTTy0yMDIyLUpQIHBhZ2UgYnkgZmluZGluZyBhIHllbiBz
aWduOiBQQVNTCitXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBJU08tMjAyMi1KUCB0ZXh0IGNv
bnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBiYWNr
c2xhc2ggaW4gVVRGOCBwYWdlIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwogV2UgY2FuIE5P
VCBmaW5kIGEgYmFja3NsYXNoIGluIFVURjggdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4g
c2lnbjogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbAppbmRleCAxYjc0OGExOWM1MjNm
YWY5OTEzMmI4MzBjMjAyZDI5MjY2MzVjMDFhLi4yMTZhM2I2YmVlMGUxN2EwMmRhYmJjMTM0M2Ux
MWJmYTliM2MzN2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwKQEAgLTEsNiArMSw1IEBA
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgotCiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KIDxzY3JpcHQ+CkBAIC0yMiw3ICsyMSw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlVHJ1ZShjb25k
aXRpb24sIHRlc3ROYW1lKQogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgLy8gV2l0aCB0aGVzZSBl
bmNvZGluZ3MsIGJhY2tzbGFzaGVzIHdpbGwgYmUgdHJhbnNjb2RlZCBpbnRvIHllbiBzaWducy4K
LSAgICB2YXIgZW5jb2RpbmdzID0gWyJFVUMtSlAiLCAiU2hpZnRfSklTX1gwMjEzLTIwMDAiXTsK
KyAgICB2YXIgZW5jb2RpbmdzID0gWyJFVUMtSlAiLCAiU2hpZnRfSklTIiwgIklTTy0yMDIyLUpQ
Il07CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmNvZGluZ3MubGVuZ3RoOyBpKyspIHsKICAg
ICAgICAgdmFyIGVuY29kaW5nID0gZW5jb2RpbmdzW2ldOwogICAgICAgICB2YXIgZnJhbWVEb2N1
bWVudCA9IGZyYW1lc1tpXS5kb2N1bWVudDsKQEAgLTM2LDE5ICszNSwxNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci0KIDxib2R5IG9ubG9hZD0idGVzdCgpIj4KIAog
PGRpdj5cLWluLWJvZHk8L2Rpdj4KIDxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PgogPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9RVVDLUpQLDxib2R5PlwtaW4tYm9keTxpbnB1dCB2
YWx1ZT1cLWluLWlucHV0PjwvYm9keT4iPjwvaWZyYW1lPgotPGlmcmFtZSBzcmM9ImRhdGE6dGV4
dC9odG1sO2NoYXJzZXQ9U2hpZnRfSklTX1gwMjEzLTIwMDAsPGJvZHk+XC1pbi1ib2R5PGlucHV0
IHZhbHVlPVwtaW4taW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iZGF0YTp0
ZXh0L2h0bWw7Y2hhcnNldD1TaGlmdF9KSVMsPGJvZHk+XC1pbi1ib2R5PGlucHV0IHZhbHVlPVwt
aW4taW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWw7
Y2hhcnNldD1JU08tMjAyMi1KUCw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1
dD48L2JvZHk+Ij48L2lmcmFtZT4KIAogPHA+UmVzdWx0czwvcD4KIAogPHAgaWQ9InJlc3VsdHMi
PgogPC9wPgotCiA8L2JvZHk+Ci0KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA4ZTExY2YwMTMyZTQ3M2Vi
YjNhMzBlMmZjZGVhMjJmNDFmNGJjMzQ4Li5hZjA5YjM5YjRmMTUyMGFkODE2OTQxY2Q0ZWVhMDNj
YTA0ZTRjMjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC02OTAsNyArNjkwLDkgQEAgQlVHMjg5MTYgTUFDIDogZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXhtbC54aHRtbCA9IFRFWFQKIC8vIEZsYWt5CiBCVUczMTgw
MyBNQUMgTElOVVggOiBlZGl0aW5nL2luc2VydGluZy8xMjg4Mi5odG1sID0gSU1BR0UgUEFTUwog
Ci1CVUczODY1MyBNQUMgOiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNpZ24tYW5kLWJhY2tz
bGFzaC5odG1sID0gVEVYVAorLy8gTmVlZCB0byBkdW1wIGNvbnRleHQgbWVudSBpdGVtcyBvbiBl
dmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSkuCitCVUdXSzM5MTA1IDogZWRpdGluZy9zcGVs
bGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCA9IFRFWFQKKwogQlVHV0s0NTQzOCA6
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbCA9
IFRFWFQKIAogLy8gU2VsZWN0aW9uIGlzIHdyb25nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjVlNzU2OTM0YTkyZGRjOWEyZDdhNTlh
NjZhNGRiMTViZDVhODVlLi5iMmFkYTA0OGU5N2Y3NmU3Yjc4ZjMzMzNlYmRmYzVlZmM5NTVmMmNl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDEwLTExLTE3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBZ
ZW5zaWduIGhhY2sgc2hvdWxkIHdvcmsgd2l0aCBTaGlmdF9KSVMgYW5kIElTTy0yMDIyLUpQIGVu
Y29kaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NzE0CisKKyAgICAgICAgSUUgc2hvd3MgYSB5ZW5zaWduIGZvciAweDVjIGNvZGUgcG9pbnQg
ZW5jb2RlZCBpbiB4LW1hYy1qYXBhbmVzZSwKKyAgICAgICAgSVNPLTIwMjItSlAsIEVVQy1KUCwg
U2hpZnRfSklTLCBTaGlmdF9KSVNfWDAyMTMtMjAwMCwgeC1zamlzLCBhbmQKKyAgICAgICAgV2lu
ZG93cy0zMUouIFdlIGZvbGxvdyBpdC4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6YmFja3NsYXNoQXND
dXJyZW5jeVN5bWJvbCk6CisgICAgICAgICAtIEFkZCB4LW1hYy1qYXBhbmVzZSwgSVNPLTIwMjIt
SlAsIGFuZCBTaGlmdF9KSVMgZW5jb2RpbmdzIGZvciB0YXJnZXQKKyAgICAgICAgICAgZW5jb2Rp
bmdzLCBhbmQgdXNlcyBIYXNoU2V0IHRvIGNoZWNrLgorICAgICAgICAgICBOb3RlIHRoYXQgd2Ug
YXNzdW1lIHgtc2ppcyBhbmQgV2luZG93cy0zMUogYXJlIGFsaWFzIG9mIFNoaWZ0X0pJUy4KKyAg
ICAgICAgIC0gQWRkIE5VTEwgY2hlY2tzLgorCiAyMDEwLTExLTE4ICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCA1OGU2OTFmMGQ1M2NjNzdiN2Q4
M2U2MTFkZDBkMjgzMGM3MjlhZWI1Li41ZGIzYThjNWEwMzg5YWY0MzYxODk4ZDExN2I0MjllYjJm
N2ZkMmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcApAQCAtMTk4LDE0
ICsxOTgsMjEgQEAgYm9vbCBUZXh0RW5jb2Rpbmc6OmlzSmFwYW5lc2UoKSBjb25zdAogCiBVQ2hh
ciBUZXh0RW5jb2Rpbmc6OmJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSBjb25zdAogewotICAg
IGlmIChub0V4dGVuZGVkVGV4dEVuY29kaW5nTmFtZVVzZWQoKSkKKyAgICBpZiAobm9FeHRlbmRl
ZFRleHRFbmNvZGluZ05hbWVVc2VkKCkgfHwgIW1fbmFtZSkKICAgICAgICAgcmV0dXJuICdcXCc7
CiAKLSAgICAvLyBUaGUgdGV4dCBlbmNvZGluZ3MgYmVsb3cgdHJlYXQgYmFja3NsYXNoIGFzIGEg
Y3VycmVuY3kgc3ltYm9sLgotICAgIC8vIFNlZSBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGth
cC9hcmNoaXZlLzIwMDUvMDkvMTcvNDY5OTQxLmFzcHggZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGEgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2Rp
bmdOYW1lKCJTaGlmdF9KSVNfWDAyMTMtMjAwMCIpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBiID0gYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgiRVVDLUpQIik7Ci0gICAg
cmV0dXJuIChtX25hbWUgPT0gYSB8fCBtX25hbWUgPT0gYikgPyAweDAwQTUgOiAnXFwnOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxjb25zdCBjaGFyKj4sIHNldCwgKCkpOworICAg
IGlmIChzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIFRoZSB0ZXh0IGVuY29kaW5ncyBiZWxv
dyB0cmVhdCBiYWNrc2xhc2ggYXMgYSBjdXJyZW5jeSBzeW1ib2wgZm9yIElFIGNvbXBhdGliaWxp
dHkuCisgICAgICAgIC8vIFNlZSBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGthcC9hcmNoaXZl
LzIwMDUvMDkvMTcvNDY5OTQxLmFzcHggZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIGFk
ZEVuY29kaW5nTmFtZShzZXQsICJ4LW1hYy1qYXBhbmVzZSIpOworICAgICAgICBhZGRFbmNvZGlu
Z05hbWUoc2V0LCAiSVNPLTIwMjItSlAiKTsKKyAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwg
IkVVQy1KUCIpOworICAgICAgICAvLyBTaGlmdF9KSVNfWDAyMTMtMjAwMCBpcyBub3QgdGhlIHNh
bWUgZW5jb2RpbmcgYXMgU2hpZnRfSklTIG9uIE1hYy4gV2UgbmVlZCB0byByZWdpc3RlciBib3Ro
IG9mIHRoZW0uCisgICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJTaGlmdF9KSVMiKTsKKyAg
ICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIlNoaWZ0X0pJU19YMDIxMy0yMDAwIik7CisgICAg
fQorICAgIHJldHVybiBzZXQuY29udGFpbnMobV9uYW1lKSA/IDB4MDBBNSA6ICdcXCc7CiB9CiAK
IGJvb2wgVGV4dEVuY29kaW5nOjppc05vbkJ5dGVCYXNlZEVuY29kaW5nKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74357</attachid>
            <date>2010-11-18 23:36:36 -0800</date>
            <delta_ts>2010-11-22 01:36:55 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-49714-20101119163634.patch</filename>
            <type>text/plain</type>
            <size>6978</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOGE1YTk0NGI0OTE5MTBmNTA0MmFlMGQzYWVlOTRhOTUyYmUxOWI1Li5lYmJjZWJh
NjE3ODVlOTA1ZjZhYTY2NGY4MTZkMWVlN2E3MmI1YzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAg
ICBVc2UgU2hpZnRfSklTIGluc3RlYWQgb2YgU2hpZnRfSklTX1gwMjEzLTIwMDAgYmVjYXVzZSBT
aGlmdF9KSVNfWDAyMTMtMjAwMAorICAgICAgICBlbmNvZGluZyBpcyBhdmFpbGFibGUgb25seSBv
biBNYWMuCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIElTTy0yMDIyLUpQLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDEwLTExLTE4ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBHZW9mZiBHYXJlbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLWV4cGVjdGVkLnR4dAppbmRleCBiYWEwNDkzNWIyOTA0OTY4YzFmOWQy
N2IwYjc4ZjI4ZjgwZWI3ZGYwLi42ZjBlZTkzMGI1YjI3MDBkY2FjNDNhY2M4NGRkZjJhZDBjMjY4
NTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNp
Z24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDEx
ICsxLDEzIEBACiBcLWluLWJvZHkKLSAgCisgICAKIFJlc3VsdHMKIAogV2UgY2FuIGZpbmQgYSBi
YWNrc2xhc2ggaW4gRVVDLUpQIHBhZ2UgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBj
YW4gZmluZCBhIGJhY2tzbGFzaCBpbiBFVUMtSlAgdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5
ZW4gc2lnbjogUEFTUwotV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4gU2hpZnRfSklTX1gwMjEz
LTIwMDAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKLVdlIGNhbiBmaW5kIGEgYmFj
a3NsYXNoIGluIFNoaWZ0X0pJU19YMDIxMy0yMDAwIHRleHQgY29udHJvbCBieSBmaW5kaW5nIGEg
eWVuIHNpZ246IFBBU1MKK1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIFNoaWZ0X0pJUyBwYWdl
IGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUworV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4g
U2hpZnRfSklTIHRleHQgY29udHJvbCBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKK1dlIGNh
biBmaW5kIGEgYmFja3NsYXNoIGluIElTTy0yMDIyLUpQIHBhZ2UgYnkgZmluZGluZyBhIHllbiBz
aWduOiBQQVNTCitXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBJU08tMjAyMi1KUCB0ZXh0IGNv
bnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBiYWNr
c2xhc2ggaW4gVVRGOCBwYWdlIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwogV2UgY2FuIE5P
VCBmaW5kIGEgYmFja3NsYXNoIGluIFVURjggdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4g
c2lnbjogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbAppbmRleCAxYjc0OGExOWM1MjNm
YWY5OTEzMmI4MzBjMjAyZDI5MjY2MzVjMDFhLi4yMTZhM2I2YmVlMGUxN2EwMmRhYmJjMTM0M2Ux
MWJmYTliM2MzN2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwKQEAgLTEsNiArMSw1IEBA
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgotCiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9IlVURi04
Ij4KIDxzY3JpcHQ+CkBAIC0yMiw3ICsyMSw3IEBAIGZ1bmN0aW9uIHNob3VsZEJlVHJ1ZShjb25k
aXRpb24sIHRlc3ROYW1lKQogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgLy8gV2l0aCB0aGVzZSBl
bmNvZGluZ3MsIGJhY2tzbGFzaGVzIHdpbGwgYmUgdHJhbnNjb2RlZCBpbnRvIHllbiBzaWducy4K
LSAgICB2YXIgZW5jb2RpbmdzID0gWyJFVUMtSlAiLCAiU2hpZnRfSklTX1gwMjEzLTIwMDAiXTsK
KyAgICB2YXIgZW5jb2RpbmdzID0gWyJFVUMtSlAiLCAiU2hpZnRfSklTIiwgIklTTy0yMDIyLUpQ
Il07CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmNvZGluZ3MubGVuZ3RoOyBpKyspIHsKICAg
ICAgICAgdmFyIGVuY29kaW5nID0gZW5jb2RpbmdzW2ldOwogICAgICAgICB2YXIgZnJhbWVEb2N1
bWVudCA9IGZyYW1lc1tpXS5kb2N1bWVudDsKQEAgLTM2LDE5ICszNSwxNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci0KIDxib2R5IG9ubG9hZD0idGVzdCgpIj4KIAog
PGRpdj5cLWluLWJvZHk8L2Rpdj4KIDxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PgogPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9RVVDLUpQLDxib2R5PlwtaW4tYm9keTxpbnB1dCB2
YWx1ZT1cLWluLWlucHV0PjwvYm9keT4iPjwvaWZyYW1lPgotPGlmcmFtZSBzcmM9ImRhdGE6dGV4
dC9odG1sO2NoYXJzZXQ9U2hpZnRfSklTX1gwMjEzLTIwMDAsPGJvZHk+XC1pbi1ib2R5PGlucHV0
IHZhbHVlPVwtaW4taW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iZGF0YTp0
ZXh0L2h0bWw7Y2hhcnNldD1TaGlmdF9KSVMsPGJvZHk+XC1pbi1ib2R5PGlucHV0IHZhbHVlPVwt
aW4taW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Cis8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWw7
Y2hhcnNldD1JU08tMjAyMi1KUCw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1
dD48L2JvZHk+Ij48L2lmcmFtZT4KIAogPHA+UmVzdWx0czwvcD4KIAogPHAgaWQ9InJlc3VsdHMi
PgogPC9wPgotCiA8L2JvZHk+Ci0KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA4ZTExY2YwMTMyZTQ3M2Vi
YjNhMzBlMmZjZGVhMjJmNDFmNGJjMzQ4Li45MmJmM2I1ZjQzZTM5MmQ2M2E0YzQ1YzQ0MzFmZjQ4
OWZjZWMzZGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC02OTAsNyArNjkwLDYgQEAgQlVHMjg5MTYgTUFDIDogZWRp
dGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXhtbC54aHRtbCA9IFRFWFQKIC8vIEZsYWt5CiBCVUczMTgw
MyBNQUMgTElOVVggOiBlZGl0aW5nL2luc2VydGluZy8xMjg4Mi5odG1sID0gSU1BR0UgUEFTUwog
Ci1CVUczODY1MyBNQUMgOiBlZGl0aW5nL3NlbGVjdGlvbi9maW5kLXllbnNpZ24tYW5kLWJhY2tz
bGFzaC5odG1sID0gVEVYVAogQlVHV0s0NTQzOCA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
YmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbCA9IFRFWFQKIAogLy8gU2VsZWN0aW9uIGlzIHdy
b25nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMjVlNzU2OTM0YTkyZGRjOWEyZDdhNTlhNjZhNGRiMTViZDVhODVlLi5iMmFkYTA0OGU5
N2Y3NmU3Yjc4ZjMzMzNlYmRmYzVlZmM5NTVmMmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTExLTE3
ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBZZW5zaWduIGhhY2sgc2hvdWxkIHdvcmsgd2l0
aCBTaGlmdF9KSVMgYW5kIElTTy0yMDIyLUpQIGVuY29kaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzE0CisKKyAgICAgICAgSUUgc2hvd3Mg
YSB5ZW5zaWduIGZvciAweDVjIGNvZGUgcG9pbnQgZW5jb2RlZCBpbiB4LW1hYy1qYXBhbmVzZSwK
KyAgICAgICAgSVNPLTIwMjItSlAsIEVVQy1KUCwgU2hpZnRfSklTLCBTaGlmdF9KSVNfWDAyMTMt
MjAwMCwgeC1zamlzLCBhbmQKKyAgICAgICAgV2luZG93cy0zMUouIFdlIGZvbGxvdyBpdC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRFbmNvZGluZzo6YmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCk6CisgICAgICAgICAt
IEFkZCB4LW1hYy1qYXBhbmVzZSwgSVNPLTIwMjItSlAsIGFuZCBTaGlmdF9KSVMgZW5jb2Rpbmdz
IGZvciB0YXJnZXQKKyAgICAgICAgICAgZW5jb2RpbmdzLCBhbmQgdXNlcyBIYXNoU2V0IHRvIGNo
ZWNrLgorICAgICAgICAgICBOb3RlIHRoYXQgd2UgYXNzdW1lIHgtc2ppcyBhbmQgV2luZG93cy0z
MUogYXJlIGFsaWFzIG9mIFNoaWZ0X0pJUy4KKyAgICAgICAgIC0gQWRkIE5VTEwgY2hlY2tzLgor
CiAyMDEwLTExLTE4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
LmNwcAppbmRleCA1OGU2OTFmMGQ1M2NjNzdiN2Q4M2U2MTFkZDBkMjgzMGM3MjlhZWI1Li41ZGIz
YThjNWEwMzg5YWY0MzYxODk4ZDExN2I0MjllYjJmN2ZkMmZjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcApAQCAtMTk4LDE0ICsxOTgsMjEgQEAgYm9vbCBUZXh0RW5jb2Rp
bmc6OmlzSmFwYW5lc2UoKSBjb25zdAogCiBVQ2hhciBUZXh0RW5jb2Rpbmc6OmJhY2tzbGFzaEFz
Q3VycmVuY3lTeW1ib2woKSBjb25zdAogewotICAgIGlmIChub0V4dGVuZGVkVGV4dEVuY29kaW5n
TmFtZVVzZWQoKSkKKyAgICBpZiAobm9FeHRlbmRlZFRleHRFbmNvZGluZ05hbWVVc2VkKCkgfHwg
IW1fbmFtZSkKICAgICAgICAgcmV0dXJuICdcXCc7CiAKLSAgICAvLyBUaGUgdGV4dCBlbmNvZGlu
Z3MgYmVsb3cgdHJlYXQgYmFja3NsYXNoIGFzIGEgY3VycmVuY3kgc3ltYm9sLgotICAgIC8vIFNl
ZSBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGthcC9hcmNoaXZlLzIwMDUvMDkvMTcvNDY5OTQx
LmFzcHggZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGEgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKCJTaGlmdF9KSVNfWDAyMTMtMjAw
MCIpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBiID0gYXRvbWljQ2Fub25pY2FsVGV4
dEVuY29kaW5nTmFtZSgiRVVDLUpQIik7Ci0gICAgcmV0dXJuIChtX25hbWUgPT0gYSB8fCBtX25h
bWUgPT0gYikgPyAweDAwQTUgOiAnXFwnOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxjb25zdCBjaGFyKj4sIHNldCwgKCkpOworICAgIGlmIChzZXQuaXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIFRoZSB0ZXh0IGVuY29kaW5ncyBiZWxvdyB0cmVhdCBiYWNrc2xhc2ggYXMgYSBjdXJy
ZW5jeSBzeW1ib2wgZm9yIElFIGNvbXBhdGliaWxpdHkuCisgICAgICAgIC8vIFNlZSBodHRwOi8v
YmxvZ3MubXNkbi5jb20vbWljaGthcC9hcmNoaXZlLzIwMDUvMDkvMTcvNDY5OTQxLmFzcHggZm9y
IG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJ4LW1hYy1q
YXBhbmVzZSIpOworICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSVNPLTIwMjItSlAiKTsK
KyAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIkVVQy1KUCIpOworICAgICAgICAvLyBTaGlm
dF9KSVNfWDAyMTMtMjAwMCBpcyBub3QgdGhlIHNhbWUgZW5jb2RpbmcgYXMgU2hpZnRfSklTIG9u
IE1hYy4gV2UgbmVlZCB0byByZWdpc3RlciBib3RoIG9mIHRoZW0uCisgICAgICAgIGFkZEVuY29k
aW5nTmFtZShzZXQsICJTaGlmdF9KSVMiKTsKKyAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwg
IlNoaWZ0X0pJU19YMDIxMy0yMDAwIik7CisgICAgfQorICAgIHJldHVybiBzZXQuY29udGFpbnMo
bV9uYW1lKSA/IDB4MDBBNSA6ICdcXCc7CiB9CiAKIGJvb2wgVGV4dEVuY29kaW5nOjppc05vbkJ5
dGVCYXNlZEVuY29kaW5nKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74532</attachid>
            <date>2010-11-22 01:37:01 -0800</date>
            <delta_ts>2010-11-22 02:55:35 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-49714-20101122183659.patch</filename>
            <type>text/plain</type>
            <size>12982</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyZTU4NmExNzNkOTI2OTU1NDVkMDQ0Yjg1NGQ4ZTBkN2RkLi5hNjczNjhk
NzQ3ZDhmMDYwYmQwMmNlMTQ0OWFkNzExYTYwYzM4NDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAg
ICBVc2UgU2hpZnRfSklTIGluc3RlYWQgb2YgU2hpZnRfSklTX1gwMjEzLTIwMDAgYmVjYXVzZSBT
aGlmdF9KSVNfWDAyMTMtMjAwMAorICAgICAgICBlbmNvZGluZyBpcyBhdmFpbGFibGUgb25seSBv
biBNYWMuCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIElTTy0yMDIyLUpQLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNr
c2xhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGJhYTA0OTM1YjI5MDQ5NjhjMWY5ZDI3YjBiNzhmMjhm
ODBlYjdkZjAuLjZmMGVlOTMwYjViMjcwMGRjYWM0M2FjYzg0ZGRmMmFkMGMyNjg1MjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFj
a3NsYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTMgQEAK
IFwtaW4tYm9keQotICAKKyAgIAogUmVzdWx0cwogCiBXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBp
biBFVUMtSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBmaW5kIGEg
YmFja3NsYXNoIGluIEVVQy1KUCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQ
QVNTCi1XZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVNfWDAyMTMtMjAwMCBwYWdl
IGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwotV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4g
U2hpZnRfSklTX1gwMjEzLTIwMDAgdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjog
UEFTUworV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4gU2hpZnRfSklTIHBhZ2UgYnkgZmluZGlu
ZyBhIHllbiBzaWduOiBQQVNTCitXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVMg
dGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUworV2UgY2FuIGZpbmQgYSBi
YWNrc2xhc2ggaW4gSVNPLTIwMjItSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MK
K1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIElTTy0yMDIyLUpQIHRleHQgY29udHJvbCBieSBm
aW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBOT1QgZmluZCBhIGJhY2tzbGFzaCBpbiBV
VEY4IHBhZ2UgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBi
YWNrc2xhc2ggaW4gVVRGOCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNT
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5k
LXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCmluZGV4IDFiNzQ4YTE5YzUyM2ZhZjk5MTMyYjgz
MGMyMDJkMjkyNjYzNWMwMWEuLjIxNmEzYjZiZWUwZTE3YTAyZGFiYmMxMzQzZTExYmZhOWIzYzM3
ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+Ci0KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogPHNjcmlw
dD4KQEAgLTIyLDcgKzIxLDcgQEAgZnVuY3Rpb24gc2hvdWxkQmVUcnVlKGNvbmRpdGlvbiwgdGVz
dE5hbWUpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICAvLyBXaXRoIHRoZXNlIGVuY29kaW5ncywg
YmFja3NsYXNoZXMgd2lsbCBiZSB0cmFuc2NvZGVkIGludG8geWVuIHNpZ25zLgotICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVNfWDAyMTMtMjAwMCJdOworICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVMiLCAiSVNPLTIwMjItSlAiXTsKICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVuY29kaW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgICB2YXIg
ZW5jb2RpbmcgPSBlbmNvZGluZ3NbaV07CiAgICAgICAgIHZhciBmcmFtZURvY3VtZW50ID0gZnJh
bWVzW2ldLmRvY3VtZW50OwpAQCAtMzYsMTkgKzM1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiA8
L3NjcmlwdD4KIDwvaGVhZD4KLQogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgogCiA8ZGl2PlwtaW4t
Ym9keTwvZGl2PgogPGlucHV0IHZhbHVlPVwtaW4taW5wdXQ+CiA8aWZyYW1lIHNyYz0iZGF0YTp0
ZXh0L2h0bWw7Y2hhcnNldD1FVUMtSlAsPGJvZHk+XC1pbi1ib2R5PGlucHV0IHZhbHVlPVwtaW4t
aW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Ci08aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWw7Y2hh
cnNldD1TaGlmdF9KSVNfWDAyMTMtMjAwMCw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1p
bi1pbnB1dD48L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtj
aGFyc2V0PVNoaWZ0X0pJUyw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1dD48
L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PUlT
Ty0yMDIyLUpQLDxib2R5PlwtaW4tYm9keTxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PjwvYm9keT4i
PjwvaWZyYW1lPgogCiA8cD5SZXN1bHRzPC9wPgogCiA8cCBpZD0icmVzdWx0cyI+CiA8L3A+Ci0K
IDwvYm9keT4KLQogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGI0ZDM2NGIzYzgwOTJlM2Y5Njk2Mjg5OWNj
ZDIxMjlmZTQ5MDc1ZTAuLmM4NWE3NzlhODQ3N2JhY2E1MzAwNzIzNjM5MDI1ZGVlOWM4YzU4OWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTY5MCw3ICs2OTAsNiBAQCBCVUcyODkxNiBNQUMgOiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUteG1sLnhodG1sID0gVEVYVAogLy8gRmxha3kKIEJVRzMxODAzIE1BQyBMSU5V
WCA6IGVkaXRpbmcvaW5zZXJ0aW5nLzEyODgyLmh0bWwgPSBJTUFHRSBQQVNTCiAKLUJVRzM4NjUz
IE1BQyA6IGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwg
PSBURVhUCiBCVUdXSzQ1NDM4IDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy5odG1sID0gVEVYVAogCiAvLyBTZWxlY3Rpb24gaXMgd3JvbmcuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg3MjE0
NDNiZDc3YzMwMjQ3NmVlN2M5OTkyMTJlM2U0YjQyZDQyNjguLmY2OGVhMWYzM2ZmNjA2YWZlZmI1
YjhiNzg3NWU2ZmZhZWYxMWY2NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMTEtMTcgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91bGQgd29yayB3aXRoIFNoaWZ0X0pJ
UyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAgICBJRSBzaG93cyBhIHllbnNpZ24g
Zm9yIDB4NWMgY29kZSBwb2ludCBlbmNvZGVkIGluIHgtbWFjLWphcGFuZXNlLAorICAgICAgICBJ
U08tMjAyMi1KUCwgRVVDLUpQLCBTaGlmdF9KSVMsIFNoaWZ0X0pJU19YMDIxMy0yMDAwLCB4LXNq
aXMsIGFuZAorICAgICAgICBXaW5kb3dzLTMxSi4gV2UgZm9sbG93IGl0LgorCisgICAgICAgIEFs
c28sIHdlIG1vdmUgdGhlIEhhc2hTZXQgaW5pdGlhbGl6YXRpb24gZm9yIGlzSmFwYW5lc2UoKSBh
bmQKKyAgICAgICAgYmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpIHRvIFRleHRFbmNvZGluZ1Jl
Z2lzdHJ5LmNwcCBiZWNhdXNlIG9mCisgICAgICAgIGVhc2Ugb2YgbWFraW5nIHRoZW0gbXVsdGkt
dGhyZWFkIHNhZmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RW5jb2Rpbmc6OmlzSmFwYW5lc2UpOiBKdXN0IGNhbGxz
IGlzSmFwYW5lc2VFbmNvZGluZygpLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEVuY29kaW5nOjpi
YWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKTogVXNlcyBzaG91bGRTaG93QmFja3NsYXNoQXNDdXJy
ZW5jeVN5bWJvbEluKCkuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdp
c3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRFbmNvZGluZ05hbWUpOiBNb3ZlZCBmcm9t
IFRleHRFbmNvZGluZy5jcHAsIGFuZCBzdG9wIHVzaW5nIGF0b21pY0Nhbm9uaWNhbFRleHRFbmNv
ZGluZ05hbWUoKS4KKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUXVpcmtzU2V0cyk6IEFkZGVkLiBJ
bml0aWFsaXplcyBIYXNoU2V0cyBmb3IgaXNKYXBhbmVzZUVuY29kaW5nKCkgYW5kIHNob3VsZFNo
b3dCYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4oKS4KKyAgICAgICAgKFdlYkNvcmU6OmlzSmFw
YW5lc2VFbmNvZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRTaG93QmFja3NsYXNoQXND
dXJyZW5jeVN5bWJvbEluKToKKyAgICAgICAgKFdlYkNvcmU6OmV4dGVuZFRleHRDb2RlY01hcHMp
OiBBZGQgYSBjYWxsIHRvIGJ1aWxkUXVpcmtzU2V0cygpLgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuaDoKKwogMjAxMC0xMS0yMSAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0
cm9nb27DoWMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCmluZGV4IDU4ZTY5
MWYwZDUzY2M3N2I3ZDgzZTYxMWRkMGQyODMwYzcyOWFlYjUuLjMzMzEzYTBkOGExOTE3NmFhYzBi
MGZmYzZhOWRmYmI5YzQwNzBjNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwCkBAIC00MCwxOSArNDAsMTEgQEAKICNpbmNsdWRlICJHT3duUHRyLmgiCiAjZW5kaWYKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lkIGFkZEVuY29kaW5nTmFtZShIYXNoU2V0
PGNvbnN0IGNoYXIqPiYgc2V0LCBjb25zdCBjaGFyKiBuYW1lKQotewotICAgIGNvbnN0IGNoYXIq
IGF0b21pY05hbWUgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKG5hbWUpOwotICAg
IGlmIChhdG9taWNOYW1lKQotICAgICAgICBzZXQuYWRkKGF0b21pY05hbWUpOwotfQotCiBzdGF0
aWMgY29uc3QgVGV4dEVuY29kaW5nJiBVVEY3RW5jb2RpbmcoKQogewogICAgIHN0YXRpYyBUZXh0
RW5jb2RpbmcgZ2xvYmFsVVRGN0VuY29kaW5nKCJVVEYtNyIpOwpAQCAtMTczLDM5ICsxNjUsMTIg
QEAgYm9vbCBUZXh0RW5jb2Rpbmc6OnVzZXNWaXN1YWxPcmRlcmluZygpIGNvbnN0CiAKIGJvb2wg
VGV4dEVuY29kaW5nOjppc0phcGFuZXNlKCkgY29uc3QKIHsKLSAgICBpZiAobm9FeHRlbmRlZFRl
eHRFbmNvZGluZ05hbWVVc2VkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxjb25zdCBjaGFyKj4sIHNldCwgKCkpOwotICAgIGlmIChz
ZXQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJ4LW1hYy1qYXBh
bmVzZSIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiY3A5MzIiKTsKLSAgICAgICAg
YWRkRW5jb2RpbmdOYW1lKHNldCwgIkpJU19YMDIwMSIpOwotICAgICAgICBhZGRFbmNvZGluZ05h
bWUoc2V0LCAiSklTX1gwMjA4LTE5ODMiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwg
IkpJU19YMDIwOC0xOTkwIik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJKSVNfWDAy
MTItMTk5MCIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSklTX0M2MjI2LTE5Nzgi
KTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIlNoaWZ0X0pJU19YMDIxMy0yMDAwIik7
Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJJU08tMjAyMi1KUCIpOwotICAgICAgICBh
ZGRFbmNvZGluZ05hbWUoc2V0LCAiSVNPLTIwMjItSlAtMiIpOwotICAgICAgICBhZGRFbmNvZGlu
Z05hbWUoc2V0LCAiSVNPLTIwMjItSlAtMSIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0
LCAiSVNPLTIwMjItSlAtMyIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiRVVDLUpQ
Iik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJTaGlmdF9KSVMiKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIG1fbmFtZSAmJiBzZXQuY29udGFpbnMobV9uYW1lKTsKKyAgICByZXR1cm4gaXNK
YXBhbmVzZUVuY29kaW5nKG1fbmFtZSk7CiB9CiAKIFVDaGFyIFRleHRFbmNvZGluZzo6YmFja3Ns
YXNoQXNDdXJyZW5jeVN5bWJvbCgpIGNvbnN0CiB7Ci0gICAgaWYgKG5vRXh0ZW5kZWRUZXh0RW5j
b2RpbmdOYW1lVXNlZCgpKQotICAgICAgICByZXR1cm4gJ1xcJzsKLQotICAgIC8vIFRoZSB0ZXh0
IGVuY29kaW5ncyBiZWxvdyB0cmVhdCBiYWNrc2xhc2ggYXMgYSBjdXJyZW5jeSBzeW1ib2wuCi0g
ICAgLy8gU2VlIGh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9taWNoa2FwL2FyY2hpdmUvMjAwNS8wOS8x
Ny80Njk5NDEuYXNweCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgYSA9IGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWUoIlNoaWZ0X0pJU19Y
MDIxMy0yMDAwIik7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGIgPSBhdG9taWNDYW5v
bmljYWxUZXh0RW5jb2RpbmdOYW1lKCJFVUMtSlAiKTsKLSAgICByZXR1cm4gKG1fbmFtZSA9PSBh
IHx8IG1fbmFtZSA9PSBiKSA/IDB4MDBBNSA6ICdcXCc7CisgICAgcmV0dXJuIHNob3VsZFNob3dC
YWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4obV9uYW1lKSA/IDB4MDBBNSA6ICdcXCc7CiB9CiAK
IGJvb2wgVGV4dEVuY29kaW5nOjppc05vbkJ5dGVCYXNlZEVuY29kaW5nKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IDZiZjU1
NTI4N2JjM2M0MDZlNDBmZjMzN2E1MDEwNWIyMTkxMzZjOWQuLmJkNjc1Mjk1MjE2YTcxZmZiOGJm
ZWExZDE2ZWEyNmM1NTQ2N2M5YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZ1JlZ2lzdHJ5LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CkBAIC0xMjUsNiArMTI2LDggQEAgc3RhdGljIE11dGV4JiBlbmNvZGluZ1Jl
Z2lzdHJ5TXV0ZXgoKQogc3RhdGljIFRleHRFbmNvZGluZ05hbWVNYXAqIHRleHRFbmNvZGluZ05h
bWVNYXA7CiBzdGF0aWMgVGV4dENvZGVjTWFwKiB0ZXh0Q29kZWNNYXA7CiBzdGF0aWMgYm9vbCBk
aWRFeHRlbmRUZXh0Q29kZWNNYXBzOworc3RhdGljIEhhc2hTZXQ8Y29uc3QgY2hhcio+KiBqYXBh
bmVzZUVuY29kaW5nczsKK3N0YXRpYyBIYXNoU2V0PGNvbnN0IGNoYXIqPiogbm9uQmFja3NsYXNo
RW5jb2RpbmdzOwogCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdGV4dEVuY29kaW5nTmFtZUJs
YWNrbGlzdFtdID0gewogICAgICJVVEYtNyIKQEAgLTI0OSw2ICsyNTIsNTYgQEAgc3RhdGljIHZv
aWQgYnVpbGRCYXNlVGV4dENvZGVjTWFwcygpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQgYWRk
RW5jb2RpbmdOYW1lKEhhc2hTZXQ8Y29uc3QgY2hhcio+KiBzZXQsIGNvbnN0IGNoYXIqIG5hbWUp
Cit7CisgICAgLy8gV2UgbXVzdCBub3QgdXNlIGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05h
bWUoKSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIGl0LgorICAgIGNvbnN0IGNo
YXIqIGF0b21pY05hbWUgPSB0ZXh0RW5jb2RpbmdOYW1lTWFwLT5nZXQobmFtZSk7CisgICAgaWYg
KGF0b21pY05hbWUpCisgICAgICAgIHNldC0+YWRkKGF0b21pY05hbWUpOworfQorCitzdGF0aWMg
dm9pZCBidWlsZFF1aXJrc1NldHMoKQoreworICAgIEFTU0VSVCghamFwYW5lc2VFbmNvZGluZ3Mp
OworICAgIEFTU0VSVCghbm9uQmFja3NsYXNoRW5jb2RpbmdzKTsKKworICAgIGphcGFuZXNlRW5j
b2RpbmdzID0gbmV3IEhhc2hTZXQ8Y29uc3QgY2hhcio+KCk7CisgICAgYWRkRW5jb2RpbmdOYW1l
KGphcGFuZXNlRW5jb2RpbmdzLCAiRVVDLUpQIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFu
ZXNlRW5jb2RpbmdzLCAiSVNPLTIwMjItSlAiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5l
c2VFbmNvZGluZ3MsICJJU08tMjAyMi1KUC0xIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFu
ZXNlRW5jb2RpbmdzLCAiSVNPLTIwMjItSlAtMiIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBh
bmVzZUVuY29kaW5ncywgIklTTy0yMDIyLUpQLTMiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFw
YW5lc2VFbmNvZGluZ3MsICJKSVNfQzYyMjYtMTk3OCIpOworICAgIGFkZEVuY29kaW5nTmFtZShq
YXBhbmVzZUVuY29kaW5ncywgIkpJU19YMDIwMSIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBh
bmVzZUVuY29kaW5ncywgIkpJU19YMDIwOC0xOTgzIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGph
cGFuZXNlRW5jb2RpbmdzLCAiSklTX1gwMjA4LTE5OTAiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUo
amFwYW5lc2VFbmNvZGluZ3MsICJKSVNfWDAyMTItMTk5MCIpOworICAgIGFkZEVuY29kaW5nTmFt
ZShqYXBhbmVzZUVuY29kaW5ncywgIlNoaWZ0X0pJUyIpOworICAgIGFkZEVuY29kaW5nTmFtZShq
YXBhbmVzZUVuY29kaW5ncywgIlNoaWZ0X0pJU19YMDIxMy0yMDAwIik7CisgICAgYWRkRW5jb2Rp
bmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiY3A5MzIiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUo
amFwYW5lc2VFbmNvZGluZ3MsICJ4LW1hYy1qYXBhbmVzZSIpOworCisgICAgbm9uQmFja3NsYXNo
RW5jb2RpbmdzID0gbmV3IEhhc2hTZXQ8Y29uc3QgY2hhcio+KCk7CisgICAgLy8gVGhlIHRleHQg
ZW5jb2RpbmdzIGJlbG93IHRyZWF0IGJhY2tzbGFzaCBhcyBhIGN1cnJlbmN5IHN5bWJvbCBmb3Ig
SUUgY29tcGF0aWJpbGl0eS4KKyAgICAvLyBTZWUgaHR0cDovL2Jsb2dzLm1zZG4uY29tL21pY2hr
YXAvYXJjaGl2ZS8yMDA1LzA5LzE3LzQ2OTk0MS5hc3B4IGZvciBtb3JlIGluZm9ybWF0aW9uLgor
ICAgIGFkZEVuY29kaW5nTmFtZShub25CYWNrc2xhc2hFbmNvZGluZ3MsICJ4LW1hYy1qYXBhbmVz
ZSIpOworICAgIGFkZEVuY29kaW5nTmFtZShub25CYWNrc2xhc2hFbmNvZGluZ3MsICJJU08tMjAy
Mi1KUCIpOworICAgIGFkZEVuY29kaW5nTmFtZShub25CYWNrc2xhc2hFbmNvZGluZ3MsICJFVUMt
SlAiKTsKKyAgICAvLyBTaGlmdF9KSVNfWDAyMTMtMjAwMCBpcyBub3QgdGhlIHNhbWUgZW5jb2Rp
bmcgYXMgU2hpZnRfSklTIG9uIE1hYy4gV2UgbmVlZCB0byByZWdpc3RlciBib3RoIG9mIHRoZW0u
CisgICAgYWRkRW5jb2RpbmdOYW1lKG5vbkJhY2tzbGFzaEVuY29kaW5ncywgIlNoaWZ0X0pJUyIp
OworICAgIGFkZEVuY29kaW5nTmFtZShub25CYWNrc2xhc2hFbmNvZGluZ3MsICJTaGlmdF9KSVNf
WDAyMTMtMjAwMCIpOworfQorCitib29sIGlzSmFwYW5lc2VFbmNvZGluZyhjb25zdCBjaGFyKiBj
YW5vbmljYWxFbmNvZGluZ05hbWUpCit7CisgICAgcmV0dXJuIGNhbm9uaWNhbEVuY29kaW5nTmFt
ZSAmJiBqYXBhbmVzZUVuY29kaW5ncyAmJiBqYXBhbmVzZUVuY29kaW5ncy0+Y29udGFpbnMoY2Fu
b25pY2FsRW5jb2RpbmdOYW1lKTsKK30KKworYm9vbCBzaG91bGRTaG93QmFja3NsYXNoQXNDdXJy
ZW5jeVN5bWJvbEluKGNvbnN0IGNoYXIqIGNhbm9uaWNhbEVuY29kaW5nTmFtZSkKK3sKKyAgICBy
ZXR1cm4gY2Fub25pY2FsRW5jb2RpbmdOYW1lICYmIG5vbkJhY2tzbGFzaEVuY29kaW5ncyAmJiBu
b25CYWNrc2xhc2hFbmNvZGluZ3MtPmNvbnRhaW5zKGNhbm9uaWNhbEVuY29kaW5nTmFtZSk7Cit9
CisKIHN0YXRpYyB2b2lkIGV4dGVuZFRleHRDb2RlY01hcHMoKQogewogI2lmIFVTRShJQ1VfVU5J
Q09ERSkKQEAgLTI3Nyw2ICszMzAsNyBAQCBzdGF0aWMgdm9pZCBleHRlbmRUZXh0Q29kZWNNYXBz
KCkKICNlbmRpZgogCiAgICAgcHJ1bmVCbGFja2xpc3RlZENvZGVjcygpOworICAgIGJ1aWxkUXVp
cmtzU2V0cygpOwogfQogCiBQYXNzT3duUHRyPFRleHRDb2RlYz4gbmV3VGV4dENvZGVjKGNvbnN0
IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5oCmluZGV4IDgxYjdjNGM5NjgwZTJkNmQzNWIxNjMzMGVhNGVkNTJmMzMz
YmJkMGMuLjE2ODQ0YzZiMmNkOWQ3ZjhlZGYyOGYyMzIyZTY0YmIyODliNDlhN2MgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5oCkBAIC0zOSwxMiArMzks
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIFVzZSBUZXh0RW5jb2Rpbmc6OmVuY29k
ZSB0byBlbmNvZGUsIHNpbmNlIGl0IHRha2VzIGNhcmUgb2Ygbm9ybWFsaXphdGlvbi4KICAgICBQ
YXNzT3duUHRyPFRleHRDb2RlYz4gbmV3VGV4dENvZGVjKGNvbnN0IFRleHRFbmNvZGluZyYpOwog
Ci0gICAgLy8gT25seSBUZXh0RW5jb2Rpbmcgc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9uIGRpcmVj
dGx5LgorICAgIC8vIE9ubHkgVGV4dEVuY29kaW5nIHNob3VsZCB1c2UgdGhlIGZvbGxvd2luZyBm
dW5jdGlvbnMgZGlyZWN0bHkuCiAgICAgY29uc3QgY2hhciogYXRvbWljQ2Fub25pY2FsVGV4dEVu
Y29kaW5nTmFtZShjb25zdCBjaGFyKiBhbGlhcyk7CiAgICAgY29uc3QgY2hhciogYXRvbWljQ2Fu
b25pY2FsVGV4dEVuY29kaW5nTmFtZShjb25zdCBVQ2hhciogYWxpYXNDaGFyYWN0ZXJzLCBzaXpl
X3QgYWxpYXNMZW5ndGgpOwotCi0gICAgLy8gT25seSBUZXh0RW5jb2Rpbmcgc2hvdWxkIHVzZSB0
aGlzIGZ1bmN0aW9uIGRpcmVjdGx5LgogICAgIGJvb2wgbm9FeHRlbmRlZFRleHRFbmNvZGluZ05h
bWVVc2VkKCk7CisgICAgYm9vbCBpc0phcGFuZXNlRW5jb2RpbmcoY29uc3QgY2hhciogY2Fub25p
Y2FsRW5jb2RpbmdOYW1lKTsKKyAgICBib29sIHNob3VsZFNob3dCYWNrc2xhc2hBc0N1cnJlbmN5
U3ltYm9sSW4oY29uc3QgY2hhciogY2Fub25pY2FsRW5jb2RpbmdOYW1lKTsKIAogI2lmbmRlZiBO
REVCVUcKICAgICB2b2lkIGR1bXBUZXh0RW5jb2RpbmdOYW1lTWFwKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74535</attachid>
            <date>2010-11-22 02:55:40 -0800</date>
            <delta_ts>2010-11-22 02:59:03 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-49714-20101122195538.patch</filename>
            <type>text/plain</type>
            <size>13014</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyZTU4NmExNzNkOTI2OTU1NDVkMDQ0Yjg1NGQ4ZTBkN2RkLi5hNjczNjhk
NzQ3ZDhmMDYwYmQwMmNlMTQ0OWFkNzExYTYwYzM4NDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAg
ICBVc2UgU2hpZnRfSklTIGluc3RlYWQgb2YgU2hpZnRfSklTX1gwMjEzLTIwMDAgYmVjYXVzZSBT
aGlmdF9KSVNfWDAyMTMtMjAwMAorICAgICAgICBlbmNvZGluZyBpcyBhdmFpbGFibGUgb25seSBv
biBNYWMuCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIElTTy0yMDIyLUpQLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNr
c2xhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGJhYTA0OTM1YjI5MDQ5NjhjMWY5ZDI3YjBiNzhmMjhm
ODBlYjdkZjAuLjZmMGVlOTMwYjViMjcwMGRjYWM0M2FjYzg0ZGRmMmFkMGMyNjg1MjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFj
a3NsYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTMgQEAK
IFwtaW4tYm9keQotICAKKyAgIAogUmVzdWx0cwogCiBXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBp
biBFVUMtSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBmaW5kIGEg
YmFja3NsYXNoIGluIEVVQy1KUCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQ
QVNTCi1XZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVNfWDAyMTMtMjAwMCBwYWdl
IGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwotV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4g
U2hpZnRfSklTX1gwMjEzLTIwMDAgdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjog
UEFTUworV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4gU2hpZnRfSklTIHBhZ2UgYnkgZmluZGlu
ZyBhIHllbiBzaWduOiBQQVNTCitXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVMg
dGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUworV2UgY2FuIGZpbmQgYSBi
YWNrc2xhc2ggaW4gSVNPLTIwMjItSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MK
K1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIElTTy0yMDIyLUpQIHRleHQgY29udHJvbCBieSBm
aW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBOT1QgZmluZCBhIGJhY2tzbGFzaCBpbiBV
VEY4IHBhZ2UgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBi
YWNrc2xhc2ggaW4gVVRGOCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNT
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5k
LXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCmluZGV4IDFiNzQ4YTE5YzUyM2ZhZjk5MTMyYjgz
MGMyMDJkMjkyNjYzNWMwMWEuLjIxNmEzYjZiZWUwZTE3YTAyZGFiYmMxMzQzZTExYmZhOWIzYzM3
ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+Ci0KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogPHNjcmlw
dD4KQEAgLTIyLDcgKzIxLDcgQEAgZnVuY3Rpb24gc2hvdWxkQmVUcnVlKGNvbmRpdGlvbiwgdGVz
dE5hbWUpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICAvLyBXaXRoIHRoZXNlIGVuY29kaW5ncywg
YmFja3NsYXNoZXMgd2lsbCBiZSB0cmFuc2NvZGVkIGludG8geWVuIHNpZ25zLgotICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVNfWDAyMTMtMjAwMCJdOworICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVMiLCAiSVNPLTIwMjItSlAiXTsKICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVuY29kaW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgICB2YXIg
ZW5jb2RpbmcgPSBlbmNvZGluZ3NbaV07CiAgICAgICAgIHZhciBmcmFtZURvY3VtZW50ID0gZnJh
bWVzW2ldLmRvY3VtZW50OwpAQCAtMzYsMTkgKzM1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiA8
L3NjcmlwdD4KIDwvaGVhZD4KLQogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgogCiA8ZGl2PlwtaW4t
Ym9keTwvZGl2PgogPGlucHV0IHZhbHVlPVwtaW4taW5wdXQ+CiA8aWZyYW1lIHNyYz0iZGF0YTp0
ZXh0L2h0bWw7Y2hhcnNldD1FVUMtSlAsPGJvZHk+XC1pbi1ib2R5PGlucHV0IHZhbHVlPVwtaW4t
aW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Ci08aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWw7Y2hh
cnNldD1TaGlmdF9KSVNfWDAyMTMtMjAwMCw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1p
bi1pbnB1dD48L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtj
aGFyc2V0PVNoaWZ0X0pJUyw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1dD48
L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PUlT
Ty0yMDIyLUpQLDxib2R5PlwtaW4tYm9keTxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PjwvYm9keT4i
PjwvaWZyYW1lPgogCiA8cD5SZXN1bHRzPC9wPgogCiA8cCBpZD0icmVzdWx0cyI+CiA8L3A+Ci0K
IDwvYm9keT4KLQogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGI0ZDM2NGIzYzgwOTJlM2Y5Njk2Mjg5OWNj
ZDIxMjlmZTQ5MDc1ZTAuLmM4NWE3NzlhODQ3N2JhY2E1MzAwNzIzNjM5MDI1ZGVlOWM4YzU4OWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTY5MCw3ICs2OTAsNiBAQCBCVUcyODkxNiBNQUMgOiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUteG1sLnhodG1sID0gVEVYVAogLy8gRmxha3kKIEJVRzMxODAzIE1BQyBMSU5V
WCA6IGVkaXRpbmcvaW5zZXJ0aW5nLzEyODgyLmh0bWwgPSBJTUFHRSBQQVNTCiAKLUJVRzM4NjUz
IE1BQyA6IGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwg
PSBURVhUCiBCVUdXSzQ1NDM4IDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy5odG1sID0gVEVYVAogCiAvLyBTZWxlY3Rpb24gaXMgd3JvbmcuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg3MjE0
NDNiZDc3YzMwMjQ3NmVlN2M5OTkyMTJlM2U0YjQyZDQyNjguLmY4NDg0OTE3MTg3ZTQ4OWE0ZjYz
ZmU1MTExNmY4MjIyYmJjY2M5YWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMTEtMTcgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91bGQgd29yayB3aXRoIFNoaWZ0X0pJ
UyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAgICBJRSBjaG9vc2VzIGEgZm9udCB3
aGljaCBzaG93cyBhIHllbnNpZ24gZm9yIDB4NWMgY29kZSBwb2ludCBmb3IgYSBwYWdlCisgICAg
ICAgIGVuY29kZWQgaW4geC1tYWMtamFwYW5lc2UsIElTTy0yMDIyLUpQLCBFVUMtSlAsIFNoaWZ0
X0pJUywgU2hpZnRfSklTX1gwMjEzLTIwMDAsCisgICAgICAgIHgtc2ppcywgYW5kIFdpbmRvd3Mt
MzFKLiBXZSBmb2xsb3cgaXQuCisKKyAgICAgICAgQWxzbywgd2UgbW92ZSB0aGUgSGFzaFNldCBp
bml0aWFsaXphdGlvbiBmb3IgaXNKYXBhbmVzZSgpIGFuZAorICAgICAgICBiYWNrc2xhc2hBc0N1
cnJlbmN5U3ltYm9sKCkgdG8gVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwIGJlY2F1c2Ugb2YKKyAg
ICAgICAgZWFzZSBvZiBtYWtpbmcgdGhlbSBtdWx0aS10aHJlYWQgc2FmZS4KKworICAgICAgICAq
IHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRF
bmNvZGluZzo6aXNKYXBhbmVzZSk6IEp1c3QgY2FsbHMgaXNKYXBhbmVzZUVuY29kaW5nKCkuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RW5jb2Rpbmc6OmJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2wp
OiBVc2VzIHNob3VsZFNob3dCYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4oKS4KKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmFkZEVuY29kaW5nTmFtZSk6IE1vdmVkIGZyb20gVGV4dEVuY29kaW5nLmNwcCwgYW5kIHN0
b3AgdXNpbmcgYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgpLgorICAgICAgICAoV2Vi
Q29yZTo6YnVpbGRRdWlya3NTZXRzKTogQWRkZWQuIEluaXRpYWxpemVzIEhhc2hTZXRzIGZvciBp
c0phcGFuZXNlRW5jb2RpbmcoKSBhbmQgc2hvdWxkU2hvd0JhY2tzbGFzaEFzQ3VycmVuY3lTeW1i
b2xJbigpLgorICAgICAgICAoV2ViQ29yZTo6aXNKYXBhbmVzZUVuY29kaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZFNob3dCYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4pOgorICAgICAg
ICAoV2ViQ29yZTo6ZXh0ZW5kVGV4dENvZGVjTWFwcyk6IEFkZCBhIGNhbGwgdG8gYnVpbGRRdWly
a3NTZXRzKCkuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5o
OgorCiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZy5jcHAKaW5kZXggNThlNjkxZjBkNTNjYzc3YjdkODNlNjExZGQwZDI4
MzBjNzI5YWViNS4uMzMzMTNhMGQ4YTE5MTc2YWFjMGIwZmZjNmE5ZGZiYjljNDA3MGM3MCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKQEAgLTQwLDE5ICs0MCwxMSBAQAog
I2luY2x1ZGUgIkdPd25QdHIuaCIKICNlbmRpZgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIHZvaWQgYWRkRW5jb2RpbmdOYW1lKEhhc2hTZXQ8Y29uc3QgY2hhcio+JiBzZXQsIGNvbnN0
IGNoYXIqIG5hbWUpCi17Ci0gICAgY29uc3QgY2hhciogYXRvbWljTmFtZSA9IGF0b21pY0Nhbm9u
aWNhbFRleHRFbmNvZGluZ05hbWUobmFtZSk7Ci0gICAgaWYgKGF0b21pY05hbWUpCi0gICAgICAg
IHNldC5hZGQoYXRvbWljTmFtZSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBUZXh0RW5jb2RpbmcmIFVU
RjdFbmNvZGluZygpCiB7CiAgICAgc3RhdGljIFRleHRFbmNvZGluZyBnbG9iYWxVVEY3RW5jb2Rp
bmcoIlVURi03Iik7CkBAIC0xNzMsMzkgKzE2NSwxMiBAQCBib29sIFRleHRFbmNvZGluZzo6dXNl
c1Zpc3VhbE9yZGVyaW5nKCkgY29uc3QKIAogYm9vbCBUZXh0RW5jb2Rpbmc6OmlzSmFwYW5lc2Uo
KSBjb25zdAogewotICAgIGlmIChub0V4dGVuZGVkVGV4dEVuY29kaW5nTmFtZVVzZWQoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PGNv
bnN0IGNoYXIqPiwgc2V0LCAoKSk7Ci0gICAgaWYgKHNldC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
YWRkRW5jb2RpbmdOYW1lKHNldCwgIngtbWFjLWphcGFuZXNlIik7Ci0gICAgICAgIGFkZEVuY29k
aW5nTmFtZShzZXQsICJjcDkzMiIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSklT
X1gwMjAxIik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJKSVNfWDAyMDgtMTk4MyIp
OwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSklTX1gwMjA4LTE5OTAiKTsKLSAgICAg
ICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIkpJU19YMDIxMi0xOTkwIik7Ci0gICAgICAgIGFkZEVu
Y29kaW5nTmFtZShzZXQsICJKSVNfQzYyMjYtMTk3OCIpOwotICAgICAgICBhZGRFbmNvZGluZ05h
bWUoc2V0LCAiU2hpZnRfSklTX1gwMjEzLTIwMDAiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1l
KHNldCwgIklTTy0yMDIyLUpQIik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJJU08t
MjAyMi1KUC0yIik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJJU08tMjAyMi1KUC0x
Iik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJJU08tMjAyMi1KUC0zIik7Ci0gICAg
ICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJFVUMtSlAiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdO
YW1lKHNldCwgIlNoaWZ0X0pJUyIpOwotICAgIH0KLSAgICByZXR1cm4gbV9uYW1lICYmIHNldC5j
b250YWlucyhtX25hbWUpOworICAgIHJldHVybiBpc0phcGFuZXNlRW5jb2RpbmcobV9uYW1lKTsK
IH0KIAogVUNoYXIgVGV4dEVuY29kaW5nOjpiYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKCkgY29u
c3QKIHsKLSAgICBpZiAobm9FeHRlbmRlZFRleHRFbmNvZGluZ05hbWVVc2VkKCkpCi0gICAgICAg
IHJldHVybiAnXFwnOwotCi0gICAgLy8gVGhlIHRleHQgZW5jb2RpbmdzIGJlbG93IHRyZWF0IGJh
Y2tzbGFzaCBhcyBhIGN1cnJlbmN5IHN5bWJvbC4KLSAgICAvLyBTZWUgaHR0cDovL2Jsb2dzLm1z
ZG4uY29tL21pY2hrYXAvYXJjaGl2ZS8yMDA1LzA5LzE3LzQ2OTk0MS5hc3B4IGZvciBtb3JlIGlu
Zm9ybWF0aW9uLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBhID0gYXRvbWljQ2Fub25p
Y2FsVGV4dEVuY29kaW5nTmFtZSgiU2hpZnRfSklTX1gwMjEzLTIwMDAiKTsKLSAgICBzdGF0aWMg
Y29uc3QgY2hhciogY29uc3QgYiA9IGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWUoIkVV
Qy1KUCIpOwotICAgIHJldHVybiAobV9uYW1lID09IGEgfHwgbV9uYW1lID09IGIpID8gMHgwMEE1
IDogJ1xcJzsKKyAgICByZXR1cm4gc2hvdWxkU2hvd0JhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2xJ
bihtX25hbWUpID8gMHgwMEE1IDogJ1xcJzsKIH0KIAogYm9vbCBUZXh0RW5jb2Rpbmc6OmlzTm9u
Qnl0ZUJhc2VkRW5jb2RpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdSZWdpc3RyeS5jcHAKaW5kZXggNmJmNTU1Mjg3YmMzYzQwNmU0MGZmMzM3YTUwMTA1
YjIxOTEzNmM5ZC4uYmQ2NzUyOTUyMTZhNzFmZmI4YmZlYTFkMTZlYTI2YzU1NDY3YzlhNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTEyNSw2ICsx
MjYsOCBAQCBzdGF0aWMgTXV0ZXgmIGVuY29kaW5nUmVnaXN0cnlNdXRleCgpCiBzdGF0aWMgVGV4
dEVuY29kaW5nTmFtZU1hcCogdGV4dEVuY29kaW5nTmFtZU1hcDsKIHN0YXRpYyBUZXh0Q29kZWNN
YXAqIHRleHRDb2RlY01hcDsKIHN0YXRpYyBib29sIGRpZEV4dGVuZFRleHRDb2RlY01hcHM7Citz
dGF0aWMgSGFzaFNldDxjb25zdCBjaGFyKj4qIGphcGFuZXNlRW5jb2RpbmdzOworc3RhdGljIEhh
c2hTZXQ8Y29uc3QgY2hhcio+KiBub25CYWNrc2xhc2hFbmNvZGluZ3M7CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCB0ZXh0RW5jb2RpbmdOYW1lQmxhY2tsaXN0W10gPSB7CiAgICAgIlVURi03
IgpAQCAtMjQ5LDYgKzI1Miw1NiBAQCBzdGF0aWMgdm9pZCBidWlsZEJhc2VUZXh0Q29kZWNNYXBz
KCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCBhZGRFbmNvZGluZ05hbWUoSGFzaFNldDxjb25z
dCBjaGFyKj4qIHNldCwgY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICAvLyBXZSBtdXN0IG5vdCB1
c2UgYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSgpIGJlY2F1c2UgdGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgaW4gaXQuCisgICAgY29uc3QgY2hhciogYXRvbWljTmFtZSA9IHRleHRFbmNv
ZGluZ05hbWVNYXAtPmdldChuYW1lKTsKKyAgICBpZiAoYXRvbWljTmFtZSkKKyAgICAgICAgc2V0
LT5hZGQoYXRvbWljTmFtZSk7Cit9CisKK3N0YXRpYyB2b2lkIGJ1aWxkUXVpcmtzU2V0cygpCit7
CisgICAgQVNTRVJUKCFqYXBhbmVzZUVuY29kaW5ncyk7CisgICAgQVNTRVJUKCFub25CYWNrc2xh
c2hFbmNvZGluZ3MpOworCisgICAgamFwYW5lc2VFbmNvZGluZ3MgPSBuZXcgSGFzaFNldDxjb25z
dCBjaGFyKj4oKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5lc2VFbmNvZGluZ3MsICJFVUMt
SlAiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5lc2VFbmNvZGluZ3MsICJJU08tMjAyMi1K
UCIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBhbmVzZUVuY29kaW5ncywgIklTTy0yMDIyLUpQ
LTEiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5lc2VFbmNvZGluZ3MsICJJU08tMjAyMi1K
UC0yIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiSVNPLTIwMjIt
SlAtMyIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBhbmVzZUVuY29kaW5ncywgIkpJU19DNjIy
Ni0xOTc4Iik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiSklTX1gw
MjAxIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiSklTX1gwMjA4
LTE5ODMiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5lc2VFbmNvZGluZ3MsICJKSVNfWDAy
MDgtMTk5MCIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBhbmVzZUVuY29kaW5ncywgIkpJU19Y
MDIxMi0xOTkwIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiU2hp
ZnRfSklTIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFuZXNlRW5jb2RpbmdzLCAiU2hpZnRf
SklTX1gwMjEzLTIwMDAiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFwYW5lc2VFbmNvZGluZ3Ms
ICJjcDkzMiIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBhbmVzZUVuY29kaW5ncywgIngtbWFj
LWphcGFuZXNlIik7CisKKyAgICBub25CYWNrc2xhc2hFbmNvZGluZ3MgPSBuZXcgSGFzaFNldDxj
b25zdCBjaGFyKj4oKTsKKyAgICAvLyBUaGUgdGV4dCBlbmNvZGluZ3MgYmVsb3cgdHJlYXQgYmFj
a3NsYXNoIGFzIGEgY3VycmVuY3kgc3ltYm9sIGZvciBJRSBjb21wYXRpYmlsaXR5LgorICAgIC8v
IFNlZSBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGthcC9hcmNoaXZlLzIwMDUvMDkvMTcvNDY5
OTQxLmFzcHggZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgYWRkRW5jb2RpbmdOYW1lKG5vbkJh
Y2tzbGFzaEVuY29kaW5ncywgIngtbWFjLWphcGFuZXNlIik7CisgICAgYWRkRW5jb2RpbmdOYW1l
KG5vbkJhY2tzbGFzaEVuY29kaW5ncywgIklTTy0yMDIyLUpQIik7CisgICAgYWRkRW5jb2RpbmdO
YW1lKG5vbkJhY2tzbGFzaEVuY29kaW5ncywgIkVVQy1KUCIpOworICAgIC8vIFNoaWZ0X0pJU19Y
MDIxMy0yMDAwIGlzIG5vdCB0aGUgc2FtZSBlbmNvZGluZyBhcyBTaGlmdF9KSVMgb24gTWFjLiBX
ZSBuZWVkIHRvIHJlZ2lzdGVyIGJvdGggb2YgdGhlbS4KKyAgICBhZGRFbmNvZGluZ05hbWUobm9u
QmFja3NsYXNoRW5jb2RpbmdzLCAiU2hpZnRfSklTIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKG5v
bkJhY2tzbGFzaEVuY29kaW5ncywgIlNoaWZ0X0pJU19YMDIxMy0yMDAwIik7Cit9CisKK2Jvb2wg
aXNKYXBhbmVzZUVuY29kaW5nKGNvbnN0IGNoYXIqIGNhbm9uaWNhbEVuY29kaW5nTmFtZSkKK3sK
KyAgICByZXR1cm4gY2Fub25pY2FsRW5jb2RpbmdOYW1lICYmIGphcGFuZXNlRW5jb2RpbmdzICYm
IGphcGFuZXNlRW5jb2RpbmdzLT5jb250YWlucyhjYW5vbmljYWxFbmNvZGluZ05hbWUpOworfQor
Citib29sIHNob3VsZFNob3dCYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sSW4oY29uc3QgY2hhciog
Y2Fub25pY2FsRW5jb2RpbmdOYW1lKQoreworICAgIHJldHVybiBjYW5vbmljYWxFbmNvZGluZ05h
bWUgJiYgbm9uQmFja3NsYXNoRW5jb2RpbmdzICYmIG5vbkJhY2tzbGFzaEVuY29kaW5ncy0+Y29u
dGFpbnMoY2Fub25pY2FsRW5jb2RpbmdOYW1lKTsKK30KKwogc3RhdGljIHZvaWQgZXh0ZW5kVGV4
dENvZGVjTWFwcygpCiB7CiAjaWYgVVNFKElDVV9VTklDT0RFKQpAQCAtMjc3LDYgKzMzMCw3IEBA
IHN0YXRpYyB2b2lkIGV4dGVuZFRleHRDb2RlY01hcHMoKQogI2VuZGlmCiAKICAgICBwcnVuZUJs
YWNrbGlzdGVkQ29kZWNzKCk7CisgICAgYnVpbGRRdWlya3NTZXRzKCk7CiB9CiAKIFBhc3NPd25Q
dHI8VGV4dENvZGVjPiBuZXdUZXh0Q29kZWMoY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmgKaW5kZXggODFi
N2M0Yzk2ODBlMmQ2ZDM1YjE2MzMwZWE0ZWQ1MmYzMzNiYmQwYy4uMTY4NDRjNmIyY2Q5ZDdmOGVk
ZjI4ZjIzMjJlNjRiYjI4OWI0OWE3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZ1JlZ2lzdHJ5LmgKQEAgLTM5LDEyICszOSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgLy8gVXNlIFRleHRFbmNvZGluZzo6ZW5jb2RlIHRvIGVuY29kZSwgc2luY2UgaXQgdGFr
ZXMgY2FyZSBvZiBub3JtYWxpemF0aW9uLgogICAgIFBhc3NPd25QdHI8VGV4dENvZGVjPiBuZXdU
ZXh0Q29kZWMoY29uc3QgVGV4dEVuY29kaW5nJik7CiAKLSAgICAvLyBPbmx5IFRleHRFbmNvZGlu
ZyBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkuCisgICAgLy8gT25seSBUZXh0RW5j
b2Rpbmcgc2hvdWxkIHVzZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBkaXJlY3RseS4KICAgICBj
b25zdCBjaGFyKiBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IGNoYXIqIGFs
aWFzKTsKICAgICBjb25zdCBjaGFyKiBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKGNv
bnN0IFVDaGFyKiBhbGlhc0NoYXJhY3RlcnMsIHNpemVfdCBhbGlhc0xlbmd0aCk7Ci0KLSAgICAv
LyBPbmx5IFRleHRFbmNvZGluZyBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkuCiAg
ICAgYm9vbCBub0V4dGVuZGVkVGV4dEVuY29kaW5nTmFtZVVzZWQoKTsKKyAgICBib29sIGlzSmFw
YW5lc2VFbmNvZGluZyhjb25zdCBjaGFyKiBjYW5vbmljYWxFbmNvZGluZ05hbWUpOworICAgIGJv
b2wgc2hvdWxkU2hvd0JhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2xJbihjb25zdCBjaGFyKiBjYW5v
bmljYWxFbmNvZGluZ05hbWUpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgZHVtcFRleHRF
bmNvZGluZ05hbWVNYXAoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74536</attachid>
            <date>2010-11-22 02:59:08 -0800</date>
            <delta_ts>2010-12-06 20:55:28 -0800</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-49714-20101122195906.patch</filename>
            <type>text/plain</type>
            <size>13154</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyZTU4NmExNzNkOTI2OTU1NDVkMDQ0Yjg1NGQ4ZTBkN2RkLi5hNjczNjhk
NzQ3ZDhmMDYwYmQwMmNlMTQ0OWFkNzExYTYwYzM4NDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91
bGQgd29yayB3aXRoIFNoaWZ0X0pJUyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAg
ICBVc2UgU2hpZnRfSklTIGluc3RlYWQgb2YgU2hpZnRfSklTX1gwMjEzLTIwMDAgYmVjYXVzZSBT
aGlmdF9KSVNfWDAyMTMtMjAwMAorICAgICAgICBlbmNvZGluZyBpcyBhdmFpbGFibGUgb25seSBv
biBNYWMuCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIElTTy0yMDIyLUpQLgorCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNo
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
OgorCiAyMDEwLTExLTIxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZmluZC15ZW5zaWduLWFuZC1iYWNr
c2xhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGJhYTA0OTM1YjI5MDQ5NjhjMWY5ZDI3YjBiNzhmMjhm
ODBlYjdkZjAuLjZmMGVlOTMwYjViMjcwMGRjYWM0M2FjYzg0ZGRmMmFkMGMyNjg1MjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFj
a3NsYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
aW5kLXllbnNpZ24tYW5kLWJhY2tzbGFzaC1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTMgQEAK
IFwtaW4tYm9keQotICAKKyAgIAogUmVzdWx0cwogCiBXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBp
biBFVUMtSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBmaW5kIGEg
YmFja3NsYXNoIGluIEVVQy1KUCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQ
QVNTCi1XZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVNfWDAyMTMtMjAwMCBwYWdl
IGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUwotV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4g
U2hpZnRfSklTX1gwMjEzLTIwMDAgdGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjog
UEFTUworV2UgY2FuIGZpbmQgYSBiYWNrc2xhc2ggaW4gU2hpZnRfSklTIHBhZ2UgYnkgZmluZGlu
ZyBhIHllbiBzaWduOiBQQVNTCitXZSBjYW4gZmluZCBhIGJhY2tzbGFzaCBpbiBTaGlmdF9KSVMg
dGV4dCBjb250cm9sIGJ5IGZpbmRpbmcgYSB5ZW4gc2lnbjogUEFTUworV2UgY2FuIGZpbmQgYSBi
YWNrc2xhc2ggaW4gSVNPLTIwMjItSlAgcGFnZSBieSBmaW5kaW5nIGEgeWVuIHNpZ246IFBBU1MK
K1dlIGNhbiBmaW5kIGEgYmFja3NsYXNoIGluIElTTy0yMDIyLUpQIHRleHQgY29udHJvbCBieSBm
aW5kaW5nIGEgeWVuIHNpZ246IFBBU1MKIFdlIGNhbiBOT1QgZmluZCBhIGJhY2tzbGFzaCBpbiBV
VEY4IHBhZ2UgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNTCiBXZSBjYW4gTk9UIGZpbmQgYSBi
YWNrc2xhc2ggaW4gVVRGOCB0ZXh0IGNvbnRyb2wgYnkgZmluZGluZyBhIHllbiBzaWduOiBQQVNT
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9maW5k
LXllbnNpZ24tYW5kLWJhY2tzbGFzaC5odG1sCmluZGV4IDFiNzQ4YTE5YzUyM2ZhZjk5MTMyYjgz
MGMyMDJkMjkyNjYzNWMwMWEuLjIxNmEzYjZiZWUwZTE3YTAyZGFiYmMxMzQzZTExYmZhOWIzYzM3
ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2ln
bi1hbmQtYmFja3NsYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZmluZC15ZW5zaWduLWFuZC1iYWNrc2xhc2guaHRtbApAQCAtMSw2ICsxLDUgQEAKIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+Ci0KIDxoZWFkPgogPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogPHNjcmlw
dD4KQEAgLTIyLDcgKzIxLDcgQEAgZnVuY3Rpb24gc2hvdWxkQmVUcnVlKGNvbmRpdGlvbiwgdGVz
dE5hbWUpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICAvLyBXaXRoIHRoZXNlIGVuY29kaW5ncywg
YmFja3NsYXNoZXMgd2lsbCBiZSB0cmFuc2NvZGVkIGludG8geWVuIHNpZ25zLgotICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVNfWDAyMTMtMjAwMCJdOworICAgIHZhciBl
bmNvZGluZ3MgPSBbIkVVQy1KUCIsICJTaGlmdF9KSVMiLCAiSVNPLTIwMjItSlAiXTsKICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGVuY29kaW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgICB2YXIg
ZW5jb2RpbmcgPSBlbmNvZGluZ3NbaV07CiAgICAgICAgIHZhciBmcmFtZURvY3VtZW50ID0gZnJh
bWVzW2ldLmRvY3VtZW50OwpAQCAtMzYsMTkgKzM1LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiA8
L3NjcmlwdD4KIDwvaGVhZD4KLQogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgogCiA8ZGl2PlwtaW4t
Ym9keTwvZGl2PgogPGlucHV0IHZhbHVlPVwtaW4taW5wdXQ+CiA8aWZyYW1lIHNyYz0iZGF0YTp0
ZXh0L2h0bWw7Y2hhcnNldD1FVUMtSlAsPGJvZHk+XC1pbi1ib2R5PGlucHV0IHZhbHVlPVwtaW4t
aW5wdXQ+PC9ib2R5PiI+PC9pZnJhbWU+Ci08aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWw7Y2hh
cnNldD1TaGlmdF9KSVNfWDAyMTMtMjAwMCw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1p
bi1pbnB1dD48L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtj
aGFyc2V0PVNoaWZ0X0pJUyw8Ym9keT5cLWluLWJvZHk8aW5wdXQgdmFsdWU9XC1pbi1pbnB1dD48
L2JvZHk+Ij48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PUlT
Ty0yMDIyLUpQLDxib2R5PlwtaW4tYm9keTxpbnB1dCB2YWx1ZT1cLWluLWlucHV0PjwvYm9keT4i
PjwvaWZyYW1lPgogCiA8cD5SZXN1bHRzPC9wPgogCiA8cCBpZD0icmVzdWx0cyI+CiA8L3A+Ci0K
IDwvYm9keT4KLQogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGI0ZDM2NGIzYzgwOTJlM2Y5Njk2Mjg5OWNj
ZDIxMjlmZTQ5MDc1ZTAuLmM4NWE3NzlhODQ3N2JhY2E1MzAwNzIzNjM5MDI1ZGVlOWM4YzU4OWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTY5MCw3ICs2OTAsNiBAQCBCVUcyODkxNiBNQUMgOiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUteG1sLnhodG1sID0gVEVYVAogLy8gRmxha3kKIEJVRzMxODAzIE1BQyBMSU5V
WCA6IGVkaXRpbmcvaW5zZXJ0aW5nLzEyODgyLmh0bWwgPSBJTUFHRSBQQVNTCiAKLUJVRzM4NjUz
IE1BQyA6IGVkaXRpbmcvc2VsZWN0aW9uL2ZpbmQteWVuc2lnbi1hbmQtYmFja3NsYXNoLmh0bWwg
PSBURVhUCiBCVUdXSzQ1NDM4IDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy5odG1sID0gVEVYVAogCiAvLyBTZWxlY3Rpb24gaXMgd3JvbmcuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg3MjE0
NDNiZDc3YzMwMjQ3NmVlN2M5OTkyMTJlM2U0YjQyZDQyNjguLjk2N2RkNmQ0OGJlOTIzZDQxMzg0
MGZkZDBkZjQ2NGE4YWRkMGMxZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMTEtMTcgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFllbnNpZ24gaGFjayBzaG91bGQgd29yayB3aXRoIFNoaWZ0X0pJ
UyBhbmQgSVNPLTIwMjItSlAgZW5jb2RpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MTQKKworICAgICAgICBJRSBjaG9vc2VzIGEgZm9udCB3
aGljaCBzaG93cyBhIHllbnNpZ24gZm9yIDB4NWMgY29kZSBwb2ludCBmb3IgYSBwYWdlCisgICAg
ICAgIGVuY29kZWQgaW4geC1tYWMtamFwYW5lc2UsIElTTy0yMDIyLUpQLCBFVUMtSlAsIFNoaWZ0
X0pJUywgU2hpZnRfSklTX1gwMjEzLTIwMDAsCisgICAgICAgIHgtc2ppcywgYW5kIFdpbmRvd3Mt
MzFKLgorICAgICAgICBXZSBoYXZlIGVtdWxhdGVkIHRoaXMgYmVoYXZpb3IgYnkgcmVwbGFjaW5n
IDB4NWMgd2l0aCAweGE1IGZvciBFVUMtSlAgYW5kCisgICAgICAgIFNoaWZ0X0pJU19YMDIxMy0y
MDAwLiBUaGlzIGNoYW5nZSBhZGRzIG90aGVyIGVuY29kaW5ncyBhYm92ZS4KKworICAgICAgICBB
bHNvLCB3ZSBtb3ZlIHRoZSBIYXNoU2V0IGluaXRpYWxpemF0aW9uIGZvciBpc0phcGFuZXNlKCkg
YW5kCisgICAgICAgIGJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSB0byBUZXh0RW5jb2RpbmdS
ZWdpc3RyeS5jcHAgYmVjYXVzZSBvZgorICAgICAgICBlYXNlIG9mIG1ha2luZyB0aGVtIG11bHRp
LXRocmVhZCBzYWZlLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEVuY29kaW5nOjppc0phcGFuZXNlKTogSnVzdCBjYWxs
cyBpc0phcGFuZXNlRW5jb2RpbmcoKS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRFbmNvZGluZzo6
YmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCk6IFVzZXMgc2hvdWxkU2hvd0JhY2tzbGFzaEFzQ3Vy
cmVuY3lTeW1ib2xJbigpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVn
aXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkRW5jb2RpbmdOYW1lKTogTW92ZWQgZnJv
bSBUZXh0RW5jb2RpbmcuY3BwLCBhbmQgc3RvcCB1c2luZyBhdG9taWNDYW5vbmljYWxUZXh0RW5j
b2RpbmdOYW1lKCkuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFF1aXJrc1NldHMpOiBBZGRlZC4g
SW5pdGlhbGl6ZXMgSGFzaFNldHMgZm9yIGlzSmFwYW5lc2VFbmNvZGluZygpIGFuZCBzaG91bGRT
aG93QmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbEluKCkuCisgICAgICAgIChXZWJDb3JlOjppc0ph
cGFuZXNlRW5jb2RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkU2hvd0JhY2tzbGFzaEFz
Q3VycmVuY3lTeW1ib2xJbik6CisgICAgICAgIChXZWJDb3JlOjpleHRlbmRUZXh0Q29kZWNNYXBz
KTogQWRkIGEgY2FsbCB0byBidWlsZFF1aXJrc1NldHMoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5Lmg6CisKIDIwMTAtMTEtMjEgIFBhdHJpY2sgR2Fuc3Rl
cmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6
dHJvZ29uw6FjLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCA1OGU2
OTFmMGQ1M2NjNzdiN2Q4M2U2MTFkZDBkMjgzMGM3MjlhZWI1Li4zMzMxM2EwZDhhMTkxNzZhYWMw
YjBmZmM2YTlkZmJiOWM0MDcwYzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5n
LmNwcApAQCAtNDAsMTkgKzQwLDExIEBACiAjaW5jbHVkZSAiR093blB0ci5oIgogI2VuZGlmCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9pZCBhZGRFbmNvZGluZ05hbWUoSGFzaFNl
dDxjb25zdCBjaGFyKj4mIHNldCwgY29uc3QgY2hhciogbmFtZSkKLXsKLSAgICBjb25zdCBjaGFy
KiBhdG9taWNOYW1lID0gYXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZShuYW1lKTsKLSAg
ICBpZiAoYXRvbWljTmFtZSkKLSAgICAgICAgc2V0LmFkZChhdG9taWNOYW1lKTsKLX0KLQogc3Rh
dGljIGNvbnN0IFRleHRFbmNvZGluZyYgVVRGN0VuY29kaW5nKCkKIHsKICAgICBzdGF0aWMgVGV4
dEVuY29kaW5nIGdsb2JhbFVURjdFbmNvZGluZygiVVRGLTciKTsKQEAgLTE3MywzOSArMTY1LDEy
IEBAIGJvb2wgVGV4dEVuY29kaW5nOjp1c2VzVmlzdWFsT3JkZXJpbmcoKSBjb25zdAogCiBib29s
IFRleHRFbmNvZGluZzo6aXNKYXBhbmVzZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG5vRXh0ZW5kZWRU
ZXh0RW5jb2RpbmdOYW1lVXNlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8Y29uc3QgY2hhcio+LCBzZXQsICgpKTsKLSAgICBpZiAo
c2V0LmlzRW1wdHkoKSkgewotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAieC1tYWMtamFw
YW5lc2UiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgImNwOTMyIik7Ci0gICAgICAg
IGFkZEVuY29kaW5nTmFtZShzZXQsICJKSVNfWDAyMDEiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdO
YW1lKHNldCwgIkpJU19YMDIwOC0xOTgzIik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQs
ICJKSVNfWDAyMDgtMTk5MCIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSklTX1gw
MjEyLTE5OTAiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIkpJU19DNjIyNi0xOTc4
Iik7Ci0gICAgICAgIGFkZEVuY29kaW5nTmFtZShzZXQsICJTaGlmdF9KSVNfWDAyMTMtMjAwMCIp
OwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiSVNPLTIwMjItSlAiKTsKLSAgICAgICAg
YWRkRW5jb2RpbmdOYW1lKHNldCwgIklTTy0yMDIyLUpQLTIiKTsKLSAgICAgICAgYWRkRW5jb2Rp
bmdOYW1lKHNldCwgIklTTy0yMDIyLUpQLTEiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNl
dCwgIklTTy0yMDIyLUpQLTMiKTsKLSAgICAgICAgYWRkRW5jb2RpbmdOYW1lKHNldCwgIkVVQy1K
UCIpOwotICAgICAgICBhZGRFbmNvZGluZ05hbWUoc2V0LCAiU2hpZnRfSklTIik7Ci0gICAgfQot
ICAgIHJldHVybiBtX25hbWUgJiYgc2V0LmNvbnRhaW5zKG1fbmFtZSk7CisgICAgcmV0dXJuIGlz
SmFwYW5lc2VFbmNvZGluZyhtX25hbWUpOwogfQogCiBVQ2hhciBUZXh0RW5jb2Rpbmc6OmJhY2tz
bGFzaEFzQ3VycmVuY3lTeW1ib2woKSBjb25zdAogewotICAgIGlmIChub0V4dGVuZGVkVGV4dEVu
Y29kaW5nTmFtZVVzZWQoKSkKLSAgICAgICAgcmV0dXJuICdcXCc7Ci0KLSAgICAvLyBUaGUgdGV4
dCBlbmNvZGluZ3MgYmVsb3cgdHJlYXQgYmFja3NsYXNoIGFzIGEgY3VycmVuY3kgc3ltYm9sLgot
ICAgIC8vIFNlZSBodHRwOi8vYmxvZ3MubXNkbi5jb20vbWljaGthcC9hcmNoaXZlLzIwMDUvMDkv
MTcvNDY5OTQxLmFzcHggZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0IGEgPSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKCJTaGlmdF9KSVNf
WDAyMTMtMjAwMCIpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBiID0gYXRvbWljQ2Fu
b25pY2FsVGV4dEVuY29kaW5nTmFtZSgiRVVDLUpQIik7Ci0gICAgcmV0dXJuIChtX25hbWUgPT0g
YSB8fCBtX25hbWUgPT0gYikgPyAweDAwQTUgOiAnXFwnOworICAgIHJldHVybiBzaG91bGRTaG93
QmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbEluKG1fbmFtZSkgPyAweDAwQTUgOiAnXFwnOwogfQog
CiBib29sIFRleHRFbmNvZGluZzo6aXNOb25CeXRlQmFzZWRFbmNvZGluZygpIGNvbnN0CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAppbmRleCA2YmY1
NTUyODdiYzNjNDA2ZTQwZmYzMzdhNTAxMDViMjE5MTM2YzlkLi5iZDY3NTI5NTIxNmE3MWZmYjhi
ZmVhMWQxNmVhMjZjNTU0NjdjOWE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdSZWdpc3RyeS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgpAQCAtMTI1LDYgKzEyNiw4IEBAIHN0YXRpYyBNdXRleCYgZW5jb2RpbmdS
ZWdpc3RyeU11dGV4KCkKIHN0YXRpYyBUZXh0RW5jb2RpbmdOYW1lTWFwKiB0ZXh0RW5jb2RpbmdO
YW1lTWFwOwogc3RhdGljIFRleHRDb2RlY01hcCogdGV4dENvZGVjTWFwOwogc3RhdGljIGJvb2wg
ZGlkRXh0ZW5kVGV4dENvZGVjTWFwczsKK3N0YXRpYyBIYXNoU2V0PGNvbnN0IGNoYXIqPiogamFw
YW5lc2VFbmNvZGluZ3M7CitzdGF0aWMgSGFzaFNldDxjb25zdCBjaGFyKj4qIG5vbkJhY2tzbGFz
aEVuY29kaW5nczsKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHRleHRFbmNvZGluZ05hbWVC
bGFja2xpc3RbXSA9IHsKICAgICAiVVRGLTciCkBAIC0yNDksNiArMjUyLDU2IEBAIHN0YXRpYyB2
b2lkIGJ1aWxkQmFzZVRleHRDb2RlY01hcHMoKQogI2VuZGlmCiB9CiAKK3N0YXRpYyB2b2lkIGFk
ZEVuY29kaW5nTmFtZShIYXNoU2V0PGNvbnN0IGNoYXIqPiogc2V0LCBjb25zdCBjaGFyKiBuYW1l
KQoreworICAgIC8vIFdlIG11c3Qgbm90IHVzZSBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdO
YW1lKCkgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBpdC4KKyAgICBjb25zdCBj
aGFyKiBhdG9taWNOYW1lID0gdGV4dEVuY29kaW5nTmFtZU1hcC0+Z2V0KG5hbWUpOworICAgIGlm
IChhdG9taWNOYW1lKQorICAgICAgICBzZXQtPmFkZChhdG9taWNOYW1lKTsKK30KKworc3RhdGlj
IHZvaWQgYnVpbGRRdWlya3NTZXRzKCkKK3sKKyAgICBBU1NFUlQoIWphcGFuZXNlRW5jb2Rpbmdz
KTsKKyAgICBBU1NFUlQoIW5vbkJhY2tzbGFzaEVuY29kaW5ncyk7CisKKyAgICBqYXBhbmVzZUVu
Y29kaW5ncyA9IG5ldyBIYXNoU2V0PGNvbnN0IGNoYXIqPigpOworICAgIGFkZEVuY29kaW5nTmFt
ZShqYXBhbmVzZUVuY29kaW5ncywgIkVVQy1KUCIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBh
bmVzZUVuY29kaW5ncywgIklTTy0yMDIyLUpQIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGphcGFu
ZXNlRW5jb2RpbmdzLCAiSVNPLTIwMjItSlAtMSIpOworICAgIGFkZEVuY29kaW5nTmFtZShqYXBh
bmVzZUVuY29kaW5ncywgIklTTy0yMDIyLUpQLTIiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFw
YW5lc2VFbmNvZGluZ3MsICJJU08tMjAyMi1KUC0zIik7CisgICAgYWRkRW5jb2RpbmdOYW1lKGph
cGFuZXNlRW5jb2RpbmdzLCAiSklTX0M2MjI2LTE5NzgiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUo
amFwYW5lc2VFbmNvZGluZ3MsICJKSVNfWDAyMDEiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUoamFw
YW5lc2VFbmNvZGluZ3MsICJKSVNfWDAyMDgtMTk4MyIpOworICAgIGFkZEVuY29kaW5nTmFtZShq
YXBhbmVzZUVuY29kaW5ncywgIkpJU19YMDIwOC0xOTkwIik7CisgICAgYWRkRW5jb2RpbmdOYW1l
KGphcGFuZXNlRW5jb2RpbmdzLCAiSklTX1gwMjEyLTE5OTAiKTsKKyAgICBhZGRFbmNvZGluZ05h
bWUoamFwYW5lc2VFbmNvZGluZ3MsICJTaGlmdF9KSVMiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUo
amFwYW5lc2VFbmNvZGluZ3MsICJTaGlmdF9KSVNfWDAyMTMtMjAwMCIpOworICAgIGFkZEVuY29k
aW5nTmFtZShqYXBhbmVzZUVuY29kaW5ncywgImNwOTMyIik7CisgICAgYWRkRW5jb2RpbmdOYW1l
KGphcGFuZXNlRW5jb2RpbmdzLCAieC1tYWMtamFwYW5lc2UiKTsKKworICAgIG5vbkJhY2tzbGFz
aEVuY29kaW5ncyA9IG5ldyBIYXNoU2V0PGNvbnN0IGNoYXIqPigpOworICAgIC8vIFRoZSB0ZXh0
IGVuY29kaW5ncyBiZWxvdyB0cmVhdCBiYWNrc2xhc2ggYXMgYSBjdXJyZW5jeSBzeW1ib2wgZm9y
IElFIGNvbXBhdGliaWxpdHkuCisgICAgLy8gU2VlIGh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9taWNo
a2FwL2FyY2hpdmUvMjAwNS8wOS8xNy80Njk5NDEuYXNweCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K
KyAgICBhZGRFbmNvZGluZ05hbWUobm9uQmFja3NsYXNoRW5jb2RpbmdzLCAieC1tYWMtamFwYW5l
c2UiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUobm9uQmFja3NsYXNoRW5jb2RpbmdzLCAiSVNPLTIw
MjItSlAiKTsKKyAgICBhZGRFbmNvZGluZ05hbWUobm9uQmFja3NsYXNoRW5jb2RpbmdzLCAiRVVD
LUpQIik7CisgICAgLy8gU2hpZnRfSklTX1gwMjEzLTIwMDAgaXMgbm90IHRoZSBzYW1lIGVuY29k
aW5nIGFzIFNoaWZ0X0pJUyBvbiBNYWMuIFdlIG5lZWQgdG8gcmVnaXN0ZXIgYm90aCBvZiB0aGVt
LgorICAgIGFkZEVuY29kaW5nTmFtZShub25CYWNrc2xhc2hFbmNvZGluZ3MsICJTaGlmdF9KSVMi
KTsKKyAgICBhZGRFbmNvZGluZ05hbWUobm9uQmFja3NsYXNoRW5jb2RpbmdzLCAiU2hpZnRfSklT
X1gwMjEzLTIwMDAiKTsKK30KKworYm9vbCBpc0phcGFuZXNlRW5jb2RpbmcoY29uc3QgY2hhciog
Y2Fub25pY2FsRW5jb2RpbmdOYW1lKQoreworICAgIHJldHVybiBjYW5vbmljYWxFbmNvZGluZ05h
bWUgJiYgamFwYW5lc2VFbmNvZGluZ3MgJiYgamFwYW5lc2VFbmNvZGluZ3MtPmNvbnRhaW5zKGNh
bm9uaWNhbEVuY29kaW5nTmFtZSk7Cit9CisKK2Jvb2wgc2hvdWxkU2hvd0JhY2tzbGFzaEFzQ3Vy
cmVuY3lTeW1ib2xJbihjb25zdCBjaGFyKiBjYW5vbmljYWxFbmNvZGluZ05hbWUpCit7CisgICAg
cmV0dXJuIGNhbm9uaWNhbEVuY29kaW5nTmFtZSAmJiBub25CYWNrc2xhc2hFbmNvZGluZ3MgJiYg
bm9uQmFja3NsYXNoRW5jb2RpbmdzLT5jb250YWlucyhjYW5vbmljYWxFbmNvZGluZ05hbWUpOwor
fQorCiBzdGF0aWMgdm9pZCBleHRlbmRUZXh0Q29kZWNNYXBzKCkKIHsKICNpZiBVU0UoSUNVX1VO
SUNPREUpCkBAIC0yNzcsNiArMzMwLDcgQEAgc3RhdGljIHZvaWQgZXh0ZW5kVGV4dENvZGVjTWFw
cygpCiAjZW5kaWYKIAogICAgIHBydW5lQmxhY2tsaXN0ZWRDb2RlY3MoKTsKKyAgICBidWlsZFF1
aXJrc1NldHMoKTsKIH0KIAogUGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlYyhjb25z
dCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nUmVnaXN0cnkuaAppbmRleCA4MWI3YzRjOTY4MGUyZDZkMzViMTYzMzBlYTRlZDUyZjMz
M2JiZDBjLi4xNjg0NGM2YjJjZDlkN2Y4ZWRmMjhmMjMyMmU2NGJiMjg5YjQ5YTdjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuaApAQCAtMzksMTIgKzM5
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBVc2UgVGV4dEVuY29kaW5nOjplbmNv
ZGUgdG8gZW5jb2RlLCBzaW5jZSBpdCB0YWtlcyBjYXJlIG9mIG5vcm1hbGl6YXRpb24uCiAgICAg
UGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlYyhjb25zdCBUZXh0RW5jb2RpbmcmKTsK
IAotICAgIC8vIE9ubHkgVGV4dEVuY29kaW5nIHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbiBkaXJl
Y3RseS4KKyAgICAvLyBPbmx5IFRleHRFbmNvZGluZyBzaG91bGQgdXNlIHRoZSBmb2xsb3dpbmcg
ZnVuY3Rpb25zIGRpcmVjdGx5LgogICAgIGNvbnN0IGNoYXIqIGF0b21pY0Nhbm9uaWNhbFRleHRF
bmNvZGluZ05hbWUoY29uc3QgY2hhciogYWxpYXMpOwogICAgIGNvbnN0IGNoYXIqIGF0b21pY0Nh
bm9uaWNhbFRleHRFbmNvZGluZ05hbWUoY29uc3QgVUNoYXIqIGFsaWFzQ2hhcmFjdGVycywgc2l6
ZV90IGFsaWFzTGVuZ3RoKTsKLQotICAgIC8vIE9ubHkgVGV4dEVuY29kaW5nIHNob3VsZCB1c2Ug
dGhpcyBmdW5jdGlvbiBkaXJlY3RseS4KICAgICBib29sIG5vRXh0ZW5kZWRUZXh0RW5jb2RpbmdO
YW1lVXNlZCgpOworICAgIGJvb2wgaXNKYXBhbmVzZUVuY29kaW5nKGNvbnN0IGNoYXIqIGNhbm9u
aWNhbEVuY29kaW5nTmFtZSk7CisgICAgYm9vbCBzaG91bGRTaG93QmFja3NsYXNoQXNDdXJyZW5j
eVN5bWJvbEluKGNvbnN0IGNoYXIqIGNhbm9uaWNhbEVuY29kaW5nTmFtZSk7CiAKICNpZm5kZWYg
TkRFQlVHCiAgICAgdm9pZCBkdW1wVGV4dEVuY29kaW5nTmFtZU1hcCgpOwo=
</data>
<flag name="review"
          id="65167"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>