<?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>19539</bug_id>
          
          <creation_ts>2008-06-13 11:18:16 -0700</creation_ts>
          <short_desc>Nested &lt;ul&gt;s are mishandled when converted to &lt;ol&gt; using execCommand(&apos;insertorderedlist&apos;)</short_desc>
          <delta_ts>2010-04-21 00:15:11 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35281</blocked>
    
    <blocked>36430</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Bloom">futurama</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>83225</commentid>
    <comment_count>0</comment_count>
    <who name="David Bloom">futurama</who>
    <bug_when>2008-06-13 11:18:16 -0700</bug_when>
    <thetext>Steps to reproduce:
1. go to http://www.mozilla.org/editor/midasdemo/
2. type: &quot;test\ntest\ntest&quot; (with the newlines unescaped ;-))
3. select the text
4. click the &quot;Bulleted list&quot; icon in the toolbar
5. click the &quot;indent right&quot; icon in the toolbar
6. click the &quot;Numbered list&quot; icon in the toolbar

expected: &quot;1. test
           2. test
           3. test&quot;

actual: &quot;1. test
         1. test
         1. test&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128842</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-29 11:06:36 -0700</bug_when>
    <thetext>Cannot reproduce on nightly build.  I suspect that it has been fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201922</commentid>
    <comment_count>2</comment_count>
      <attachid>51166</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-19 10:38:57 -0700</bug_when>
    <thetext>Created attachment 51166
demonstrates the bug

Now the bug reproduces. Maybe it&apos;s a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201923</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-19 10:39:32 -0700</bug_when>
    <thetext>+tony</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202081</commentid>
    <comment_count>4</comment_count>
      <attachid>51201</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-19 16:18:00 -0700</bug_when>
    <thetext>Created attachment 51201
fixes InsertListCommand::doApply to merge lists after inserting a list element

The bug was caused by the second part of InsertListCommand::doApply where it does not merge lists after inserting a list element.  While I&apos;m quite convinced that we need to cleanup InsertListCommand.cpp, this bug seems to be simple enough that we can fix it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202086</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-19 16:22:29 -0700</bug_when>
    <thetext>Attachment 51201 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/editing/htmlediting.h:198:  Missing spaces around =  [whitespace/operators] [4]
WebCore/editing/htmlediting.h:198:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202120</commentid>
    <comment_count>6</comment_count>
      <attachid>51208</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-19 17:25:07 -0700</bug_when>
    <thetext>Created attachment 51208
fixed the style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202365</commentid>
    <comment_count>7</comment_count>
      <attachid>51260</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-21 16:18:41 -0700</bug_when>
    <thetext>Created attachment 51260
added more tests and fixed a bug in the patch

There was a bug in my patch. Merging lists must occur after moveParagraph moved the paragraph because nextList isn&apos;t visually next to the inserted list element otherwise. Fixed the problem and added test cases to demonstrate this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202373</commentid>
    <comment_count>8</comment_count>
      <attachid>51262</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-03-21 16:27:08 -0700</bug_when>
    <thetext>Created attachment 51262
reverted the change to editing/execCommand/create-list-from-range-selection.html

For some reason, editing/execCommand/create-list-from-range-selection.html passes without the change.  Fixed the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214931</commentid>
    <comment_count>9</comment_count>
      <attachid>51262</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2010-04-20 13:59:35 -0700</bug_when>
    <thetext>Comment on attachment 51262
reverted the change to editing/execCommand/create-list-from-range-selection.html

&gt; -        if (nextList &amp;&amp; previousList)
&gt; +        if (m_listElement) {
&gt; +            if (canMergeLists(previousList, m_listElement.get()))
&gt; +                mergeIdenticalElements(previousList, m_listElement.get());
&gt; +            if (canMergeLists(m_listElement.get(), nextList))
&gt; +                mergeIdenticalElements(m_listElement.get(), nextList);

Is m_listElement necessarily still valid if it and previousList got merged?


&gt; -HTMLElement* outermostEnclosingList(Node* node)
&gt; +HTMLElement* outermostEnclosingList(Node* node, Node* rootNode)

I would call this rootList.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214945</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-04-20 14:22:05 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #9)
&gt; (From update of attachment 51262 [details])
&gt; &gt; -        if (nextList &amp;&amp; previousList)
&gt; &gt; +        if (m_listElement) {
&gt; &gt; +            if (canMergeLists(previousList, m_listElement.get()))
&gt; &gt; +                mergeIdenticalElements(previousList, m_listElement.get());
&gt; &gt; +            if (canMergeLists(m_listElement.get(), nextList))
&gt; &gt; +                mergeIdenticalElements(m_listElement.get(), nextList);
&gt; Is m_listElement necessarily still valid if it and previousList got merged?

Yes. mergeIdenticalElements puts the contents of the first element into the second element and deletes the first element, so the second element survives.

&gt; &gt; -HTMLElement* outermostEnclosingList(Node* node)
&gt; &gt; +HTMLElement* outermostEnclosingList(Node* node, Node* rootNode)
&gt; I would call this rootList.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215185</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-04-21 00:15:11 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/57954.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>51166</attachid>
            <date>2010-03-19 10:38:57 -0700</date>
            <delta_ts>2010-03-19 16:18:00 -0700</delta_ts>
            <desc>demonstrates the bug</desc>
            <filename>insert-ordered-with-indented-unordered.html</filename>
            <type>text/html</type>
            <size>905</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgaW5zZXJ0aW5nIGFuIG9yZGVyZWQgbGlz
dCBhZnRlciBhbiB1bm9yZGVyZWQgbGlzdCBpcyBpbmRlbnRlZDwvZGl2Pgo8ZGl2IGlkPSJ0ZXN0
IiBjb250ZW50ZWRpdGFibGU9InRydWUiPnRlc3Q8ZGl2PnRlc3Q8L2Rpdj48ZGl2PnRlc3Q8L2Rp
dj48L2Rpdj4KPHVsIGlkPSJjb25zb2xlIj4KCTxsaT5CZWZvcmU6IDxzcGFuIGlkPSJiZWZvcmUi
Pjwvc3Bhbj48L2xpPgoJPGxpPkFmdGVyOiA8c3BhbiBpZD0iYWZ0ZXIiPjwvc3Bhbj48L2xpPgo8
L3VsPgo8c2NyaXB0PgppZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKCnZhciBzID0gd2luZG93LmdldFNl
bGVjdGlvbigpOwp2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKCmRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWZvcmUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShkaXYuaW5uZXJIVE1MKSk7Cgp2YXIgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdl
KCk7CnIuc2V0U3RhcnQoZGl2LCAwKTsKci5zZXRFbmQoZGl2LCBkaXYuY2hpbGROb2Rlcy5sZW5n
dGgpOwpzLmFkZFJhbmdlKHIpOwoKZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFVub3JkZXJl
ZExpc3QnLCBmYWxzZSwgbnVsbCk7CmRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbmRlbnQnLCBmYWxz
ZSwgbnVsbCk7CmRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRPcmRlcmVkTGlzdCcsIGZhbHNl
LCBudWxsKTsKCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZnRlcicpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGRpdi5pbm5lckhUTUwpKTsKCjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51201</attachid>
            <date>2010-03-19 16:18:00 -0700</date>
            <delta_ts>2010-03-19 17:25:07 -0700</delta_ts>
            <desc>fixes InsertListCommand::doApply to merge lists after inserting a list element</desc>
            <filename>fix19539</filename>
            <type>text/plain</type>
            <size>10587</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjI3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVz
dGVkIDx1bD5zIGFyZSBtaXNoYW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhl
Y0NvbW1hbmQoJ2luc2VydG9yZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM5CisKKyAgICAgICAgRml4ZXMgYSBidWcgd2hlcmUg
dHdvIGNvbnNlY3V0aXZlIGxpc3RzIGFyZSBub3QgbWVyZ2VkIGlmIHRoZXkgaGF2ZSBiZWVuIGNv
bnZlcnRlZAorICAgICAgICBmcm9tIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3RzIGluc2lkZSBhbm90
aGVyIGxpc3QuCisKKyAgICAgICAgQWZ0ZXIgaW5zZXJ0aW5nIGEgbGlzdCBlbGVtZW50LCBJbnNl
cnRMaXN0Q29tbWFuZDo6ZG9BcHBseSBzZXRzIHByZXZpb3VzTGlzdCBhbmQgbmV4dExpc3QKKyAg
ICAgICAgdG8gdGhlIG91dGVybW9zdCBsaXN0IGVsZW1lbnRzIGFyb3VuZCBpbnNlcnRpb25Qb3Ms
IGFuZCBlbnN1cmVzIHRoYXQgdGhleSBoYXZlIHRoZSBzYW1lIGVuY2xvc2luZyBsaXN0CisgICAg
ICAgIGFzIHRoZSBuZXcgbGlzdCBlbGVtZW50IGJlaW5nIGluc2VydGVkLgorCisgICAgICAgIFRl
c3Q6IGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3Qu
aHRtbAorCisgICAgICAgICogZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6ZG9BcHBseSk6IE1vZGlmaWVkIGFzIGRlc2Ny
aWJlZCBhYm92ZQorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3V0ZXJtb3N0RW5jbG9zaW5nTGlzdCk6IEFkZGVkIHJvb3ROb2RlLiBvdXRlcm1v
c3RFbmNsb3NpbmdMaXN0IHJldHVybnMgdGhlIG91dGVybW9zdCBsaXN0IGVsZW1lbnQsCisgICAg
ICAgICAgd2hpY2ggaXMgYSBkZXNjZW5kZW50IG9mIHJvb3ROb2RlLgorICAgICAgICAqIGVkaXRp
bmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMC0wMy0xOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2luZG93cyBjbGVhbiBidWlsZCBmaXggYWZ0ZXIgcjU2MTkyCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDU2MTk2KQor
KysgV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjU5LDkgKzI1OSwxNiBAQCB2b2lkIEluc2VydExpc3RDb21tYW5kOjpkb0FwcGx5KCkKICAg
ICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhcnQgb2YgY29udGVudCwgc28gd2UgZG9uJ3QgdHJ5
IHRvIG1vdmUgdGhlIGxpc3QgaW50byBpdHNlbGYuICBidWcgMTkwNjYKICAgICAgICAgICAgIGlm
IChpbnNlcnRpb25Qb3MgPT0gc3RhcnQuZGVlcEVxdWl2YWxlbnQoKSkKICAgICAgICAgICAgICAg
ICBzdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgob3JpZ2luYWxTdGFydCk7CisKKyAgICAgICAgICAg
IHByZXZpb3VzTGlzdCA9IG91dGVybW9zdEVuY2xvc2luZ0xpc3QocHJldmlvdXNQb3NpdGlvbi5k
ZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgZW5jbG9zaW5nTGlzdChsaXN0RWxlbWVudC5nZXQoKSkp
OworICAgICAgICAgICAgbmV4dExpc3QgPSBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KG5leHRQb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgZW5jbG9zaW5nTGlzdChsaXN0RWxlbWVudC5n
ZXQoKSkpOworICAgICAgICAgICAgaWYgKGNhbk1lcmdlTGlzdHMocHJldmlvdXNMaXN0LCBsaXN0
RWxlbWVudC5nZXQoKSkpCisgICAgICAgICAgICAgICAgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhw
cmV2aW91c0xpc3QsIGxpc3RFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChjYW5NZXJn
ZUxpc3RzKGxpc3RFbGVtZW50LmdldCgpLCBuZXh0TGlzdCkpCisgICAgICAgICAgICAgICAgbWVy
Z2VJZGVudGljYWxFbGVtZW50cyhsaXN0RWxlbWVudC5nZXQoKSwgbmV4dExpc3QpOwogICAgICAg
ICB9CiAgICAgICAgIG1vdmVQYXJhZ3JhcGgoc3RhcnQsIGVuZCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKHBsYWNlaG9sZGVyLmdldCgpLCAwKSksIHRydWUpOwotICAgICAgICBpZiAobmV4dExp
c3QgJiYgcHJldmlvdXNMaXN0KQorICAgICAgICBpZiAoY2FuTWVyZ2VMaXN0cyhuZXh0TGlzdCwg
cHJldmlvdXNMaXN0KSkKICAgICAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMocHJldmlv
dXNMaXN0LCBuZXh0TGlzdCk7CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
CShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgxMiwxMyArODEyLDE4IEBAIE5vZGUqIGVuY2xvc2luZ0VtcHR5TGlz
dEl0ZW0oY29uc3QgVmlzaWIKICAgICByZXR1cm4gbGlzdENoaWxkTm9kZTsKIH0KIAotSFRNTEVs
ZW1lbnQqIG91dGVybW9zdEVuY2xvc2luZ0xpc3QoTm9kZSogbm9kZSkKK0hUTUxFbGVtZW50KiBv
dXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqIG5vZGUsIE5vZGUqIHJvb3ROb2RlKQogewogICAg
IEhUTUxFbGVtZW50KiBsaXN0ID0gZW5jbG9zaW5nTGlzdChub2RlKTsKICAgICBpZiAoIWxpc3Qp
CiAgICAgICAgIHJldHVybiAwOwotICAgIHdoaWxlIChIVE1MRWxlbWVudCogbmV4dExpc3QgPSBl
bmNsb3NpbmdMaXN0KGxpc3QpKQorCisgICAgd2hpbGUgKEhUTUxFbGVtZW50KiBuZXh0TGlzdCA9
IGVuY2xvc2luZ0xpc3QobGlzdCkpIHsKKyAgICAgICAgaWYgKG5leHRMaXN0ID09IHJvb3ROb2Rl
KQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGxpc3QgPSBuZXh0TGlzdDsKKyAgICB9CisK
ICAgICByZXR1cm4gbGlzdDsKIH0KIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9u
IDU2MTk2KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE5NSw3ICsxOTUsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxl
bWVuCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCos
IGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBIVE1MRWxlbWVudCogZW5jbG9zaW5nTGlzdChOb2Rl
Kik7Ci1IVE1MRWxlbWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKik7CitIVE1MRWxl
bWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKixOb2RlKiByb290Tm9kZT0wKTsKIEhU
TUxFbGVtZW50KiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjI3OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTAzLTE5ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5lc3RlZCA8dWw+cyBhcmUgbWlzaGFuZGxlZCB3aGVuIGNvbnZlcnRlZCB0
byA8b2w+IHVzaW5nIGV4ZWNDb21tYW5kKCdpbnNlcnRvcmRlcmVkbGlzdCcpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzOQorCisgICAgICAgIFRl
c3QgdG8gbWFrZSBzdXJlIEluc2VydExpc3RDb21tYW5kIG1lcmdlcyBjb25zZWN1dGl2ZSBsaXN0
cyB3aGVuIGNvbnZlcnRpbmcKKyAgICAgICAgb3JkZXJlZC91bm9yZGVyZWQgbGlzdHMgdG8gdGhl
IG9wcG9zaXRlIHR5cGUgb2YgbGlzdHMgaW5zaWRlIGFub3RoZXIgbGlzdC4KKworICAgICAgICAq
IGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1s
aXN0cy1pbnNpZGUtYW5vdGhlci1saXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RTaW5nbGVUb2dnbGUpOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dDogYW5vbnltb3VzIG5vZGUgaXMgcmVtb3ZlZAorCiAyMDEwLTAzLTE5
ICBEaXJrIFByYW5rZSA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMtaW5zaWRl
LWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0byBtYWtlIHN1cmUg
aW5zZXJ0aW5nIGFuIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3QgaW5zaWRlIGFub3RoZXIgbGlzdCB3
b3JrcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvbmUgSW5zZXJ0T3Jk
ZXJlZExpc3QgY29tbWFuZCBjb252ZXJ0ZWQgPHVsPjx1bD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8
L2xpPjxsaT50ZXN0PC9saT48L3VsPjwvdWw+IHRvIDx1bD48b2w+PGxpPnRlc3Q8L2xpPjxsaT50
ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L3VsPgorUEFTUyBvbmUgSW5zZXJ0T3JkZXJlZExp
c3QgY29tbWFuZCBjb252ZXJ0ZWQgPHVsPjx1bD48bGk+dGVzdDwvbGk+PC91bD48dWw+PGxpPnRl
c3Q8L2xpPjwvdWw+PC91bD4gdG8gPHVsPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwv
b2w+PC91bD4KK1BBU1Mgb25lIEluc2VydE9yZGVyZWRMaXN0IGNvbW1hbmQgY29udmVydGVkIDx1
bD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48L3VsPjwvdWw+PHVsPjxsaT50ZXN0PC9s
aT48L3VsPiB0byA8dWw+PG9sPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L3VsPjxv
bD48bGk+dGVzdDwvbGk+PC9vbD4KK1BBU1Mgb25lIEluc2VydFVub3JkZXJlZExpc3QgY29tbWFu
ZCBjb252ZXJ0ZWQgPG9sPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9s
aT48L29sPjwvb2w+IHRvIDxvbD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+dGVz
dDwvbGk+PC91bD48L29sPgorUEFTUyBvbmUgSW5zZXJ0VW5vcmRlcmVkTGlzdCBjb21tYW5kIGNv
bnZlcnRlZCA8b2w+PG9sPjxsaT50ZXN0PC9saT48L29sPjxvbD48bGk+dGVzdDwvbGk+PC9vbD48
L29sPiB0byA8b2w+PHVsPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC91bD48L29sPgorUEFT
UyBvbmUgSW5zZXJ0VW5vcmRlcmVkTGlzdCBjb21tYW5kIGNvbnZlcnRlZCA8b2w+PG9sPjxsaT50
ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L29sPjxvbD48bGk+dGVzdDwvbGk+PC9vbD4gdG8g
PG9sPjx1bD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD48dWw+PGxpPnRlc3Q8
L2xpPjwvdWw+CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMt
aW5zaWRlLWFub3RoZXItbGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3Rz
LWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10
ZXN0cy9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1saXN0
cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACitk
ZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUgaW5zZXJ0aW5nIGFuIG9yZGVyZWQvdW5vcmRl
cmVkIGxpc3QgaW5zaWRlIGFub3RoZXIgbGlzdCB3b3JrcyIpCisKK3ZhciB0ZXN0Q29udGFpbmVy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0Q29udGFpbmVyLmNvbnRlbnRF
ZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWluZXIp
OworCitmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxDb250
ZW50cywgZXhwZWN0ZWRDb250ZW50cykKK3sKKyAgICB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9
IGluaXRpYWxDb250ZW50czsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hp
bGRyZW4odGVzdENvbnRhaW5lcik7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xlQ29t
bWFuZCwgZmFsc2UsIG51bGwpOworICAgIGlmICh0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9PT0g
ZXhwZWN0ZWRDb250ZW50cykgeworICAgICAgICB0ZXN0UGFzc2VkKCJvbmUgIiArIHRvZ2dsZUNv
bW1hbmQgKyAiIGNvbW1hbmQgY29udmVydGVkICIgKyBpbml0aWFsQ29udGVudHMgKyAiIHRvICIg
KyBleHBlY3RlZENvbnRlbnRzKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJv
bmUgIiArIHRvZ2dsZUNvbW1hbmQgKyAiIGNvbW1hbmQgY29udmVydGVkICIgKyBpbml0aWFsQ29u
dGVudHMgKyAiIHRvICIgKyB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCArICIsIGV4cGVjdGVkICIg
KyBleHBlY3RlZENvbnRlbnRzKTsKKyAgICB9Cit9CisKK3Rlc3RTaW5nbGVUb2dnbGUoIkluc2Vy
dE9yZGVyZWRMaXN0IiwgJzx1bD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+dGVz
dDwvbGk+PC91bD48L3VsPicsICc8dWw+PG9sPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PGxp
PnRlc3Q8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoIkluc2VydE9yZGVyZWRM
aXN0IiwgJzx1bD48dWw+PGxpPnRlc3Q8L2xpPjwvdWw+PHVsPjxsaT50ZXN0PC9saT48L3VsPjwv
dWw+JywgJzx1bD48b2w+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48L29sPjwvdWw+Jyk7Cit0
ZXN0U2luZ2xlVG9nZ2xlKCJJbnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVsPjxsaT50ZXN0PC9s
aT48bGk+dGVzdDwvbGk+PC91bD48L3VsPjx1bD48bGk+dGVzdDwvbGk+PC91bD4nLCAnPHVsPjxv
bD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvb2w+PC91bD48b2w+PGxpPnRlc3Q8L2xpPjwv
b2w+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJJbnNlcnRVbm9yZGVyZWRMaXN0IiwgJzxvbD48b2w+
PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L29sPicsICc8b2w+
PHVsPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD4nKTsK
K3Rlc3RTaW5nbGVUb2dnbGUoIkluc2VydFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+dGVz
dDwvbGk+PC9vbD48b2w+PGxpPnRlc3Q8L2xpPjwvb2w+PC9vbD4nLCAnPG9sPjx1bD48bGk+dGVz
dDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoIkluc2Vy
dFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvb2w+
PC9vbD48b2w+PGxpPnRlc3Q8L2xpPjwvb2w+JywgJzxvbD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50
ZXN0PC9saT48L3VsPjwvb2w+PHVsPjxsaT50ZXN0PC9saT48L3VsPicpOworCitkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmVh
dGUtbGlzdC1mcm9tLXJhbmdlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU2MTk2
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRl
LWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNCw3ICsxNCw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2MzJ4MTgKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA2MzI6ICJUaGlzIHRlc3RzIEluc2VydHtVbn1PcmRlcmVkTGlzdCBvbiBh
IHJhbmdlIHNlbGVjdGlvbiB0aGF0IGNvbnRhaW5zIGEgbWl4IG9mIGxpc3QgYW5kIG5vbi1saXN0
IGNvbnRlbnQuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0eDEw
OAotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgwCiAg
ICAgICAgIFJlbmRlckJsb2NrIHtPTH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTA4CiAgICAgICAgICAg
UmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgKICAgICAgICAgICAgIFJl
bmRlckxpc3RNYXJrZXIgYXQgKC0yMCwwKSBzaXplIDE2eDE4OiAiMSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51208</attachid>
            <date>2010-03-19 17:25:07 -0700</date>
            <delta_ts>2010-03-21 16:18:41 -0700</delta_ts>
            <desc>fixed the style</desc>
            <filename>fix19539b</filename>
            <type>text/plain</type>
            <size>10590</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjI3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVz
dGVkIDx1bD5zIGFyZSBtaXNoYW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhl
Y0NvbW1hbmQoJ2luc2VydG9yZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM5CisKKyAgICAgICAgRml4ZXMgYSBidWcgd2hlcmUg
dHdvIGNvbnNlY3V0aXZlIGxpc3RzIGFyZSBub3QgbWVyZ2VkIGlmIHRoZXkgaGF2ZSBiZWVuIGNv
bnZlcnRlZAorICAgICAgICBmcm9tIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3RzIGluc2lkZSBhbm90
aGVyIGxpc3QuCisKKyAgICAgICAgQWZ0ZXIgaW5zZXJ0aW5nIGEgbGlzdCBlbGVtZW50LCBJbnNl
cnRMaXN0Q29tbWFuZDo6ZG9BcHBseSBzZXRzIHByZXZpb3VzTGlzdCBhbmQgbmV4dExpc3QKKyAg
ICAgICAgdG8gdGhlIG91dGVybW9zdCBsaXN0IGVsZW1lbnRzIGFyb3VuZCBpbnNlcnRpb25Qb3Ms
IGFuZCBlbnN1cmVzIHRoYXQgdGhleSBoYXZlIHRoZSBzYW1lIGVuY2xvc2luZyBsaXN0CisgICAg
ICAgIGFzIHRoZSBuZXcgbGlzdCBlbGVtZW50IGJlaW5nIGluc2VydGVkLgorCisgICAgICAgIFRl
c3Q6IGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3Qu
aHRtbAorCisgICAgICAgICogZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6ZG9BcHBseSk6IE1vZGlmaWVkIGFzIGRlc2Ny
aWJlZCBhYm92ZQorICAgICAgICAqIGVkaXRpbmcvaHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3V0ZXJtb3N0RW5jbG9zaW5nTGlzdCk6IEFkZGVkIHJvb3ROb2RlLiBvdXRlcm1v
c3RFbmNsb3NpbmdMaXN0IHJldHVybnMgdGhlIG91dGVybW9zdCBsaXN0IGVsZW1lbnQsCisgICAg
ICAgICAgd2hpY2ggaXMgYSBkZXNjZW5kZW50IG9mIHJvb3ROb2RlLgorICAgICAgICAqIGVkaXRp
bmcvaHRtbGVkaXRpbmcuaDoKKwogMjAxMC0wMy0xOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2luZG93cyBjbGVhbiBidWlsZCBmaXggYWZ0ZXIgcjU2MTkyCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAJKHJldmlzaW9uIDU2MTk2KQor
KysgV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjU5LDkgKzI1OSwxNiBAQCB2b2lkIEluc2VydExpc3RDb21tYW5kOjpkb0FwcGx5KCkKICAg
ICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhcnQgb2YgY29udGVudCwgc28gd2UgZG9uJ3QgdHJ5
IHRvIG1vdmUgdGhlIGxpc3QgaW50byBpdHNlbGYuICBidWcgMTkwNjYKICAgICAgICAgICAgIGlm
IChpbnNlcnRpb25Qb3MgPT0gc3RhcnQuZGVlcEVxdWl2YWxlbnQoKSkKICAgICAgICAgICAgICAg
ICBzdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgob3JpZ2luYWxTdGFydCk7CisKKyAgICAgICAgICAg
IHByZXZpb3VzTGlzdCA9IG91dGVybW9zdEVuY2xvc2luZ0xpc3QocHJldmlvdXNQb3NpdGlvbi5k
ZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgZW5jbG9zaW5nTGlzdChsaXN0RWxlbWVudC5nZXQoKSkp
OworICAgICAgICAgICAgbmV4dExpc3QgPSBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KG5leHRQb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgZW5jbG9zaW5nTGlzdChsaXN0RWxlbWVudC5n
ZXQoKSkpOworICAgICAgICAgICAgaWYgKGNhbk1lcmdlTGlzdHMocHJldmlvdXNMaXN0LCBsaXN0
RWxlbWVudC5nZXQoKSkpCisgICAgICAgICAgICAgICAgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhw
cmV2aW91c0xpc3QsIGxpc3RFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChjYW5NZXJn
ZUxpc3RzKGxpc3RFbGVtZW50LmdldCgpLCBuZXh0TGlzdCkpCisgICAgICAgICAgICAgICAgbWVy
Z2VJZGVudGljYWxFbGVtZW50cyhsaXN0RWxlbWVudC5nZXQoKSwgbmV4dExpc3QpOwogICAgICAg
ICB9CiAgICAgICAgIG1vdmVQYXJhZ3JhcGgoc3RhcnQsIGVuZCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKHBsYWNlaG9sZGVyLmdldCgpLCAwKSksIHRydWUpOwotICAgICAgICBpZiAobmV4dExp
c3QgJiYgcHJldmlvdXNMaXN0KQorICAgICAgICBpZiAoY2FuTWVyZ2VMaXN0cyhuZXh0TGlzdCwg
cHJldmlvdXNMaXN0KSkKICAgICAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMocHJldmlv
dXNMaXN0LCBuZXh0TGlzdCk7CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxl
ZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
CShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgxMiwxMyArODEyLDE4IEBAIE5vZGUqIGVuY2xvc2luZ0VtcHR5TGlz
dEl0ZW0oY29uc3QgVmlzaWIKICAgICByZXR1cm4gbGlzdENoaWxkTm9kZTsKIH0KIAotSFRNTEVs
ZW1lbnQqIG91dGVybW9zdEVuY2xvc2luZ0xpc3QoTm9kZSogbm9kZSkKK0hUTUxFbGVtZW50KiBv
dXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqIG5vZGUsIE5vZGUqIHJvb3ROb2RlKQogewogICAg
IEhUTUxFbGVtZW50KiBsaXN0ID0gZW5jbG9zaW5nTGlzdChub2RlKTsKICAgICBpZiAoIWxpc3Qp
CiAgICAgICAgIHJldHVybiAwOwotICAgIHdoaWxlIChIVE1MRWxlbWVudCogbmV4dExpc3QgPSBl
bmNsb3NpbmdMaXN0KGxpc3QpKQorCisgICAgd2hpbGUgKEhUTUxFbGVtZW50KiBuZXh0TGlzdCA9
IGVuY2xvc2luZ0xpc3QobGlzdCkpIHsKKyAgICAgICAgaWYgKG5leHRMaXN0ID09IHJvb3ROb2Rl
KQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGxpc3QgPSBuZXh0TGlzdDsKKyAgICB9CisK
ICAgICByZXR1cm4gbGlzdDsKIH0KIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9u
IDU2MTk2KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE5NSw3ICsxOTUsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxl
bWVuCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCos
IGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBIVE1MRWxlbWVudCogZW5jbG9zaW5nTGlzdChOb2Rl
Kik7Ci1IVE1MRWxlbWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKik7CitIVE1MRWxl
bWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKiwgTm9kZSogcm9vdE5vZGUgPSAwKTsK
IEhUTUxFbGVtZW50KiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjI3OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEwLTAzLTE5ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5lc3RlZCA8dWw+cyBhcmUgbWlzaGFuZGxlZCB3aGVuIGNvbnZlcnRl
ZCB0byA8b2w+IHVzaW5nIGV4ZWNDb21tYW5kKCdpbnNlcnRvcmRlcmVkbGlzdCcpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzOQorCisgICAgICAg
IFRlc3QgdG8gbWFrZSBzdXJlIEluc2VydExpc3RDb21tYW5kIG1lcmdlcyBjb25zZWN1dGl2ZSBs
aXN0cyB3aGVuIGNvbnZlcnRpbmcKKyAgICAgICAgb3JkZXJlZC91bm9yZGVyZWQgbGlzdHMgdG8g
dGhlIG9wcG9zaXRlIHR5cGUgb2YgbGlzdHMgaW5zaWRlIGFub3RoZXIgbGlzdC4KKworICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luc2Vy
dC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1s
aXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RTaW5nbGVUb2dnbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2Vs
ZWN0aW9uLWV4cGVjdGVkLnR4dDogYW5vbnltb3VzIG5vZGUgaXMgcmVtb3ZlZAorCiAyMDEwLTAz
LTE5ICBEaXJrIFByYW5rZSA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMtaW5z
aWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGVzdCB0byBtYWtlIHN1
cmUgaW5zZXJ0aW5nIGFuIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3QgaW5zaWRlIGFub3RoZXIgbGlz
dCB3b3JrcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvbmUgSW5zZXJ0
T3JkZXJlZExpc3QgY29tbWFuZCBjb252ZXJ0ZWQgPHVsPjx1bD48bGk+dGVzdDwvbGk+PGxpPnRl
c3Q8L2xpPjxsaT50ZXN0PC9saT48L3VsPjwvdWw+IHRvIDx1bD48b2w+PGxpPnRlc3Q8L2xpPjxs
aT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L3VsPgorUEFTUyBvbmUgSW5zZXJ0T3JkZXJl
ZExpc3QgY29tbWFuZCBjb252ZXJ0ZWQgPHVsPjx1bD48bGk+dGVzdDwvbGk+PC91bD48dWw+PGxp
PnRlc3Q8L2xpPjwvdWw+PC91bD4gdG8gPHVsPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xp
Pjwvb2w+PC91bD4KK1BBU1Mgb25lIEluc2VydE9yZGVyZWRMaXN0IGNvbW1hbmQgY29udmVydGVk
IDx1bD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48L3VsPjwvdWw+PHVsPjxsaT50ZXN0
PC9saT48L3VsPiB0byA8dWw+PG9sPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L3Vs
PjxvbD48bGk+dGVzdDwvbGk+PC9vbD4KK1BBU1Mgb25lIEluc2VydFVub3JkZXJlZExpc3QgY29t
bWFuZCBjb252ZXJ0ZWQgPG9sPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0
PC9saT48L29sPjwvb2w+IHRvIDxvbD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+
dGVzdDwvbGk+PC91bD48L29sPgorUEFTUyBvbmUgSW5zZXJ0VW5vcmRlcmVkTGlzdCBjb21tYW5k
IGNvbnZlcnRlZCA8b2w+PG9sPjxsaT50ZXN0PC9saT48L29sPjxvbD48bGk+dGVzdDwvbGk+PC9v
bD48L29sPiB0byA8b2w+PHVsPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC91bD48L29sPgor
UEFTUyBvbmUgSW5zZXJ0VW5vcmRlcmVkTGlzdCBjb21tYW5kIGNvbnZlcnRlZCA8b2w+PG9sPjxs
aT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L29sPjxvbD48bGk+dGVzdDwvbGk+PC9vbD4g
dG8gPG9sPjx1bD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD48dWw+PGxpPnRl
c3Q8L2xpPjwvdWw+CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlz
dHMtaW5zaWRlLWFub3RoZXItbGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxp
c3RzLWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlz
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Njcmlw
dC10ZXN0cy9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1s
aXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBA
CitkZXNjcmlwdGlvbigiVGVzdCB0byBtYWtlIHN1cmUgaW5zZXJ0aW5nIGFuIG9yZGVyZWQvdW5v
cmRlcmVkIGxpc3QgaW5zaWRlIGFub3RoZXIgbGlzdCB3b3JrcyIpCisKK3ZhciB0ZXN0Q29udGFp
bmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0Q29udGFpbmVyLmNvbnRl
bnRFZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RDb250YWlu
ZXIpOworCitmdW5jdGlvbiB0ZXN0U2luZ2xlVG9nZ2xlKHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxD
b250ZW50cywgZXhwZWN0ZWRDb250ZW50cykKK3sKKyAgICB0ZXN0Q29udGFpbmVyLmlubmVySFRN
TCA9IGluaXRpYWxDb250ZW50czsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4odGVzdENvbnRhaW5lcik7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xl
Q29tbWFuZCwgZmFsc2UsIG51bGwpOworICAgIGlmICh0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9
PT0gZXhwZWN0ZWRDb250ZW50cykgeworICAgICAgICB0ZXN0UGFzc2VkKCJvbmUgIiArIHRvZ2ds
ZUNvbW1hbmQgKyAiIGNvbW1hbmQgY29udmVydGVkICIgKyBpbml0aWFsQ29udGVudHMgKyAiIHRv
ICIgKyBleHBlY3RlZENvbnRlbnRzKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVk
KCJvbmUgIiArIHRvZ2dsZUNvbW1hbmQgKyAiIGNvbW1hbmQgY29udmVydGVkICIgKyBpbml0aWFs
Q29udGVudHMgKyAiIHRvICIgKyB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCArICIsIGV4cGVjdGVk
ICIgKyBleHBlY3RlZENvbnRlbnRzKTsKKyAgICB9Cit9CisKK3Rlc3RTaW5nbGVUb2dnbGUoIklu
c2VydE9yZGVyZWRMaXN0IiwgJzx1bD48dWw+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+
dGVzdDwvbGk+PC91bD48L3VsPicsICc8dWw+PG9sPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+
PGxpPnRlc3Q8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoIkluc2VydE9yZGVy
ZWRMaXN0IiwgJzx1bD48dWw+PGxpPnRlc3Q8L2xpPjwvdWw+PHVsPjxsaT50ZXN0PC9saT48L3Vs
PjwvdWw+JywgJzx1bD48b2w+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48L29sPjwvdWw+Jyk7
Cit0ZXN0U2luZ2xlVG9nZ2xlKCJJbnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVsPjxsaT50ZXN0
PC9saT48bGk+dGVzdDwvbGk+PC91bD48L3VsPjx1bD48bGk+dGVzdDwvbGk+PC91bD4nLCAnPHVs
PjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvb2w+PC91bD48b2w+PGxpPnRlc3Q8L2xp
Pjwvb2w+Jyk7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJJbnNlcnRVbm9yZGVyZWRMaXN0IiwgJzxvbD48
b2w+PGxpPnRlc3Q8L2xpPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PC9vbD48L29sPicsICc8
b2w+PHVsPjxsaT50ZXN0PC9saT48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD4n
KTsKK3Rlc3RTaW5nbGVUb2dnbGUoIkluc2VydFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+
dGVzdDwvbGk+PC9vbD48b2w+PGxpPnRlc3Q8L2xpPjwvb2w+PC9vbD4nLCAnPG9sPjx1bD48bGk+
dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwvdWw+PC9vbD4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoIklu
c2VydFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+dGVzdDwvbGk+PGxpPnRlc3Q8L2xpPjwv
b2w+PC9vbD48b2w+PGxpPnRlc3Q8L2xpPjwvb2w+JywgJzxvbD48dWw+PGxpPnRlc3Q8L2xpPjxs
aT50ZXN0PC9saT48L3VsPjwvb2w+PHVsPjxsaT50ZXN0PC9saT48L3VsPicpOworCitkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWND
b21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9j
cmVhdGUtbGlzdC1mcm9tLXJhbmdlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDU2
MTk2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3Jl
YXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xNCw3ICsxNCw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2MzJ4MTgKICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA2MzI6ICJUaGlzIHRlc3RzIEluc2VydHtVbn1PcmRlcmVkTGlzdCBv
biBhIHJhbmdlIHNlbGVjdGlvbiB0aGF0IGNvbnRhaW5zIGEgbWl4IG9mIGxpc3QgYW5kIG5vbi1s
aXN0IGNvbnRlbnQuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0
eDEwOAotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgw
CiAgICAgICAgIFJlbmRlckJsb2NrIHtPTH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTA4CiAgICAgICAg
ICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgKICAgICAgICAgICAg
IFJlbmRlckxpc3RNYXJrZXIgYXQgKC0yMCwwKSBzaXplIDE2eDE4OiAiMSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51260</attachid>
            <date>2010-03-21 16:18:41 -0700</date>
            <delta_ts>2010-03-21 16:27:08 -0700</delta_ts>
            <desc>added more tests and fixed a bug in the patch</desc>
            <filename>fix19539c</filename>
            <type>text/plain</type>
            <size>12890</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjMyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVz
dGVkIDx1bD5zIGFyZSBtaXNoYW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhl
Y0NvbW1hbmQoJ2luc2VydG9yZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM5CisKKyAgICAgICAgRml4ZXMgYSBidWcgd2hlcmUg
dHdvIGNvbnNlY3V0aXZlIGxpc3RzIGFyZSBub3QgbWVyZ2VkIGlmIHRoZXkgaGF2ZSBiZWVuIGNv
bnZlcnRlZAorICAgICAgICBmcm9tIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3RzIGluc2lkZSBhbm90
aGVyIGxpc3QuCisKKyAgICAgICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IEluc2VydExpc3RDb21t
YW5kOjpkb0FwcGx5IHdoZXJlIGl0IGRpZCBub3QgbWVyZ2UgYSBuZXdseSBpbnNlcnRlZAorICAg
ICAgICBsaXN0IGVsZW1lbnQgYW5kIGl0cyBuZWlnaGJvcnMuIFRoaXMgcGF0Y2ggYWRkcyBjb2Rl
IHRvIGRvQXBwbHkgc28gdGhhdCBhZnRlciBpbnNlcnRpbmcKKyAgICAgICAgdGhlIGxpc3QgZWxl
bWVudCwgaXQgdXBkYXRlcyBwcmV2aW91c0xpc3QgYW5kIG5leHRMaXN0IHRvIHRoZSBvdXRlcm1v
c3QgbGlzdCBlbGVtZW50cyBhcm91bmQKKyAgICAgICAgaW5zZXJ0aW9uUG9zIHVuZGVyIHRoZSBz
YW1lIGVuY2xvc2luZyBsaXN0LiBCZWNhdXNlIHRoZSBuZXh0IGFuZCB0aGUgcHJldmlvdXMgbGlz
dCBlbGVtZW50cworICAgICAgICBhcmUgbm90IG5lY2Vzc2FyaWx5IHZpc3VhbGx5IG5leHQgdG8g
dGhlIG5ld2x5IGluc2VydGVkIGVsZW1lbnQgYmVmb3JlIG1vdmVQYXJhZ3JhcGggbW92ZXMKKyAg
ICAgICAgdGhlIHBhcmFncmFwaCBpbnRvIHRoZSBuZXcgbGlzdCBlbGVtZW50LCBkb0FwcGx5IG1l
cmdlcyBsaXN0cyBhZnRlciBtb3ZlUGFyYWdyYXBoIGlzIGNhbGxlZC4KKworICAgICAgICBUZXN0
OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0Lmh0
bWwKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkpOiBNb2RpZmllZCBhcyBkZXNjcmli
ZWQgYWJvdmUKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om91dGVybW9zdEVuY2xvc2luZ0xpc3QpOiBBZGRlZCByb290Tm9kZS4gUmV0dXJucyB0
aGUgb3V0ZXJtb3N0IGxpc3QgZWxlbWVudCwKKyAgICAgICAgICB3aGljaCBpcyBhIGRlc2NlbmRl
bnQgb2Ygcm9vdE5vZGUuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorCiAyMDEw
LTAzLTIxICBLaW0gR3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0lu
c2VydExpc3RDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvZWRpdGluZy9JbnNl
cnRMaXN0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw5ICsyNTksMTYgQEAgdm9p
ZCBJbnNlcnRMaXN0Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgICAgICAvLyBVcGRhdGUgdGhl
IHN0YXJ0IG9mIGNvbnRlbnQsIHNvIHdlIGRvbid0IHRyeSB0byBtb3ZlIHRoZSBsaXN0IGludG8g
aXRzZWxmLiAgYnVnIDE5MDY2CiAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uUG9zID09IHN0YXJ0
LmRlZXBFcXVpdmFsZW50KCkpCiAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydE9mUGFyYWdy
YXBoKG9yaWdpbmFsU3RhcnQpOworICAgICAgICAgICAgcHJldmlvdXNMaXN0ID0gb3V0ZXJtb3N0
RW5jbG9zaW5nTGlzdChwcmV2aW91c1Bvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpLCBl
bmNsb3NpbmdMaXN0KGxpc3RFbGVtZW50LmdldCgpKSk7CisgICAgICAgICAgICBuZXh0TGlzdCA9
IG91dGVybW9zdEVuY2xvc2luZ0xpc3QobmV4dFBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkubm9k
ZSgpLCBlbmNsb3NpbmdMaXN0KGxpc3RFbGVtZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICAg
ICAgbW92ZVBhcmFncmFwaChzdGFydCwgZW5kLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24ocGxh
Y2Vob2xkZXIuZ2V0KCksIDApKSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChuZXh0TGlzdCAmJiBwcmV2
aW91c0xpc3QpCisgICAgICAgIGlmIChtX2xpc3RFbGVtZW50KSB7CisgICAgICAgICAgICBpZiAo
Y2FuTWVyZ2VMaXN0cyhwcmV2aW91c0xpc3QsIG1fbGlzdEVsZW1lbnQuZ2V0KCkpKQorICAgICAg
ICAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMocHJldmlvdXNMaXN0LCBtX2xpc3RFbGVt
ZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChjYW5NZXJnZUxpc3RzKG1fbGlzdEVsZW1lbnQu
Z2V0KCksIG5leHRMaXN0KSkKKyAgICAgICAgICAgICAgICBtZXJnZUlkZW50aWNhbEVsZW1lbnRz
KG1fbGlzdEVsZW1lbnQuZ2V0KCksIG5leHRMaXN0KTsKKyAgICAgICAgfSBlbHNlIGlmIChjYW5N
ZXJnZUxpc3RzKG5leHRMaXN0LCBwcmV2aW91c0xpc3QpKQogICAgICAgICAgICAgbWVyZ2VJZGVu
dGljYWxFbGVtZW50cyhwcmV2aW91c0xpc3QsIG5leHRMaXN0KTsKICAgICB9CiB9CkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9uIDU2MTk2KQorKysgV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEyLDEzICs4MTIsMTggQEAgTm9k
ZSogZW5jbG9zaW5nRW1wdHlMaXN0SXRlbShjb25zdCBWaXNpYgogICAgIHJldHVybiBsaXN0Q2hp
bGROb2RlOwogfQogCi1IVE1MRWxlbWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKiBu
b2RlKQorSFRNTEVsZW1lbnQqIG91dGVybW9zdEVuY2xvc2luZ0xpc3QoTm9kZSogbm9kZSwgTm9k
ZSogcm9vdE5vZGUpCiB7CiAgICAgSFRNTEVsZW1lbnQqIGxpc3QgPSBlbmNsb3NpbmdMaXN0KG5v
ZGUpOwogICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgd2hpbGUgKEhUTUxF
bGVtZW50KiBuZXh0TGlzdCA9IGVuY2xvc2luZ0xpc3QobGlzdCkpCisKKyAgICB3aGlsZSAoSFRN
TEVsZW1lbnQqIG5leHRMaXN0ID0gZW5jbG9zaW5nTGlzdChsaXN0KSkgeworICAgICAgICBpZiAo
bmV4dExpc3QgPT0gcm9vdE5vZGUpCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgbGlzdCA9
IG5leHRMaXN0OworICAgIH0KKwogICAgIHJldHVybiBsaXN0OwogfQogCkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuaAkocmV2aXNpb24gNTYxOTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTk1LDcgKzE5NSw3IEBAIFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW4KIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhU
TUxFbGVtZW50KERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIEhUTUxFbGVtZW50
KiBlbmNsb3NpbmdMaXN0KE5vZGUqKTsKLUhUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdM
aXN0KE5vZGUqKTsKK0hUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqLCBO
b2RlKiByb290Tm9kZSA9IDApOwogSFRNTEVsZW1lbnQqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2Rl
Kik7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2MzIxKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTAtMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVzdGVkIDx1bD5zIGFyZSBtaXNo
YW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhlY0NvbW1hbmQoJ2luc2VydG9y
ZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTM5CisKKyAgICAgICAgVGVzdCB0byBtYWtlIHN1cmUgSW5zZXJ0TGlzdENvbW1hbmQg
bWVyZ2VzIGNvbnNlY3V0aXZlIGxpc3RzIHdoZW4gY29udmVydGluZworICAgICAgICBvcmRlcmVk
L3Vub3JkZXJlZCBsaXN0cyB0byB0aGUgb3Bwb3NpdGUgdHlwZSBvZiBsaXN0cyBpbnNpZGUgYW5v
dGhlciBsaXN0LgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMt
aW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvaW5zZXJ0LWxp
c3RzLWluc2lkZS1hbm90aGVyLWxpc3QuanM6IEFkZGVkLgorICAgICAgICAodGVzdExpc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZy
b20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wMy0yMSAgRG1pdHJ5IEdv
cmJpayAgPHNvY2tldC5oQGdtYWlsLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8xNDg1OD4gPGNvbD4gd2lkdGggaWdub3JlZCB3aGVuIG5vdCB0aWVkIHRvIGEgc2luZ2xlIGNl
bGwKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWlu
c2lkZS1hbm90aGVyLWxpc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDkgQEAKK1Rlc3QgdG8gbWFrZSBzdXJlIGluc2VydGluZyBhbiBvcmRl
cmVkL3Vub3JkZXJlZCBsaXN0IGluc2lkZSBhbm90aGVyIGxpc3Qgd29ya3MKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1NlbGVjdCBhbGwgbm9kZXMKKworUEFTUyA8dWw+PHVsPjxs
aT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwvdWw+CisgZ290
Ojx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+
PC91bD4KKworUEFTUyA8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD48dWw+PGxpPndvcmxkPC9s
aT48L3VsPjwvdWw+CisgZ290Ojx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwv
b2w+PC91bD4KKworUEFTUyA8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L3Vs
PjwvdWw+PHVsPjxsaT5XZWJLaXQ8L2xpPjwvdWw+CisgZ290Ojx1bD48b2w+PGxpPmhlbGxvPC9s
aT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD48b2w+PGxpPldlYktpdDwvbGk+PC9vbD4KKworUEFT
UyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L29s
Pjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJL
aXQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PC9vbD48b2w+
PGxpPndvcmxkPC9saT48L29sPjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+
d29ybGQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndv
cmxkPC9saT48L29sPjwvb2w+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+CisgZ290OjxvbD48dWw+
PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9vbD48dWw+PGxpPldlYktpdDwvbGk+
PC91bD4KKworU2VsZWN0ICN0ZXN0CisKK1BBU1MgPHVsPjx1bCBpZD0idGVzdCI+PGxpPmhlbGxv
PC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4KKyBn
b3Q6PHVsPjxvbD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC9v
bD48L3VsPgorCitQQVNTIDx1bD48b2w+PGxpPmhlbGxvPC9saT48L29sPjx1bCBpZD0idGVzdCI+
PGxpPndvcmxkPC9saT48L3VsPjxvbD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+CisgZ290Ojx1
bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91
bD4KKworUEFTUyA8dWw+PHVsIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjwvdWw+d29ybGQ8b2w+
PGxpPldlYktpdDwvbGk+PC9vbD48L3VsPgorIGdvdDo8dWw+PG9sPjxsaT5oZWxsbzwvbGk+PC9v
bD53b3JsZDxvbD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+CisKK1BBU1MgPG9sPjxvbCBpZD0i
dGVzdCI+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvb2w+PHVsPjxsaT5XZWJLaXQ8L2xp
PjwvdWw+PC9vbD4KKyBnb3Q6PG9sPjx1bD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxp
PldlYktpdDwvbGk+PC91bD48L29sPgorCitQQVNTIDxvbD48dWw+PGxpPmhlbGxvPC9saT48L3Vs
PjxvbCBpZD0idGVzdCI+PGxpPndvcmxkPC9saT48L29sPjx1bD48bGk+V2ViS2l0PC9saT48L3Vs
Pjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJL
aXQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xp
Pjwvb2w+d29ybGQ8dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPgorIGdvdDo8b2w+PHVsPjxs
aT5oZWxsbzwvbGk+PC91bD53b3JsZDx1bD48bGk+V2ViS2l0PC9saT48L3VsPjwvb2w+CisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhl
ci1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3Ro
ZXItbGlzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9p
bnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2Ny
aXB0LXRlc3RzL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1s
aXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90
aGVyLWxpc3QuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRvIG1ha2Ugc3VyZSBpbnNlcnRpbmcgYW4gb3JkZXJlZC91bm9yZGVyZWQgbGlzdCBpbnNp
ZGUgYW5vdGhlciBsaXN0IHdvcmtzIikKKwordmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1
ZTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CisKK2Z1bmN0aW9u
IHRlc3RMaXN0KHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxDb250ZW50cywgZXhwZWN0ZWRDb250ZW50
cykKK3sKKyAgICB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9IGluaXRpYWxDb250ZW50czsKKyAg
ICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICBpZiAoIWUpCisgICAg
ICBlID0gdGVzdENvbnRhaW5lcjsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xlQ29tbWFuZCwgZmFs
c2UsIG51bGwpOworICAgIGlmICh0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9PT0gZXhwZWN0ZWRD
b250ZW50cykgeworICAgICAgICB0ZXN0UGFzc2VkKGluaXRpYWxDb250ZW50cyArICJcbiBnb3Q6
IiArIGV4cGVjdGVkQ29udGVudHMrIlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZh
aWxlZChpbml0aWFsQ29udGVudHMgKyAiXG4gZ290OiIgKyB0ZXN0Q29udGFpbmVyLmlubmVySFRN
TCArICJcbmV4cC46IiArIGV4cGVjdGVkQ29udGVudHMrIlxuIik7CisgICAgfQorfQorCitkZWJ1
ZygnU2VsZWN0IGFsbCBub2Rlc1xuJyk7CisKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlzdCIs
ICc8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3Vs
PjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8
L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVs
PjxsaT5oZWxsbzwvbGk+PC91bD48dWw+PGxpPndvcmxkPC9saT48L3VsPjwvdWw+JywgJzx1bD48
b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJ
bnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48
L3VsPjwvdWw+PHVsPjxsaT5XZWJLaXQ8L2xpPjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9s
aT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD48b2w+PGxpPldlYktpdDwvbGk+PC9vbD4nKTsKK3Rl
c3RMaXN0KCJJbnNlcnRVbm9yZGVyZWRMaXN0IiwgJzxvbD48b2w+PGxpPmhlbGxvPC9saT48bGk+
d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC9vbD4nLCAnPG9sPjx1bD48bGk+aGVsbG88
L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicpOwordGVzdExpc3Qo
Ikluc2VydFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+aGVsbG88L2xpPjwvb2w+PG9sPjxs
aT53b3JsZDwvbGk+PC9vbD48L29sPicsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxk
PC9saT48L3VsPjwvb2w+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+
PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L29sPjwvb2w+PG9sPjxsaT5XZWJLaXQ8
L2xpPjwvb2w+JywgJzxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9v
bD48dWw+PGxpPldlYktpdDwvbGk+PC91bD4nKTsKKworZGVidWcoJ1NlbGVjdCAjdGVzdFxuJyk7
Cit0ZXN0TGlzdCgiSW5zZXJ0T3JkZXJlZExpc3QiLCAnPHVsPjx1bCBpZD0idGVzdCI+PGxpPmhl
bGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4n
LCAnPHVsPjxvbD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC9v
bD48L3VsPicpOwordGVzdExpc3QoIkluc2VydE9yZGVyZWRMaXN0IiwgJzx1bD48b2w+PGxpPmhl
bGxvPC9saT48L29sPjx1bCBpZD0idGVzdCI+PGxpPndvcmxkPC9saT48L3VsPjxvbD48bGk+V2Vi
S2l0PC9saT48L29sPjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xp
PjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlz
dCIsICc8dWw+PHVsIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjwvdWw+d29ybGQ8b2w+PGxpPldl
YktpdDwvbGk+PC9vbD48L3VsPicsICc8dWw+PG9sPjxsaT5oZWxsbzwvbGk+PC9vbD53b3JsZDxv
bD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVk
TGlzdCIsICc8b2w+PG9sIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC9v
bD48dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+
PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwvb2w+Jyk7Cit0ZXN0TGlzdCgiSW5z
ZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD48b2wgaWQ9InRl
c3QiPjxsaT53b3JsZDwvbGk+PC9vbD48dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicsICc8
b2w+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwv
b2w+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+PG9sIGlkPSJ0ZXN0
Ij48bGk+aGVsbG88L2xpPjwvb2w+d29ybGQ8dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPics
ICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD53b3JsZDx1bD48bGk+V2ViS2l0PC9saT48L3Vs
Pjwvb2w+Jyk7CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvY3JlYXRlLWxpc3QtZnJvbS1yYW5nZS1zZWxlY3Rp
b24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZyb20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNTYxOTYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9leGVjQ29tbWFuZC9jcmVhdGUtbGlzdC1mcm9tLXJhbmdlLXNlbGVjdGlvbi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDYzMngx
OAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYzMjogIlRoaXMgdGVzdHMgSW5z
ZXJ0e1VufU9yZGVyZWRMaXN0IG9uIGEgcmFuZ2Ugc2VsZWN0aW9uIHRoYXQgY29udGFpbnMgYSBt
aXggb2YgbGlzdCBhbmQgbm9uLWxpc3QgY29udGVudC4iCiAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTA4Ci0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgwLDApIHNpemUgNzg0eDAKICAgICAgICAgUmVuZGVyQmxvY2sge09MfSBhdCAoMCwwKSBz
aXplIDc4NHgxMDgKICAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXpl
IDc0NHgxOAogICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTIwLDApIHNpemUgMTZ4
MTg6ICIxIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51262</attachid>
            <date>2010-03-21 16:27:08 -0700</date>
            <delta_ts>2010-04-20 13:59:35 -0700</delta_ts>
            <desc>reverted the change to editing/execCommand/create-list-from-range-selection.html</desc>
            <filename>fix19539d</filename>
            <type>text/plain</type>
            <size>12002</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjMyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVz
dGVkIDx1bD5zIGFyZSBtaXNoYW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhl
Y0NvbW1hbmQoJ2luc2VydG9yZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTM5CisKKyAgICAgICAgRml4ZXMgYSBidWcgd2hlcmUg
dHdvIGNvbnNlY3V0aXZlIGxpc3RzIGFyZSBub3QgbWVyZ2VkIGlmIHRoZXkgaGF2ZSBiZWVuIGNv
bnZlcnRlZAorICAgICAgICBmcm9tIG9yZGVyZWQvdW5vcmRlcmVkIGxpc3RzIGluc2lkZSBhbm90
aGVyIGxpc3QuCisKKyAgICAgICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IEluc2VydExpc3RDb21t
YW5kOjpkb0FwcGx5IHdoZXJlIGl0IGRpZCBub3QgbWVyZ2UgYSBuZXdseSBpbnNlcnRlZAorICAg
ICAgICBsaXN0IGVsZW1lbnQgYW5kIGl0cyBuZWlnaGJvcnMuIFRoaXMgcGF0Y2ggYWRkcyBjb2Rl
IHRvIGRvQXBwbHkgc28gdGhhdCBhZnRlciBpbnNlcnRpbmcKKyAgICAgICAgdGhlIGxpc3QgZWxl
bWVudCwgaXQgdXBkYXRlcyBwcmV2aW91c0xpc3QgYW5kIG5leHRMaXN0IHRvIHRoZSBvdXRlcm1v
c3QgbGlzdCBlbGVtZW50cyBhcm91bmQKKyAgICAgICAgaW5zZXJ0aW9uUG9zIHVuZGVyIHRoZSBz
YW1lIGVuY2xvc2luZyBsaXN0LiBCZWNhdXNlIHRoZSBuZXh0IGFuZCB0aGUgcHJldmlvdXMgbGlz
dCBlbGVtZW50cworICAgICAgICBhcmUgbm90IG5lY2Vzc2FyaWx5IHZpc3VhbGx5IG5leHQgdG8g
dGhlIG5ld2x5IGluc2VydGVkIGVsZW1lbnQgYmVmb3JlIG1vdmVQYXJhZ3JhcGggbW92ZXMKKyAg
ICAgICAgdGhlIHBhcmFncmFwaCBpbnRvIHRoZSBuZXcgbGlzdCBlbGVtZW50LCBkb0FwcGx5IG1l
cmdlcyBsaXN0cyBhZnRlciBtb3ZlUGFyYWdyYXBoIGlzIGNhbGxlZC4KKworICAgICAgICBUZXN0
OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0Lmh0
bWwKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkpOiBNb2RpZmllZCBhcyBkZXNjcmli
ZWQgYWJvdmUKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om91dGVybW9zdEVuY2xvc2luZ0xpc3QpOiBBZGRlZCByb290Tm9kZS4gUmV0dXJucyB0
aGUgb3V0ZXJtb3N0IGxpc3QgZWxlbWVudCwKKyAgICAgICAgICB3aGljaCBpcyBhIGRlc2NlbmRl
bnQgb2Ygcm9vdE5vZGUuCisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorCiAyMDEw
LTAzLTIxICBLaW0gR3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0lu
c2VydExpc3RDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCShyZXZpc2lvbiA1NjE5NikKKysrIFdlYkNvcmUvZWRpdGluZy9JbnNl
cnRMaXN0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw5ICsyNTksMTYgQEAgdm9p
ZCBJbnNlcnRMaXN0Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgICAgICAvLyBVcGRhdGUgdGhl
IHN0YXJ0IG9mIGNvbnRlbnQsIHNvIHdlIGRvbid0IHRyeSB0byBtb3ZlIHRoZSBsaXN0IGludG8g
aXRzZWxmLiAgYnVnIDE5MDY2CiAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uUG9zID09IHN0YXJ0
LmRlZXBFcXVpdmFsZW50KCkpCiAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydE9mUGFyYWdy
YXBoKG9yaWdpbmFsU3RhcnQpOworICAgICAgICAgICAgcHJldmlvdXNMaXN0ID0gb3V0ZXJtb3N0
RW5jbG9zaW5nTGlzdChwcmV2aW91c1Bvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpLCBl
bmNsb3NpbmdMaXN0KGxpc3RFbGVtZW50LmdldCgpKSk7CisgICAgICAgICAgICBuZXh0TGlzdCA9
IG91dGVybW9zdEVuY2xvc2luZ0xpc3QobmV4dFBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkubm9k
ZSgpLCBlbmNsb3NpbmdMaXN0KGxpc3RFbGVtZW50LmdldCgpKSk7CiAgICAgICAgIH0KICAgICAg
ICAgbW92ZVBhcmFncmFwaChzdGFydCwgZW5kLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24ocGxh
Y2Vob2xkZXIuZ2V0KCksIDApKSwgdHJ1ZSk7Ci0gICAgICAgIGlmIChuZXh0TGlzdCAmJiBwcmV2
aW91c0xpc3QpCisgICAgICAgIGlmIChtX2xpc3RFbGVtZW50KSB7CisgICAgICAgICAgICBpZiAo
Y2FuTWVyZ2VMaXN0cyhwcmV2aW91c0xpc3QsIG1fbGlzdEVsZW1lbnQuZ2V0KCkpKQorICAgICAg
ICAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMocHJldmlvdXNMaXN0LCBtX2xpc3RFbGVt
ZW50LmdldCgpKTsKKyAgICAgICAgICAgIGlmIChjYW5NZXJnZUxpc3RzKG1fbGlzdEVsZW1lbnQu
Z2V0KCksIG5leHRMaXN0KSkKKyAgICAgICAgICAgICAgICBtZXJnZUlkZW50aWNhbEVsZW1lbnRz
KG1fbGlzdEVsZW1lbnQuZ2V0KCksIG5leHRMaXN0KTsKKyAgICAgICAgfSBlbHNlIGlmIChjYW5N
ZXJnZUxpc3RzKG5leHRMaXN0LCBwcmV2aW91c0xpc3QpKQogICAgICAgICAgICAgbWVyZ2VJZGVu
dGljYWxFbGVtZW50cyhwcmV2aW91c0xpc3QsIG5leHRMaXN0KTsKICAgICB9CiB9CkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9uIDU2MTk2KQorKysgV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEyLDEzICs4MTIsMTggQEAgTm9k
ZSogZW5jbG9zaW5nRW1wdHlMaXN0SXRlbShjb25zdCBWaXNpYgogICAgIHJldHVybiBsaXN0Q2hp
bGROb2RlOwogfQogCi1IVE1MRWxlbWVudCogb3V0ZXJtb3N0RW5jbG9zaW5nTGlzdChOb2RlKiBu
b2RlKQorSFRNTEVsZW1lbnQqIG91dGVybW9zdEVuY2xvc2luZ0xpc3QoTm9kZSogbm9kZSwgTm9k
ZSogcm9vdE5vZGUpCiB7CiAgICAgSFRNTEVsZW1lbnQqIGxpc3QgPSBlbmNsb3NpbmdMaXN0KG5v
ZGUpOwogICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgd2hpbGUgKEhUTUxF
bGVtZW50KiBuZXh0TGlzdCA9IGVuY2xvc2luZ0xpc3QobGlzdCkpCisKKyAgICB3aGlsZSAoSFRN
TEVsZW1lbnQqIG5leHRMaXN0ID0gZW5jbG9zaW5nTGlzdChsaXN0KSkgeworICAgICAgICBpZiAo
bmV4dExpc3QgPT0gcm9vdE5vZGUpCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgbGlzdCA9
IG5leHRMaXN0OworICAgIH0KKwogICAgIHJldHVybiBsaXN0OwogfQogCkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvaHRtbGVkaXRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuaAkocmV2aXNpb24gNTYxOTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTk1LDcgKzE5NSw3IEBAIFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW4KIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhU
TUxFbGVtZW50KERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIEhUTUxFbGVtZW50
KiBlbmNsb3NpbmdMaXN0KE5vZGUqKTsKLUhUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdM
aXN0KE5vZGUqKTsKK0hUTUxFbGVtZW50KiBvdXRlcm1vc3RFbmNsb3NpbmdMaXN0KE5vZGUqLCBO
b2RlKiByb290Tm9kZSA9IDApOwogSFRNTEVsZW1lbnQqIGVuY2xvc2luZ0xpc3RDaGlsZChOb2Rl
Kik7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU2MzIxKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTAtMDMtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVzdGVkIDx1bD5zIGFyZSBtaXNo
YW5kbGVkIHdoZW4gY29udmVydGVkIHRvIDxvbD4gdXNpbmcgZXhlY0NvbW1hbmQoJ2luc2VydG9y
ZGVyZWRsaXN0JykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTM5CisKKyAgICAgICAgVGVzdCB0byBtYWtlIHN1cmUgSW5zZXJ0TGlzdENvbW1hbmQg
bWVyZ2VzIGNvbnNlY3V0aXZlIGxpc3RzIHdoZW4gY29udmVydGluZworICAgICAgICBvcmRlcmVk
L3Vub3JkZXJlZCBsaXN0cyB0byB0aGUgb3Bwb3NpdGUgdHlwZSBvZiBsaXN0cyBpbnNpZGUgYW5v
dGhlciBsaXN0LgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMt
aW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvaW5zZXJ0LWxp
c3RzLWluc2lkZS1hbm90aGVyLWxpc3QuanM6IEFkZGVkLgorICAgICAgICAodGVzdExpc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZS1saXN0LWZy
b20tcmFuZ2Utc2VsZWN0aW9uLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wMy0yMSAgRG1pdHJ5IEdv
cmJpayAgPHNvY2tldC5oQGdtYWlsLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8xNDg1OD4gPGNvbD4gd2lkdGggaWdub3JlZCB3aGVuIG5vdCB0aWVkIHRvIGEgc2luZ2xlIGNl
bGwKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWlu
c2lkZS1hbm90aGVyLWxpc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90aGVyLWxpc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDkgQEAKK1Rlc3QgdG8gbWFrZSBzdXJlIGluc2VydGluZyBhbiBvcmRl
cmVkL3Vub3JkZXJlZCBsaXN0IGluc2lkZSBhbm90aGVyIGxpc3Qgd29ya3MKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1NlbGVjdCBhbGwgbm9kZXMKKworUEFTUyA8dWw+PHVsPjxs
aT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwvdWw+CisgZ290
Ojx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+
PC91bD4KKworUEFTUyA8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD48dWw+PGxpPndvcmxkPC9s
aT48L3VsPjwvdWw+CisgZ290Ojx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwv
b2w+PC91bD4KKworUEFTUyA8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L3Vs
PjwvdWw+PHVsPjxsaT5XZWJLaXQ8L2xpPjwvdWw+CisgZ290Ojx1bD48b2w+PGxpPmhlbGxvPC9s
aT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD48b2w+PGxpPldlYktpdDwvbGk+PC9vbD4KKworUEFT
UyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L29s
Pjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJL
aXQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PC9vbD48b2w+
PGxpPndvcmxkPC9saT48L29sPjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+
d29ybGQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndv
cmxkPC9saT48L29sPjwvb2w+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+CisgZ290OjxvbD48dWw+
PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9vbD48dWw+PGxpPldlYktpdDwvbGk+
PC91bD4KKworU2VsZWN0ICN0ZXN0CisKK1BBU1MgPHVsPjx1bCBpZD0idGVzdCI+PGxpPmhlbGxv
PC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4KKyBn
b3Q6PHVsPjxvbD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC9v
bD48L3VsPgorCitQQVNTIDx1bD48b2w+PGxpPmhlbGxvPC9saT48L29sPjx1bCBpZD0idGVzdCI+
PGxpPndvcmxkPC9saT48L3VsPjxvbD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+CisgZ290Ojx1
bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91
bD4KKworUEFTUyA8dWw+PHVsIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjwvdWw+d29ybGQ8b2w+
PGxpPldlYktpdDwvbGk+PC9vbD48L3VsPgorIGdvdDo8dWw+PG9sPjxsaT5oZWxsbzwvbGk+PC9v
bD53b3JsZDxvbD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+CisKK1BBU1MgPG9sPjxvbCBpZD0i
dGVzdCI+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvb2w+PHVsPjxsaT5XZWJLaXQ8L2xp
PjwvdWw+PC9vbD4KKyBnb3Q6PG9sPjx1bD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxp
PldlYktpdDwvbGk+PC91bD48L29sPgorCitQQVNTIDxvbD48dWw+PGxpPmhlbGxvPC9saT48L3Vs
PjxvbCBpZD0idGVzdCI+PGxpPndvcmxkPC9saT48L29sPjx1bD48bGk+V2ViS2l0PC9saT48L3Vs
Pjwvb2w+CisgZ290OjxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJL
aXQ8L2xpPjwvdWw+PC9vbD4KKworUEFTUyA8b2w+PG9sIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xp
Pjwvb2w+d29ybGQ8dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPgorIGdvdDo8b2w+PHVsPjxs
aT5oZWxsbzwvbGk+PC91bD53b3JsZDx1bD48bGk+V2ViS2l0PC9saT48L3VsPjwvb2w+CisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhl
ci1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdHMtaW5zaWRlLWFub3Ro
ZXItbGlzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9p
bnNlcnQtbGlzdHMtaW5zaWRlLWFub3RoZXItbGlzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2Ny
aXB0LXRlc3RzL2luc2VydC1saXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL2luc2VydC1s
aXN0cy1pbnNpZGUtYW5vdGhlci1saXN0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvaW5zZXJ0LWxpc3RzLWluc2lkZS1hbm90
aGVyLWxpc3QuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRvIG1ha2Ugc3VyZSBpbnNlcnRpbmcgYW4gb3JkZXJlZC91bm9yZGVyZWQgbGlzdCBpbnNp
ZGUgYW5vdGhlciBsaXN0IHdvcmtzIikKKwordmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1
ZTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7CisKK2Z1bmN0aW9u
IHRlc3RMaXN0KHRvZ2dsZUNvbW1hbmQsIGluaXRpYWxDb250ZW50cywgZXhwZWN0ZWRDb250ZW50
cykKK3sKKyAgICB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9IGluaXRpYWxDb250ZW50czsKKyAg
ICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKyAgICBpZiAoIWUpCisgICAg
ICBlID0gdGVzdENvbnRhaW5lcjsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQodG9nZ2xlQ29tbWFuZCwgZmFs
c2UsIG51bGwpOworICAgIGlmICh0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9PT0gZXhwZWN0ZWRD
b250ZW50cykgeworICAgICAgICB0ZXN0UGFzc2VkKGluaXRpYWxDb250ZW50cyArICJcbiBnb3Q6
IiArIGV4cGVjdGVkQ29udGVudHMrIlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZh
aWxlZChpbml0aWFsQ29udGVudHMgKyAiXG4gZ290OiIgKyB0ZXN0Q29udGFpbmVyLmlubmVySFRN
TCArICJcbmV4cC46IiArIGV4cGVjdGVkQ29udGVudHMrIlxuIik7CisgICAgfQorfQorCitkZWJ1
ZygnU2VsZWN0IGFsbCBub2Rlc1xuJyk7CisKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlzdCIs
ICc8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3Vs
PjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjxsaT5XZWJLaXQ8
L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVs
PjxsaT5oZWxsbzwvbGk+PC91bD48dWw+PGxpPndvcmxkPC9saT48L3VsPjwvdWw+JywgJzx1bD48
b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJ
bnNlcnRPcmRlcmVkTGlzdCIsICc8dWw+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48
L3VsPjwvdWw+PHVsPjxsaT5XZWJLaXQ8L2xpPjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9s
aT48bGk+d29ybGQ8L2xpPjwvb2w+PC91bD48b2w+PGxpPldlYktpdDwvbGk+PC9vbD4nKTsKK3Rl
c3RMaXN0KCJJbnNlcnRVbm9yZGVyZWRMaXN0IiwgJzxvbD48b2w+PGxpPmhlbGxvPC9saT48bGk+
d29ybGQ8L2xpPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC9vbD4nLCAnPG9sPjx1bD48bGk+aGVsbG88
L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicpOwordGVzdExpc3Qo
Ikluc2VydFVub3JkZXJlZExpc3QiLCAnPG9sPjxvbD48bGk+aGVsbG88L2xpPjwvb2w+PG9sPjxs
aT53b3JsZDwvbGk+PC9vbD48L29sPicsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxk
PC9saT48L3VsPjwvb2w+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+
PG9sPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L29sPjwvb2w+PG9sPjxsaT5XZWJLaXQ8
L2xpPjwvb2w+JywgJzxvbD48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9v
bD48dWw+PGxpPldlYktpdDwvbGk+PC91bD4nKTsKKworZGVidWcoJ1NlbGVjdCAjdGVzdFxuJyk7
Cit0ZXN0TGlzdCgiSW5zZXJ0T3JkZXJlZExpc3QiLCAnPHVsPjx1bCBpZD0idGVzdCI+PGxpPmhl
bGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PG9sPjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4n
LCAnPHVsPjxvbD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PGxpPldlYktpdDwvbGk+PC9v
bD48L3VsPicpOwordGVzdExpc3QoIkluc2VydE9yZGVyZWRMaXN0IiwgJzx1bD48b2w+PGxpPmhl
bGxvPC9saT48L29sPjx1bCBpZD0idGVzdCI+PGxpPndvcmxkPC9saT48L3VsPjxvbD48bGk+V2Vi
S2l0PC9saT48L29sPjwvdWw+JywgJzx1bD48b2w+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xp
PjxsaT5XZWJLaXQ8L2xpPjwvb2w+PC91bD4nKTsKK3Rlc3RMaXN0KCJJbnNlcnRPcmRlcmVkTGlz
dCIsICc8dWw+PHVsIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjwvdWw+d29ybGQ8b2w+PGxpPldl
YktpdDwvbGk+PC9vbD48L3VsPicsICc8dWw+PG9sPjxsaT5oZWxsbzwvbGk+PC9vbD53b3JsZDxv
bD48bGk+V2ViS2l0PC9saT48L29sPjwvdWw+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVk
TGlzdCIsICc8b2w+PG9sIGlkPSJ0ZXN0Ij48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC9v
bD48dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+
PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwvb2w+Jyk7Cit0ZXN0TGlzdCgiSW5z
ZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD48b2wgaWQ9InRl
c3QiPjxsaT53b3JsZDwvbGk+PC9vbD48dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPicsICc8
b2w+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48bGk+V2ViS2l0PC9saT48L3VsPjwv
b2w+Jyk7Cit0ZXN0TGlzdCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIsICc8b2w+PG9sIGlkPSJ0ZXN0
Ij48bGk+aGVsbG88L2xpPjwvb2w+d29ybGQ8dWw+PGxpPldlYktpdDwvbGk+PC91bD48L29sPics
ICc8b2w+PHVsPjxsaT5oZWxsbzwvbGk+PC91bD53b3JsZDx1bD48bGk+V2ViS2l0PC9saT48L3Vs
Pjwvb2w+Jyk7CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcik7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="34480"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>