<?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>27756</bug_id>
          
          <creation_ts>2009-07-27 21:36:49 -0700</creation_ts>
          <short_desc>[HTML5][Forms] Part 2 of datalist&amp;list: Support for HTMLInputElement::list and HTMLInputElement::selectedOption</short_desc>
          <delta_ts>2009-08-27 02:25:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-input-list</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>26915</dependson>
          <blocked>19264</blocked>
    
    <blocked>27247</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135125</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-27 21:36:49 -0700</bug_when>
    <thetext>Add support for two DOM attributes, list and selectedOption, of INPUT element.

I already have a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135130</commentid>
    <comment_count>1</comment_count>
      <attachid>33604</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-27 23:35:10 -0700</bug_when>
    <thetext>Created attachment 33604
Support for HTMLInputElement::list and HTMLInputElement::selectedOption.


---
 10 files changed, 274 insertions(+), 1 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135265</commentid>
    <comment_count>2</comment_count>
      <attachid>33604</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-28 10:46:28 -0700</bug_when>
    <thetext>Comment on attachment 33604
Support for HTMLInputElement::list and HTMLInputElement::selectedOption.

Normally we don&apos;t commit commented-out code:
 1738     //case DATETIME:
 1739     //case DATE:
 1740     //case MONTH:
 1741     //case WEEK:
 1742     //case TIME:
 1743     //case DATETIMELOCAL:

Why does this need to be PassRefPtr?
 1727 PassRefPtr&lt;HTMLElement&gt; HTMLInputElement::list()
your&apos;e not returning a newly allocated list.

This is very very bad:
 1751             return static_cast&lt;HTMLElement*&gt;(element.get());
That would normally crash.  Grabbing a pointer out of a RefPtr and returning it is not ok. :(  .release() is what you wanted there.  But again, I don&apos;t think we need this to be a PassRefPtr, or?

Also probably doesn&apos;t need to be PassRefPtr:
 1770 PassRefPtr&lt;HTMLOptionElement&gt; HTMLInputElement::selectedOption()

WK style violation:
         if (element &amp;&amp; element-&gt;isHTMLElement() &amp;&amp; element-&gt;hasTagName(datalistTag)) {
 1751             return static_cast&lt;HTMLElement*&gt;(element.get());
 1752         }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135453</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 18:37:43 -0700</bug_when>
    <thetext>Thanks for the comments.  I have misunderstood the usage of PassRefPtr.  I&apos;ll update the patch.
BTW, this patch depends on the patch in https://bugs.webkit.org/show_bug.cgi?id=26915 .  Would you take a look at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135497</commentid>
    <comment_count>4</comment_count>
      <attachid>33694</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-28 22:52:18 -0700</bug_when>
    <thetext>Created attachment 33694
Support for HTMLInputElement::list and HTMLInputElement::selectedOption.


---
 10 files changed, 265 insertions(+), 1 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135608</commentid>
    <comment_count>5</comment_count>
      <attachid>33694</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-29 09:33:47 -0700</bug_when>
    <thetext>Comment on attachment 33694
Support for HTMLInputElement::list and HTMLInputElement::selectedOption.

You can just check here for dataListTag and cast directly to an HTMLDataListElement:
742         if (element &amp;&amp; element-&gt;isHTMLElement() &amp;&amp; element-&gt;hasTagName(datalistTag))
 1743             return static_cast&lt;HTMLElement*&gt;(element)

Not required but slightly cleaner.

isEmpty() checks null:
 697         m_hasNonEmptyList = !attr-&gt;isNull() &amp;&amp; !attr-&gt;isEmpty();

This sseems like the long way around:
      bool hadNonEmptyList = m_hasNonEmptyList;
 697         m_hasNonEmptyList = !attr-&gt;isNull() &amp;&amp; !attr-&gt;isEmpty();
 698         if (hadNonEmptyList != m_hasNonEmptyList &amp;&amp; attached()) {
 699             // Re-create a renderer because m_hasNonEmptyList affects UI.
 700             detach();
 701             attach();
 702         }

Do you really need to attach/detach every time?  Can&apos;t you do a layout or a style recalc?  What does the list do to the renderer?

list() clearly should return a HTMLDataListElement*, or?  Otherwise you certainly shouldn&apos;t be blindly casting to one in callers of list()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136120</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-31 02:10:07 -0700</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #5)
&gt; (From update of attachment 33694 [details])
&gt; You can just check here for dataListTag and cast directly to an
&gt; HTMLDataListElement:

done.

&gt; isEmpty() checks null:
&gt;  697         m_hasNonEmptyList = !attr-&gt;isNull() &amp;&amp; !attr-&gt;isEmpty();

done.

&gt; This sseems like the long way around:
&gt;       bool hadNonEmptyList = m_hasNonEmptyList;
&gt;  697         m_hasNonEmptyList = !attr-&gt;isNull() &amp;&amp; !attr-&gt;isEmpty();
&gt;  698         if (hadNonEmptyList != m_hasNonEmptyList &amp;&amp; attached()) {
&gt;  699             // Re-create a renderer because m_hasNonEmptyList affects UI.
&gt;  700             detach();
&gt;  701             attach();
&gt;  702         }
&gt; 
&gt; Do you really need to attach/detach every time?  Can&apos;t you do a layout or a
&gt; style recalc?  What does the list do to the renderer?

The list attribute will creates a shadow child of the input element.  I just followed the code for resultsAttr above in this method.  RenderTextControlSingleLine doesn&apos;t have a feature to remove a shadow child and re-layout.  So detach()&amp;attach() was a simple solution.
Anyway, I have removed this code because we don&apos;t have the list UI for now.  I&apos;ll re-implement another way in another patch.

&gt; list() clearly should return a HTMLDataListElement*, or?  Otherwise you
&gt; certainly shouldn&apos;t be blindly casting to one in callers of list()

HTML5 defines that `list&apos; returns HTMLElement.  According to Hixie, we might add other list source elements in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136121</commentid>
    <comment_count>7</comment_count>
      <attachid>33863</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-07-31 02:21:27 -0700</bug_when>
    <thetext>Created attachment 33863
Proposed patch (rev.3)

Note: this patch depends on the patch of https://bugs.webkit.org/show_bug.cgi?id=26915</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137165</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-04 15:54:18 -0700</bug_when>
    <thetext>dhyatt was working on &lt;datalist&gt; support, he should be CCed on all bugs about it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137747</commentid>
    <comment_count>9</comment_count>
      <attachid>33863</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 19:29:29 -0700</bug_when>
    <thetext>Comment on attachment 33863
Proposed patch (rev.3)

This is not safe:
 1811     RefPtr&lt;HTMLCollection&gt; options = static_cast&lt;HTMLDataListElement*&gt;(sourceElement)-&gt;options();
(at least not if we add more list() types).  I think until we add more list() types we could just make it return HTMLDataListElement*.  But checking at each callsite is OK too.

Seems this needs to be guarded by DATAGRID defines, no?  Or do we have a DataList?  This doesn&apos;t look like a complete implementation, or?

I can&apos;t remember if you&apos;re a committer yet or not.  so r- assuming you&apos;ll need someone else to land after you fix those nits.

This doesn&apos;t seem very useful w/o UI... but this is OK to land for now if it&apos;s guarded by and ENABLE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137773</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-06 20:53:08 -0700</bug_when>
    <thetext>(In reply to comment #9)

Thanks for the comment.

&gt; (From update of attachment 33863 [details])
&gt; This is not safe:
&gt;  1811     RefPtr&lt;HTMLCollection&gt; options =
&gt; static_cast&lt;HTMLDataListElement*&gt;(sourceElement)-&gt;options();
&gt; (at least not if we add more list() types).  I think until we add more list()
&gt; types we could just make it return HTMLDataListElement*.  But checking at each
&gt; callsite is OK too.

Ok, will do.

&gt; Seems this needs to be guarded by DATAGRID defines, no?  Or do we have a
&gt; DataList?  This doesn&apos;t look like a complete implementation, or?

This patch is not related to datagird though the part 1 (#26915) is.  I think it is reasonable to guard by another flag such as ENABLE(INPUT_LIST).

I&apos;ll update the patch after the part 1 is landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141061</commentid>
    <comment_count>11</comment_count>
      <attachid>35032</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-18 02:58:35 -0700</bug_when>
    <thetext>Created attachment 35032
Proposed patch (rev.4)

- The new code is guarded by ENABLE(DATALIST)
- Change the type of HTMLInputElement::list; HTMLElement -&gt; HTMLDataListElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141091</commentid>
    <comment_count>12</comment_count>
      <attachid>35032</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 08:43:51 -0700</bug_when>
    <thetext>Comment on attachment 35032
Proposed patch (rev.4)

Looks OK.  I&apos;m not sure if svn-apply will handle this diff correctly or not.  Assuming not and marking cq-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141092</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-18 08:44:10 -0700</bug_when>
    <thetext>(The ChangeLog bit is the part of the diff I worry about svn-apply handling wrong.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141321</commentid>
    <comment_count>14</comment_count>
      <attachid>35087</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-18 16:49:51 -0700</bug_when>
    <thetext>Created attachment 35087
Proposed patch (rev.5)

Commit-queue-friendly patch :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141797</commentid>
    <comment_count>15</comment_count>
      <attachid>35087</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-20 22:43:20 -0700</bug_when>
    <thetext>Comment on attachment 35087
Proposed patch (rev.5)

Commit queue log from the future!

Applying 35087 from bug 27756.
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/fast/forms/input-list-expected.txt
patching file LayoutTests/fast/forms/input-list.html
patching file LayoutTests/fast/forms/input-selectedoption-expected.txt
patching file LayoutTests/fast/forms/input-selectedoption.html
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebCore/html/HTMLAttributeNames.in
patching file WebCore/html/HTMLInputElement.cpp
patching file WebCore/html/HTMLInputElement.h
patching file WebCore/html/HTMLInputElement.idl
Fetching http://build.webkit.org/one_box_per_builder
Running build-webkit
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/WebKit2/LayoutTests
Testing 11118 test cases.
transitions/extra-transition.html -&gt; failed

Exiting early after 1 failures.  11013 tests run.
383.25s total testing time

11012 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
5 test cases (&lt;1%) had stderr output
Logging in as eric@webkit.org...
Rejecting patch 35087 from commit-queue.  This patch will require manual commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141868</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-21 07:33:48 -0700</bug_when>
    <thetext>&gt; transitions/extra-transition.html -&gt; failed

Would you try to commit the patch again please?
I have confirmed
  - all tests passed with WebKit rev.47628
  - all tests passed with WebKit rev.47628 + this patch.

I&apos;m confident that this patch does not affect transition/extra-transition.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141993</commentid>
    <comment_count>17</comment_count>
      <attachid>35087</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-21 14:55:08 -0700</bug_when>
    <thetext>Comment on attachment 35087
Proposed patch (rev.5)

Ok.  Probably a flakey test then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142061</commentid>
    <comment_count>18</comment_count>
      <attachid>35087</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-21 17:13:44 -0700</bug_when>
    <thetext>Comment on attachment 35087
Proposed patch (rev.5)

Rejecting patch 35087 from commit-queue.  This patch will require manual commit.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot;  exit_code: 1  cwd: None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142063</commentid>
    <comment_count>19</comment_count>
      <attachid>38419</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-21 17:16:44 -0700</bug_when>
    <thetext>Created attachment 38419
bugzilla-tool failure log

Here is the failure log from bugzilla-tool.  This is the first per-bug log it&apos;s ever made. :)  (Feature is in testing.)

You&apos;ll see from the log that trunk/WebCore/html/HTMLInputElement.idl has a tab in it, which caused the svn pre-commit hook to fail.  We really should have svn-create-patch fail for those sorts of things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142264</commentid>
    <comment_count>20</comment_count>
      <attachid>38463</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-23 18:50:42 -0700</bug_when>
    <thetext>Created attachment 38463
Proposed patch (rev.6)

&gt; You&apos;ll see from the log that trunk/WebCore/html/HTMLInputElement.idl has a tab
&gt; in it, which caused the svn pre-commit hook to fail.  

Oh, I&apos;m sorry for that.  I have updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142722</commentid>
    <comment_count>21</comment_count>
      <attachid>38463</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 16:19:10 -0700</bug_when>
    <thetext>Comment on attachment 38463
Proposed patch (rev.6)

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142739</commentid>
    <comment_count>22</comment_count>
      <attachid>38463</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:01:54 -0700</bug_when>
    <thetext>Comment on attachment 38463
Proposed patch (rev.6)

Rejecting patch 38463 from commit-queue.  This patch will require manual commit.

[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;] failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142740</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:03:26 -0700</bug_when>
    <thetext>http/tests/appcache/different-scheme.html -&gt; failed

This seems to have failed with both attempts I just made.

I&apos;ll attach the failure diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142741</commentid>
    <comment_count>24</comment_count>
      <attachid>38577</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:04:01 -0700</bug_when>
    <thetext>Created attachment 38577
(seemingly unrelated) test failure when trying to land this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142745</commentid>
    <comment_count>25</comment_count>
      <attachid>38463</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:18:06 -0700</bug_when>
    <thetext>Comment on attachment 38463
Proposed patch (rev.6)

Nevermind.  This was a local config issue on my part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142752</commentid>
    <comment_count>26</comment_count>
      <attachid>38463</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:51:14 -0700</bug_when>
    <thetext>Comment on attachment 38463
Proposed patch (rev.6)

Clearing flags on attachment: 38463

Committed r47767: &lt;http://trac.webkit.org/changeset/47767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142753</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 17:51:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142840</commentid>
    <comment_count>28</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-08-26 06:39:51 -0700</bug_when>
    <thetext>&gt; +#if defined(ENABLE_DATALIST) &amp;&amp; ENABLE_DATALIST
&gt; +                 // The type of the list is HTMLElement according to the standard.
&gt; +                 // We intentionally use HTMLDataListElement for it because our implementation
&gt; +                 // always returns an HTMLDataListElement instance.
&gt; +        readonly attribute HTMLDataListElement list;
&gt; +#endif

It is not clear to me why the spec has this returning an Element, but I would rather we match it.  Except for extended attributes, I would really like to keep these IDLs as close to the specs word as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143089</commentid>
    <comment_count>29</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-27 02:25:47 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; It is not clear to me why the spec has this returning an Element, but I would
&gt; rather we match it.  Except for extended attributes, I would really like to
&gt; keep these IDLs as close to the specs word as possible.

Ok, I&apos;ll handle it in another bug entry.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33604</attachid>
            <date>2009-07-27 23:35:10 -0700</date>
            <delta_ts>2009-07-28 22:52:13 -0700</delta_ts>
            <desc>Support for HTMLInputElement::list and HTMLInputElement::selectedOption.</desc>
            <filename>bug-27756-20090728153509.patch</filename>
            <type>text/plain</type>
            <size>12190</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjIwMmFhLi5mZDYwNTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVsZW1l
bnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sOiBBZGRlZC4KKwogMjAwOS0wNy0yNCAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxp
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2ExYWY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IGZvciB0aGUgbGlzdCBhdHRyaWJ1dGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0Lmxpc3QgaXMgbnVsbAorUEFT
UyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGlucHV0
Lmxpc3QgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRsMSIpCitQQVNTIGlucHV0Lmxpc3Qg
aXMgbnVsbAorUEFTUyBkYXRhbGlzdC5jbGFzc05hbWUgaXMgImZvcm1lciIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgICAgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjViZDQxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWxpc3QuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8IS0tIE5vIGxpc3QgYXR0cmlidXRlIC0tPgorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpMSI+Cis8IS0tIEVtcHR5IGxpc3QgLS0+Cis8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImkyIiBsaXN0PSIiPgorPCEtLSBOb24tZXhpc3RlbnQgSUQgLS0+Cis8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImkzIiBsaXN0PSJub25leGlzdCI+Cis8IS0tIE5vcm1hbCBjYXNlIC0t
PgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpNCIgbGlzdD0iZGwxIj4KKzwhLS0gVW5zdXBwb3J0
ZWQgdHlwZSAtLT4KKzxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9Imk1IiBsaXN0PSJkbDEiPgor
PCEtLSBJRCBjb25maWxpY3QgLS0+Cis8SW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk2IiBsaXN0PSJk
bDIiPgorCis8ZGF0YWxpc3QgaWQ9ImRsMSI+CisgPG9wdGlvbj52YWx1ZTE8L29wdGlvbj4KKzwv
ZGF0YWxpc3Q+CisKKzxkYXRhbGlzdCBpZD0iZGwyIiBjbGFzcz0iZm9ybWVyIj4KKyA8b3B0aW9u
PnZhbHVlMTwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKzxkYXRhbGlzdCBpZD0iZGwyIiBjbGFzcz0i
bGF0dGVyIj4KKyA8b3B0aW9uPnZhbHVlMTwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciB0aGUgbGlzdCBhdHRyaWJ1dGUuJyk7CisKK3ZhciBp
bnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMScpOworc2hvdWxkQmVOdWxsKCdpbnB1
dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CitzaG91
bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaTMnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlzdCcpOworCitpbnB1dCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpNCcpOworc2hvdWxkQmUoJ2lucHV0Lmxpc3QnLCAnZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRsMSIpJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2k1Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKwordmFyIGRhdGFsaXN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k2JykubGlzdDsKK3Nob3VsZEJlKCdkYXRhbGlzdC5j
bGFzc05hbWUnLCAnImZvcm1lciInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWY4OTRiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdCBmb3IgdGhlIHNlbGVjdGVkT3B0aW9uIGF0dHJpYnV0
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuc2VsZWN0ZWRP
cHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlu
cHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMg
bnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibzEiKQorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibzIiKQorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlucHV0
LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yMDFiMGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzwhLS0gRW1wdHkgdmFsdWUgYW5kIG5v
IGxpc3QgYXR0cmlidXRlIC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpMSIgdmFsdWU9IiI+
Cis8IS0tIEVtcHR5IGxpc3QgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImkyIiB2YWx1ZT0i
Zm9vIiBsaXN0PSIiPgorPCEtLSBFbXB0eSBkYXRhbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTMiIHZhbHVlPSJmb28iIGxpc3Q9ImRsMSI+Cis8IS0tIEVtcHR5IHZhbHVlIGFuZCBl
bXB0eSBvcHRpb24gLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk0IiB2YWx1ZT0iIiBsaXN0
PSJkbDIiPgorPCEtLSBNYXRjaCBjYXNlcyAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTUi
IHZhbHVlPSJmb28iIGxpc3Q9ImRsMyI+Cis8SW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk2IiB2YWx1
ZT0iYmFyIiBsaXN0PSJkbDMiPgorPCEtLSBVbm1hdGNoIGNhc2UgLS0+Cis8SW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Imk3IiB2YWx1ZT0iZm9vIiBsaXN0PSJkbDQiPgorCis8ZGF0YWxpc3QgaWQ9ImRs
MSI+Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDIiPgorIDxvcHRpb24+PC9vcHRpb24+
Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDMiPgorIDxvcHRpb24gaWQ9Im8xIj5mb288
L29wdGlvbj4KKyA8b3B0aW9uIGlkPSJvMiI+YmFyPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorPGRh
dGFsaXN0IGlkPSJkbDMiPgorIDxvcHRpb24+YmFyPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIHRoZSBzZWxlY3RlZE9wdGlvbiBhdHRyaWJ1
dGUuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMScpOworc2hv
dWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpMicpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicp
OworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMycpOworc2hvdWxkQmVOdWxs
KCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpNCcpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNScpOworc2hvdWxkQmUoJ2lucHV0LnNlbGVj
dGVkT3B0aW9uJywgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMSIpJyk7CitpbnB1dCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNicpOworc2hvdWxkQmUoJ2lucHV0LnNlbGVjdGVkT3B0
aW9uJywgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMiIpJyk7CisKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdvMScpLmRpc2FibGVkID0gdHJ1ZTsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2k1Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisK
K2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k3Jyk7CitzaG91bGRCZU51bGwoJ2lu
cHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYmE4MTIwLi45ZjAyMmEyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDA5LTA3LTI3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBw
b3J0IGZvciBIVE1MSW5wdXRFbGVtZW50OjpsaXN0IGFuZCBIVE1MSW5wdXRFbGVtZW50OjpzZWxl
Y3RlZE9wdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NzU2CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojps
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9u
KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsOgorCiAyMDA5LTA3LTI0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDZkNGQzY2IuLmI3NGY2MDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTUsNiArOTUsNyBAQCBsYW5nCiBsYW5ndWFnZQogbGVm
dG1hcmdpbgogbGluaworbGlzdAogbG9uZ2Rlc2MKIGxvb3AKIHBsYXljb3VudApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IGY0YzQ2NmMuLjU2MDM0N2IgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTM4LDkgKzM4LDExIEBACiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJIVE1MRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0
cmluZ3MuaCIKQEAgLTY5MCw3ICs2OTIsMTUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgICAgICAgYXR0
ci0+bmFtZSgpID09IG11bHRpcGxlQXR0ciB8fAogICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9
PSBwcmVjaXNpb25BdHRyKQogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgZWxz
ZQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBsaXN0QXR0cikgeworICAgICAgICBib29s
IGhhZE5vbkVtcHR5TGlzdCA9IG1faGFzTm9uRW1wdHlMaXN0OworICAgICAgICBtX2hhc05vbkVt
cHR5TGlzdCA9ICFhdHRyLT5pc051bGwoKSAmJiAhYXR0ci0+aXNFbXB0eSgpOworICAgICAgICBp
ZiAoaGFkTm9uRW1wdHlMaXN0ICE9IG1faGFzTm9uRW1wdHlMaXN0ICYmIGF0dGFjaGVkKCkpIHsK
KyAgICAgICAgICAgIC8vIFJlLWNyZWF0ZSBhIHJlbmRlcmVyIGJlY2F1c2UgbV9oYXNOb25FbXB0
eUxpc3QgYWZmZWN0cyBVSS4KKyAgICAgICAgICAgIGRldGFjaCgpOworICAgICAgICAgICAgYXR0
YWNoKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CiAKQEAgLTE3MTQs
NCArMTcyNCw2NyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBsYWNlaG9sZGVyU2hvdWxkQmVW
aXNpYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9kYXRhLnBsYWNlaG9sZGVyU2hvdWxkQmVWaXNp
YmxlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6Omxp
c3QoKQoreworICAgIGlmICghbV9oYXNOb25FbXB0eUxpc3QpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFNF
QVJDSDoKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIEVNQUlM
OgorICAgIC8vY2FzZSBEQVRFVElNRToKKyAgICAvL2Nhc2UgREFURToKKyAgICAvL2Nhc2UgTU9O
VEg6CisgICAgLy9jYXNlIFdFRUs6CisgICAgLy9jYXNlIFRJTUU6CisgICAgLy9jYXNlIERBVEVU
SU1FTE9DQUw6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQU5HRToKKyAgICAvL2Nhc2Ug
Q09MT1I6CisgICAgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZ2V0QXR0
cmlidXRlKGxpc3RBdHRyKTsKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBkb2N1
bWVudCgpLT5nZXRFbGVtZW50QnlJZCh2YWx1ZSk7CisgICAgICAgIGlmIChlbGVtZW50ICYmIGVs
ZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKGRhdGFsaXN0VGFn
KSkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSElE
REVOOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJB
RElPOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIElNQUdFOgor
ICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBJU0lOREVYOgorICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTE9w
dGlvbkVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uKCkKK3sKKyAgICBT
dHJpbmcgY3VycmVudFZhbHVlID0gdmFsdWUoKTsKKyAgICAvLyBUaGUgZW1wdHkgdmFsdWUgbmV2
ZXIgbWF0Y2hlcyB0byBhIGRhdGFsaXN0IG9wdGlvbiBiZWNhdXNlIGl0CisgICAgLy8gZG9lc24n
dCByZXByZXNlbnQgYSBzdWdnZXN0aW9uIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQuCisgICAg
aWYgKGN1cnJlbnRWYWx1ZS5pc051bGwoKSB8fCBjdXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gc291cmNlRWxlbWVudCA9
IGxpc3QoKTsKKyAgICBpZiAoIXNvdXJjZUVsZW1lbnQpCisgICAgICAgIHJldHVybiAwOworICAg
IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gb3B0aW9ucyA9IHN0YXRpY19jYXN0PEhUTUxEYXRhTGlz
dEVsZW1lbnQqPihzb3VyY2VFbGVtZW50LmdldCgpKS0+b3B0aW9ucygpOworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IG9wdGlvbnMgJiYgaSA8IG9wdGlvbnMtPmxlbmd0aCgpOyArK2kpIHsKKyAg
ICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25F
bGVtZW50Kj4ob3B0aW9ucy0+aXRlbShpKSk7CisgICAgICAgIGlmICghb3B0aW9uLT5kaXNhYmxl
ZCgpICYmIGN1cnJlbnRWYWx1ZSA9PSBvcHRpb24tPnZhbHVlKCkpCisgICAgICAgICAgICByZXR1
cm4gb3B0aW9uOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDZhZWQ4MjMuLmU1ZWMwNWYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaApAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEZpbGVMaXN0OwogY2xhc3MgSFRNTEltYWdlTG9hZGVyOworY2xhc3MgSFRNTE9wdGlvbkVsZW1l
bnQ7CiBjbGFzcyBLVVJMOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIApAQCAtMTkzLDYgKzE5
NCw5IEBAIHB1YmxpYzoKICAgICBLVVJMIHNyYygpIGNvbnN0OwogICAgIHZvaWQgc2V0U3JjKGNv
bnN0IFN0cmluZyYpOwogCisgICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gbGlzdCgpOworICAg
IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IHNlbGVjdGVkT3B0aW9uKCk7CisKICAgICBp
bnQgbWF4TGVuZ3RoKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNYXhMZW5ndGgoaW50KTsKIApAQCAt
MjU4LDYgKzI2Miw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9hdXRvY29tcGxldGUgOiAy
OyAvLyBBdXRvQ29tcGxldGVTZXR0aW5nCiAgICAgYm9vbCBtX2F1dG9maWxsZWQgOiAxOwogICAg
IGJvb2wgbV9pbml0ZWQgOiAxOworICAgIGJvb2wgbV9oYXNOb25FbXB0eUxpc3QgOiAxOwogfTsK
IAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDNhNDEwZGYu
LjVhNjcxMjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTM4LDYgKzM4LDcgQEAg
bW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IGNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZGlz
YWJsZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgYXV0b2Zv
Y3VzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgICAgIGxpc3Q7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgbWF4TGVuZ3RoOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
bmFtZTsKQEAgLTU0LDYgKzU1LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBKU0NDdXN0b21HZXR0ZXJdIERPTVN0
cmluZyB0eXBlOyAvLyByZWFkb25seSBkcm9wcGVkIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHVzZU1hcDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TE9wdGlvbkVsZW1lbnQgc2VsZWN0ZWRPcHRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOwogICAgICAgICB2b2lkICAgICAgICAgICAg
ICAgc2VsZWN0KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBjbGljaygpOw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33694</attachid>
            <date>2009-07-28 22:52:18 -0700</date>
            <delta_ts>2009-07-31 02:21:27 -0700</delta_ts>
            <desc>Support for HTMLInputElement::list and HTMLInputElement::selectedOption.</desc>
            <filename>bug-27756-20090729145217.patch</filename>
            <type>text/plain</type>
            <size>11897</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjIwMmFhLi5mZDYwNTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDct
MjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVsZW1l
bnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sOiBBZGRlZC4KKwogMjAwOS0wNy0yNCAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxp
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2ExYWY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0IGZvciB0aGUgbGlzdCBhdHRyaWJ1dGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0Lmxpc3QgaXMgbnVsbAorUEFT
UyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGlucHV0
Lmxpc3QgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRsMSIpCitQQVNTIGlucHV0Lmxpc3Qg
aXMgbnVsbAorUEFTUyBkYXRhbGlzdC5jbGFzc05hbWUgaXMgImZvcm1lciIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgICAgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjViZDQxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWxpc3QuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8IS0tIE5vIGxpc3QgYXR0cmlidXRlIC0tPgorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpMSI+Cis8IS0tIEVtcHR5IGxpc3QgLS0+Cis8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImkyIiBsaXN0PSIiPgorPCEtLSBOb24tZXhpc3RlbnQgSUQgLS0+Cis8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImkzIiBsaXN0PSJub25leGlzdCI+Cis8IS0tIE5vcm1hbCBjYXNlIC0t
PgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpNCIgbGlzdD0iZGwxIj4KKzwhLS0gVW5zdXBwb3J0
ZWQgdHlwZSAtLT4KKzxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9Imk1IiBsaXN0PSJkbDEiPgor
PCEtLSBJRCBjb25maWxpY3QgLS0+Cis8SW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk2IiBsaXN0PSJk
bDIiPgorCis8ZGF0YWxpc3QgaWQ9ImRsMSI+CisgPG9wdGlvbj52YWx1ZTE8L29wdGlvbj4KKzwv
ZGF0YWxpc3Q+CisKKzxkYXRhbGlzdCBpZD0iZGwyIiBjbGFzcz0iZm9ybWVyIj4KKyA8b3B0aW9u
PnZhbHVlMTwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKzxkYXRhbGlzdCBpZD0iZGwyIiBjbGFzcz0i
bGF0dGVyIj4KKyA8b3B0aW9uPnZhbHVlMTwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGZvciB0aGUgbGlzdCBhdHRyaWJ1dGUuJyk7CisKK3ZhciBp
bnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMScpOworc2hvdWxkQmVOdWxsKCdpbnB1
dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7CitzaG91
bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaTMnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlzdCcpOworCitpbnB1dCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpNCcpOworc2hvdWxkQmUoJ2lucHV0Lmxpc3QnLCAnZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRsMSIpJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2k1Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKwordmFyIGRhdGFsaXN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k2JykubGlzdDsKK3Nob3VsZEJlKCdkYXRhbGlzdC5j
bGFzc05hbWUnLCAnImZvcm1lciInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWY4OTRiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdCBmb3IgdGhlIHNlbGVjdGVkT3B0aW9uIGF0dHJpYnV0
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQuc2VsZWN0ZWRP
cHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlu
cHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMg
bnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibzEiKQorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibzIiKQorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlucHV0
LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yMDFiMGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzwhLS0gRW1wdHkgdmFsdWUgYW5kIG5v
IGxpc3QgYXR0cmlidXRlIC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpMSIgdmFsdWU9IiI+
Cis8IS0tIEVtcHR5IGxpc3QgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImkyIiB2YWx1ZT0i
Zm9vIiBsaXN0PSIiPgorPCEtLSBFbXB0eSBkYXRhbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTMiIHZhbHVlPSJmb28iIGxpc3Q9ImRsMSI+Cis8IS0tIEVtcHR5IHZhbHVlIGFuZCBl
bXB0eSBvcHRpb24gLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk0IiB2YWx1ZT0iIiBsaXN0
PSJkbDIiPgorPCEtLSBNYXRjaCBjYXNlcyAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTUi
IHZhbHVlPSJmb28iIGxpc3Q9ImRsMyI+Cis8SW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk2IiB2YWx1
ZT0iYmFyIiBsaXN0PSJkbDMiPgorPCEtLSBVbm1hdGNoIGNhc2UgLS0+Cis8SW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Imk3IiB2YWx1ZT0iZm9vIiBsaXN0PSJkbDQiPgorCis8ZGF0YWxpc3QgaWQ9ImRs
MSI+Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDIiPgorIDxvcHRpb24+PC9vcHRpb24+
Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDMiPgorIDxvcHRpb24gaWQ9Im8xIj5mb288
L29wdGlvbj4KKyA8b3B0aW9uIGlkPSJvMiI+YmFyPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorPGRh
dGFsaXN0IGlkPSJkbDMiPgorIDxvcHRpb24+YmFyPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIHRoZSBzZWxlY3RlZE9wdGlvbiBhdHRyaWJ1
dGUuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMScpOworc2hv
dWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpMicpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicp
OworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMycpOworc2hvdWxkQmVOdWxs
KCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpNCcpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNScpOworc2hvdWxkQmUoJ2lucHV0LnNlbGVj
dGVkT3B0aW9uJywgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMSIpJyk7CitpbnB1dCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNicpOworc2hvdWxkQmUoJ2lucHV0LnNlbGVjdGVkT3B0
aW9uJywgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMiIpJyk7CisKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdvMScpLmRpc2FibGVkID0gdHJ1ZTsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2k1Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisK
K2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k3Jyk7CitzaG91bGRCZU51bGwoJ2lu
cHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYmE4MTIwLi45ZjAyMmEyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDA5LTA3LTI3ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBw
b3J0IGZvciBIVE1MSW5wdXRFbGVtZW50OjpsaXN0IGFuZCBIVE1MSW5wdXRFbGVtZW50OjpzZWxl
Y3RlZE9wdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NzU2CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojps
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9u
KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsOgorCiAyMDA5LTA3LTI0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDZkNGQzY2IuLmI3NGY2MDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtOTUsNiArOTUsNyBAQCBsYW5nCiBsYW5ndWFnZQogbGVm
dG1hcmdpbgogbGluaworbGlzdAogbG9uZ2Rlc2MKIGxvb3AKIHBsYXljb3VudApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IGY0YzQ2NmMuLjg0YjZlYTYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTM4LDkgKzM4LDExIEBACiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJIVE1MRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0
cmluZ3MuaCIKQEAgLTY5MCw3ICs2OTIsMTUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgICAgICAgYXR0
ci0+bmFtZSgpID09IG11bHRpcGxlQXR0ciB8fAogICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9
PSBwcmVjaXNpb25BdHRyKQogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgZWxz
ZQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBsaXN0QXR0cikgeworICAgICAgICBib29s
IGhhZE5vbkVtcHR5TGlzdCA9IG1faGFzTm9uRW1wdHlMaXN0OworICAgICAgICBtX2hhc05vbkVt
cHR5TGlzdCA9ICFhdHRyLT5pc051bGwoKSAmJiAhYXR0ci0+aXNFbXB0eSgpOworICAgICAgICBp
ZiAoaGFkTm9uRW1wdHlMaXN0ICE9IG1faGFzTm9uRW1wdHlMaXN0ICYmIGF0dGFjaGVkKCkpIHsK
KyAgICAgICAgICAgIC8vIFJlLWNyZWF0ZSBhIHJlbmRlcmVyIGJlY2F1c2UgbV9oYXNOb25FbXB0
eUxpc3QgYWZmZWN0cyBVSS4KKyAgICAgICAgICAgIGRldGFjaCgpOworICAgICAgICAgICAgYXR0
YWNoKCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9CiAKQEAgLTE3MTQs
NCArMTcyNCw1OCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBsYWNlaG9sZGVyU2hvdWxkQmVW
aXNpYmxlKCkgY29uc3QKICAgICByZXR1cm4gbV9kYXRhLnBsYWNlaG9sZGVyU2hvdWxkQmVWaXNp
YmxlKCk7CiB9CiAKK0hUTUxFbGVtZW50KiBIVE1MSW5wdXRFbGVtZW50OjpsaXN0KCkKK3sKKyAg
ICBpZiAoIW1faGFzTm9uRW1wdHlMaXN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHN3aXRj
aCAoaW5wdXRUeXBlKCkpIHsKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAg
Y2FzZSBVUkw6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNl
IE5VTUJFUjoKKyAgICBjYXNlIFJBTkdFOgorICAgIHsKKyAgICAgICAgRWxlbWVudCogZWxlbWVu
dCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGdldEF0dHJpYnV0ZShsaXN0QXR0cikpOwor
ICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgJiYgZWxlbWVu
dC0+aGFzVGFnTmFtZShkYXRhbGlzdFRhZykpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNh
c2UgSElEREVOOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBj
YXNlIFJBRElPOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIElN
QUdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBJU0lOREVY
OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK0hUTUxPcHRpb25F
bGVtZW50KiBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RlZE9wdGlvbigpCit7CisgICAgU3RyaW5n
IGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAgLy8gVGhlIGVtcHR5IHZhbHVlIG5ldmVyIG1h
dGNoZXMgdG8gYSBkYXRhbGlzdCBvcHRpb24gYmVjYXVzZSBpdAorICAgIC8vIGRvZXNuJ3QgcmVw
cmVzZW50IGEgc3VnZ2VzdGlvbiBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLgorICAgIGlmIChj
dXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEhUTUxFbGVt
ZW50KiBzb3VyY2VFbGVtZW50ID0gbGlzdCgpOworICAgIGlmICghc291cmNlRWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBvcHRpb25zID0gc3Rh
dGljX2Nhc3Q8SFRNTERhdGFMaXN0RWxlbWVudCo+KHNvdXJjZUVsZW1lbnQpLT5vcHRpb25zKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgb3B0aW9ucyAmJiBpIDwgb3B0aW9ucy0+bGVuZ3Ro
KCk7ICsraSkgeworICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nh
c3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihvcHRpb25zLT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFv
cHRpb24tPmRpc2FibGVkKCkgJiYgY3VycmVudFZhbHVlID09IG9wdGlvbi0+dmFsdWUoKSkKKyAg
ICAgICAgICAgIHJldHVybiBvcHRpb247CisgICAgfQorICAgIHJldHVybiAwOworfQorCiB9IC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNmFlZDgyMy4uNDk1OTc4OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRmlsZUxpc3Q7CiBjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CitjbGFzcyBI
VE1MT3B0aW9uRWxlbWVudDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwog
CkBAIC0xOTMsNiArMTk0LDkgQEAgcHVibGljOgogICAgIEtVUkwgc3JjKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRTcmMoY29uc3QgU3RyaW5nJik7CiAKKyAgICBIVE1MRWxlbWVudCogbGlzdCgpOwor
ICAgIEhUTUxPcHRpb25FbGVtZW50KiBzZWxlY3RlZE9wdGlvbigpOworCiAgICAgaW50IG1heExl
bmd0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TWF4TGVuZ3RoKGludCk7CiAKQEAgLTI1OCw2ICsy
NjIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYXV0b2NvbXBsZXRlIDogMjsgLy8gQXV0
b0NvbXBsZXRlU2V0dGluZwogICAgIGJvb2wgbV9hdXRvZmlsbGVkIDogMTsKICAgICBib29sIG1f
aW5pdGVkIDogMTsKKyAgICBib29sIG1faGFzTm9uRW1wdHlMaXN0IDogMTsKIH07CiAKIH0gLy9u
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCAzYTQxMGRmLi41YTY3MTI3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBjaGVja2Vk
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGRpc2FibGVkOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGF1dG9mb2N1czsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aDsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBtdWx0aXBsZTsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CkBA
IC01NCw2ICs1NSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlw
ZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VN
YXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25F
bGVtZW50IHNlbGVjdGVkT3B0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVj
dCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgY2xpY2soKTs=
</data>
<flag name="review"
          id="17913"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33863</attachid>
            <date>2009-07-31 02:21:27 -0700</date>
            <delta_ts>2009-08-18 02:58:35 -0700</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>list-selectedoption.diff</filename>
            <type>text/plain</type>
            <size>11754</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOWZiMjE3Li4zYzJiN2Y2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTYgQEAKLTIwMDktMDct
MjQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorMjAwOS0wNy0zMSAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgSFRNTElucHV0RWxlbWVudDo6bGlzdCBh
bmQgSFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc1NgorCisgICAgICAgICogZmFzdC9mb3Jt
cy9pbnB1dC1saXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1saXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtc2VsZWN0
ZWRvcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0
LXNlbGVjdGVkb3B0aW9uLmh0bWw6IEFkZGVkLgorCisyMDA5LTA3LTMwICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdhMWFmOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNSBAQAorVGVzdCBmb3IgdGhlIGxpc3QgYXR0cmlidXRlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQu
bGlzdCBpcyBudWxsCitQQVNTIGlucHV0Lmxpc3QgaXMgbnVsbAorUEFTUyBpbnB1dC5saXN0IGlz
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkbDEiKQorUEFTUyBpbnB1dC5saXN0IGlzIG51bGwK
K1BBU1MgZGF0YWxpc3QuY2xhc3NOYW1lIGlzICJmb3JtZXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
YmQ0MTcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1s
aXN0Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPCEtLSBObyBsaXN0IGF0dHJpYnV0ZSAtLT4KKzxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0iaTEiPgorPCEtLSBFbXB0eSBsaXN0IC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlk
PSJpMiIgbGlzdD0iIj4KKzwhLS0gTm9uLWV4aXN0ZW50IElEIC0tPgorPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJpMyIgbGlzdD0ibm9uZXhpc3QiPgorPCEtLSBOb3JtYWwgY2FzZSAtLT4KKzxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iaTQiIGxpc3Q9ImRsMSI+Cis8IS0tIFVuc3VwcG9ydGVkIHR5cGUg
LS0+Cis8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJpNSIgbGlzdD0iZGwxIj4KKzwhLS0gSUQg
Y29uZmlsaWN0IC0tPgorPElucHV0IHR5cGU9InRleHQiIGlkPSJpNiIgbGlzdD0iZGwyIj4KKwor
PGRhdGFsaXN0IGlkPSJkbDEiPgorIDxvcHRpb24+dmFsdWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0
PgorCis8ZGF0YWxpc3QgaWQ9ImRsMiIgY2xhc3M9ImZvcm1lciI+CisgPG9wdGlvbj52YWx1ZTE8
L29wdGlvbj4KKzwvZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMiIgY2xhc3M9ImxhdHRlciI+
CisgPG9wdGlvbj52YWx1ZTE8L29wdGlvbj4KKzwvZGF0YWxpc3Q+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBmb3IgdGhlIGxpc3QgYXR0cmlidXRlLicpOworCit2YXIgaW5wdXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTEnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlzdCcp
OworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMicpOworc2hvdWxkQmVOdWxs
KCdpbnB1dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kzJyk7
CitzaG91bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaTQnKTsKK3Nob3VsZEJlKCdpbnB1dC5saXN0JywgJ2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkbDEiKScpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNScp
Oworc2hvdWxkQmVOdWxsKCdpbnB1dC5saXN0Jyk7CisKK3ZhciBkYXRhbGlzdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpNicpLmxpc3Q7CitzaG91bGRCZSgnZGF0YWxpc3QuY2xhc3NOYW1l
JywgJyJmb3JtZXIiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFmODk0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTcgQEAKK1Rlc3QgZm9yIHRoZSBzZWxlY3RlZE9wdGlvbiBhdHRyaWJ1dGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlz
IG51bGwKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxl
Y3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BB
U1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8xIikK
K1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8y
IikKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3Rl
ZE9wdGlvbiBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAgICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXNlbGVjdGVkb3B0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjAxYjBkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
c2VsZWN0ZWRvcHRpb24uaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8IS0tIEVtcHR5IHZhbHVlIGFuZCBubyBsaXN0IGF0
dHJpYnV0ZSAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTEiIHZhbHVlPSIiPgorPCEtLSBF
bXB0eSBsaXN0IC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpMiIgdmFsdWU9ImZvbyIgbGlz
dD0iIj4KKzwhLS0gRW1wdHkgZGF0YWxpc3QgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imkz
IiB2YWx1ZT0iZm9vIiBsaXN0PSJkbDEiPgorPCEtLSBFbXB0eSB2YWx1ZSBhbmQgZW1wdHkgb3B0
aW9uIC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpNCIgdmFsdWU9IiIgbGlzdD0iZGwyIj4K
KzwhLS0gTWF0Y2ggY2FzZXMgLS0+Cis8SW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk1IiB2YWx1ZT0i
Zm9vIiBsaXN0PSJkbDMiPgorPElucHV0IHR5cGU9InRleHQiIGlkPSJpNiIgdmFsdWU9ImJhciIg
bGlzdD0iZGwzIj4KKzwhLS0gVW5tYXRjaCBjYXNlIC0tPgorPElucHV0IHR5cGU9InRleHQiIGlk
PSJpNyIgdmFsdWU9ImZvbyIgbGlzdD0iZGw0Ij4KKworPGRhdGFsaXN0IGlkPSJkbDEiPgorPC9k
YXRhbGlzdD4KKzxkYXRhbGlzdCBpZD0iZGwyIj4KKyA8b3B0aW9uPjwvb3B0aW9uPgorPC9kYXRh
bGlzdD4KKzxkYXRhbGlzdCBpZD0iZGwzIj4KKyA8b3B0aW9uIGlkPSJvMSI+Zm9vPC9vcHRpb24+
CisgPG9wdGlvbiBpZD0ibzIiPmJhcjwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKzxkYXRhbGlzdCBp
ZD0iZGwzIj4KKyA8b3B0aW9uPmJhcjwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKworPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0IGZvciB0aGUgc2VsZWN0ZWRPcHRpb24gYXR0cmlidXRlLicpOwor
Cit2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTEnKTsKK3Nob3VsZEJlTnVs
bCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaTInKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTMnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQu
c2VsZWN0ZWRPcHRpb24nKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTQn
KTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTUnKTsKK3Nob3VsZEJlKCdpbnB1dC5zZWxlY3RlZE9wdGlv
bicsICdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibzEiKScpOworaW5wdXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaTYnKTsKK3Nob3VsZEJlKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicsICdk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibzIiKScpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbzEnKS5kaXNhYmxlZCA9IHRydWU7CitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpNScpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxlY3RlZE9wdGlvbicpOworCitpbnB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpNycpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5zZWxl
Y3RlZE9wdGlvbicpOworCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NmQxNS4uNTlkMTE5MyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAwOS0wNy0zMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3Ig
SFRNTElucHV0RWxlbWVudDo6bGlzdCBhbmQgSFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRp
b24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc1
NgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lucHV0LWxpc3QuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RlZE9wdGlvbik6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbDoKKwogMjAwOS0wNy0zMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgppbmRleCAxNWRiM2U5Li5iMzMxYmNkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4KQEAgLTk1LDYgKzk1LDcgQEAgbGFuZwogbGFuZ3VhZ2UKIGxlZnRtYXJnaW4K
IGxpbmsKK2xpc3QKIGxvbmdkZXNjCiBsb29wCiBwbGF5Y291bnQKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCBmMzUyOTJmLi45YWMwNTA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC0zOCw5ICszOCwxMSBAQAogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRN
TERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgi
CkBAIC03MzQsNyArNzM2LDEwIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICAgICAgIGF0dHItPm5hbWUo
KSA9PSBtdWx0aXBsZUF0dHIgfHwKICAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gcHJlY2lz
aW9uQXR0cikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGVsc2UKKyAgICBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGlzdEF0dHIpIHsKKyAgICAgICAgbV9oYXNOb25FbXB0
eUxpc3QgPSAhYXR0ci0+aXNFbXB0eSgpOworICAgICAgICAvLyBGSVhNRTogd2UgbmVlZCB0byB0
ZWxsIHRoaXMgY2hhbmdlIHRvIGEgcmVuZGVyZXIgaWYgd2UgaW1wbGVtZW50IFVJIGZvciB0aGUg
bGlzdCBhdHRyaWJ1dGUuCisgICAgfSBlbHNlCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGU6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwogfQogCkBAIC0xNzU4LDQg
KzE3NjMsNTggQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpwbGFjZWhvbGRlclNob3VsZEJlVmlz
aWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS5wbGFjZWhvbGRlclNob3VsZEJlVmlzaWJs
ZSgpOwogfQogCitIVE1MRWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6bGlzdCgpCit7CisgICAg
aWYgKCFtX2hhc05vbkVtcHR5TGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzd2l0Y2gg
KGlucHV0VHlwZSgpKSB7CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNh
c2UgVVJMOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBO
VU1CRVI6CisgICAgY2FzZSBSQU5HRToKKyAgICB7CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBkb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChnZXRBdHRyaWJ1dGUobGlzdEF0dHIpKTsKKyAg
ICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShkYXRhbGlzdFRhZykpCisg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgUEFTU1dPUkQ6
CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgRklMRToKKyAg
ICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2Fz
ZSBCVVRUT046CisgICAgY2FzZSBJU0lOREVYOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIDA7Cit9CisKK0hUTUxPcHRpb25FbGVtZW50KiBIVE1MSW5wdXRFbGVtZW50OjpzZWxl
Y3RlZE9wdGlvbigpCit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAg
Ly8gVGhlIGVtcHR5IHZhbHVlIG5ldmVyIG1hdGNoZXMgdG8gYSBkYXRhbGlzdCBvcHRpb24gYmVj
YXVzZSBpdAorICAgIC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgc3VnZ2VzdGlvbiBhY2NvcmRpbmcg
dG8gdGhlIHN0YW5kYXJkLgorICAgIGlmIChjdXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIEhUTUxFbGVtZW50KiBzb3VyY2VFbGVtZW50ID0gbGlzdCgpOwor
ICAgIGlmICghc291cmNlRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBvcHRpb25zID0gc3RhdGljX2Nhc3Q8SFRNTERhdGFMaXN0RWxlbWVudCo+
KHNvdXJjZUVsZW1lbnQpLT5vcHRpb25zKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgb3B0
aW9ucyAmJiBpIDwgb3B0aW9ucy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBIVE1MT3B0aW9u
RWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihvcHRpb25z
LT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFvcHRpb24tPmRpc2FibGVkKCkgJiYgY3VycmVudFZh
bHVlID09IG9wdGlvbi0+dmFsdWUoKSkKKyAgICAgICAgICAgIHJldHVybiBvcHRpb247CisgICAg
fQorICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKaW5kZXggNGQ4ODdmMy4uOGI1ZGI4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
Miw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZUxpc3Q7CiBjbGFz
cyBIVE1MSW1hZ2VMb2FkZXI7CitjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsKIGNsYXNzIEtVUkw7
CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogCkBAIC0xOTQsNiArMTk1LDkgQEAgcHVibGljOgog
ICAgIEtVUkwgc3JjKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTcmMoY29uc3QgU3RyaW5nJik7CiAK
KyAgICBIVE1MRWxlbWVudCogbGlzdCgpOworICAgIEhUTUxPcHRpb25FbGVtZW50KiBzZWxlY3Rl
ZE9wdGlvbigpOworCiAgICAgaW50IG1heExlbmd0aCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TWF4
TGVuZ3RoKGludCk7CiAKQEAgLTI1OSw2ICsyNjMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVk
IG1fYXV0b2NvbXBsZXRlIDogMjsgLy8gQXV0b0NvbXBsZXRlU2V0dGluZwogICAgIGJvb2wgbV9h
dXRvZmlsbGVkIDogMTsKICAgICBib29sIG1faW5pdGVkIDogMTsKKyAgICBib29sIG1faGFzTm9u
RW1wdHlMaXN0IDogMTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbAppbmRleCBlMTliMzBlLi4yN2JkMDU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CkBAIC0zOCw2ICszOCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICBjaGVja2VkOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIGRpc2FibGVkOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgIGF1dG9mb2N1czsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxF
bGVtZW50ICAgICBsaXN0OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgIG1heExlbmd0aDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAg
ICBtdWx0aXBsZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CkBAIC01NSw2ICs1Niw3IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlND
Q3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0
IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAg
ICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVjdCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAg
ICAgY2xpY2soKTsK
</data>
<flag name="review"
          id="18056"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35032</attachid>
            <date>2009-08-18 02:58:35 -0700</date>
            <delta_ts>2009-08-18 16:49:51 -0700</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>selected-option.diff</filename>
            <type>text/plain</type>
            <size>12370</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYjEwOTM2Li43MTM0ODAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMDktMDgt
MTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVsZW1l
bnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sOiBBZGRlZC4KKworMjAwOS0wOC0xOCAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCiAKICAgICAgICAgVGVzdHMgZm9yIDxkYXRhbGlzdD4gZWxlbWVudC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YTFhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK1Rlc3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGlucHV0Lmxpc3QgaXMgbnVs
bAorUEFTUyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQubGlzdCBpcyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZGwxIikKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGRhdGFs
aXN0LmNsYXNzTmFtZSBpcyAiZm9ybWVyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1s
aXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJkNDE3MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCkBA
IC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzwhLS0gTm8gbGlzdCBhdHRyaWJ1dGUgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imkx
Ij4KKzwhLS0gRW1wdHkgbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTIiIGxpc3Q9
IiI+Cis8IS0tIE5vbi1leGlzdGVudCBJRCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTMi
IGxpc3Q9Im5vbmV4aXN0Ij4KKzwhLS0gTm9ybWFsIGNhc2UgLS0+Cis8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9Imk0IiBsaXN0PSJkbDEiPgorPCEtLSBVbnN1cHBvcnRlZCB0eXBlIC0tPgorPGlucHV0
IHR5cGU9InBhc3N3b3JkIiBpZD0iaTUiIGxpc3Q9ImRsMSI+Cis8IS0tIElEIGNvbmZpbGljdCAt
LT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIGxpc3Q9ImRsMiI+CisKKzxkYXRhbGlzdCBp
ZD0iZGwxIj4KKyA8b3B0aW9uPnZhbHVlMTwvb3B0aW9uPgorPC9kYXRhbGlzdD4KKworPGRhdGFs
aXN0IGlkPSJkbDIiIGNsYXNzPSJmb3JtZXIiPgorIDxvcHRpb24+dmFsdWUxPC9vcHRpb24+Cis8
L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDIiIGNsYXNzPSJsYXR0ZXIiPgorIDxvcHRpb24+
dmFsdWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rl
c3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRCZU51bGwoJ2lucHV0Lmxpc3QnKTsKKworaW5wdXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlz
dCcpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpMycpOworc2hvdWxkQmVO
dWxsKCdpbnB1dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k0
Jyk7CitzaG91bGRCZSgnaW5wdXQubGlzdCcsICdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGwx
IiknKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTUnKTsKK3Nob3VsZEJl
TnVsbCgnaW5wdXQubGlzdCcpOworCit2YXIgZGF0YWxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaTYnKS5saXN0Oworc2hvdWxkQmUoJ2RhdGFsaXN0LmNsYXNzTmFtZScsICciZm9ybWVy
IicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtc2VsZWN0ZWRvcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjlhZjg5NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CitUZXN0IGZvciB0aGUgc2VsZWN0ZWRPcHRpb24gYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNT
IGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24g
aXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxsCitQQVNTIGlucHV0LnNl
bGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMSIpCitQQVNTIGlucHV0
LnNlbGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvMiIpCitQQVNTIGlu
cHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2VsZWN0ZWRPcHRpb24gaXMg
bnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisg
ICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxl
Y3RlZG9wdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9w
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMWIwZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0
aW9uLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPCEtLSBFbXB0eSB2YWx1ZSBhbmQgbm8gbGlzdCBhdHRyaWJ1dGUgLS0+
Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImkxIiB2YWx1ZT0iIj4KKzwhLS0gRW1wdHkgbGlzdCAt
LT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTIiIHZhbHVlPSJmb28iIGxpc3Q9IiI+Cis8IS0t
IEVtcHR5IGRhdGFsaXN0IC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpMyIgdmFsdWU9ImZv
byIgbGlzdD0iZGwxIj4KKzwhLS0gRW1wdHkgdmFsdWUgYW5kIGVtcHR5IG9wdGlvbiAtLT4KKzxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTQiIHZhbHVlPSIiIGxpc3Q9ImRsMiI+Cis8IS0tIE1hdGNo
IGNhc2VzIC0tPgorPElucHV0IHR5cGU9InRleHQiIGlkPSJpNSIgdmFsdWU9ImZvbyIgbGlzdD0i
ZGwzIj4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIHZhbHVlPSJiYXIiIGxpc3Q9ImRsMyI+
Cis8IS0tIFVubWF0Y2ggY2FzZSAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTciIHZhbHVl
PSJmb28iIGxpc3Q9ImRsNCI+CisKKzxkYXRhbGlzdCBpZD0iZGwxIj4KKzwvZGF0YWxpc3Q+Cis8
ZGF0YWxpc3QgaWQ9ImRsMiI+CisgPG9wdGlvbj48L29wdGlvbj4KKzwvZGF0YWxpc3Q+Cis8ZGF0
YWxpc3QgaWQ9ImRsMyI+CisgPG9wdGlvbiBpZD0ibzEiPmZvbzwvb3B0aW9uPgorIDxvcHRpb24g
aWQ9Im8yIj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMyI+Cisg
PG9wdGlvbj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGVzdCBmb3IgdGhlIHNlbGVjdGVkT3B0aW9uIGF0dHJpYnV0ZS4nKTsKKwordmFyIGlucHV0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNl
bGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kyJyk7
CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2kzJyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0
aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k0Jyk7CitzaG91bGRC
ZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2k1Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nLCAnZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm8xIiknKTsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2k2Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nLCAnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm8yIiknKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ28xJykuZGlz
YWJsZWQgPSB0cnVlOworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTUnKTsKK3No
b3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5wdXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaTcnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24n
KTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDUxNzUwODkuLmNkODBlZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMDkt
MDgtMTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVs
ZW1lbnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAg
ICBUZXN0czogZmFzdC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
Zm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24pOgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6
CisKKzIwMDktMDgtMTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgogCiAgICAgICAgIFN1cHBvcnQgZm9yIHBhcnNp
bmcgPGRhdGFsaXN0PiBlbGVtZW50IGFuZCBnZW5lcmF0aW5nIEhUTUxEYXRhTGlzdEVsZW1lbnQg
bm9kZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIv
V2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCAxY2FmNDczLi42MGFhYzdk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTk3LDYgKzk3LDcgQEAgbGFuZwog
bGFuZ3VhZ2UKIGxlZnRtYXJnaW4KIGxpbmsKK2xpc3QKIGxvbmdkZXNjCiBsb29wCiBwbGF5Y291
bnQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAyYmY4NTE5Li4xNzM3MjIxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0zOSw5ICszOSwxMSBAQAogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxG
b3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC03MzUsNiArNzM3LDExIEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAg
ICAgICAgICAgIGF0dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIgfHwKICAgICAgICAgICAgICBh
dHRyLT5uYW1lKCkgPT0gcHJlY2lzaW9uQXR0cikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2Fs
YygpOworI2lmIEVOQUJMRShEQVRBTElTVCkKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
bGlzdEF0dHIpCisgICAgICAgIG1faGFzTm9uRW1wdHlMaXN0ID0gIWF0dHItPmlzRW1wdHkoKTsK
KyAgICAgICAgLy8gRklYTUU6IHdlIG5lZWQgdG8gdGVsbCB0aGlzIGNoYW5nZSB0byBhIHJlbmRl
cmVyIGlmIHRoZSBhdHRyaWJ1dGUgYWZmZWN0cyB0aGUgYXBwZWFyYW5jZS4KKyNlbmRpZgogICAg
IGVsc2UKICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoYXR0cik7CiB9CkBAIC0xNzY1LDQgKzE3NzIsNTkgQEAgYm9vbCBIVE1MSW5w
dXRFbGVtZW50OjpwbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fZGF0YS5wbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZSgpOwogfQogCisjaWYgRU5BQkxFKERB
VEFMSVNUKQorSFRNTERhdGFMaXN0RWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6bGlzdCgpCit7
CisgICAgaWYgKCFtX2hhc05vbkVtcHR5TGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBz
d2l0Y2ggKGlucHV0VHlwZSgpKSB7CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgU0VBUkNIOgor
ICAgIGNhc2UgVVJMOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgRU1BSUw6CisgICAg
Y2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQU5HRTogeworICAgICAgICBFbGVtZW50KiBlbGVtZW50
ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZ2V0QXR0cmlidXRlKGxpc3RBdHRyKSk7Cisg
ICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoZGF0YWxpc3RUYWcpKQor
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxEYXRhTGlzdEVsZW1lbnQqPihlbGVt
ZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2Ug
UEFTU1dPUkQ6CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2Ug
RklMRToKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkVTRVQ6
CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBJU0lOREVYOgorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK0hUTUxPcHRpb25FbGVtZW50KiBIVE1MSW5wdXRFbGVt
ZW50OjpzZWxlY3RlZE9wdGlvbigpCit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVl
KCk7CisgICAgLy8gVGhlIGVtcHR5IHZhbHVlIG5ldmVyIG1hdGNoZXMgdG8gYSBkYXRhbGlzdCBv
cHRpb24gYmVjYXVzZSBpdAorICAgIC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgc3VnZ2VzdGlvbiBh
Y2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLgorICAgIGlmIChjdXJyZW50VmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQqIHNvdXJjZUVs
ZW1lbnQgPSBsaXN0KCk7CisgICAgaWYgKCFzb3VyY2VFbGVtZW50KQorICAgICAgICByZXR1cm4g
MDsKKyAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IG9wdGlvbnMgPSBzb3VyY2VFbGVtZW50LT5v
cHRpb25zKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgb3B0aW9ucyAmJiBpIDwgb3B0aW9u
cy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0g
c3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihvcHRpb25zLT5pdGVtKGkpKTsKKyAgICAg
ICAgaWYgKCFvcHRpb24tPmRpc2FibGVkKCkgJiYgY3VycmVudFZhbHVlID09IG9wdGlvbi0+dmFs
dWUoKSkKKyAgICAgICAgICAgIHJldHVybiBvcHRpb247CisgICAgfQorICAgIHJldHVybiAwOwor
fQorI2VuZGlmICAvLyBFTkFCTEUoREFUQUxJU1QpCisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAppbmRleCA0ZDg4N2YzLi40ZGY1Y2Y5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgKQEAgLTMxLDcgKzMxLDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmls
ZUxpc3Q7CitjbGFzcyBIVE1MRGF0YUxpc3RFbGVtZW50OwogY2xhc3MgSFRNTEltYWdlTG9hZGVy
OworY2xhc3MgSFRNTE9wdGlvbkVsZW1lbnQ7CiBjbGFzcyBLVVJMOwogY2xhc3MgVmlzaWJsZVNl
bGVjdGlvbjsKIApAQCAtMTk0LDYgKzE5NiwxMSBAQCBwdWJsaWM6CiAgICAgS1VSTCBzcmMoKSBj
b25zdDsKICAgICB2b2lkIHNldFNyYyhjb25zdCBTdHJpbmcmKTsKIAorI2lmIEVOQUJMRShEQVRB
TElTVCkKKyAgICBIVE1MRGF0YUxpc3RFbGVtZW50KiBsaXN0KCk7CisgICAgSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGVjdGVkT3B0aW9uKCk7CisjZW5kaWYKKwogICAgIGludCBtYXhMZW5ndGgoKSBj
b25zdDsKICAgICB2b2lkIHNldE1heExlbmd0aChpbnQpOwogCkBAIC0yNTksNiArMjY2LDkgQEAg
cHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2F1dG9jb21wbGV0ZSA6IDI7IC8vIEF1dG9Db21wbGV0
ZVNldHRpbmcKICAgICBib29sIG1fYXV0b2ZpbGxlZCA6IDE7CiAgICAgYm9vbCBtX2luaXRlZCA6
IDE7CisjaWYgRU5BQkxFKERBVEFMSVNUKQorICAgIGJvb2wgbV9oYXNOb25FbXB0eUxpc3QgOiAx
OworI2VuZGlmCiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
aW5kZXggZTE1YzZiNS4uNWVhY2Y4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAt
MzgsNiArMzgsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIGNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29s
ZWFuICAgICAgICAgZGlzYWJsZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgYXV0b2ZvY3VzOworI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFC
TEVfREFUQUxJU1QKKwkJIC8vIFRoZSB0eXBlIG9mIHRoZSBsaXN0IGlzIEhUTUxFbGVtZW50IGFj
Y29yZGluZyB0byB0aGUgc3RhbmRhcmQuCisJCSAvLyBXZSBpbnRlbnRpb25hbGx5IHVzZSBIVE1M
RGF0YUxpc3RFbGVtZW50IGZvciBpdCBiZWNhdXNlIG91ciBpbXBsZW1lbnRhdGlvbgorCQkgLy8g
YWx3YXlzIHJldHVybnMgYW4gSFRNTERhdGFMaXN0RWxlbWVudCBpbnN0YW5jZS4KKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxEYXRhTGlzdEVsZW1lbnQgbGlzdDsKKyNlbmRpZgogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aDsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBtdWx0aXBsZTsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5h
bWU7CkBAIC01NSw2ICs2MSw5IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJp
bmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyNpZiBkZWZpbmVkKEVOQUJMRV9EQVRBTElTVCkgJiYg
RU5BQkxFX0RBVEFMSVNUCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxl
bWVudCBzZWxlY3RlZE9wdGlvbjsKKyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAg
IHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7
Cg==
</data>
<flag name="review"
          id="19217"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="19228"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35087</attachid>
            <date>2009-08-18 16:49:51 -0700</date>
            <delta_ts>2009-08-23 18:50:42 -0700</delta_ts>
            <desc>Proposed patch (rev.5)</desc>
            <filename>selected-option-5.diff</filename>
            <type>text/plain</type>
            <size>12235</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Njk1YzFjLi41MjA4YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDgt
MTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVsZW1l
bnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0xOCAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YTFhZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGlu
cHV0Lmxpc3QgaXMgbnVsbAorUEFTUyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQubGlz
dCBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGwxIikKK1BBU1MgaW5wdXQubGlzdCBpcyBu
dWxsCitQQVNTIGRhdGFsaXN0LmNsYXNzTmFtZSBpcyAiZm9ybWVyIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWJkNDE3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtbGlzdC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzwhLS0gTm8gbGlzdCBhdHRyaWJ1dGUgLS0+Cis8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImkxIj4KKzwhLS0gRW1wdHkgbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTIiIGxpc3Q9IiI+Cis8IS0tIE5vbi1leGlzdGVudCBJRCAtLT4KKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaTMiIGxpc3Q9Im5vbmV4aXN0Ij4KKzwhLS0gTm9ybWFsIGNhc2UgLS0+Cis8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk0IiBsaXN0PSJkbDEiPgorPCEtLSBVbnN1cHBvcnRlZCB0
eXBlIC0tPgorPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iaTUiIGxpc3Q9ImRsMSI+Cis8IS0t
IElEIGNvbmZpbGljdCAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIGxpc3Q9ImRsMiI+
CisKKzxkYXRhbGlzdCBpZD0iZGwxIj4KKyA8b3B0aW9uPnZhbHVlMTwvb3B0aW9uPgorPC9kYXRh
bGlzdD4KKworPGRhdGFsaXN0IGlkPSJkbDIiIGNsYXNzPSJmb3JtZXIiPgorIDxvcHRpb24+dmFs
dWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDIiIGNsYXNzPSJsYXR0
ZXIiPgorIDxvcHRpb24+dmFsdWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4nKTsKKwordmFyIGlucHV0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRCZU51bGwoJ2lucHV0Lmxp
c3QnKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKK3Nob3VsZEJl
TnVsbCgnaW5wdXQubGlzdCcpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MycpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2k0Jyk7CitzaG91bGRCZSgnaW5wdXQubGlzdCcsICdkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGwxIiknKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aTUnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlzdCcpOworCit2YXIgZGF0YWxpc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTYnKS5saXN0Oworc2hvdWxkQmUoJ2RhdGFsaXN0LmNsYXNz
TmFtZScsICciZm9ybWVyIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjg5NGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE3IEBACitUZXN0IGZvciB0aGUgc2VsZWN0ZWRPcHRpb24gYXR0cmlidXRlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlv
biBpcyBudWxsCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQu
c2VsZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxs
CitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
MSIpCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvMiIpCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2Vs
ZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjIwMWIwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPCEtLSBFbXB0eSB2YWx1ZSBhbmQgbm8gbGlz
dCBhdHRyaWJ1dGUgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImkxIiB2YWx1ZT0iIj4KKzwh
LS0gRW1wdHkgbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTIiIHZhbHVlPSJmb28i
IGxpc3Q9IiI+Cis8IS0tIEVtcHR5IGRhdGFsaXN0IC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlk
PSJpMyIgdmFsdWU9ImZvbyIgbGlzdD0iZGwxIj4KKzwhLS0gRW1wdHkgdmFsdWUgYW5kIGVtcHR5
IG9wdGlvbiAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTQiIHZhbHVlPSIiIGxpc3Q9ImRs
MiI+Cis8IS0tIE1hdGNoIGNhc2VzIC0tPgorPElucHV0IHR5cGU9InRleHQiIGlkPSJpNSIgdmFs
dWU9ImZvbyIgbGlzdD0iZGwzIj4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIHZhbHVlPSJi
YXIiIGxpc3Q9ImRsMyI+Cis8IS0tIFVubWF0Y2ggY2FzZSAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTciIHZhbHVlPSJmb28iIGxpc3Q9ImRsNCI+CisKKzxkYXRhbGlzdCBpZD0iZGwxIj4K
KzwvZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMiI+CisgPG9wdGlvbj48L29wdGlvbj4KKzwv
ZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMyI+CisgPG9wdGlvbiBpZD0ibzEiPmZvbzwvb3B0
aW9uPgorIDxvcHRpb24gaWQ9Im8yIj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+Cis8ZGF0YWxp
c3QgaWQ9ImRsMyI+CisgPG9wdGlvbj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+CisKKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgdGhlIHNlbGVjdGVkT3B0aW9uIGF0dHJpYnV0ZS4n
KTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRC
ZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2kyJyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisK
K2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kzJyk7CitzaG91bGRCZU51bGwoJ2lu
cHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2k0Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k1Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRP
cHRpb24nLCAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8xIiknKTsKK2lucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2k2Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRPcHRpb24n
LCAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8yIiknKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ28xJykuZGlzYWJsZWQgPSB0cnVlOworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaTUnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTcnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQu
c2VsZWN0ZWRPcHRpb24nKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVhYzBlNTIuLjJlOTliODMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMDktMDgtMTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQg
Zm9yIEhUTUxJbnB1dEVsZW1lbnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVk
T3B0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc3NTYKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbAorCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24pOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGw6CisKIDIwMDktMDgtMTggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgppbmRleCAxY2FmNDczLi42MGFhYzdkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4KQEAgLTk3LDYgKzk3LDcgQEAgbGFuZwogbGFuZ3VhZ2UKIGxlZnRtYXJnaW4K
IGxpbmsKK2xpc3QKIGxvbmdkZXNjCiBsb29wCiBwbGF5Y291bnQKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCAyYmY4NTE5Li4xNzM3MjIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC0zOSw5ICszOSwxMSBAQAogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRN
TERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgi
CkBAIC03MzUsNiArNzM3LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICAgICAgIGF0dHItPm5hbWUo
KSA9PSBtdWx0aXBsZUF0dHIgfHwKICAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gcHJlY2lz
aW9uQXR0cikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworI2lmIEVOQUJMRShEQVRB
TElTVCkKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGlzdEF0dHIpCisgICAgICAgIG1f
aGFzTm9uRW1wdHlMaXN0ID0gIWF0dHItPmlzRW1wdHkoKTsKKyAgICAgICAgLy8gRklYTUU6IHdl
IG5lZWQgdG8gdGVsbCB0aGlzIGNoYW5nZSB0byBhIHJlbmRlcmVyIGlmIHRoZSBhdHRyaWJ1dGUg
YWZmZWN0cyB0aGUgYXBwZWFyYW5jZS4KKyNlbmRpZgogICAgIGVsc2UKICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9
CkBAIC0xNzY1LDQgKzE3NzIsNTkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpwbGFjZWhvbGRl
clNob3VsZEJlVmlzaWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS5wbGFjZWhvbGRlclNo
b3VsZEJlVmlzaWJsZSgpOwogfQogCisjaWYgRU5BQkxFKERBVEFMSVNUKQorSFRNTERhdGFMaXN0
RWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6bGlzdCgpCit7CisgICAgaWYgKCFtX2hhc05vbkVt
cHR5TGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7
CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVVJMOgorICAgIGNh
c2UgVEVMRVBIT05FOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2Fz
ZSBSQU5HRTogeworICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxl
bWVudEJ5SWQoZ2V0QXR0cmlidXRlKGxpc3RBdHRyKSk7CisgICAgICAgIGlmIChlbGVtZW50ICYm
IGVsZW1lbnQtPmhhc1RhZ05hbWUoZGF0YWxpc3RUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxEYXRhTGlzdEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBD
SEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIFNVQk1J
VDoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBCVVRUT046Cisg
ICAgY2FzZSBJU0lOREVYOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK0hUTUxPcHRpb25FbGVtZW50KiBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RlZE9wdGlvbigp
Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAgLy8gVGhlIGVtcHR5
IHZhbHVlIG5ldmVyIG1hdGNoZXMgdG8gYSBkYXRhbGlzdCBvcHRpb24gYmVjYXVzZSBpdAorICAg
IC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgc3VnZ2VzdGlvbiBhY2NvcmRpbmcgdG8gdGhlIHN0YW5k
YXJkLgorICAgIGlmIChjdXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBsaXN0KCk7CisgICAg
aWYgKCFzb3VyY2VFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IG9wdGlvbnMgPSBzb3VyY2VFbGVtZW50LT5vcHRpb25zKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgb3B0aW9ucyAmJiBpIDwgb3B0aW9ucy0+bGVuZ3RoKCk7ICsraSkgewor
ICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQqPihvcHRpb25zLT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFvcHRpb24tPmRpc2Fi
bGVkKCkgJiYgY3VycmVudFZhbHVlID09IG9wdGlvbi0+dmFsdWUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBvcHRpb247CisgICAgfQorICAgIHJldHVybiAwOworfQorI2VuZGlmICAvLyBFTkFCTEUo
REFUQUxJU1QpCisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA0
ZDg4N2YzLi40ZGY1Y2Y5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDkg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZUxpc3Q7CitjbGFzcyBIVE1MRGF0
YUxpc3RFbGVtZW50OwogY2xhc3MgSFRNTEltYWdlTG9hZGVyOworY2xhc3MgSFRNTE9wdGlvbkVs
ZW1lbnQ7CiBjbGFzcyBLVVJMOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIApAQCAtMTk0LDYg
KzE5NiwxMSBAQCBwdWJsaWM6CiAgICAgS1VSTCBzcmMoKSBjb25zdDsKICAgICB2b2lkIHNldFNy
Yyhjb25zdCBTdHJpbmcmKTsKIAorI2lmIEVOQUJMRShEQVRBTElTVCkKKyAgICBIVE1MRGF0YUxp
c3RFbGVtZW50KiBsaXN0KCk7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGVjdGVkT3B0aW9u
KCk7CisjZW5kaWYKKwogICAgIGludCBtYXhMZW5ndGgoKSBjb25zdDsKICAgICB2b2lkIHNldE1h
eExlbmd0aChpbnQpOwogCkBAIC0yNTksNiArMjY2LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2F1dG9jb21wbGV0ZSA6IDI7IC8vIEF1dG9Db21wbGV0ZVNldHRpbmcKICAgICBib29sIG1f
YXV0b2ZpbGxlZCA6IDE7CiAgICAgYm9vbCBtX2luaXRlZCA6IDE7CisjaWYgRU5BQkxFKERBVEFM
SVNUKQorICAgIGJvb2wgbV9oYXNOb25FbXB0eUxpc3QgOiAxOworI2VuZGlmCiB9OwogCiB9IC8v
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZTE1YzZiNS4uNWVhY2Y4
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMzgsNiArMzgsMTIgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGNoZWNr
ZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZGlzYWJsZWQ7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgYXV0b2ZvY3VzOwor
I2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QKKwkJIC8vIFRo
ZSB0eXBlIG9mIHRoZSBsaXN0IGlzIEhUTUxFbGVtZW50IGFjY29yZGluZyB0byB0aGUgc3RhbmRh
cmQuCisJCSAvLyBXZSBpbnRlbnRpb25hbGx5IHVzZSBIVE1MRGF0YUxpc3RFbGVtZW50IGZvciBp
dCBiZWNhdXNlIG91ciBpbXBsZW1lbnRhdGlvbgorCQkgLy8gYWx3YXlzIHJldHVybnMgYW4gSFRN
TERhdGFMaXN0RWxlbWVudCBpbnN0YW5jZS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhU
TUxEYXRhTGlzdEVsZW1lbnQgbGlzdDsKKyNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICBtdWx0aXBsZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CkBAIC01NSw2ICs2MSw5IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZywgSlNDQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkg
ZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1
ZTsKKyNpZiBkZWZpbmVkKEVOQUJMRV9EQVRBTElTVCkgJiYgRU5BQkxFX0RBVEFMSVNUCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsK
KyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxW
YWxpZGF0ZTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwog
ICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7Cg==
</data>
<flag name="review"
          id="19272"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="19395"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38419</attachid>
            <date>2009-08-21 17:16:44 -0700</date>
            <delta_ts>2009-08-21 17:16:55 -0700</delta_ts>
            <desc>bugzilla-tool failure log</desc>
            <filename>27756.log</filename>
            <type>text/plain</type>
            <size>1925</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">RmV0Y2hpbmc6IGh0dHA6Ly9idWlsZC53ZWJraXQub3JnL29uZV9ib3hfcGVyX2J1aWxkZXIKRmV0
Y2hpbmc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc1NiZjdHlw
ZT14bWwKMSByZXZpZXdlZCBwYXRjaCBmb3VuZCBvbiAyNzc1Ni4KTGFuZGluZyAxIHBhdGNoIGZy
b20gMSBidWcuCkNsZWFuaW5nIHdvcmtpbmcgZGlyZWN0b3J5ClVwZGF0aW5nIHdvcmtpbmcgZGly
ZWN0b3J5CkN1cnJlbnQgYnJhbmNoIEhFQUQgaXMgdXAgdG8gZGF0ZS4KQXBwbHlpbmcgMzUwODcg
ZnJvbSBidWcgMjc3NTYuCnBhdGNoaW5nIGZpbGUgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkh1bmsg
IzEgc3VjY2VlZGVkIGF0IDEgd2l0aCBmdXp6IDMuCnBhdGNoaW5nIGZpbGUgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1saXN0LWV4cGVjdGVkLnR4dApwYXRjaGluZyBmaWxlIExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sCnBhdGNoaW5nIGZpbGUgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi1leHBlY3RlZC50eHQKcGF0Y2hpbmcgZmls
ZSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwKcGF0Y2hp
bmcgZmlsZSBXZWJDb3JlL0NoYW5nZUxvZwpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxIHdpdGggZnV6
eiAzLgpwYXRjaGluZyBmaWxlIFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KcGF0
Y2hpbmcgZmlsZSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKcGF0Y2hpbmcgZmls
ZSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCnBhdGNoaW5nIGZpbGUgV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDYxIHdpdGggZnV6
eiAyLgpGZXRjaGluZzogaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvb25lX2JveF9wZXJfYnVpbGRl
cgpSdW5uaW5nIGJ1aWxkLXdlYmtpdApSdW5uaW5nIGJ1aWxkLWR1bXByZW5kZXJ0cmVlClJ1bm5p
bmcgdGVzdHMgZnJvbSAvVXNlcnMvZXNlaWRlbC9Qcm9qZWN0cy9XZWJLaXQyL0xheW91dFRlc3Rz
ClRlc3RpbmcgMTExMzIgdGVzdCBjYXNlcy4KCjM4MC43N3MgdG90YWwgdGVzdGluZyB0aW1lCgph
bGwgMTExMzIgdGVzdCBjYXNlcyBzdWNjZWVkZWQKUGFyc2luZyBDaGFuZ2VMb2c6IExheW91dFRl
c3RzL0NoYW5nZUxvZwpQYXJzaW5nIENoYW5nZUxvZzogV2ViQ29yZS9DaGFuZ2VMb2cKQSByZXBv
c2l0b3J5IGhvb2sgZmFpbGVkOiBNRVJHRSByZXF1ZXN0IGZhaWxlZCBvbiAnL3JlcG9zaXRvcnkv
d2Via2l0L3RydW5rJzogQ29tbWl0IGJsb2NrZWQgYnkgcHJlLWNvbW1pdCBob29rIChleGl0IGNv
ZGUgMSkgd2l0aCBvdXRwdXQ6CgogICAgVGhlIGZvbGxvd2luZyBmaWxlcyBjb250YWluIHRhYiBj
aGFyYWN0ZXJzOgoKICAgICAgICB0cnVuay9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKCiAgICBQbGVhc2UgdXNlIHNwYWNlcyBpbnN0ZWFkIHRvIGluZGVudC4KICAgIElmIHlvdSBt
dXN0IGNvbW1pdCBhIGZpbGUgd2l0aCB0YWJzLCB1c2Ugc3ZuIHByb3BzZXQgdG8gc2V0IHRoZSAi
YWxsb3ctdGFicyIgcHJvcGVydHkuCiBhdCAvdXNyL2xvY2FsL2xpYmV4ZWMvZ2l0LWNvcmUvL2dp
dC1zdm4gbGluZSA0NjkKCkxvZ2dpbmcgaW4gYXMgZXJpY0B3ZWJraXQub3JnLi4uClJlamVjdGlu
ZyBwYXRjaCAzNTA4NyBmcm9tIGNvbW1pdC1xdWV1ZS4gIFRoaXMgcGF0Y2ggd2lsbCByZXF1aXJl
IG1hbnVhbCBjb21taXQuCgpGYWlsZWQgdG8gcnVuICJbJ2dpdCcsICdzdm4nLCAnZGNvbW1pdCdd
IiAgZXhpdF9jb2RlOiAxICBjd2Q6IE5vbmUKRVJST1I6IEZhaWxlZCB0byBydW4gIlsnZ2l0Jywg
J3N2bicsICdkY29tbWl0J10iICBleGl0X2NvZGU6IDEgIGN3ZDogTm9uZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38463</attachid>
            <date>2009-08-23 18:50:42 -0700</date>
            <delta_ts>2009-08-25 17:51:14 -0700</delta_ts>
            <desc>Proposed patch (rev.6)</desc>
            <filename>selected-option-6.diff</filename>
            <type>text/plain</type>
            <size>12277</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Njk1YzFjLi41MjA4YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDgt
MTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZm9yIEhUTUxJbnB1dEVsZW1l
bnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVkT3B0aW9uLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3NTYKKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW5wdXQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0xOCAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YTFhZjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWxpc3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQubGlzdCBpcyBudWxsCitQQVNTIGlu
cHV0Lmxpc3QgaXMgbnVsbAorUEFTUyBpbnB1dC5saXN0IGlzIG51bGwKK1BBU1MgaW5wdXQubGlz
dCBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGwxIikKK1BBU1MgaW5wdXQubGlzdCBpcyBu
dWxsCitQQVNTIGRhdGFsaXN0LmNsYXNzTmFtZSBpcyAiZm9ybWVyIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWJkNDE3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtbGlzdC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzwhLS0gTm8gbGlzdCBhdHRyaWJ1dGUgLS0+Cis8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9ImkxIj4KKzwhLS0gRW1wdHkgbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTIiIGxpc3Q9IiI+Cis8IS0tIE5vbi1leGlzdGVudCBJRCAtLT4KKzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaTMiIGxpc3Q9Im5vbmV4aXN0Ij4KKzwhLS0gTm9ybWFsIGNhc2UgLS0+Cis8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imk0IiBsaXN0PSJkbDEiPgorPCEtLSBVbnN1cHBvcnRlZCB0
eXBlIC0tPgorPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iaTUiIGxpc3Q9ImRsMSI+Cis8IS0t
IElEIGNvbmZpbGljdCAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIGxpc3Q9ImRsMiI+
CisKKzxkYXRhbGlzdCBpZD0iZGwxIj4KKyA8b3B0aW9uPnZhbHVlMTwvb3B0aW9uPgorPC9kYXRh
bGlzdD4KKworPGRhdGFsaXN0IGlkPSJkbDIiIGNsYXNzPSJmb3JtZXIiPgorIDxvcHRpb24+dmFs
dWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorPGRhdGFsaXN0IGlkPSJkbDIiIGNsYXNzPSJsYXR0
ZXIiPgorIDxvcHRpb24+dmFsdWUxPC9vcHRpb24+Cis8L2RhdGFsaXN0PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIHRoZSBsaXN0IGF0dHJpYnV0ZS4nKTsKKwordmFyIGlucHV0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRCZU51bGwoJ2lucHV0Lmxp
c3QnKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTInKTsKK3Nob3VsZEJl
TnVsbCgnaW5wdXQubGlzdCcpOworCitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
MycpOworc2hvdWxkQmVOdWxsKCdpbnB1dC5saXN0Jyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2k0Jyk7CitzaG91bGRCZSgnaW5wdXQubGlzdCcsICdkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGwxIiknKTsKKworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aTUnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQubGlzdCcpOworCit2YXIgZGF0YWxpc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTYnKS5saXN0Oworc2hvdWxkQmUoJ2RhdGFsaXN0LmNsYXNz
TmFtZScsICciZm9ybWVyIicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjg5NGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXNlbGVjdGVkb3B0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE3IEBACitUZXN0IGZvciB0aGUgc2VsZWN0ZWRPcHRpb24gYXR0cmlidXRlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlv
biBpcyBudWxsCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQu
c2VsZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBpbnB1dC5zZWxlY3RlZE9wdGlvbiBpcyBudWxs
CitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
MSIpCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJvMiIpCitQQVNTIGlucHV0LnNlbGVjdGVkT3B0aW9uIGlzIG51bGwKK1BBU1MgaW5wdXQuc2Vs
ZWN0ZWRPcHRpb24gaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1zZWxlY3RlZG9wdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjIwMWIwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXNlbGVjdGVkb3B0aW9uLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPCEtLSBFbXB0eSB2YWx1ZSBhbmQgbm8gbGlz
dCBhdHRyaWJ1dGUgLS0+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImkxIiB2YWx1ZT0iIj4KKzwh
LS0gRW1wdHkgbGlzdCAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTIiIHZhbHVlPSJmb28i
IGxpc3Q9IiI+Cis8IS0tIEVtcHR5IGRhdGFsaXN0IC0tPgorPGlucHV0IHR5cGU9InRleHQiIGlk
PSJpMyIgdmFsdWU9ImZvbyIgbGlzdD0iZGwxIj4KKzwhLS0gRW1wdHkgdmFsdWUgYW5kIGVtcHR5
IG9wdGlvbiAtLT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTQiIHZhbHVlPSIiIGxpc3Q9ImRs
MiI+Cis8IS0tIE1hdGNoIGNhc2VzIC0tPgorPElucHV0IHR5cGU9InRleHQiIGlkPSJpNSIgdmFs
dWU9ImZvbyIgbGlzdD0iZGwzIj4KKzxJbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaTYiIHZhbHVlPSJi
YXIiIGxpc3Q9ImRsMyI+Cis8IS0tIFVubWF0Y2ggY2FzZSAtLT4KKzxJbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaTciIHZhbHVlPSJmb28iIGxpc3Q9ImRsNCI+CisKKzxkYXRhbGlzdCBpZD0iZGwxIj4K
KzwvZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMiI+CisgPG9wdGlvbj48L29wdGlvbj4KKzwv
ZGF0YWxpc3Q+Cis8ZGF0YWxpc3QgaWQ9ImRsMyI+CisgPG9wdGlvbiBpZD0ibzEiPmZvbzwvb3B0
aW9uPgorIDxvcHRpb24gaWQ9Im8yIj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+Cis8ZGF0YWxp
c3QgaWQ9ImRsMyI+CisgPG9wdGlvbj5iYXI8L29wdGlvbj4KKzwvZGF0YWxpc3Q+CisKKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbignVGVzdCBmb3IgdGhlIHNlbGVjdGVkT3B0aW9uIGF0dHJpYnV0ZS4n
KTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kxJyk7CitzaG91bGRC
ZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2kyJyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisK
K2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2kzJyk7CitzaG91bGRCZU51bGwoJ2lu
cHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2k0Jyk7CitzaG91bGRCZU51bGwoJ2lucHV0LnNlbGVjdGVkT3B0aW9uJyk7CisKK2lucHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2k1Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRP
cHRpb24nLCAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8xIiknKTsKK2lucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2k2Jyk7CitzaG91bGRCZSgnaW5wdXQuc2VsZWN0ZWRPcHRpb24n
LCAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm8yIiknKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ28xJykuZGlzYWJsZWQgPSB0cnVlOworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaTUnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQuc2VsZWN0ZWRPcHRpb24nKTsKKworaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaTcnKTsKK3Nob3VsZEJlTnVsbCgnaW5wdXQu
c2VsZWN0ZWRPcHRpb24nKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVhYzBlNTIuLjJlOTliODMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMDktMDgtMTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQg
Zm9yIEhUTUxJbnB1dEVsZW1lbnQ6Omxpc3QgYW5kIEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGVk
T3B0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc3NTYKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9pbnB1dC1saXN0Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtc2VsZWN0ZWRvcHRpb24uaHRtbAorCisgICAgICAg
ICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24pOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGw6CisKIDIwMDktMDgtMTggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgppbmRleCAxY2FmNDczLi42MGFhYzdkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4KQEAgLTk3LDYgKzk3LDcgQEAgbGFuZwogbGFuZ3VhZ2UKIGxlZnRtYXJnaW4K
IGxpbmsKK2xpc3QKIGxvbmdkZXNjCiBsb29wCiBwbGF5Y291bnQKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCAyYmY4NTE5Li4xNzM3MjIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC0zOSw5ICszOSwxMSBAQAogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRN
TERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgi
CkBAIC03MzUsNiArNzM3LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICAgICAgIGF0dHItPm5hbWUo
KSA9PSBtdWx0aXBsZUF0dHIgfHwKICAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gcHJlY2lz
aW9uQXR0cikKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworI2lmIEVOQUJMRShEQVRB
TElTVCkKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGlzdEF0dHIpCisgICAgICAgIG1f
aGFzTm9uRW1wdHlMaXN0ID0gIWF0dHItPmlzRW1wdHkoKTsKKyAgICAgICAgLy8gRklYTUU6IHdl
IG5lZWQgdG8gdGVsbCB0aGlzIGNoYW5nZSB0byBhIHJlbmRlcmVyIGlmIHRoZSBhdHRyaWJ1dGUg
YWZmZWN0cyB0aGUgYXBwZWFyYW5jZS4KKyNlbmRpZgogICAgIGVsc2UKICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CiB9
CkBAIC0xNzY1LDQgKzE3NzIsNTkgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpwbGFjZWhvbGRl
clNob3VsZEJlVmlzaWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YS5wbGFjZWhvbGRlclNo
b3VsZEJlVmlzaWJsZSgpOwogfQogCisjaWYgRU5BQkxFKERBVEFMSVNUKQorSFRNTERhdGFMaXN0
RWxlbWVudCogSFRNTElucHV0RWxlbWVudDo6bGlzdCgpCit7CisgICAgaWYgKCFtX2hhc05vbkVt
cHR5TGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7
CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVVJMOgorICAgIGNh
c2UgVEVMRVBIT05FOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2Fz
ZSBSQU5HRTogeworICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gZG9jdW1lbnQoKS0+Z2V0RWxl
bWVudEJ5SWQoZ2V0QXR0cmlidXRlKGxpc3RBdHRyKSk7CisgICAgICAgIGlmIChlbGVtZW50ICYm
IGVsZW1lbnQtPmhhc1RhZ05hbWUoZGF0YWxpc3RUYWcpKQorICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxEYXRhTGlzdEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBD
SEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIFNVQk1J
VDoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBCVVRUT046Cisg
ICAgY2FzZSBJU0lOREVYOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK0hUTUxPcHRpb25FbGVtZW50KiBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RlZE9wdGlvbigp
Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAgLy8gVGhlIGVtcHR5
IHZhbHVlIG5ldmVyIG1hdGNoZXMgdG8gYSBkYXRhbGlzdCBvcHRpb24gYmVjYXVzZSBpdAorICAg
IC8vIGRvZXNuJ3QgcmVwcmVzZW50IGEgc3VnZ2VzdGlvbiBhY2NvcmRpbmcgdG8gdGhlIHN0YW5k
YXJkLgorICAgIGlmIChjdXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBsaXN0KCk7CisgICAg
aWYgKCFzb3VyY2VFbGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IG9wdGlvbnMgPSBzb3VyY2VFbGVtZW50LT5vcHRpb25zKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgb3B0aW9ucyAmJiBpIDwgb3B0aW9ucy0+bGVuZ3RoKCk7ICsraSkgewor
ICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQqPihvcHRpb25zLT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFvcHRpb24tPmRpc2Fi
bGVkKCkgJiYgY3VycmVudFZhbHVlID09IG9wdGlvbi0+dmFsdWUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBvcHRpb247CisgICAgfQorICAgIHJldHVybiAwOworfQorI2VuZGlmICAvLyBFTkFCTEUo
REFUQUxJU1QpCisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA0
ZDg4N2YzLi40ZGY1Y2Y5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMxLDcgKzMxLDkg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZUxpc3Q7CitjbGFzcyBIVE1MRGF0
YUxpc3RFbGVtZW50OwogY2xhc3MgSFRNTEltYWdlTG9hZGVyOworY2xhc3MgSFRNTE9wdGlvbkVs
ZW1lbnQ7CiBjbGFzcyBLVVJMOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIApAQCAtMTk0LDYg
KzE5NiwxMSBAQCBwdWJsaWM6CiAgICAgS1VSTCBzcmMoKSBjb25zdDsKICAgICB2b2lkIHNldFNy
Yyhjb25zdCBTdHJpbmcmKTsKIAorI2lmIEVOQUJMRShEQVRBTElTVCkKKyAgICBIVE1MRGF0YUxp
c3RFbGVtZW50KiBsaXN0KCk7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGVjdGVkT3B0aW9u
KCk7CisjZW5kaWYKKwogICAgIGludCBtYXhMZW5ndGgoKSBjb25zdDsKICAgICB2b2lkIHNldE1h
eExlbmd0aChpbnQpOwogCkBAIC0yNTksNiArMjY2LDkgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2F1dG9jb21wbGV0ZSA6IDI7IC8vIEF1dG9Db21wbGV0ZVNldHRpbmcKICAgICBib29sIG1f
YXV0b2ZpbGxlZCA6IDE7CiAgICAgYm9vbCBtX2luaXRlZCA6IDE7CisjaWYgRU5BQkxFKERBVEFM
SVNUKQorICAgIGJvb2wgbV9oYXNOb25FbXB0eUxpc3QgOiAxOworI2VuZGlmCiB9OwogCiB9IC8v
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZTE1YzZiNS4uZDJlYmNl
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMzgsNiArMzgsMTIgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGNoZWNr
ZWQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgZGlzYWJsZWQ7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgYXV0b2ZvY3VzOwor
I2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QKKyAgICAgICAg
ICAgICAgICAgLy8gVGhlIHR5cGUgb2YgdGhlIGxpc3QgaXMgSFRNTEVsZW1lbnQgYWNjb3JkaW5n
IHRvIHRoZSBzdGFuZGFyZC4KKyAgICAgICAgICAgICAgICAgLy8gV2UgaW50ZW50aW9uYWxseSB1
c2UgSFRNTERhdGFMaXN0RWxlbWVudCBmb3IgaXQgYmVjYXVzZSBvdXIgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIHJldHVybnMgYW4gSFRNTERhdGFMaXN0RWxlbWVu
dCBpbnN0YW5jZS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxEYXRhTGlzdEVsZW1l
bnQgbGlzdDsKKyNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgIG1heExlbmd0aDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAg
ICBtdWx0aXBsZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CkBAIC01NSw2ICs2MSw5IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgSlND
Q3VzdG9tR2V0dGVyXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0
IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyNpZiBkZWZpbmVk
KEVOQUJMRV9EQVRBTElTVCkgJiYgRU5BQkxFX0RBVEFMSVNUCisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKKyNlbmRpZgogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKICAgICAg
ICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZp
bmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkICAg
ICAgICAgICAgICAgc2VsZWN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>38577</attachid>
            <date>2009-08-25 17:04:01 -0700</date>
            <delta_ts>2009-08-25 17:04:01 -0700</delta_ts>
            <desc>(seemingly unrelated) test failure when trying to land this</desc>
            <filename>different-scheme-diffs.txt</filename>
            <type>text/plain</type>
            <size>1193</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">LS0tIC90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2RpZmZlcmVu
dC1zY2hlbWUtZXhwZWN0ZWQudHh0CTIwMDktMDgtMjUgMTc6MDE6MzAuMDAwMDAwMDAwIC0wNzAw
CisrKyAvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9kaWZmZXJl
bnQtc2NoZW1lLWFjdHVhbC50eHQJMjAwOS0wOC0yNSAxNzowMTozMC4wMDAwMDAwMDAgLTA3MDAK
QEAgLTEsMyArMSwxNSBAQAotVGVzdCB0aGF0IGFwcGxpY2F0aW9uIGNhY2hlIGRvZXNuJ3QgYmxv
Y2sgbG9hZGluZyByZXNvdXJjZXMgd2l0aCBkaWZmZXJlbnQgc2NoZW1lcy4KLQotU1VDQ0VTUwor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0gxfSBhdCAoMCwwKSBzaXplIDc4NHgzNwor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNDh4MzcKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxNDg6ICJOb3QgRm91bmQiCisgICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsNTgpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDUyMHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDUyMDogIlRoZSByZXF1ZXN0ZWQgVVJMIC9hcHBjYWNoZS9kaWZmZXJlbnQtc2NoZW1lLmh0bWwg
d2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci4iCisgICAgICBSZW5kZXJCbG9jayB7SFJ9IGF0
ICgwLDkyKSBzaXplIDc4NHgyIFtib3JkZXI6ICgxcHggaW5zZXQgIzAwMDAwMCldCisgICAgICBS
ZW5kZXJCbG9jayB7QUREUkVTU30gYXQgKDAsMTAyKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA1OTA6ICJBcGFjaGUvMi4yLjExIChVbml4KSBQSFAvNS4yLjggbW9kX3Nz
bC8yLjIuMTEgT3BlblNTTC8wLjkuN2wgU2VydmVyIGF0IDEyNy4wLjAuMSBQb3J0IDgwIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>