<?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>103420</bug_id>
          
          <creation_ts>2012-11-27 08:34:37 -0800</creation_ts>
          <short_desc>HTMLMediaElement&apos;s .textTracks property does not reflect &lt;track&gt; element</short_desc>
          <delta_ts>2012-11-29 07:33:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://w3c-test.org/html/tests/submission/Opera/media/interfaces/TextTrackList/getter.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776782</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2012-11-27 08:34:37 -0800</bug_when>
    <thetext>We fail the Opera-submitted test at http://w3c-test.org/html/tests/submission/Opera/media/interfaces/TextTrackList/getter.html.

The first test fails because we don&apos;t return the &lt;track&gt; element added to the &lt;video&gt; element as one of the text tracks. Note that when we do, we should respect the first rule of the spec for ordering of text tracks which says that the first items of the list are &lt;track&gt; elements (see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#list-of-text-tracks).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776784</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-11-27 08:35:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/12758151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776965</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-11-27 10:44:04 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; We fail the Opera-submitted test at http://w3c-test.org/html/tests/submission/Opera/media/interfaces/TextTrackList/getter.html.
&gt; 
&gt; The first test fails because we don&apos;t return the &lt;track&gt; element added to the &lt;video&gt; element as one of the text tracks. 

This happens because the &lt;video&gt; element is not in the document when the track was added, so HTMLTrackElement::insertedInto does not notify the HTMLMediaElement parent. Originally the parent element was always notified, but this was changed in http://trac.webkit.org/changeset/114351. I do not know why this change was made.

&gt; Note that when we do, we should respect the first rule of the spec for ordering of text tracks which says that the first items of the list are &lt;track&gt; elements (see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#list-of-text-tracks).

We do this, see TextTrackList::item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777304</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-27 16:04:10 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; We fail the Opera-submitted test at http://w3c-test.org/html/tests/submission/Opera/media/interfaces/TextTrackList/getter.html.
&gt; &gt; 
&gt; &gt; The first test fails because we don&apos;t return the &lt;track&gt; element added to the &lt;video&gt; element as one of the text tracks. 
&gt; 
&gt; This happens because the &lt;video&gt; element is not in the document when the track was added, so HTMLTrackElement::insertedInto does not notify the HTMLMediaElement parent. Originally the parent element was always notified, but this was changed in http://trac.webkit.org/changeset/114351. I do not know why this change was made.

This sounds like a bug. I&apos;ll take a look.
Thanks for letting me know this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777570</commentid>
    <comment_count>4</comment_count>
      <attachid>176410</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-27 23:27:11 -0800</bug_when>
    <thetext>Created attachment 176410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777885</commentid>
    <comment_count>5</comment_count>
      <attachid>176410</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-28 07:05:08 -0800</bug_when>
    <thetext>Comment on attachment 176410
Patch

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

&gt; Source/WebCore/html/HTMLTrackElement.cpp:87
&gt;  void HTMLTrackElement::removedFrom(ContainerNode* insertionPoint)
&gt;  {
&gt; -    HTMLMediaElement* parent = mediaElement();
&gt; -    if (!parent &amp;&amp; WebCore::isMediaElement(insertionPoint))
&gt; -        parent = toMediaElement(insertionPoint);
&gt; -    if (parent)
&gt; -        parent-&gt;willRemoveTrack(this);
&gt; -
&gt; +    if (!parentNode() &amp;&amp; WebCore::isMediaElement(insertionPoint))
&gt; +        toMediaElement(insertionPoint)-&gt;didRemoveTrack(this);

Just checking the logic here. Previously this was calling willRemoveTrack on the parent/mediaElement() if it existed and only using the insertionPoint if there was no mediaElement(). Now it is only calling didRemoveTrack when there is no parent, and always calling it on the insertionPoint.

Does this mean it is now ok for this to NOT call didRemoveTrack() when there is a parentNode()? I guess that&apos;s what the test below is testing.

Sorry if I&apos;m misunderstanding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777888</commentid>
    <comment_count>6</comment_count>
      <attachid>176410</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-28 07:06:44 -0800</bug_when>
    <thetext>Comment on attachment 176410
Patch

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

&gt; Source/WebCore/ChangeLog:27
&gt; +        (WebCore::HTMLTrackElement::insertedInto):
&gt; +        (WebCore::HTMLTrackElement::removedFrom):

You might want to describe what changed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778734</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-28 23:38:14 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; 
&gt; Just checking the logic here. Previously this was calling willRemoveTrack on the parent/mediaElement() if it existed and only using the insertionPoint if there was no mediaElement(). Now it is only calling didRemoveTrack when there is no parent, and always calling it on the insertionPoint.
&gt; 
&gt; Does this mean it is now ok for this to NOT call didRemoveTrack() when there is a parentNode()? I guess that&apos;s what the test below is testing.

Yes. 
If we call didRemoveTrack() even when the &lt;track&gt; has a parent, the &lt;track&gt; will be invalidated
when the parent &lt;media&gt; or its ascent is removed from the tree.
This is not desirable because we want keep &lt;track&gt; valid even it is not a part of the tree.
Instead of that, this patch invalidates the &lt;track&gt; only if it is removed from its parent &lt;media&gt;.

(In reply to comment #6)
&gt; (From update of attachment 176410 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176410&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:27
&gt; &gt; +        (WebCore::HTMLTrackElement::insertedInto):
&gt; &gt; +        (WebCore::HTMLTrackElement::removedFrom):
&gt; 
&gt; You might want to describe what changed here.

Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778783</commentid>
    <comment_count>8</comment_count>
      <attachid>176667</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-29 00:37:20 -0800</bug_when>
    <thetext>Created attachment 176667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778997</commentid>
    <comment_count>9</comment_count>
      <attachid>176667</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-11-29 07:24:21 -0800</bug_when>
    <thetext>Comment on attachment 176667
Patch

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779007</commentid>
    <comment_count>10</comment_count>
      <attachid>176667</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 07:33:52 -0800</bug_when>
    <thetext>Comment on attachment 176667
Patch

Clearing flags on attachment: 176667

Committed r136131: &lt;http://trac.webkit.org/changeset/136131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779009</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 07:33:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176410</attachid>
            <date>2012-11-27 23:27:11 -0800</date>
            <delta_ts>2012-11-29 00:37:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103420-20121128162447.patch</filename>
            <type>text/plain</type>
            <size>9355</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFiYmJhYjQ4NDU2MGY5
NTVhODRjODdlOTZkNDZmM2JkMWNjZWEwYi4uY2IyMzYwOTk5M2QxNmI5NTcxYzY3MDBkMTRjMjFk
NzkyODRjMmMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTI3ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50J3MgLnRleHRUcmFja3MgcHJvcGVydHkgZG9lcyBub3QgcmVmbGVjdCA8dHJhY2s+IGVsZW1l
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzQy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJl
IHdlcmUgc29tZSBhc3N1bXB0aW9ucyB0aGF0IDx0cmFjaz4gZWxlbWVudHMgYXJlIHZhbGlkIG9u
bHkKKyAgICAgICAgaWYgdGhlIHBhcmVudCA8bWVkaWE+IGlzIGluIGRvY3VtZW50LiBUaGlzIGNo
YW5nZSByZWxheGVzIHRoaXMKKyAgICAgICAgYXNzdW1wdGlvbiBzbyB0aGF0IDx0cmFjaz4gaXMg
dmFsaWQgd2hlbiBpdCBoYXMgPG1lZGlhPiBhcyBhCisgICAgICAgIHBhcmVudCByZWdhcmRsZXNz
IHdoZXRoZXIgdGhlIDxtZWRpYT4gaXMgaW4gdGhlIGRvY3VtZW50IG9yIG5vdC4KKworICAgICAg
ICBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRUcmFjayBhbmQgZGlkUmVtb3ZlVHJhY2sgYXJlIG5v
dyBjYWxsZWQKKyAgICAgICAgd2hlbiB0aGUgPHRyYWNrPiBpcyBpbnNlcnRlZCB0byBvciByZW1v
dmVkIGZyb20gdGhlIHBhcmVudCA8bWVkaWE+CisgICAgICAgIGVsZW1lbnQuCisKKyAgICAgICAg
VGVzdDogbWVkaWEvdHJhY2svdHJhY2stbm9kZS1hZGQtcmVtb3ZlLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpkaWRSZW1vdmVUcmFjayk6CisgICAgICAgIFJlbmFtZWQgZnJvbSB3aWxsUmVtb3Zl
VHJhY2soKSB0byByZWZsZWN0IHRoZSB0aW1pbmcuIFRoaXMgd2FzIG9uY2UgY2FsbGVkIGZyb20K
KyAgICAgICAgTm9kZTo6d2lsbFJlbW92ZSgpLCB3aGljaCB3YXMgcmVtb3ZlZCBhIHdoaWxlIGFn
by4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxNZWRp
YUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjppbnNlcnRlZEludG8pOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyYWNrRWxlbWVudDo6cmVtb3ZlZEZyb20pOgorICAgICAgICAqIGh0bWwvdHJh
Y2svTG9hZGFibGVUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVUZXh0
VHJhY2s6OnRyYWNrRWxlbWVudEluZGV4KToKKwogMjAxMi0xMS0yNyAgVmlhdGNoZXNsYXYgT3N0
YXBlbmtvICA8di5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgT3B0aW1pemF0aW9u
IGluIGltYWdlIGRlY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCA3MzJiOTE3MTc4YjJiMzY1NjhkN2JmNTVjMzk4NGQwODMzNTJmOWE5Li5jMGQxMjll
YmE0MWI3Y2I4NWQ0ZjJkMDFlMzRiNjllMGUyNzRiODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTI4NDEsNyArMjg0MSw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGlkQWRkVHJhY2soSFRNTFRyYWNrRWxlbWVudCogdHJhY2tFbGVtZW50KQogICAg
ICAgICBzY2hlZHVsZUxvYWQoVGV4dFRyYWNrUmVzb3VyY2UpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OndpbGxSZW1vdmVUcmFjayhIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQp
Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRyYWNrKEhUTUxUcmFja0VsZW1lbnQq
IHRyYWNrRWxlbWVudCkKIHsKICAgICBBU1NFUlQodHJhY2tFbGVtZW50LT5oYXNUYWdOYW1lKHRy
YWNrVGFnKSk7CiAKQEAgLTI4NTEsNyArMjg1MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
d2lsbFJlbW92ZVRyYWNrKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCkKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgaWYgKHRyYWNrRWxlbWVudC0+aGFzVGFnTmFtZSh0cmFja1RhZykpIHsK
ICAgICAgICAgS1VSTCB1cmwgPSB0cmFja0VsZW1lbnQtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRl
KHNyY0F0dHIpOwotICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp3aWxsUmVt
b3ZlVHJhY2sgLSAnc3JjJyBpcyAlcyIsIHVybEZvckxvZ2dpbmcodXJsKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6ZGlkUmVtb3ZlVHJhY2sg
LSAnc3JjJyBpcyAlcyIsIHVybEZvckxvZ2dpbmcodXJsKS51dGY4KCkuZGF0YSgpKTsKICAgICB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA4MDU0
OWMyNjIzMjAxMDY1MGMyMjk3YmQ0ZWNhOTc0MGJjNmU0YzE0Li4wNDdjOGY1NzAzZTc2OWU0MmYy
OGVkMzQ2MmZlMzI2MWRkNDAwNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKICAgICBDdWVMaXN0IGN1cnJlbnRseUFj
dGl2ZUN1ZXMoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRseUFjdGl2ZUN1ZXM7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhIVE1MVHJhY2tFbGVtZW50Kik7Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxSZW1vdmVUcmFjayhIVE1MVHJhY2tFbGVtZW50Kik7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZVRyYWNrKEhUTUxUcmFja0VsZW1lbnQqKTsKIAogICAgIHN0cnVjdCBUcmFj
a0dyb3VwIHsKICAgICAgICAgZW51bSBHcm91cEtpbmQgeyBDYXB0aW9uc0FuZFN1YnRpdGxlcywg
RGVzY3JpcHRpb24sIENoYXB0ZXIsIE1ldGFkYXRhLCBPdGhlciB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggMzc3ZmM2NTU1ZDI0NDUyZTUyMjEwMjUzYzQx
YzljYWYwMTVkOWI3NC4uMzZkNDM0MmM2OTNlY2U5OTEyM2E4YWFkZWRlZmRiMWJiZWNjMDllYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC03NSwyMiArNzUs
MTYgQEAgUGFzc1JlZlB0cjxIVE1MVHJhY2tFbGVtZW50PiBIVE1MVHJhY2tFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlv
blJlcXVlc3QgSFRNTFRyYWNrRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGlu
c2VydGlvblBvaW50KQogewogICAgIEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9u
UG9pbnQpOwotICAgIGlmIChpbnNlcnRpb25Qb2ludC0+aW5Eb2N1bWVudCgpKSB7Ci0gICAgICAg
IGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKLSAgICAgICAg
ICAgIHBhcmVudC0+ZGlkQWRkVHJhY2sodGhpcyk7Ci0gICAgfQotCisgICAgSFRNTE1lZGlhRWxl
bWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCk7CisgICAgaWYgKGluc2VydGlvblBvaW50ID09
IHBhcmVudCkKKyAgICAgICAgcGFyZW50LT5kaWRBZGRUcmFjayh0aGlzKTsKICAgICByZXR1cm4g
SW5zZXJ0aW9uRG9uZTsKIH0KIAogdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpyZW1vdmVkRnJvbShD
b250YWluZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKIHsKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKTsKLSAgICBpZiAoIXBhcmVudCAmJiBXZWJDb3JlOjppc01l
ZGlhRWxlbWVudChpbnNlcnRpb25Qb2ludCkpCi0gICAgICAgIHBhcmVudCA9IHRvTWVkaWFFbGVt
ZW50KGluc2VydGlvblBvaW50KTsKLSAgICBpZiAocGFyZW50KQotICAgICAgICBwYXJlbnQtPndp
bGxSZW1vdmVUcmFjayh0aGlzKTsKLQorICAgIGlmICghcGFyZW50Tm9kZSgpICYmIFdlYkNvcmU6
OmlzTWVkaWFFbGVtZW50KGluc2VydGlvblBvaW50KSkKKyAgICAgICAgdG9NZWRpYUVsZW1lbnQo
aW5zZXJ0aW9uUG9pbnQpLT5kaWRSZW1vdmVUcmFjayh0aGlzKTsKICAgICBIVE1MRWxlbWVudDo6
cmVtb3ZlZEZyb20oaW5zZXJ0aW9uUG9pbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCmluZGV4IDU0MmVmYmM4NWVlODFiMTZkNzkw
ZmJlNzFkMzcyMzcxODQ3OWMxZGUuLmIxZTg4MmZkNDcwMWRmYTdkZjlmMTE4ZDIzNjMwZDM0MTEz
YWI2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJh
Y2suY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgc2l6ZV90IExvYWRhYmxlVGV4dFRyYWNrOjp0cmFj
a0VsZW1lbnRJbmRleCgpCiAKICAgICBzaXplX3QgaW5kZXggPSAwOwogICAgIGZvciAoTm9kZSog
bm9kZSA9IG1fdHJhY2tFbGVtZW50LT5wYXJlbnROb2RlKCktPmZpcnN0Q2hpbGQoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdO
YW1lKHRyYWNrVGFnKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgpKQorICAgICAgICBpZiAoIW5vZGUt
Pmhhc1RhZ05hbWUodHJhY2tUYWcpIHx8ICFub2RlLT5wYXJlbnROb2RlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgaWYgKG5vZGUgPT0gbV90cmFja0VsZW1lbnQpCiAgICAgICAg
ICAgICByZXR1cm4gaW5kZXg7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjNiM2YwYjViNGQyYzM2NmM3YTk1ZGNkZTRmNzVj
NzEyMmY2OGQ4Ny4uODA1NjkyYmIwM2QxNTY4OTA2N2RjM2ZkZjI1NzIyOTY1YzhhMDA2OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTI3ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBIVE1MTWVkaWFFbGVtZW50J3MgLnRleHRUcmFja3MgcHJv
cGVydHkgZG9lcyBub3QgcmVmbGVjdCA8dHJhY2s+IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzQyMAorICAgICAgICAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFj
ay1ub2RlLWFkZC1yZW1vdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1ub2RlLWFkZC1yZW1vdmUuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjcgIEFs
ZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21p
dW1dIFVucmV2aWV3ZWQsIG1hcmsgaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFi
YXNlLWRhdGEuaHRtbCBhcyBmbGFreSBvbiBMaW51eCwgdG9vLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbm9kZS1hZGQtcmVtb3ZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLW5vZGUtYWRkLXJlbW92ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2YxYzEzMGU3OWJkODdjZDhkNDQzNGM0ZTM5Y2NlZjRlODllNmEwYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLW5vZGUtYWRkLXJl
bW92ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorQWRkaW5nIHRyYWNrcyBvdXRzaWRl
IHRoZSBET00gdHJlZToKK1BBU1MgdmlkZW8udGV4dFRyYWNrcy5sZW5ndGggaXMgMgorUEFTUyB2
aWRlby50ZXh0VHJhY2tzWzBdIGlzIHRyYWNrYS50cmFjaworUEFTUyB2aWRlby50ZXh0VHJhY2tz
WzFdIGlzIHRyYWNrYi50cmFjaworSW5zZXJ0aW5nIHRoZSBwYXJlbnQgdmlkZW8gZWxlbWVudCBp
bnRvIHRoZSBkb2N1bWVudC4KK1BBU1MgdmlkZW8udGV4dFRyYWNrcy5sZW5ndGggaXMgMgorUEFT
UyB2aWRlby50ZXh0VHJhY2tzWzBdIGlzIHRyYWNrYS50cmFjaworUEFTUyB2aWRlby50ZXh0VHJh
Y2tzWzFdIGlzIHRyYWNrYi50cmFjaworSW5zZXJ0aW5nIGFuZCByZW1vdmluZyBhbm90aGVyIHRy
YWNrIGluIHRoZSBkb2N1bWVudC4KK1BBU1MgdmlkZW8udGV4dFRyYWNrcy5sZW5ndGggaXMgMwor
UEFTUyB2aWRlby50ZXh0VHJhY2tzWzJdIGlzIHRyYWNrYy50cmFjaworUEFTUyB2aWRlby50ZXh0
VHJhY2tzLmxlbmd0aCBpcyAyCitQQVNTIHZpZGVvLnRleHRUcmFja3NbMF0gaXMgdHJhY2thLnRy
YWNrCitQQVNTIHZpZGVvLnRleHRUcmFja3NbMV0gaXMgdHJhY2tjLnRyYWNrCitSZW1vdmluZyB0
aGUgdmlkZW8gZnJvbSB0aGUgZG9jdW1lbnQuCitQQVNTIHZpZGVvLnRleHRUcmFja3MubGVuZ3Ro
IGlzIDIKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1swXSBpcyB0cmFja2EudHJhY2sKK1BBU1Mgdmlk
ZW8udGV4dFRyYWNrc1sxXSBpcyB0cmFja2MudHJhY2sKK1BBU1MgdmlkZW8udGV4dFRyYWNrcy5s
ZW5ndGggaXMgMQorUEFTUyB2aWRlby50ZXh0VHJhY2tzWzBdIGlzIHRyYWNrYy50cmFjaworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLW5vZGUtYWRkLXJlbW92ZS5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stbm9kZS1hZGQtcmVtb3ZlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjg0ZDI0ZjNlYmMxMTAyODk3MjVhMzc1YjNlNDBjMjg2Mjg1ODRiYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLW5vZGUtYWRkLXJlbW92ZS5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworCit2YXIgdHJhY2thID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndHJhY2snKTsKK3ZpZGVvLmFwcGVuZENoaWxkKHRyYWNrYSk7Cit2YXIgdHJhY2tiID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndHJhY2snKTsKK3ZpZGVvLmFwcGVuZENoaWxkKHRyYWNrYik7
CisKK2RlYnVnKCJBZGRpbmcgdHJhY2tzIG91dHNpZGUgdGhlIERPTSB0cmVlOiIpOworc2hvdWxk
QmUoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0
VHJhY2tzWzBdIiwgInRyYWNrYS50cmFjayIpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3Nb
MV0iLCAidHJhY2tiLnRyYWNrIik7CisKK2RlYnVnKCJJbnNlcnRpbmcgdGhlIHBhcmVudCB2aWRl
byBlbGVtZW50IGludG8gdGhlIGRvY3VtZW50LiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh2aWRlbyk7CitzaG91bGRCZSgidmlkZW8udGV4dFRyYWNrcy5sZW5ndGgiLCAiMiIpOworc2hv
dWxkQmUoInZpZGVvLnRleHRUcmFja3NbMF0iLCAidHJhY2thLnRyYWNrIik7CitzaG91bGRCZSgi
dmlkZW8udGV4dFRyYWNrc1sxXSIsICJ0cmFja2IudHJhY2siKTsKKworZGVidWcoIkluc2VydGlu
ZyBhbmQgcmVtb3ZpbmcgYW5vdGhlciB0cmFjayBpbiB0aGUgZG9jdW1lbnQuIik7Cit2YXIgdHJh
Y2tjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHJhY2snKTsKK3ZpZGVvLmFwcGVuZENoaWxk
KHRyYWNrYyk7CitzaG91bGRCZSgidmlkZW8udGV4dFRyYWNrcy5sZW5ndGgiLCAiMyIpOworc2hv
dWxkQmUoInZpZGVvLnRleHRUcmFja3NbMl0iLCAidHJhY2tjLnRyYWNrIik7CisKK3RyYWNrYi5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKHRyYWNrYik7CitzaG91bGRCZSgidmlkZW8udGV4dFRyYWNr
cy5sZW5ndGgiLCAiMiIpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3NbMF0iLCAidHJhY2th
LnRyYWNrIik7CitzaG91bGRCZSgidmlkZW8udGV4dFRyYWNrc1sxXSIsICJ0cmFja2MudHJhY2si
KTsKKworZGVidWcoIlJlbW92aW5nIHRoZSB2aWRlbyBmcm9tIHRoZSBkb2N1bWVudC4iKTsKK2Rv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFj
a3MubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzWzBdIiwgInRyYWNr
YS50cmFjayIpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3NbMV0iLCAidHJhY2tjLnRyYWNr
Iik7CisKK3RyYWNrYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRyYWNrYSk7CitzaG91bGRCZSgi
dmlkZW8udGV4dFRyYWNrcy5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFj
a3NbMF0iLCAidHJhY2tjLnRyYWNrIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176667</attachid>
            <date>2012-11-29 00:37:20 -0800</date>
            <delta_ts>2012-11-29 07:33:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103420-20121129173454.patch</filename>
            <type>text/plain</type>
            <size>9842</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmMTMzM2UxNTI2ZDBl
MDNjNzA5ZTc0Y2M3M2Q2ZjUyYWJhOWEwZi4uMDY1ZTFkMDIyMGY3OWU1ZGZjZjQ5MDFiNjA4M2Uw
MzBjZGE2NTM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTI3ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50J3MgLnRleHRUcmFja3MgcHJvcGVydHkgZG9lcyBub3QgcmVmbGVjdCA8dHJhY2s+IGVsZW1l
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzQy
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJl
IHdlcmUgc29tZSBhc3N1bXB0aW9ucyB0aGF0IDx0cmFjaz4gZWxlbWVudHMgYXJlIHZhbGlkIG9u
bHkKKyAgICAgICAgaWYgdGhlIHBhcmVudCA8bWVkaWE+IGlzIGluIGRvY3VtZW50LiBUaGlzIGNo
YW5nZSByZWxheGVzIHRoaXMKKyAgICAgICAgYXNzdW1wdGlvbiBzbyB0aGF0IDx0cmFjaz4gaXMg
dmFsaWQgd2hlbiBpdCBoYXMgPG1lZGlhPiBhcyBhCisgICAgICAgIHBhcmVudCByZWdhcmRsZXNz
IHdoZXRoZXIgdGhlIDxtZWRpYT4gaXMgaW4gdGhlIGRvY3VtZW50IG9yIG5vdC4KKworICAgICAg
ICBIVE1MTWVkaWFFbGVtZW50OjpkaWRBZGRUcmFjayBhbmQgZGlkUmVtb3ZlVHJhY2sgYXJlIG5v
dyBjYWxsZWQKKyAgICAgICAgd2hlbiB0aGUgPHRyYWNrPiBpcyBpbnNlcnRlZCB0byBvciByZW1v
dmVkIGZyb20gdGhlIHBhcmVudCA8bWVkaWE+CisgICAgICAgIGVsZW1lbnQuCisKKyAgICAgICAg
VGVzdDogbWVkaWEvdHJhY2svdHJhY2stbm9kZS1hZGQtcmVtb3ZlLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpkaWRSZW1vdmVUcmFjayk6CisgICAgICAgIFJlbmFtZWQgZnJvbSB3aWxsUmVtb3Zl
VHJhY2soKSB0byByZWZsZWN0IHRoZSB0aW1pbmcuIFRoaXMgd2FzIG9uY2UgY2FsbGVkIGZyb20K
KyAgICAgICAgTm9kZTo6d2lsbFJlbW92ZSgpLCB3aGljaCB3YXMgcmVtb3ZlZCBhIHdoaWxlIGFn
by4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxNZWRp
YUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjppbnNlcnRlZEludG8pOgorICAgICAgICBUaGUg
b2xkIGNvZGUgbm90aWZpZWQgcGFyZW50IDxtZWRpYT4gb25seSBpZiB0aGUgc3VidHJlZSBiZWNh
bWUgYSBwYXJ0IG9mIHRoZSBkb2N1bWVudC4KKyAgICAgICAgTm93IGl0IG5vdGlmaWVzIHRoZSA8
bWVkaWE+IHdoZW4gdGhpcyA8dHJhY2s+IGJlY29tZXMgYSBjaGlsZCBvZiB0aGF0IDxtZWRpYT4u
CisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6OnJlbW92ZWRGcm9tKToKKyAg
ICAgICAgVGhlIG9sZCBjb2RlIG5vdGlmaWVzIHRoZSBwYXJlbnQgPG1lZGlhPiBldmVyeSB0aW1l
IGFzIGxvbmcgYXMgdGhlIHBhcmVudCBpcyBhdmFpbGFibGUuCisgICAgICAgIE5vdyBpdCBub3Rp
ZmllcyB0aGUgPG1lZGlhPiBvbmx5IGlmIHRoaXMgPHRyYWNrPiBpcyByZW1vdmVkIGZyb20gdGhl
IHBhcmVudCA8bWVkaWE+LgorICAgICAgICBUaGlzIG1hdGNoZXMgaG93IGNvcnJlc3BvbmRpbmcg
bm90aWZpY2F0aW9uIGlzIGRvbmUgaW4gaW5zZXJ0ZWRJbnRvKCkuCisKKyAgICAgICAgKiBodG1s
L3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxl
VGV4dFRyYWNrOjp0cmFja0VsZW1lbnRJbmRleCk6CisKIDIwMTItMTEtMjggIEhheWF0byBJdG8g
IDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vZGU6OmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uIHJldHVybnMgd3JvbmcgdmFsdWUgZm9yIGEgbm9kZSBpbiB0aGUgZGlmZmVyZW50IHNo
YWRvdyB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXgg
NzMyYjkxNzE3OGIyYjM2NTY4ZDdiZjU1YzM5ODRkMDgzMzUyZjlhOS4uYzBkMTI5ZWJhNDFiN2Ni
ODVkNGYyZDAxZTM0YjY5ZTBlMjc0Yjg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCkBAIC0yODQxLDcgKzI4NDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmRpZEFkZFRyYWNrKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCkKICAgICAgICAgc2No
ZWR1bGVMb2FkKFRleHRUcmFja1Jlc291cmNlKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp3aWxsUmVtb3ZlVHJhY2soSFRNTFRyYWNrRWxlbWVudCogdHJhY2tFbGVtZW50KQordm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpkaWRSZW1vdmVUcmFjayhIVE1MVHJhY2tFbGVtZW50KiB0cmFja0Vs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKHRyYWNrRWxlbWVudC0+aGFzVGFnTmFtZSh0cmFja1RhZykp
OwogCkBAIC0yODUxLDcgKzI4NTEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxSZW1v
dmVUcmFjayhIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQpCiAjaWYgIUxPR19ESVNBQkxF
RAogICAgIGlmICh0cmFja0VsZW1lbnQtPmhhc1RhZ05hbWUodHJhY2tUYWcpKSB7CiAgICAgICAg
IEtVUkwgdXJsID0gdHJhY2tFbGVtZW50LT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRy
KTsKLSAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6d2lsbFJlbW92ZVRyYWNr
IC0gJ3NyYycgaXMgJXMiLCB1cmxGb3JMb2dnaW5nKHVybCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlbW92ZVRyYWNrIC0gJ3NyYycg
aXMgJXMiLCB1cmxGb3JMb2dnaW5nKHVybCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggODA1NDljMjYyMzIw
MTA2NTBjMjI5N2JkNGVjYTk3NDBiYzZlNGMxNC4uMDQ3YzhmNTcwM2U3NjllNDJmMjhlZDM0NjJm
ZTMyNjFkZDQwMDQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAg
LTIyMSw3ICsyMjEsNyBAQCBwdWJsaWM6CiAgICAgQ3VlTGlzdCBjdXJyZW50bHlBY3RpdmVDdWVz
KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50bHlBY3RpdmVDdWVzOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQWRkVHJhY2soSFRNTFRyYWNrRWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsUmVtb3ZlVHJhY2soSFRNTFRyYWNrRWxlbWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZW1vdmVUcmFjayhIVE1MVHJhY2tFbGVtZW50Kik7CiAKICAgICBzdHJ1Y3QgVHJhY2tHcm91cCB7
CiAgICAgICAgIGVudW0gR3JvdXBLaW5kIHsgQ2FwdGlvbnNBbmRTdWJ0aXRsZXMsIERlc2NyaXB0
aW9uLCBDaGFwdGVyLCBNZXRhZGF0YSwgT3RoZXIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
cmFja0VsZW1lbnQuY3BwCmluZGV4IDM3N2ZjNjU1NWQyNDQ1MmU1MjIxMDI1M2M0MWM5Y2FmMDE1
ZDliNzQuLjM2ZDQzNDJjNjkzZWNlOTkxMjNhOGFhZGVkZWZkYjFiYmVjYzA5ZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcApAQCAtNzUsMjIgKzc1LDE2IEBAIFBh
c3NSZWZQdHI8SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxUcmFja0VsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Q
b2ludCkKIHsKICAgICBIVE1MRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsK
LSAgICBpZiAoaW5zZXJ0aW9uUG9pbnQtPmluRG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoSFRN
TE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCi0gICAgICAgICAgICBwYXJl
bnQtPmRpZEFkZFRyYWNrKHRoaXMpOwotICAgIH0KLQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIHBh
cmVudCA9IG1lZGlhRWxlbWVudCgpOworICAgIGlmIChpbnNlcnRpb25Qb2ludCA9PSBwYXJlbnQp
CisgICAgICAgIHBhcmVudC0+ZGlkQWRkVHJhY2sodGhpcyk7CiAgICAgcmV0dXJuIEluc2VydGlv
bkRvbmU7CiB9CiAKIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSogaW5zZXJ0aW9uUG9pbnQpCiB7Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0g
bWVkaWFFbGVtZW50KCk7Ci0gICAgaWYgKCFwYXJlbnQgJiYgV2ViQ29yZTo6aXNNZWRpYUVsZW1l
bnQoaW5zZXJ0aW9uUG9pbnQpKQotICAgICAgICBwYXJlbnQgPSB0b01lZGlhRWxlbWVudChpbnNl
cnRpb25Qb2ludCk7Ci0gICAgaWYgKHBhcmVudCkKLSAgICAgICAgcGFyZW50LT53aWxsUmVtb3Zl
VHJhY2sodGhpcyk7Ci0KKyAgICBpZiAoIXBhcmVudE5vZGUoKSAmJiBXZWJDb3JlOjppc01lZGlh
RWxlbWVudChpbnNlcnRpb25Qb2ludCkpCisgICAgICAgIHRvTWVkaWFFbGVtZW50KGluc2VydGlv
blBvaW50KS0+ZGlkUmVtb3ZlVHJhY2sodGhpcyk7CiAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZWRG
cm9tKGluc2VydGlvblBvaW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0xvYWRhYmxlVGV4dFRyYWNrLmNwcAppbmRleCA1NDJlZmJjODVlZTgxYjE2ZDc5MGZiZTcxZDM3
MjM3MTg0NzljMWRlLi5iMWU4ODJmZDQ3MDFkZmE3ZGY5ZjExOGQyMzYzMGQzNDExM2FiNjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApA
QCAtMTMwLDcgKzEzMCw3IEBAIHNpemVfdCBMb2FkYWJsZVRleHRUcmFjazo6dHJhY2tFbGVtZW50
SW5kZXgoKQogCiAgICAgc2l6ZV90IGluZGV4ID0gMDsKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBt
X3RyYWNrRWxlbWVudC0+cGFyZW50Tm9kZSgpLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBu
b2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZSh0cmFj
a1RhZykgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdO
YW1lKHRyYWNrVGFnKSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGlmIChub2RlID09IG1fdHJhY2tFbGVtZW50KQogICAgICAgICAgICAgcmV0
dXJuIGluZGV4OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGZkNzhmODA3NjViZDhmODhhZGI3ZDk0MzBjNDdmMzk4ZGY2NDk4
OGEuLjM4OGY2ODFlMWE0Nzg1NDY4NGI1Njg5YWEzZWE3NjE2Nzc1MDdkNmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0xMS0yNyAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCdzIC50ZXh0VHJhY2tzIHByb3BlcnR5IGRv
ZXMgbm90IHJlZmxlY3QgPHRyYWNrPiBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM0MjAKKyAgICAgICAgCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stbm9kZS1h
ZGQtcmVtb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJh
Y2stbm9kZS1hZGQtcmVtb3ZlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI4ICBIYXlhdG8gSXRv
ICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb2RlOjpjb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbiByZXR1cm5zIHdyb25nIHZhbHVlIGZvciBhIG5vZGUgaW4gdGhlIGRpZmZlcmVudCBz
aGFkb3cgdHJlZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLW5v
ZGUtYWRkLXJlbW92ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1ub2RlLWFkZC1yZW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMWMxMzBlNzliZDg3
Y2Q4ZDQ0MzRjNGUzOWNjZWY0ZTg5ZTZhMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1ub2RlLWFkZC1yZW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK0FkZGluZyB0cmFja3Mgb3V0c2lkZSB0aGUgRE9NIHRyZWU6CitQQVNTIHZpZGVv
LnRleHRUcmFja3MubGVuZ3RoIGlzIDIKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1swXSBpcyB0cmFj
a2EudHJhY2sKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1sxXSBpcyB0cmFja2IudHJhY2sKK0luc2Vy
dGluZyB0aGUgcGFyZW50IHZpZGVvIGVsZW1lbnQgaW50byB0aGUgZG9jdW1lbnQuCitQQVNTIHZp
ZGVvLnRleHRUcmFja3MubGVuZ3RoIGlzIDIKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1swXSBpcyB0
cmFja2EudHJhY2sKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1sxXSBpcyB0cmFja2IudHJhY2sKK0lu
c2VydGluZyBhbmQgcmVtb3ZpbmcgYW5vdGhlciB0cmFjayBpbiB0aGUgZG9jdW1lbnQuCitQQVNT
IHZpZGVvLnRleHRUcmFja3MubGVuZ3RoIGlzIDMKK1BBU1MgdmlkZW8udGV4dFRyYWNrc1syXSBp
cyB0cmFja2MudHJhY2sKK1BBU1MgdmlkZW8udGV4dFRyYWNrcy5sZW5ndGggaXMgMgorUEFTUyB2
aWRlby50ZXh0VHJhY2tzWzBdIGlzIHRyYWNrYS50cmFjaworUEFTUyB2aWRlby50ZXh0VHJhY2tz
WzFdIGlzIHRyYWNrYy50cmFjaworUmVtb3ZpbmcgdGhlIHZpZGVvIGZyb20gdGhlIGRvY3VtZW50
LgorUEFTUyB2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCBpcyAyCitQQVNTIHZpZGVvLnRleHRUcmFj
a3NbMF0gaXMgdHJhY2thLnRyYWNrCitQQVNTIHZpZGVvLnRleHRUcmFja3NbMV0gaXMgdHJhY2tj
LnRyYWNrCitQQVNTIHZpZGVvLnRleHRUcmFja3MubGVuZ3RoIGlzIDEKK1BBU1MgdmlkZW8udGV4
dFRyYWNrc1swXSBpcyB0cmFja2MudHJhY2sKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1ub2RlLWFkZC1yZW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLW5vZGUtYWRkLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NGQyNGYzZWJjMTEwMjg5NzI1
YTM3NWIzZTQwYzI4NjI4NTg0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1ub2RlLWFkZC1yZW1vdmUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0PgordmFyIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKwordmFy
IHRyYWNrYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyYWNrJyk7Cit2aWRlby5hcHBlbmRD
aGlsZCh0cmFja2EpOwordmFyIHRyYWNrYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyYWNr
Jyk7Cit2aWRlby5hcHBlbmRDaGlsZCh0cmFja2IpOworCitkZWJ1ZygiQWRkaW5nIHRyYWNrcyBv
dXRzaWRlIHRoZSBET00gdHJlZToiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzLmxlbmd0
aCIsICIyIik7CitzaG91bGRCZSgidmlkZW8udGV4dFRyYWNrc1swXSIsICJ0cmFja2EudHJhY2si
KTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzWzFdIiwgInRyYWNrYi50cmFjayIpOworCitk
ZWJ1ZygiSW5zZXJ0aW5nIHRoZSBwYXJlbnQgdmlkZW8gZWxlbWVudCBpbnRvIHRoZSBkb2N1bWVu
dC4iKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworc2hvdWxkQmUoInZpZGVv
LnRleHRUcmFja3MubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzWzBd
IiwgInRyYWNrYS50cmFjayIpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3NbMV0iLCAidHJh
Y2tiLnRyYWNrIik7CisKK2RlYnVnKCJJbnNlcnRpbmcgYW5kIHJlbW92aW5nIGFub3RoZXIgdHJh
Y2sgaW4gdGhlIGRvY3VtZW50LiIpOwordmFyIHRyYWNrYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3RyYWNrJyk7Cit2aWRlby5hcHBlbmRDaGlsZCh0cmFja2MpOworc2hvdWxkQmUoInZpZGVv
LnRleHRUcmFja3MubGVuZ3RoIiwgIjMiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzWzJd
IiwgInRyYWNrYy50cmFjayIpOworCit0cmFja2IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0cmFj
a2IpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgIjIiKTsKK3Nob3VsZEJl
KCJ2aWRlby50ZXh0VHJhY2tzWzBdIiwgInRyYWNrYS50cmFjayIpOworc2hvdWxkQmUoInZpZGVv
LnRleHRUcmFja3NbMV0iLCAidHJhY2tjLnRyYWNrIik7CisKK2RlYnVnKCJSZW1vdmluZyB0aGUg
dmlkZW8gZnJvbSB0aGUgZG9jdW1lbnQuIik7Citkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHZp
ZGVvKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCIsICIyIik7CitzaG91bGRC
ZSgidmlkZW8udGV4dFRyYWNrc1swXSIsICJ0cmFja2EudHJhY2siKTsKK3Nob3VsZEJlKCJ2aWRl
by50ZXh0VHJhY2tzWzFdIiwgInRyYWNrYy50cmFjayIpOworCit0cmFja2EucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZCh0cmFja2EpOworc2hvdWxkQmUoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlKCJ2aWRlby50ZXh0VHJhY2tzWzBdIiwgInRyYWNrYy50cmFjayIpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>