<?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>40429</bug_id>
          
          <creation_ts>2010-06-10 10:30:15 -0700</creation_ts>
          <short_desc>REGRESSION: Can&apos;t submit a form with &lt;input type=radio required&gt;</short_desc>
          <delta_ts>2010-06-25 13:50:40 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>28649</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>darin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236423</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-10 10:30:15 -0700</bug_when>
    <thetext>Steps to reproduce:

1. Open http://www.avianova.com/
2. Select &quot;one way trip&quot;.
3. Select &quot;From: Moscow-Sheremetyevo&quot;
4. Select To: &quot;Naberezhnye Chelny&quot;
5. Select departure date, for example &quot;July 3rd&quot;
6. Press &quot;Find flight&quot; button&quot;, this will load next page.
7. Pick the date from the choices
8. Turn on &quot;Agreement&quot; checkbox.
9. Press &quot;Continue&quot; button.

Results: nothing happens in release builds, an assertion fails in debug:

ASSERTION FAILED: m_isValid == validity()-&gt;valid()
(WebCore/html/HTMLFormControlElement.cpp:353 virtual bool WebCore::HTMLFormControlElement::isValidFormControlElement())

This works in Safari 4.0.5

&lt;rdar://problem/8078475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236711</commentid>
    <comment_count>1</comment_count>
      <attachid>58451</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-11 00:10:08 -0700</bug_when>
    <thetext>Created attachment 58451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236762</commentid>
    <comment_count>2</comment_count>
      <attachid>58451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-11 03:18:02 -0700</bug_when>
    <thetext>Comment on attachment 58451
Patch

&gt; +        Vector&lt;RefPtr&lt;Node&gt; &gt; buttons;
&gt; +        form()-&gt;getNamedElements(name(), buttons);

Why doesn&apos;t this function put its output in a Vector&lt;RefPtr&lt;Element&gt; &gt; or a Vector&lt;RefPtr&lt;HTMLFormControlElement&gt; &gt;?

&gt; +        RefPtr&lt;NodeList&gt; nodeList = document()-&gt;getElementsByName(name());
&gt; +        if (nodeList) {

Why is the null check needed? Can getElementsByName return null?

Why use a NodeList? That is a data structure for the public DOM, but for internal use I would recommend just writing a loop. The getElementsByName function has no special algorithm and introduces unneeded overhead.

    for (Node* node = document(); node; node = node-&gt;traverseNextNode())

The above will do the same thing more efficiently than the NodeList code.

By the way, it worries me that we have to iterate every single item in the whole document every time updateCheckedRadioButtons is called on a radio button outside a form. Can&apos;t this get pathologically slow if there are a ton of radio buttons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236772</commentid>
    <comment_count>3</comment_count>
      <attachid>58462</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-11 04:25:24 -0700</bug_when>
    <thetext>Created attachment 58462
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236775</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-11 04:32:48 -0700</bug_when>
    <thetext>Thank you for reviewing.  I updated the patch.

(In reply to comment #2)
&gt; (From update of attachment 58451 [details])
&gt; &gt; +        Vector&lt;RefPtr&lt;Node&gt; &gt; buttons;
&gt; &gt; +        form()-&gt;getNamedElements(name(), buttons);
&gt; 
&gt; Why doesn&apos;t this function put its output in a Vector&lt;RefPtr&lt;Element&gt; &gt; or a Vector&lt;RefPtr&lt;HTMLFormControlElement&gt; &gt;?

It&apos;s not so easy to chenge getNamedElements() output type because it is created from HTMLCollection. I found HTMLFormElement::associatedElements() and the updated patch uses it.

&gt; 
&gt; &gt; +        RefPtr&lt;NodeList&gt; nodeList = document()-&gt;getElementsByName(name());
&gt; &gt; +        if (nodeList) {

&gt; Why use a NodeList? That is a data structure for the public DOM, but for internal use I would recommend just writing a loop. The getElementsByName function has no special algorithm and introduces unneeded overhead.
&gt; 
&gt;     for (Node* node = document(); node; node = node-&gt;traverseNextNode())
&gt; 
&gt; The above will do the same thing more efficiently than the NodeList code.

Ok, I change it to traverseNextNode().

&gt; By the way, it worries me that we have to iterate every single item in the whole document every time updateCheckedRadioButtons is called on a radio button outside a form. Can&apos;t this get pathologically slow if there are a ton of radio buttons?

Of course it can be slow.  I added a FIXME comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236848</commentid>
    <comment_count>5</comment_count>
      <attachid>58462</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-11 08:38:40 -0700</bug_when>
    <thetext>Comment on attachment 58462
Patch 2

&gt; +            if (element-&gt;formControlType() != formControlType())
&gt; +                continue;
&gt; +            if (element-&gt;formControlName() != formControlName())
&gt; +                continue;

I think you can use type() and name() on the right side of these if statements. Since we&apos;re doing this work for every element in the entire document I think you need to be careful to use the check that is most likely to fail first. That&apos;s probably the formControlName() check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237280</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-12 04:55:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 58462 [details])
&gt; &gt; +            if (element-&gt;formControlType() != formControlType())
&gt; &gt; +                continue;
&gt; &gt; +            if (element-&gt;formControlName() != formControlName())
&gt; &gt; +                continue;
&gt; 
&gt; I think you can use type() and name() on the right side of these if statements. Since we&apos;re doing this work for every element in the entire document I think you need to be careful to use the check that is most likely to fail first. That&apos;s probably the formControlName() check.

Ok, I changed the order and changed to type()/name().

Committed as http://trac.webkit.org/changeset/61060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238067</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-14 15:01:19 -0700</bug_when>
    <thetext>*** Bug 40591 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58451</attachid>
            <date>2010-06-11 00:10:08 -0700</date>
            <delta_ts>2010-06-11 04:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40429-20100611161006.patch</filename>
            <type>text/plain</type>
            <size>11904</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOWQ1ZDQ2ZmM5MDRmY2YyOTkzOTE1YzJlNmU0Y2MxZWFlMzQ0ZjI4Li40OTM0MDNi
ZGVhNzdmYzRkOGRiNWNlZDEyYzgwOGJhYTY0NzQxMDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDYtMTEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IENhbid0
IHN1Ym1pdCBhIGZvcm0gd2l0aCA8aW5wdXQgdHlwZT1yYWRpbyByZXF1aXJlZD4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNDI5CisKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLXJhZGlvLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2ludGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQt
cmFkaW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2ludGVyYWN0
aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8uanM6
CisgICAgICAgICAgV2UgbmVlZCB0byB0ZXN0IGFnYWluc3QgYSByYWRpbyBncm91cCB3aXRoIGF0
IGxlYXN0IHRocmVlIHJhZGlvIGJ1dHRvbnMKKyAgICAgICAgICBiZWNhdXNlIHdlIHNob3VsZCB0
ZXN0IGJlaGF2aW9ycyBvZgorICAgICAgICAgIC0gY2hlY2tlZAorICAgICAgICAgIC0gdW5jaGVj
a2VkCisgICAgICAgICAgLSBuZWl0aGVyIGNoZWNrZWQgbm9yIHVuY2hlY2tlZAorCiAyMDEwLTA2
LTEwICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtdmFsdWVNaXNzaW5nLXJhZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDk0OThlODEzYjVhMjljYzMzYTBhOTY1Nzc0M2JjZTBkMzBjNWY5NTQuLmYwOWRkZWI3ZTZi
NjMxODQxOGE2OGNkZDIxYzJiNGQzZTA0NTc1YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFk
aW8tZXhwZWN0ZWQudHh0CkBAIC03LDIyICs3LDM2IEBAIFdpdGhvdXQgZm9ybSBlbGVtZW50CiBO
byBjaGVja2VkIGJ1dHRvbjoKIFBBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBp
cyB0cnVlCiBQQVNTIGlucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BB
U1MgaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorVGhlIHNlY29uZCBi
dXR0b24gaGFzIGJlZW4gY2hlY2tlZDoKK1BBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlz
c2luZyBpcyBmYWxzZQorUEFTUyBpbnB1dHNbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZh
bHNlCitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKIFRoZSBm
aXJzdCBidXR0b24gaGFzIGJlZW4gY2hlY2tlZDoKIFBBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZh
bHVlTWlzc2luZyBpcyBmYWxzZQogUEFTUyBpbnB1dHNbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5n
IGlzIGZhbHNlCi1UaGUgc2Vjb25kIGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOgorUEFTUyBpbnB1
dHNbMl0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCitUaGUgdGhpcmQgYnV0dG9uIGhh
cyBiZWVuIGNoZWNrZWQ6CiBQQVNTIGlucHV0c1swXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMg
ZmFsc2UKIFBBU1MgaW5wdXRzWzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFT
UyBpbnB1dHNbMl0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCiBXaXRoIGZvcm0gZWxl
bWVudAogTm8gY2hlY2tlZCBidXR0b246CiBQQVNTIGlucHV0c1swXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcgaXMgdHJ1ZQogUEFTUyBpbnB1dHNbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZh
bHNlCitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKIFRoZSBm
aXJzdCBidXR0b24gaGFzIGJlZW4gY2hlY2tlZDoKIFBBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZh
bHVlTWlzc2luZyBpcyBmYWxzZQogUEFTUyBpbnB1dHNbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5n
IGlzIGZhbHNlCitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UK
IFRoZSBzZWNvbmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6CiBQQVNTIGlucHV0c1swXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKIFBBU1MgaW5wdXRzWzFdLnZhbGlkaXR5LnZhbHVl
TWlzc2luZyBpcyBmYWxzZQorUEFTUyBpbnB1dHNbMl0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlz
IGZhbHNlCitUaGUgdGhpcmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6CitQQVNTIGlucHV0c1sw
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1MgaW5wdXRzWzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyBpbnB1dHNbMl0udmFsaWRpdHkudmFsdWVNaXNz
aW5nIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW50ZXJhY3RpdmUtdmFs
aWRhdGlvbi1yZXF1aXJlZC1yYWRpby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2ludGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZkODk3MzVhMTIzOGJhZjIzNmE2NmFhY2ZhYTAyMWRlYjAwODNkYTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ludGVyYWN0aXZlLXZhbGlkYXRp
b24tcmVxdWlyZWQtcmFkaW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhlcmUgd2Fz
IGEgYnVnIG9mIHZhbGlkYXRpb24gb2YgYSByZXF1aXJlZCByYWRpbyBidXR0b24uIFRoaXMgdGVz
dCBjb25maXJtcyB0aGUgYnVnIGhhcyBiZWVuIGZpeGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBUaGUgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorUEFTUyBsb2Nh
dGlvbi5zZWFyY2guaW5kZXhPZigidGVybXM9b24iKSAhPSAtMSBpcyB0cnVlCitURVNUIENPTVBM
RVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnRlcmFjdGl2ZS12
YWxpZGF0aW9uLXJlcXVpcmVkLXJhZGlvLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
dGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDIy
NTgxMDZjZDcwYmFiYTU1MzA3NzUxYjIxZGU5Y2ZlYTE2NzNkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnRlcmFjdGl2ZS12YWxpZGF0aW9uLXJlcXVpcmVkLXJh
ZGlvLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGZvcm0gaWQ9ZiBhY3Rpb249
ImludGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbCI+Cis8aW5wdXQgdHlw
ZT1oaWRkZW4gbmFtZT1zdWJtaXR0ZWQgdmFsdWU9InRydWUiPgorPGlucHV0IHR5cGU9cmFkaW8g
bmFtZT10ZXJtcyBpZD1pMD4KKzxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9dGVybXMgaWQ9aTEgcmVx
dWlyZWQ+Cis8aW5wdXQgdHlwZT1zdWJtaXQgaWQ9InMiPgorPC9mb3JtPgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCdUaGVyZSB3YXMgYSBidWcgb2YgdmFsaWRhdGlvbiBvZiBhIHJlcXVpcmVkIHJh
ZGlvIGJ1dHRvbi4gVGhpcyB0ZXN0IGNvbmZpcm1zIHRoZSBidWcgaGFzIGJlZW4gZml4ZWQuJyk7
CisKK2Z1bmN0aW9uIHN0YXJ0T3JWZXJpZnkoKSB7CisgICAgdmFyIHF1ZXJ5ID0gd2luZG93Lmxv
Y2F0aW9uLnNlYXJjaDsKKyAgICBpZiAocXVlcnkuaW5kZXhPZignc3VibWl0dGVkPXRydWUnKSAh
PSAtMSkgeworICAgICAgICB0ZXN0UGFzc2VkKCdUaGUgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVk
LicpOworICAgICAgICBzaG91bGRCZVRydWUoJ2xvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJ0ZXJt
cz1vbiIpICE9IC0xJyk7CisgICAgICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2kxJykuY2hlY2tlZCA9IHRydWU7CisgICAgICAgIC8vIEhUTUxGb3Jt
RWxlbWVudDo6c3VibWl0KCkgc2tpcHMgdmFsaWRhdGlvbi4gVXNlIHRoZSBzdWJtaXQgYnV0dG9u
LgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncycpLmNsaWNrKCk7CisgICAgICAg
IHRlc3RGYWlsZWQoJ1RoZSBmb3JtIHdhcyBub3Qgc3VibWl0dGVkLicpOworICAgIH0KK30KKwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Cit3aW5kb3cub25sb2FkID0gc3RhcnRPclZlcmlmeTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8uanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2lu
Zy1yYWRpby5qcwppbmRleCBhNzc1ZDRhNTgyZGI4MzQ1MDUxNDU0Y2I2N2YxNWZkMDgxYzEwYWQ0
Li4wY2MzNGFjMGM1MWNjMmE2N2JiYmY5ODg2Y2RlYWMwZTMxNjZhMDEyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy1yYWRpby5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9W
YWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy1yYWRpby5qcwpAQCAtNCw4ICs0LDkgQEAgdmFyIHBh
cmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChwYXJlbnQpOwogCiBkZWJ1ZygnV2l0aG91dCBmb3JtIGVsZW1lbnQnKTsKLXBhcmVu
dC5pbm5lckhUTUwgPSAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8gcmVxdWlyZWQvPicK
LSAgICArICc8aW5wdXQgbmFtZT12aWN0aW0gdHlwZT1yYWRpby8+JzsKK3BhcmVudC5pbm5lckhU
TUwgPSAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8gcmVxdWlyZWQ+JworICAgICsgJzxp
bnB1dCBuYW1lPXZpY3RpbSB0eXBlPXJhZGlvPicKKyAgICArICc8aW5wdXQgbmFtZT12aWN0aW0g
dHlwZT1yYWRpbz4nOwogdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCd2
aWN0aW0nKTsKIGRlYnVnKCdObyBjaGVja2VkIGJ1dHRvbjonKTsKIHNob3VsZEJlVHJ1ZSgnaW5w
dXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOwpAQCAtMTMsMzIgKzE0LDQ5IEBAIHNob3Vs
ZEJlVHJ1ZSgnaW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOwogLy8gInJlcXVpcmVk
Ii4gIEl0IGNvbmZvcm1zIHRvIEhUTUw1LCBhbmQgdGhpcyBiZWhhdmlvciBoYXMgbm8gcHJhY3Rp
Y2FsCiAvLyBwcm9ibGVtcy4KIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52YWxpZGl0eS52YWx1
ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcnKTsKK2RlYnVnKCdUaGUgc2Vjb25kIGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOicpOworaW5w
dXRzWzFdLmNoZWNrZWQgPSB0cnVlOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzBdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzFdLnZhbGlkaXR5LnZhbHVl
TWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVlTWlzc2lu
ZycpOwogZGVidWcoJ1RoZSBmaXJzdCBidXR0b24gaGFzIGJlZW4gY2hlY2tlZDonKTsKIGlucHV0
c1swXS5jaGVja2VkID0gdHJ1ZTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1swXS52YWxpZGl0eS52
YWx1ZU1pc3NpbmcnKTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcnKTsKLWRlYnVnKCdUaGUgc2Vjb25kIGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOicpOwot
aW5wdXRzWzFdLmNoZWNrZWQgPSB0cnVlOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZycpOworZGVidWcoJ1RoZSB0aGlyZCBidXR0b24gaGFzIGJlZW4gY2hl
Y2tlZDonKTsKK2lucHV0c1syXS5jaGVja2VkID0gdHJ1ZTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0
c1swXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52
YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcnKTsKIAogZGVidWcoJ1dpdGggZm9ybSBlbGVtZW50Jyk7CiBwYXJlbnQu
aW5uZXJIVE1MID0gJzxmb3JtPicKLSAgICArICc8aW5wdXQgbmFtZT12aWN0aW0gdHlwZT1yYWRp
byByZXF1aXJlZC8+JwotICAgICsgJzxpbnB1dCBuYW1lPXZpY3RpbSB0eXBlPXJhZGlvLz4nCisg
ICAgKyAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8gcmVxdWlyZWQ+JworICAgICsgJzxp
bnB1dCBuYW1lPXZpY3RpbSB0eXBlPXJhZGlvPicKKyAgICArICc8aW5wdXQgbmFtZT12aWN0aW0g
dHlwZT1yYWRpbz4nCiAgICAgKyAnPC9mb3JtPic7CiBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5TmFtZSgndmljdGltJyk7CiBkZWJ1ZygnTm8gY2hlY2tlZCBidXR0b246Jyk7CiBzaG91
bGRCZVRydWUoJ2lucHV0c1swXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKIC8vIFRoZSBmb2xs
b3dpbmcgcmVzdWx0IHNob3VsZCBiZSBmYWxzZS4KIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52
YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcnKTsKIGRlYnVnKCdUaGUgZmlyc3QgYnV0dG9uIGhhcyBiZWVuIGNoZWNr
ZWQ6Jyk7CiBpbnB1dHNbMF0uY2hlY2tlZCA9IHRydWU7CiBzaG91bGRCZUZhbHNlKCdpbnB1dHNb
MF0udmFsaWRpdHkudmFsdWVNaXNzaW5nJyk7CiBzaG91bGRCZUZhbHNlKCdpbnB1dHNbMV0udmFs
aWRpdHkudmFsdWVNaXNzaW5nJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMl0udmFsaWRpdHku
dmFsdWVNaXNzaW5nJyk7CiBkZWJ1ZygnVGhlIHNlY29uZCBidXR0b24gaGFzIGJlZW4gY2hlY2tl
ZDonKTsKIGlucHV0c1sxXS5jaGVja2VkID0gdHJ1ZTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sw
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxpZGl0eS52
YWx1ZU1pc3NpbmcnKTsKK2RlYnVnKCdUaGUgdGhpcmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6
Jyk7CitpbnB1dHNbMl0uY2hlY2tlZCA9IHRydWU7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMF0u
dmFsaWRpdHkudmFsdWVNaXNzaW5nJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMV0udmFsaWRp
dHkudmFsdWVNaXNzaW5nJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMl0udmFsaWRpdHkudmFs
dWVNaXNzaW5nJyk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NjY3MmVjYmQ1
YWRmZmYxODFhMDZhODViYTkyNjg0YzdhOTMwYmMwLi41NDUwMzI4NmYwN2UyMmFmNjJkNjUzODA2
NjE0YmVjNjZjMjY0MTkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA2LTExICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSRUdSRVNTSU9OOiBDYW4ndCBzdWJtaXQgYSBmb3JtIHdpdGggPGlucHV0
IHR5cGU9cmFkaW8gcmVxdWlyZWQ+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDQyOQorCisgICAgICAgIFZhbGlkaXR5IHN0YXRlIHdhcyBub3QgdXBk
YXRlZCBjb3JyZWN0bHkgZm9yIHJhZGlvIGJ1dHRvbnMsIGFuZCBpdAorICAgICAgICBwcmV2ZW50
cyBmb3JtIHN1Ym1pc3Npb24gZXZlbiBpZiBhIHJhZGlvIGJ1dHRvbiBncm91cCBoYXMgYQorICAg
ICAgICBjaGVja2VkIHJhZGlvIGJ1dHRvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL2lu
dGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OnVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMpOgorICAgICAgICAgQ2FsbCBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKSBmb3IgYWxsIG9mIHJhZGlvIGJ1dHRvbnMgaW4gdGhlIHNhbWUgZ3JvdXAK
KyAgICAgICAgIHRvIHVwZGF0ZSB2YWxpZGl0eSBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQpOgorICAgICAgICAgUmVtb3ZlIHNldE5lZWRzVmFs
aWRpdHlDaGVjaygpIGNhbGwgYmVjYXVzZSBpdCBpcyBjYWxsZWQgaW4KKyAgICAgICAgIHVwZGF0
ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKS4KKwogMjAxMC0wNi0xMCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGEyNmI5OWQxNmVjYjI4ZDJmZGE2M2VjM2EwZjhmYzZh
M2Q5MTY0MTIuLjlmYWE4ZDRkMDI2MjFkN2ZhNDliMDAwY2ViYThjOTk2MTg5YjFhNjcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJIVE1M
UGFyc2VyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKQEAg
LTE2Myw2ICsxNjQsMzIgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVDaGVja2VkUmFk
aW9CdXR0b25zKCkKIHsKICAgICBpZiAoYXR0YWNoZWQoKSAmJiBjaGVja2VkKCkpCiAgICAgICAg
IGNoZWNrZWRSYWRpb0J1dHRvbnModGhpcykuYWRkQnV0dG9uKHRoaXMpOworCisgICAgaWYgKGZv
cm0oKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gYnV0dG9uczsKKyAgICAgICAg
Zm9ybSgpLT5nZXROYW1lZEVsZW1lbnRzKG5hbWUoKSwgYnV0dG9ucyk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBidXR0b25zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBB
U1NFUlQoYnV0dG9uc1tpXS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICAgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oYnV0dG9uc1tpXS5nZXQoKSk7CisgICAg
ICAgICAgICBpZiAoZWxlbWVudC0+Zm9ybUNvbnRyb2xUeXBlKCkgIT0gZm9ybUNvbnRyb2xUeXBl
KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZWxlbWVudCktPnNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgUmVmUHRyPE5vZGVMaXN0PiBub2Rl
TGlzdCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRzQnlOYW1lKG5hbWUoKSk7CisgICAgICAgIGlm
IChub2RlTGlzdCkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG5vZGVM
aXN0LT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGVMaXN0LT5p
dGVtKGkpLT5pc0VsZW1lbnROb2RlKCkpOworICAgICAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZUxpc3QtPml0ZW0oaSkpOworICAgICAgICAg
ICAgICAgIGlmIChlbGVtZW50LT5mb3JtQ29udHJvbFR5cGUoKSAhPSBmb3JtQ29udHJvbFR5cGUo
KSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQqPihlbGVtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbC0+Zm9ybSgpKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjb250cm9sLT5z
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
ICAgIAogICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVh
cmFuY2UoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+dGhlbWUoKS0+c3RhdGVDaGFuZ2VkKHJlbmRl
cmVyKCksIENoZWNrZWRTdGF0ZSk7CkBAIC0xNDE2LDcgKzE0NDMsNiBAQCB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldENoZWNrZWQoYm9vbCBub3dDaGVja2VkLCBib29sIHNlbmRDaGFuZ2VFdmVu
dCkKIAogICAgIG1fdXNlRGVmYXVsdENoZWNrZWQgPSBmYWxzZTsKICAgICBtX2NoZWNrZWQgPSBu
b3dDaGVja2VkOwotICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgIHNldE5lZWRzU3R5
bGVSZWNhbGMoKTsKIAogICAgIHVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRvbnMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58462</attachid>
            <date>2010-06-11 04:25:24 -0700</date>
            <delta_ts>2010-06-12 04:56:04 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-40429-20100611202522.patch</filename>
            <type>text/plain</type>
            <size>11697</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTZjZWQ2ZWZmMTExMDI5NzgyZDJjOWIwYjMyZWU4YzcyYTVhMDBhLi44N2NiZjdi
YzI3YTU2MzZiNTY0NDgzMTZlOTZkN2Q1Y2NlNzE4MzQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDYtMTEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IENhbid0
IHN1Ym1pdCBhIGZvcm0gd2l0aCA8aW5wdXQgdHlwZT1yYWRpbyByZXF1aXJlZD4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNDI5CisKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLXJhZGlvLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2ludGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQt
cmFkaW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2ludGVyYWN0
aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8uanM6
CisgICAgICAgICAgV2UgbmVlZCB0byB0ZXN0IGFnYWluc3QgYSByYWRpbyBncm91cCB3aXRoIGF0
IGxlYXN0IHRocmVlIHJhZGlvIGJ1dHRvbnMKKyAgICAgICAgICBiZWNhdXNlIHdlIHNob3VsZCB0
ZXN0IGJlaGF2aW9ycyBvZgorICAgICAgICAgIC0gY2hlY2tlZAorICAgICAgICAgIC0gdW5jaGVj
a2VkCisgICAgICAgICAgLSBuZWl0aGVyIGNoZWNrZWQgbm9yIHVuY2hlY2tlZAorCiAyMDEwLTA2
LTExICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctcmFkaW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy1yYWRpby1leHBlY3RlZC50
eHQKaW5kZXggOTQ5OGU4MTNiNWEyOWNjMzNhMGE5NjU3NzQzYmNlMGQzMGM1Zjk1NC4uZjA5ZGRl
YjdlNmI2MzE4NDE4YTY4Y2RkMjFjMmI0ZDNlMDQ1NzViYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy1yYWRpby1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2lu
Zy1yYWRpby1leHBlY3RlZC50eHQKQEAgLTcsMjIgKzcsMzYgQEAgV2l0aG91dCBmb3JtIGVsZW1l
bnQKIE5vIGNoZWNrZWQgYnV0dG9uOgogUEFTUyBpbnB1dHNbMF0udmFsaWRpdHkudmFsdWVNaXNz
aW5nIGlzIHRydWUKIFBBU1MgaW5wdXRzWzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxz
ZQorUEFTUyBpbnB1dHNbMl0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCitUaGUgc2Vj
b25kIGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOgorUEFTUyBpbnB1dHNbMF0udmFsaWRpdHkudmFs
dWVNaXNzaW5nIGlzIGZhbHNlCitQQVNTIGlucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1pc3Npbmcg
aXMgZmFsc2UKK1BBU1MgaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQog
VGhlIGZpcnN0IGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOgogUEFTUyBpbnB1dHNbMF0udmFsaWRp
dHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCiBQQVNTIGlucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcgaXMgZmFsc2UKLVRoZSBzZWNvbmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6CitQQVNT
IGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1RoZSB0aGlyZCBidXR0
b24gaGFzIGJlZW4gY2hlY2tlZDoKIFBBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2lu
ZyBpcyBmYWxzZQogUEFTUyBpbnB1dHNbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5nIGlzIGZhbHNl
CitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKIFdpdGggZm9y
bSBlbGVtZW50CiBObyBjaGVja2VkIGJ1dHRvbjoKIFBBU1MgaW5wdXRzWzBdLnZhbGlkaXR5LnZh
bHVlTWlzc2luZyBpcyB0cnVlCiBQQVNTIGlucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1pc3Npbmcg
aXMgZmFsc2UKK1BBU1MgaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQog
VGhlIGZpcnN0IGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOgogUEFTUyBpbnB1dHNbMF0udmFsaWRp
dHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCiBQQVNTIGlucHV0c1sxXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcgaXMgZmFsc2UKK1BBU1MgaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBm
YWxzZQogVGhlIHNlY29uZCBidXR0b24gaGFzIGJlZW4gY2hlY2tlZDoKIFBBU1MgaW5wdXRzWzBd
LnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQogUEFTUyBpbnB1dHNbMV0udmFsaWRpdHku
dmFsdWVNaXNzaW5nIGlzIGZhbHNlCitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcgaXMgZmFsc2UKK1RoZSB0aGlyZCBidXR0b24gaGFzIGJlZW4gY2hlY2tlZDoKK1BBU1MgaW5w
dXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyBpbnB1dHNbMV0udmFs
aWRpdHkudmFsdWVNaXNzaW5nIGlzIGZhbHNlCitQQVNTIGlucHV0c1syXS52YWxpZGl0eS52YWx1
ZU1pc3NpbmcgaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnRlcmFjdGl2
ZS12YWxpZGF0aW9uLXJlcXVpcmVkLXJhZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW50ZXJhY3RpdmUtdmFsaWRhdGlvbi1yZXF1aXJlZC1yYWRpby1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ4OTczNWExMjM4YmFmMjM2YTY2YWFjZmFhMDIxZGViMDA4M2RhNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW50ZXJhY3RpdmUtdmFs
aWRhdGlvbi1yZXF1aXJlZC1yYWRpby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUaGVy
ZSB3YXMgYSBidWcgb2YgdmFsaWRhdGlvbiBvZiBhIHJlcXVpcmVkIHJhZGlvIGJ1dHRvbi4gVGhp
cyB0ZXN0IGNvbmZpcm1zIHRoZSBidWcgaGFzIGJlZW4gZml4ZWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFRoZSBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQuCitQQVNT
IGxvY2F0aW9uLnNlYXJjaC5pbmRleE9mKCJ0ZXJtcz1vbiIpICE9IC0xIGlzIHRydWUKK1RFU1Qg
Q09NUExFVEUKKyAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ludGVyYWN0
aXZlLXZhbGlkYXRpb24tcmVxdWlyZWQtcmFkaW8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW50ZXJhY3RpdmUtdmFsaWRhdGlvbi1yZXF1aXJlZC1yYWRpby5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU0MjI1ODEwNmNkNzBiYWJhNTUzMDc3NTFiMjFkZTljZmVhMTY3M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ludGVyYWN0aXZlLXZhbGlkYXRpb24tcmVxdWly
ZWQtcmFkaW8uaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Zm9ybSBpZD1mIGFj
dGlvbj0iaW50ZXJhY3RpdmUtdmFsaWRhdGlvbi1yZXF1aXJlZC1yYWRpby5odG1sIj4KKzxpbnB1
dCB0eXBlPWhpZGRlbiBuYW1lPXN1Ym1pdHRlZCB2YWx1ZT0idHJ1ZSI+Cis8aW5wdXQgdHlwZT1y
YWRpbyBuYW1lPXRlcm1zIGlkPWkwPgorPGlucHV0IHR5cGU9cmFkaW8gbmFtZT10ZXJtcyBpZD1p
MSByZXF1aXJlZD4KKzxpbnB1dCB0eXBlPXN1Ym1pdCBpZD0icyI+Cis8L2Zvcm0+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oJ1RoZXJlIHdhcyBhIGJ1ZyBvZiB2YWxpZGF0aW9uIG9mIGEgcmVxdWly
ZWQgcmFkaW8gYnV0dG9uLiBUaGlzIHRlc3QgY29uZmlybXMgdGhlIGJ1ZyBoYXMgYmVlbiBmaXhl
ZC4nKTsKKworZnVuY3Rpb24gc3RhcnRPclZlcmlmeSgpIHsKKyAgICB2YXIgcXVlcnkgPSB3aW5k
b3cubG9jYXRpb24uc2VhcmNoOworICAgIGlmIChxdWVyeS5pbmRleE9mKCdzdWJtaXR0ZWQ9dHJ1
ZScpICE9IC0xKSB7CisgICAgICAgIHRlc3RQYXNzZWQoJ1RoZSBmb3JtIHNob3VsZCBiZSBzdWJt
aXR0ZWQuJyk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgnbG9jYXRpb24uc2VhcmNoLmluZGV4T2Yo
InRlcm1zPW9uIikgIT0gLTEnKTsKKyAgICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaTEnKS5jaGVja2VkID0gdHJ1ZTsKKyAgICAgICAgLy8gSFRN
TEZvcm1FbGVtZW50OjpzdWJtaXQoKSBza2lwcyB2YWxpZGF0aW9uLiBVc2UgdGhlIHN1Ym1pdCBi
dXR0b24uCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJykuY2xpY2soKTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgnVGhlIGZvcm0gd2FzIG5vdCBzdWJtaXR0ZWQuJyk7CisgICAgfQor
fQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK3dpbmRvdy5vbmxvYWQgPSBzdGFydE9yVmVyaWZ5Owor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy1yYWRpby5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLXJhZGlvLmpzCmluZGV4IGE3NzVkNGE1ODJkYjgzNDUwNTE0NTRjYjY3ZjE1ZmQwODFj
MTBhZDQuLjBjYzM0YWMwYzUxY2MyYTY3YmJiZjk4ODZjZGVhYzBlMzE2NmEwMTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLXJhZGlvLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLXJhZGlvLmpzCkBAIC00LDggKzQsOSBAQCB2
YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHBhcmVudCk7CiAKIGRlYnVnKCdXaXRob3V0IGZvcm0gZWxlbWVudCcpOwot
cGFyZW50LmlubmVySFRNTCA9ICc8aW5wdXQgbmFtZT12aWN0aW0gdHlwZT1yYWRpbyByZXF1aXJl
ZC8+JwotICAgICsgJzxpbnB1dCBuYW1lPXZpY3RpbSB0eXBlPXJhZGlvLz4nOworcGFyZW50Lmlu
bmVySFRNTCA9ICc8aW5wdXQgbmFtZT12aWN0aW0gdHlwZT1yYWRpbyByZXF1aXJlZD4nCisgICAg
KyAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8+JworICAgICsgJzxpbnB1dCBuYW1lPXZp
Y3RpbSB0eXBlPXJhZGlvPic7CiB2YXIgaW5wdXRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoJ3ZpY3RpbScpOwogZGVidWcoJ05vIGNoZWNrZWQgYnV0dG9uOicpOwogc2hvdWxkQmVUcnVl
KCdpbnB1dHNbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nJyk7CkBAIC0xMywzMiArMTQsNDkgQEAg
c2hvdWxkQmVUcnVlKCdpbnB1dHNbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nJyk7CiAvLyAicmVx
dWlyZWQiLiAgSXQgY29uZm9ybXMgdG8gSFRNTDUsIGFuZCB0aGlzIGJlaGF2aW9yIGhhcyBubyBw
cmFjdGljYWwKIC8vIHByb2JsZW1zLgogc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZhbGlkaXR5LnZhbHVl
TWlzc2luZycpOworZGVidWcoJ1RoZSBzZWNvbmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6Jyk7
CitpbnB1dHNbMV0uY2hlY2tlZCA9IHRydWU7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMF0udmFs
aWRpdHkudmFsdWVNaXNzaW5nJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMV0udmFsaWRpdHku
dmFsdWVNaXNzaW5nJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMl0udmFsaWRpdHkudmFsdWVN
aXNzaW5nJyk7CiBkZWJ1ZygnVGhlIGZpcnN0IGJ1dHRvbiBoYXMgYmVlbiBjaGVja2VkOicpOwog
aW5wdXRzWzBdLmNoZWNrZWQgPSB0cnVlOwogc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzBdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZycpOwogc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzFdLnZhbGlkaXR5LnZh
bHVlTWlzc2luZycpOwotZGVidWcoJ1RoZSBzZWNvbmQgYnV0dG9uIGhhcyBiZWVuIGNoZWNrZWQ6
Jyk7Ci1pbnB1dHNbMV0uY2hlY2tlZCA9IHRydWU7CitzaG91bGRCZUZhbHNlKCdpbnB1dHNbMl0u
dmFsaWRpdHkudmFsdWVNaXNzaW5nJyk7CitkZWJ1ZygnVGhlIHRoaXJkIGJ1dHRvbiBoYXMgYmVl
biBjaGVja2VkOicpOworaW5wdXRzWzJdLmNoZWNrZWQgPSB0cnVlOwogc2hvdWxkQmVGYWxzZSgn
aW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOwogc2hvdWxkQmVGYWxzZSgnaW5wdXRz
WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZh
bGlkaXR5LnZhbHVlTWlzc2luZycpOwogCiBkZWJ1ZygnV2l0aCBmb3JtIGVsZW1lbnQnKTsKIHBh
cmVudC5pbm5lckhUTUwgPSAnPGZvcm0+JwotICAgICsgJzxpbnB1dCBuYW1lPXZpY3RpbSB0eXBl
PXJhZGlvIHJlcXVpcmVkLz4nCi0gICAgKyAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8v
PicKKyAgICArICc8aW5wdXQgbmFtZT12aWN0aW0gdHlwZT1yYWRpbyByZXF1aXJlZD4nCisgICAg
KyAnPGlucHV0IG5hbWU9dmljdGltIHR5cGU9cmFkaW8+JworICAgICsgJzxpbnB1dCBuYW1lPXZp
Y3RpbSB0eXBlPXJhZGlvPicKICAgICArICc8L2Zvcm0+JzsKIGlucHV0cyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlOYW1lKCd2aWN0aW0nKTsKIGRlYnVnKCdObyBjaGVja2VkIGJ1dHRvbjonKTsK
IHNob3VsZEJlVHJ1ZSgnaW5wdXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOwogLy8gVGhl
IGZvbGxvd2luZyByZXN1bHQgc2hvdWxkIGJlIGZhbHNlLgogc2hvdWxkQmVGYWxzZSgnaW5wdXRz
WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZh
bGlkaXR5LnZhbHVlTWlzc2luZycpOwogZGVidWcoJ1RoZSBmaXJzdCBidXR0b24gaGFzIGJlZW4g
Y2hlY2tlZDonKTsKIGlucHV0c1swXS5jaGVja2VkID0gdHJ1ZTsKIHNob3VsZEJlRmFsc2UoJ2lu
cHV0c1swXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKIHNob3VsZEJlRmFsc2UoJ2lucHV0c1sx
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcnKTsKIGRlYnVnKCdUaGUgc2Vjb25kIGJ1dHRvbiBoYXMgYmVlbiBj
aGVja2VkOicpOwogaW5wdXRzWzFdLmNoZWNrZWQgPSB0cnVlOwogc2hvdWxkQmVGYWxzZSgnaW5w
dXRzWzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOwogc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzFd
LnZhbGlkaXR5LnZhbHVlTWlzc2luZycpOworc2hvdWxkQmVGYWxzZSgnaW5wdXRzWzJdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZycpOworZGVidWcoJ1RoZSB0aGlyZCBidXR0b24gaGFzIGJlZW4gY2hl
Y2tlZDonKTsKK2lucHV0c1syXS5jaGVja2VkID0gdHJ1ZTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0
c1swXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1sxXS52
YWxpZGl0eS52YWx1ZU1pc3NpbmcnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0c1syXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcnKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVmMmM4
MDYzNGYxNzAwOTc1ZGUwMTJjMzU0YzM3OGRiMjUxNDExNGQuLjVkNDFiY2Y5MTRhNjFiODdjNWI3
NjY5OWVlZWEyMzgzZGMyNmQyZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDYtMTEgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IENhbid0IHN1Ym1pdCBhIGZvcm0gd2l0aCA8
aW5wdXQgdHlwZT1yYWRpbyByZXF1aXJlZD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwNDI5CisKKyAgICAgICAgVmFsaWRpdHkgc3RhdGUgd2FzIG5v
dCB1cGRhdGVkIGNvcnJlY3RseSBmb3IgcmFkaW8gYnV0dG9ucywgYW5kIGl0CisgICAgICAgIHBy
ZXZlbnRzIGZvcm0gc3VibWlzc2lvbiBldmVuIGlmIGEgcmFkaW8gYnV0dG9uIGdyb3VwIGhhcyBh
CisgICAgICAgIGNoZWNrZWQgcmFkaW8gYnV0dG9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9y
bXMvaW50ZXJhY3RpdmUtdmFsaWRhdGlvbi1yZXF1aXJlZC1yYWRpby5odG1sCisKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6dXBkYXRlQ2hlY2tlZFJhZGlvQnV0dG9ucyk6CisgICAgICAgICBDYWxsIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpIGZvciBhbGwgb2YgcmFkaW8gYnV0dG9ucyBpbiB0aGUgc2FtZSBn
cm91cAorICAgICAgICAgdG8gdXBkYXRlIHZhbGlkaXR5IHN0YXRlLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Q2hlY2tlZCk6CisgICAgICAgICBSZW1vdmUgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCkgY2FsbCBiZWNhdXNlIGl0IGlzIGNhbGxlZCBpbgorICAgICAgICAg
dXBkYXRlQ2hlY2tlZFJhZGlvQnV0dG9ucygpLgorCiAyMDEwLTA1LTMxICBKb2NlbHluIFR1cmNv
dHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYTI2Yjk5ZDE2
ZWNiMjhkMmZkYTYzZWMzYTBmOGZjNmEzZDkxNjQxMi4uMTRhOGJkODE5MTNjYzU1ODMzNTIwODdi
NDNlYjg1N2NjYjMwMmM5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTYzLDYg
KzE2MywzMyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZUNoZWNrZWRSYWRpb0J1dHRv
bnMoKQogewogICAgIGlmIChhdHRhY2hlZCgpICYmIGNoZWNrZWQoKSkKICAgICAgICAgY2hlY2tl
ZFJhZGlvQnV0dG9ucyh0aGlzKS5hZGRCdXR0b24odGhpcyk7CisKKyAgICBpZiAoZm9ybSgpKSB7
CisgICAgICAgIGNvbnN0IFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4mIGNvbnRyb2xz
ID0gZm9ybSgpLT5hc3NvY2lhdGVkRWxlbWVudHMoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGNvbnRyb2xzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50KiBjb250cm9sID0gY29udHJvbHNbaV07CisgICAgICAgICAgICBpZiAoY29u
dHJvbC0+dHlwZSgpICE9IHR5cGUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIGlmIChjb250cm9sLT5uYW1lKCkgIT0gbmFtZSgpKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgY29udHJvbC0+c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogVHJhdmVyc2luZyB0aGUg
ZG9jdW1lbnQgaXMgaW5lZmZpY2llbnQuCisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9IGRvY3Vt
ZW50KCktPmJvZHkoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgewor
ICAgICAgICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG5vZGUpOworICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmZvcm1Db250cm9sVHlwZSgp
ICE9IGZvcm1Db250cm9sVHlwZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgaWYgKGVsZW1lbnQtPmZvcm1Db250cm9sTmFtZSgpICE9IGZvcm1Db250cm9sTmFtZSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgSFRNTEZvcm1Db250cm9s
RWxlbWVudCogY29udHJvbCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihl
bGVtZW50KTsKKyAgICAgICAgICAgIGlmIChjb250cm9sLT5mb3JtKCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBjb250cm9sLT5zZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KTsKKyAgICAgICAgfQorICAgIH0KICAgIAogICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVy
KCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+dGhlbWUo
KS0+c3RhdGVDaGFuZ2VkKHJlbmRlcmVyKCksIENoZWNrZWRTdGF0ZSk7CkBAIC0xNDE2LDcgKzE0
NDMsNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldENoZWNrZWQoYm9vbCBub3dDaGVja2Vk
LCBib29sIHNlbmRDaGFuZ2VFdmVudCkKIAogICAgIG1fdXNlRGVmYXVsdENoZWNrZWQgPSBmYWxz
ZTsKICAgICBtX2NoZWNrZWQgPSBub3dDaGVja2VkOwotICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIAogICAgIHVwZGF0ZUNoZWNrZWRSYWRp
b0J1dHRvbnMoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>