<?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>106285</bug_id>
          
          <creation_ts>2013-01-07 18:17:58 -0800</creation_ts>
          <short_desc>[Track] Closed Caption button shouldn&apos;t be visible if all the track resources have failed loading</short_desc>
          <delta_ts>2013-01-31 20:04:43 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Silvia Pfeiffer">silviapf</reporter>
          <assigned_to name="Victor Carbune">vcarbune</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>ojan.autocc</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>801907</commentid>
    <comment_count>0</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-07 18:17:58 -0800</bug_when>
    <thetext>Closed Caption button shouldn&apos;t be visible if all the track resources have failed loading, e.g. a single track, but failed cross-origin
request, see https://bugs.webkit.org/show_bug.cgi?id=103110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814583</commentid>
    <comment_count>1</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-23 13:41:02 -0800</bug_when>
    <thetext>On a second thought, I think showing a button in a disabled state would be 
better. This would indicate that &lt;track&gt; elements are present and are supposed
to be shown, but something went wrong.

Clicking on it in that disabled state should try reloading the tracks.
Would this make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814924</commentid>
    <comment_count>2</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-23 18:16:09 -0800</bug_when>
    <thetext>Sounds good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815635</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-24 11:10:01 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; On a second thought, I think showing a button in a disabled state would be 
&gt; better. This would indicate that &lt;track&gt; elements are present and are supposed
&gt; to be shown, but something went wrong.
&gt; 
&gt; Clicking on it in that disabled state should try reloading the tracks.
&gt; Would this make sense?

In what circumstances would reloading work? How is a user supposed to know that clicking a disabled button would have this action?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816549</commentid>
    <comment_count>4</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-25 06:39:41 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #1)
&gt; &gt; On a second thought, I think showing a button in a disabled state would be 
&gt; &gt; better. This would indicate that &lt;track&gt; elements are present and are supposed
&gt; &gt; to be shown, but something went wrong.
&gt; &gt; 
&gt; &gt; Clicking on it in that disabled state should try reloading the tracks.
&gt; &gt; Would this make sense?
&gt; 
&gt; In what circumstances would reloading work? How is a user supposed to know that clicking a disabled button would have this action?

What happens right now if a track wasn&apos;t loaded because the machine serving
it is down, or there are communication issues? Does it retry indefinitely?

I was thinking at these cases particularly; the track failed loading, but
then the machine serving it becomes available and the user can force a retry
toggling the disabled button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816732</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-25 10:41:49 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; On a second thought, I think showing a button in a disabled state would be 
&gt; &gt; &gt; better. This would indicate that &lt;track&gt; elements are present and are supposed
&gt; &gt; &gt; to be shown, but something went wrong.
&gt; &gt; &gt; 
&gt; &gt; &gt; Clicking on it in that disabled state should try reloading the tracks.
&gt; &gt; &gt; Would this make sense?
&gt; &gt; 
&gt; &gt; In what circumstances would reloading work? How is a user supposed to know that clicking a disabled button would have this action?
&gt; 
&gt; What happens right now if a track wasn&apos;t loaded because the machine serving
&gt; it is down, or there are communication issues? Does it retry indefinitely?
&gt; 
  The same thing that happens when any other resource (eg. image, script, etc) doesn&apos;t load - nothing.

&gt; I was thinking at these cases particularly; the track failed loading, but
&gt; then the machine serving it becomes available and the user can force a retry
&gt; toggling the disabled button.
&gt;
  I think just reloading the page makes sense, that way all resources from the same server will reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816898</commentid>
    <comment_count>6</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2013-01-25 13:59:10 -0800</bug_when>
    <thetext>Hmm I think I agree with Eric - you can always hit the browser &quot;reload&quot; button to get the captions. YouTube doesn&apos;t do a reload either.

Also note that the resources in a list of &lt;track&gt; elements may not all come from the same server. If they all don&apos;t load, it&apos;s probably not necessary to display a button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819212</commentid>
    <comment_count>7</comment_count>
      <attachid>185287</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-29 12:36:10 -0800</bug_when>
    <thetext>Created attachment 185287
Patch

Updated behavior in several places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820378</commentid>
    <comment_count>8</comment_count>
      <attachid>185287</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-30 11:54:39 -0800</bug_when>
    <thetext>Comment on attachment 185287
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1336
&gt; +        if (m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::Loading
&gt; +            || m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::NotLoaded)
&gt;              return false;

Won&apos;t this allow m_readyState to get stuck at HAVE_CURRENT_DATA if a track fails to load?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820785</commentid>
    <comment_count>9</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-30 16:33:23 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 185287 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185287&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:1336
&gt; &gt; +        if (m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::Loading
&gt; &gt; +            || m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::NotLoaded)
&gt; &gt;              return false;
&gt; 
&gt; Won&apos;t this allow m_readyState to get stuck at HAVE_CURRENT_DATA if a track fails to load?

I will look closer in the code, but do you have a specific case in which you
would expect to fail (i.e., visually / behavior?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821489</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-31 06:46:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 185287 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185287&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:1336
&gt; &gt; &gt; +        if (m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::Loading
&gt; &gt; &gt; +            || m_textTracksWhenResourceSelectionBegan[i]-&gt;readinessState() == TextTrack::NotLoaded)
&gt; &gt; &gt;              return false;
&gt; &gt; 
&gt; &gt; Won&apos;t this allow m_readyState to get stuck at HAVE_CURRENT_DATA if a track fails to load?
&gt; 
&gt; I will look closer in the code, but do you have a specific case in which you
&gt; would expect to fail (i.e., visually / behavior?)

HTMLMediaElement::mediaPlayerReadyStateChanged has this:

    if (tracksAreReady)
        m_readyState = newState;
    else {
        // If a media file has text tracks the readyState may not progress beyond HAVE_FUTURE_DATA until
        // the text tracks are ready, regardless of the state of the media file.
        if (newState &lt;= HAVE_METADATA)
            m_readyState = newState;
        else
            m_readyState = HAVE_CURRENT_DATA;
    }

So I believe that a track that never loads, eg. one that has a bogus url, will prevent the element&apos;s m_readyState from advancing beyond HAVE_CURRENT_DATA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821778</commentid>
    <comment_count>11</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-31 11:48:02 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; So I believe that a track that never loads, eg. one that has a bogus url, will prevent the element&apos;s m_readyState from advancing beyond HAVE_CURRENT_DATA.

I think we&apos;re safe: if it fails to load, the readinessState changes to FailedToLoad and doesn&apos;t remain NotLoaded (as this is the check I added)
 
It&apos;s following the spec comment from ::textTracksAreReady - &quot;[...] have a text track readiness state of loaded or failed to load.&quot; so it should be fine.

I manually tested, but I could add the case in a layout test as well if you
prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821922</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-01-31 13:58:52 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; So I believe that a track that never loads, eg. one that has a bogus url, will prevent the element&apos;s m_readyState from advancing beyond HAVE_CURRENT_DATA.
&gt; 
&gt; I think we&apos;re safe: if it fails to load, the readinessState changes to FailedToLoad and doesn&apos;t remain NotLoaded (as this is the check I added)
&gt; 
&gt; It&apos;s following the spec comment from ::textTracksAreReady - &quot;[...] have a text track readiness state of loaded or failed to load.&quot; so it should be fine.
&gt; 
  You are correct, of course. 

&gt; I manually tested, but I could add the case in a layout test as well if you
&gt; prefer.
&gt;
  I think this is already covered by the existing tests, if it actually was a problem a &lt;video&gt; with an unload able &lt;track&gt; would never reach canplaythrough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822123</commentid>
    <comment_count>13</comment_count>
      <attachid>185897</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2013-01-31 16:49:06 -0800</bug_when>
    <thetext>Created attachment 185897
Extra method

Added extra method for refreshing the cc button visibility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822251</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-01-31 19:50:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/13131121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822259</commentid>
    <comment_count>15</comment_count>
      <attachid>185897</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 20:04:38 -0800</bug_when>
    <thetext>Comment on attachment 185897
Extra method

Clearing flags on attachment: 185897

Committed r141531: &lt;http://trac.webkit.org/changeset/141531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822260</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 20:04:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185287</attachid>
            <date>2013-01-29 12:36:10 -0800</date>
            <delta_ts>2013-01-31 16:49:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106285-20130129223256.patch</filename>
            <type>text/plain</type>
            <size>9760</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhlYzg2MDE3NzY3MzBl
YmYwZGFhMTFiZDFkNzcwNzJlY2YxNmNkMi4uMjQ0NmJhZTE4ZWYzYmJmN2U2YThjY2RlOGU1YmY5
OGI1MTYwMjg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTI5ICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVHJhY2tdIENs
b3NlZCBDYXB0aW9uIGJ1dHRvbiBzaG91bGRuJ3QgYmUgdmlzaWJsZSBpZiBhbGwgdGhlIHRyYWNr
IHJlc291cmNlcyBoYXZlIGZhaWxlZCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIHRlc3QgY2FzZXMuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5KTogQ2hlY2tlZCB3aGV0aGVyIHRoZXJl
IGFyZSB0cmFja3Mgbm90IGxvYWRlZAorICAgICAgICB3aGVuIHRoZSBhbGdvcml0aG0gYmVnYW4u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZWFkeVN0YXRl
Q2hhbmdlZCk6IElmIHRoZSByZWFkeSBzdGF0ZSBjaGFuZ2VkIHRvCisgICAgICAgIEZhaWxlZFRv
TG9hZCB0aGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIG90
aGVyIGNhcHRpb24gdHJhY2tzCisgICAgICAgIGFuZCBoaWRlIHRoZSBidXR0b24gaWYgbm90Lgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVHJhY2spOiBBZGRlZCB0
cmlnZ2VyIHRvIGNsb3NlZENhcHRpb25zVHJhY2tDaGFuZ2VkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6aGFzQ2xvc2VkQ2FwdGlvbnMpOiBVcGRhdGVkIGNoZWNrIHRvIHNr
aXAgdHJhY2tzIHRoYXQKKyAgICAgICAgZmFpbGVkIHRvIGxvYWQuCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
Ojp1cGRhdGVTdGF0dXNEaXNwbGF5KTogSW1wbGVtZW50ZWQgZGVmYXVsdCBiZWhhdmlvciB0byBo
YW5kbGUKKyAgICAgICAgZGlzcGxheSAvIGhpZGUgb2YgdGhlIGNhcHRpb24gYnV0dG9uLCBhcyB0
aGlzIGlzIHRoZSBtYWluIG1ldGhvZCB0aGF0IGlzIHRyaWdnZXJlZCBhZnRlcgorICAgICAgICB0
aGUgcmVzb3VyY2VzIGhhdmUgZmluaXNoZWQgbG9hZGluZy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaDoKKyAgICAgICAgKE1lZGlhQ29u
dHJvbHMpOgorCiAyMDEzLTAxLTI5ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDYW52YXNdIHN1cHBvcnQgaW5zdHJ1bWVu
dGluZyBjYW52YXNlcyBpbiBpZnJhbWVzIChiYWNrZW5kIHNpZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlZDViOGViMjYxYTA1OTEyNzlmM2Y4YjhjYzRm
YmRmOWY4MjI5ZDA0Li45MTE2NmM1ZDI1NzUxZDA5NGRiZGUzNTFhZDU4NGIzYWJkY2YyOGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEzMzEsNyArMTMz
MSw4IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5KCkgY29uc3QK
ICAgICAvLyBpbiB0aGUgZGlzYWJsZWQgc3RhdGUgd2hlbiB0aGUgZWxlbWVudCdzIHJlc291cmNl
IHNlbGVjdGlvbiBhbGdvcml0aG0gbGFzdCBzdGFydGVkIG5vdwogICAgIC8vIGhhdmUgYSB0ZXh0
IHRyYWNrIHJlYWRpbmVzcyBzdGF0ZSBvZiBsb2FkZWQgb3IgZmFpbGVkIHRvIGxvYWQuCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdGV4dFRyYWNrc1doZW5SZXNvdXJjZVNlbGVjdGlv
bkJlZ2FuLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX3RleHRUcmFja3NXaGVuUmVzb3Vy
Y2VTZWxlY3Rpb25CZWdhbltpXS0+cmVhZGluZXNzU3RhdGUoKSA9PSBUZXh0VHJhY2s6OkxvYWRp
bmcpCisgICAgICAgIGlmIChtX3RleHRUcmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rpb25CZWdhbltp
XS0+cmVhZGluZXNzU3RhdGUoKSA9PSBUZXh0VHJhY2s6OkxvYWRpbmcKKyAgICAgICAgICAgIHx8
IG1fdGV4dFRyYWNrc1doZW5SZXNvdXJjZVNlbGVjdGlvbkJlZ2FuW2ldLT5yZWFkaW5lc3NTdGF0
ZSgpID09IFRleHRUcmFjazo6Tm90TG9hZGVkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtMTM0Myw2ICsxMzQ0LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICBpZiAobV9wbGF5
ZXIgJiYgbV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uY29udGFpbnModHJh
Y2spKSB7CiAgICAgICAgIGlmICh0cmFjay0+cmVhZGluZXNzU3RhdGUoKSAhPSBUZXh0VHJhY2s6
OkxvYWRpbmcpCiAgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG1fcGxheWVyLT5yZWFkeVN0YXRl
KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoZSB0cmFjayByZWFkaW5lc3Mgc3RhdGUg
bWlnaHQgaGF2ZSBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIHRoZSB1c2VyCisgICAgICAgIC8vIGNs
aWNraW5nIHRoZSBjYXB0aW9ucyBidXR0b24uIEluIHRoaXMgY2FzZSwgYSBjaGVjayB3aGV0aGVy
IGFsbCB0aGUKKyAgICAgICAgLy8gcmVzb3VyY2VzIGhhdmUgZmFpbGVkIGxvYWRpbmcgc2hvdWxk
IGJlIGRvbmUgaW4gb3JkZXIgdG8gaGlkZSB0aGUgQ0MgYnV0dG9uLgorICAgICAgICBpZiAoaGFz
TWVkaWFDb250cm9scygpICYmIHRyYWNrLT5yZWFkaW5lc3NTdGF0ZSgpID09IFRleHRUcmFjazo6
RmFpbGVkVG9Mb2FkKQorICAgICAgICAgICAgbWVkaWFDb250cm9scygpLT51cGRhdGVTdGF0dXNE
aXNwbGF5KCk7CiAgICAgfQogfQogCkBAIC0yOTA2LDYgKzI5MTMsOSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmRpZEFkZFRyYWNrKEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCkKICAg
ICAvLyBpbiB0aGUgbWFya3VwIGhhdmUgYmVlbiBhZGRlZC4KICAgICBpZiAoIW1fcGFyc2luZ0lu
UHJvZ3Jlc3MpCiAgICAgICAgIHNjaGVkdWxlTG9hZChUZXh0VHJhY2tSZXNvdXJjZSk7CisKKyAg
ICBpZiAoaGFzTWVkaWFDb250cm9scygpKQorICAgICAgICBtZWRpYUNvbnRyb2xzKCktPmNsb3Nl
ZENhcHRpb25UcmFja3NDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlk
UmVtb3ZlVHJhY2soSFRNTFRyYWNrRWxlbWVudCogdHJhY2tFbGVtZW50KQpAQCAtNDEzMSw2ICs0
MTQxLDkgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ojp3ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpICYmIG1fdGV4dFRyYWNrcykKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV90ZXh0VHJhY2tzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAg
IGlmIChtX3RleHRUcmFja3MtPml0ZW0oaSktPnJlYWRpbmVzc1N0YXRlKCkgPT0gVGV4dFRyYWNr
OjpGYWlsZWRUb0xvYWQpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBpZiAobV90
ZXh0VHJhY2tzLT5pdGVtKGkpLT5raW5kKCkgPT0gVGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQo
KQogICAgICAgICAgICAgfHwgbV90ZXh0VHJhY2tzLT5pdGVtKGkpLT5raW5kKCkgPT0gVGV4dFRy
YWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXggOTQ5YmU4ZDdh
OTI2OWJkNzQzMzE4MTYyMDcxZDEwNjE4YTlmZDg1ZS4uZjVhNjRlMDgzZjNiODE1NTcwZDM1NTgx
MzExY2I1N2NlYzk2ZmM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9scy5jcHAKQEAgLTIxNCw2ICsyMTQsMTcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpwbGF5
YmFja1N0b3BwZWQoKQogICAgIHN0b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKIH0K
IAordm9pZCBNZWRpYUNvbnRyb2xzOjp1cGRhdGVTdGF0dXNEaXNwbGF5KCkKK3sKKyAgICBpZiAo
IW1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2VkQ2FwdGlvbnMoKSkKKyAgICAgICAgbV90b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+c2hvdygpOworICAgIGVsc2UKKyAgICAgICAgbV90b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+aGlkZSgpOworfQorCiB2b2lkIE1lZGlhQ29udHJvbHM6
OnVwZGF0ZUN1cnJlbnRUaW1lRGlzcGxheSgpCiB7CiAgICAgZmxvYXQgbm93ID0gbV9tZWRpYUNv
bnRyb2xsZXItPmN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzLmgKaW5kZXggOGYyZWY0NDYyMmNjNGRhYTBiMGQxMzRkNDcwZjE3YTM0Yzk4OWRm
OS4uMGVjOTg5Njk2ZWI3MzVjODg2ODI0OWQ4YmJiNzdjZjZiNzdhMmViOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaApAQCAtODAsNyArODAsNyBAQCBjbGFz
cyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKICAgICB2aXJ0dWFsIHZv
aWQgcGxheWJhY2tQcm9ncmVzc2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RvcHBl
ZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKSB7IH07CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlQ3VycmVudFRpbWVEaXNwbGF5KCk7CiAgICAgdmlydHVhbCB2b2lkIHNob3dWb2x1bWVTbGlk
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDJlMDg4YTMyNDNjMjVlNWU1ZDlkM2FmNTNkNDM3ZDIwMGRhZWQ2NzEu
LjU1YzQ0ZjIwOWYxYmU5MWMzZGIxNDFhNTBkNmJlYzM1ODJhZjQ3YTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMy0wMS0yOSAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW1RyYWNrXSBDbG9zZWQgQ2FwdGlvbiBidXR0b24gc2hvdWxkbid0IGJl
IHZpc2libGUgaWYgYWxsIHRoZSB0cmFjayByZXNvdXJjZXMgaGF2ZSBmYWlsZWQgbG9hZGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mjg1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0
ZXN0cyB0byBpbmNsdWRlIGltcHJvdmVkIGJlaGF2aW9yLgorCisgICAgICAgICogbWVkaWEvdmlk
ZW8tY29udHJvbHMtY2FwdGlvbnMtZXhwZWN0ZWQudHh0OiBVcGRhdGVkLgorICAgICAgICAqIG1l
ZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLmh0bWw6IFVwZGF0ZWQuCisKIDIwMTMtMDEtMjkg
IMOBZMOhbSBLYWxsYWkgIDxrYWRhbUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBV
bnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LWNvbnRyb2xzLWNhcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LWNvbnRyb2xzLWNhcHRpb25zLWV4cGVjdGVkLnR4dAppbmRleCBkMGMwOTcwMjgxODMxYWY2N2E4
OWVkYmQ1OWNhOTk3ODIwZjNhYmEyLi4xNDkwZWRiOTRiNWI5NjQ2YWM1ODM3NTNiOTE2ZDdmODdi
NmM0MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0
aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMt
Y2FwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0yOCw2ICsyOCwyMyBAQCBObyB0ZXh0IHRyYWNrIGN1
ZSB3aXRoIGRpc3BsYXkgaWQgJy13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5JyBpcyBj
dXJyZW50bAogRVhQRUNURUQgKGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMF0gPD0gJzAnKSBP
SwogRVhQRUNURUQgKGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMV0gPD0gJzAnKSBPSwogCisq
KiBBZGQgbm9uLWRlZmF1bHQgdGV4dCB0cmFjayB0aHJvdWdoIEhUTUwgd2l0aCB1bmxvYWRhYmxl
IFVSSSAqKgorRVhQRUNURUQgKHRyYWNrLnJlYWR5U3RhdGUgPT0gJzAnKSBPSworRVhQRUNURUQg
KHRyYWNrLnRyYWNrLm1vZGUgPT0gJ2Rpc2FibGVkJykgT0sKK0VYUEVDVEVEICh2aWRlby50ZXh0
VHJhY2tzLmxlbmd0aCA9PSAnMScpIE9LCisKKyoqIENhcHRpb24gYnV0dG9uIHNob3VsZCBiZSB2
aXNpYmxlIGFuZCBlbmFibGVkIGJlY2F1c2Ugd2UgaGF2ZSBhIGNhcHRpb25zIHRyYWNrLgorRVhQ
RUNURUQgKGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMF0gPiAnMCcpIE9LCitFWFBFQ1RFRCAo
Y2FwdGlvbnNCdXR0b25Db29yZGluYXRlc1sxXSA+ICcwJykgT0sKK0VYUEVDVEVEIChjYXB0aW9u
c0J1dHRvbkVsZW1lbnQuZGlzYWJsZWQgPT0gJ2ZhbHNlJykgT0sKKworKioqIENsaWNrIHRoZSBD
QyBidXR0b24uCisqKiBUcmFjayBmYWlsZWQgdG8gbG9hZCAqKgorCisqKiBDYXB0aW9uIGJ1dHRv
biBzaG91bGQgbm90IGJlIHZpc2libGUgYXMgdGhlcmUgYXJlIG5vIGNhcHRpb24gdHJhY2tzLgor
RVhQRUNURUQgKGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMF0gPD0gJzAnKSBPSworRVhQRUNU
RUQgKGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXNbMV0gPD0gJzAnKSBPSworCiAqKiBBZGQgYSB0
ZXh0IHRyYWNrIHRocm91Z2ggSlMgdG8gdGhlIHZpZGVvIGVsZW1lbnQgKioKIAogKiogQ2FwdGlv
biBidXR0b24gc2hvdWxkIGJlIHZpc2libGUgYW5kIGVuYWJsZWQgYmVjYXVzZSB3ZSBoYXZlIGEg
Y2FwdGlvbnMgdHJhY2suCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250
cm9scy1jYXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2Fw
dGlvbnMuaHRtbAppbmRleCBlZTc5MmMyMDI1YTI5NmJmODM3ZjgyYTAxYWI3YjcwZWZjNDdlZTRh
Li44ZjgyN2NhYmI0ZjZhODk0MDQxMzdlY2JkM2ZmODljYWRiMzU0MDFjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLmh0bWwKQEAgLTksNiArOSw3IEBA
CiAgICAgPHNjcmlwdD4KICAgICAgICAgdmFyIGNhcHRpb25zQnV0dG9uRWxlbWVudDsKICAgICAg
ICAgdmFyIGNhcHRpb25zQnV0dG9uQ29vcmRpbmF0ZXM7CisgICAgICAgIHZhciB0cmFjazsKIAog
ICAgICAgICBmdW5jdGlvbiBhZGRUZXh0VHJhY2tUaHJvdWdoSlMoKQogICAgICAgICB7CkBAIC0x
OCw2ICsxOSwyNCBAQAogICAgICAgICAgICAgdC5hZGRDdWUobmV3IFRleHRUcmFja0N1ZSgwLjAs
IDEwLjAsICdTb21lIHJhbmRvbSBjYXB0aW9uIHRleHQnKSk7CiAgICAgICAgIH0KIAorICAgICAg
ICBmdW5jdGlvbiBhZGRVbmxvYWRhYmxlSFRNTFRyYWNrRWxlbWVudCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioq
IEFkZCBub24tZGVmYXVsdCB0ZXh0IHRyYWNrIHRocm91Z2ggSFRNTCB3aXRoIHVubG9hZGFibGUg
VVJJICoqIik7CisKKyAgICAgICAgICAgIHRyYWNrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dHJhY2siKTsKKyAgICAgICAgICAgIHRyYWNrLnNldEF0dHJpYnV0ZSgia2luZCIsICJjYXB0aW9u
cyIpOworICAgICAgICAgICAgdHJhY2suc2V0QXR0cmlidXRlKCJzcmNsYW5nIiwgImVuIik7Cisg
ICAgICAgICAgICB0cmFjay5zZXRBdHRyaWJ1dGUoInNyYyIsICJpbnZhbGlkLnZ0dCIpOworCisg
ICAgICAgICAgICB0cmFjay5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIHRyYWNrRXJyb3IpOwor
CisgICAgICAgICAgICB2aWRlby5hcHBlbmRDaGlsZCh0cmFjayk7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInRyYWNrLnJlYWR5U3RhdGUiLCBIVE1MVHJhY2tFbGVtZW50Lk5PTkUpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0cmFjay50cmFjay5tb2RlIiwgImRpc2FibGVkIik7Cisg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgMSk7Cisg
ICAgICAgIH0KKwogICAgICAgICBmdW5jdGlvbiByZW1vdmVIVE1MVHJhY2tFbGVtZW50KCkKICAg
ICAgICAgewogICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKQEAgLTEwMCwxMiArMTE5LDI1
IEBACiAgICAgICAgICAgICByZW1vdmVIVE1MVHJhY2tFbGVtZW50KCk7CiAgICAgICAgICAgICB0
ZXN0Q2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNpYmlsaXR5KGZhbHNlKTsKIAorICAgICAgICAgICAg
YWRkVW5sb2FkYWJsZUhUTUxUcmFja0VsZW1lbnQoKTsKKyAgICAgICAgICAgIHRlc3RDbG9zZWRD
YXB0aW9uc0J1dHRvblZpc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiIik7CisgICAgICAgICAgICBjbGlja0NDQnV0dG9uKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiB0cmFja0Vycm9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc29sZVdy
aXRlKCIqKiBUcmFjayBmYWlsZWQgdG8gbG9hZCAqKiIpOworICAgICAgICAgICAgdGVzdENsb3Nl
ZENhcHRpb25zQnV0dG9uVmlzaWJpbGl0eShmYWxzZSk7CisKICAgICAgICAgICAgIGFkZFRleHRU
cmFja1Rocm91Z2hKUygpOwogICAgICAgICAgICAgdGVzdENsb3NlZENhcHRpb25zQnV0dG9uVmlz
aWJpbGl0eSh0cnVlKTsKIAogICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICB9CiAKKwog
ICAgICAgICBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICB7CiAgICAgICAgICAgICBmaW5kTWVk
aWFFbGVtZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185897</attachid>
            <date>2013-01-31 16:49:06 -0800</date>
            <delta_ts>2013-01-31 20:04:38 -0800</delta_ts>
            <desc>Extra method</desc>
            <filename>bug-106285-20130201024549.patch</filename>
            <type>text/plain</type>
            <size>11550</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk0OTE2OTYyYmE3MTU4
MGJjMWM1YmE1NGE5NDhkYjY5MzRiNzJkZi4uZDI0NTNiMmVhOWZjYWFlZDU1MmRhZjczZGE0ZTdm
ZTBkZTk4MGNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTMxICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVHJhY2tdIENs
b3NlZCBDYXB0aW9uIGJ1dHRvbiBzaG91bGRuJ3QgYmUgdmlzaWJsZSBpZiBhbGwgdGhlIHRyYWNr
IHJlc291cmNlcyBoYXZlIGZhaWxlZCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIHRlc3QgY2FzZXMuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrc0FyZVJlYWR5KTogQ2hlY2tlZCB3aGV0aGVyIHRoZXJl
IGFyZSB0cmFja3Mgbm90IGxvYWRlZAorICAgICAgICB3aGVuIHRoZSBhbGdvcml0aG0gYmVnYW4u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZWFkeVN0YXRl
Q2hhbmdlZCk6IElmIHRoZSByZWFkeSBzdGF0ZSBjaGFuZ2VkIHRvCisgICAgICAgIEZhaWxlZFRv
TG9hZCB0aGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIG90
aGVyIGNhcHRpb24gdHJhY2tzCisgICAgICAgIGFuZCBoaWRlIHRoZSBidXR0b24gaWYgbm90Lgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVHJhY2spOiBBZGRlZCB0
cmlnZ2VyIHRvIGNsb3NlZENhcHRpb25zVHJhY2tDaGFuZ2VkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6aGFzQ2xvc2VkQ2FwdGlvbnMpOiBVcGRhdGVkIGNoZWNrIHRvIHNr
aXAgdHJhY2tzIHRoYXQKKyAgICAgICAgZmFpbGVkIHRvIGxvYWQuCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
OjpyZXNldCk6IFVzZWQgdGhlIG5ld2x5IGFkZGVkIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHM6OnJlZnJlc2hDbG9zZWRDYXB0aW9uc0J1dHRvblZpc2liaWxpdHkpOiBB
ZGRlZCBjb250YWluZXIgbWV0aG9kIGZvcgorICAgICAgICBkZWZhdWx0IGJlaGF2aW91ciBmb3Ig
cmVmcmVzaGluZyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FwdGlvbiBidXR0b24uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzOjpjbG9zZWRDYXB0aW9uVHJhY2tzQ2hhbmdlZCk6IFVz
ZWQgdGhlIG5ld2x5IGFkZGVkIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaDoKKyAgICAgICAgKE1lZGlhQ29udHJvbHMpOgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja3NBcmVSZWFkeSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRSZWFkeVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc0Nsb3NlZENhcHRpb25zKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6OnJlZnJlc2hDbG9zZWRD
YXB0aW9uc0J1dHRvblZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
czo6Y2xvc2VkQ2FwdGlvblRyYWNrc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oOgorICAgICAgICAoTWVkaWFDb250cm9s
cyk6CisKIDIwMTMtMDEtMzEgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQtYmxvY2stY3Jhc2gu
aHRtbCBpcyBpbnRlcm1pdHRlbnRseSBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggMjRjMWRiNDBkMWZhN2U0NmJkYTY4MDJiZjJlNTYzNzI0Njll
ZmJhYy4uZTU1M2M2YzY5MGJmOGJjMDViMzkwOTg4YTM5MWIyOTY1YTVkMWU5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMzMxLDcgKzEzMzEsOCBAQCBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja3NBcmVSZWFkeSgpIGNvbnN0CiAgICAgLy8g
aW4gdGhlIGRpc2FibGVkIHN0YXRlIHdoZW4gdGhlIGVsZW1lbnQncyByZXNvdXJjZSBzZWxlY3Rp
b24gYWxnb3JpdGhtIGxhc3Qgc3RhcnRlZCBub3cKICAgICAvLyBoYXZlIGEgdGV4dCB0cmFjayBy
ZWFkaW5lc3Mgc3RhdGUgb2YgbG9hZGVkIG9yIGZhaWxlZCB0byBsb2FkLgogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX3RleHRUcmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rpb25CZWdhbi5z
aXplKCk7ICsraSkgewotICAgICAgICBpZiAobV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0
aW9uQmVnYW5baV0tPnJlYWRpbmVzc1N0YXRlKCkgPT0gVGV4dFRyYWNrOjpMb2FkaW5nKQorICAg
ICAgICBpZiAobV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW5baV0tPnJlYWRp
bmVzc1N0YXRlKCkgPT0gVGV4dFRyYWNrOjpMb2FkaW5nCisgICAgICAgICAgICB8fCBtX3RleHRU
cmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rpb25CZWdhbltpXS0+cmVhZGluZXNzU3RhdGUoKSA9PSBU
ZXh0VHJhY2s6Ok5vdExvYWRlZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
QEAgLTEzNDMsNiArMTM0NCwxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1Jl
YWR5U3RhdGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgaWYgKG1fcGxheWVyICYmIG1f
dGV4dFRyYWNrc1doZW5SZXNvdXJjZVNlbGVjdGlvbkJlZ2FuLmNvbnRhaW5zKHRyYWNrKSkgewog
ICAgICAgICBpZiAodHJhY2stPnJlYWRpbmVzc1N0YXRlKCkgIT0gVGV4dFRyYWNrOjpMb2FkaW5n
KQogICAgICAgICAgICAgc2V0UmVhZHlTdGF0ZShtX3BsYXllci0+cmVhZHlTdGF0ZSgpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICAvLyBUaGUgdHJhY2sgcmVhZGluZXNzIHN0YXRlIG1pZ2h0IGhh
dmUgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiB0aGUgdXNlcgorICAgICAgICAvLyBjbGlja2luZyB0
aGUgY2FwdGlvbnMgYnV0dG9uLiBJbiB0aGlzIGNhc2UsIGEgY2hlY2sgd2hldGhlciBhbGwgdGhl
CisgICAgICAgIC8vIHJlc291cmNlcyBoYXZlIGZhaWxlZCBsb2FkaW5nIHNob3VsZCBiZSBkb25l
IGluIG9yZGVyIHRvIGhpZGUgdGhlIENDIGJ1dHRvbi4KKyAgICAgICAgaWYgKGhhc01lZGlhQ29u
dHJvbHMoKSAmJiB0cmFjay0+cmVhZGluZXNzU3RhdGUoKSA9PSBUZXh0VHJhY2s6OkZhaWxlZFRv
TG9hZCkKKyAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cmVmcmVzaENsb3NlZENhcHRpb25z
QnV0dG9uVmlzaWJpbGl0eSgpOwogICAgIH0KIH0KIApAQCAtMTg0MSw4ICsxODQ4LDEwIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSBzdGF0ZSkKIAogICAgIGlmIChzaG91bGRVcGRhdGVEaXNwbGF5U3RhdGUpIHsKICAgICAgICAg
dXBkYXRlRGlzcGxheVN0YXRlKCk7Ci0gICAgICAgIGlmIChoYXNNZWRpYUNvbnRyb2xzKCkpCisg
ICAgICAgIGlmIChoYXNNZWRpYUNvbnRyb2xzKCkpIHsKKyAgICAgICAgICAgIG1lZGlhQ29udHJv
bHMoKS0+cmVmcmVzaENsb3NlZENhcHRpb25zQnV0dG9uVmlzaWJpbGl0eSgpOwogICAgICAgICAg
ICAgbWVkaWFDb250cm9scygpLT51cGRhdGVTdGF0dXNEaXNwbGF5KCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICB1cGRhdGVQbGF5U3RhdGUoKTsKQEAgLTI5MDEsNiArMjkxMCw5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVHJhY2soSFRNTFRyYWNrRWxlbWVudCogdHJhY2tFbGVt
ZW50KQogICAgIC8vIGluIHRoZSBtYXJrdXAgaGF2ZSBiZWVuIGFkZGVkLgogICAgIGlmICghbV9w
YXJzaW5nSW5Qcm9ncmVzcykKICAgICAgICAgc2NoZWR1bGVMb2FkKFRleHRUcmFja1Jlc291cmNl
KTsKKworICAgIGlmIChoYXNNZWRpYUNvbnRyb2xzKCkpCisgICAgICAgIG1lZGlhQ29udHJvbHMo
KS0+Y2xvc2VkQ2FwdGlvblRyYWNrc0NoYW5nZWQoKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpkaWRSZW1vdmVUcmFjayhIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQpCkBAIC00
MTI2LDYgKzQxMzgsOSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc0Nsb3NlZENhcHRpb25z
KCkgY29uc3QKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkgJiYgbV90ZXh0VHJhY2tzKQogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3RleHRUcmFja3MtPmxlbmd0aCgpOyArK2kpIHsK
KyAgICAgICAgaWYgKG1fdGV4dFRyYWNrcy0+aXRlbShpKS0+cmVhZGluZXNzU3RhdGUoKSA9PSBU
ZXh0VHJhY2s6OkZhaWxlZFRvTG9hZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAg
IGlmIChtX3RleHRUcmFja3MtPml0ZW0oaSktPmtpbmQoKSA9PSBUZXh0VHJhY2s6OmNhcHRpb25z
S2V5d29yZCgpCiAgICAgICAgICAgICB8fCBtX3RleHRUcmFja3MtPml0ZW0oaSktPmtpbmQoKSA9
PSBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAppbmRleCA5
NDliZThkN2E5MjY5YmQ3NDMzMTgxNjIwNzFkMTA2MThhOWZkODVlLi5kOTk5MTFjYzQ5MDUxOWJk
NzM3NThjOTVhNzA3MzM5YzRhOTk4MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMTA5LDEyICsxMDksNyBAQCB2b2lkIE1lZGlhQ29udHJv
bHM6OnJlc2V0KCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChtX3RvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2Vk
Q2FwdGlvbnMoKSkKLSAgICAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPnNo
b3coKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbi0+aGlkZSgpOwotICAgIH0KKyAgICByZWZyZXNoQ2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNp
YmlsaXR5KCk7CiAKICAgICBpZiAobV9mdWxsU2NyZWVuQnV0dG9uKSB7CiAgICAgICAgIGlmICht
X21lZGlhQ29udHJvbGxlci0+c3VwcG9ydHNGdWxsc2NyZWVuKCkgJiYgbV9tZWRpYUNvbnRyb2xs
ZXItPmhhc1ZpZGVvKCkpCkBAIC0yNTIsNyArMjQ3LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpj
aGFuZ2VkQ2xvc2VkQ2FwdGlvbnNWaXNpYmlsaXR5KCkKICAgICAgICAgbV90b2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKIH0KIAotdm9pZCBNZWRpYUNvbnRy
b2xzOjpjbG9zZWRDYXB0aW9uVHJhY2tzQ2hhbmdlZCgpCit2b2lkIE1lZGlhQ29udHJvbHM6OnJl
ZnJlc2hDbG9zZWRDYXB0aW9uc0J1dHRvblZpc2liaWxpdHkoKQogewogICAgIGlmICghbV90b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbikKICAgICAgICAgcmV0dXJuOwpAQCAtMjYzLDYgKzI1OCwx
MSBAQCB2b2lkIE1lZGlhQ29udHJvbHM6OmNsb3NlZENhcHRpb25UcmFja3NDaGFuZ2VkKCkKICAg
ICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+aGlkZSgpOwogfQogCit2b2lkIE1l
ZGlhQ29udHJvbHM6OmNsb3NlZENhcHRpb25UcmFja3NDaGFuZ2VkKCkKK3sKKyAgICByZWZyZXNo
Q2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNpYmlsaXR5KCk7Cit9CisKIHZvaWQgTWVkaWFDb250cm9s
czo6ZW50ZXJlZEZ1bGxzY3JlZW4oKQogewogICAgIG1faXNGdWxsc2NyZWVuID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAppbmRleCA4ZjJlZjQ0NjIy
Y2M0ZGFhMGIwZDEzNGQ0NzBmMTdhMzRjOTg5ZGY5Li4wYWM4N2IwOWFjOGJhZTg4NzY0ODU2ZWUx
ZjQ1NTVmNzVjMjQzNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9scy5oCkBAIC04OCw2ICs4OCw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRN
TERpdkVsZW1lbnQgewogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VkVm9sdW1lKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgY2hhbmdlZENsb3NlZENhcHRpb25zVmlzaWJpbGl0eSgpOworICAgIHZpcnR1
YWwgdm9pZCByZWZyZXNoQ2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNpYmlsaXR5KCk7CiAgICAgdmly
dHVhbCB2b2lkIHRvZ2dsZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgY2xvc2VkQ2FwdGlvblRyYWNrc0NoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBhNzc4NDJhOWVl
N2FiMGE3ZDhiYTM3MTNjNWFmYTFiMDkwYzViNjYuLjczZmYwNGYxMGI3OTBmYTM4MTI3ZWM3NjIz
ZmEwYmVkNzIzODAyM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0zMSAgVmljdG9y
IENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1RyYWNrXSBDbG9z
ZWQgQ2FwdGlvbiBidXR0b24gc2hvdWxkbid0IGJlIHZpc2libGUgaWYgYWxsIHRoZSB0cmFjayBy
ZXNvdXJjZXMgaGF2ZSBmYWlsZWQgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mjg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0cyB0byBpbmNsdWRlIGltcHJvdmVkIGJl
aGF2aW9yLgorCisgICAgICAgICogbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtZXhwZWN0
ZWQudHh0OiBVcGRhdGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25z
Lmh0bWw6IFVwZGF0ZWQuCisKIDIwMTMtMDEtMzEgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uZWQt
YmxvY2stY3Jhc2guaHRtbCBpcyBpbnRlcm1pdHRlbnRseSBjcmFzaGluZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGQwYzA5NzAyODE4MzFhZjY3YTg5ZWRiZDU5Y2E5OTc4MjBmM2FiYTIuLjE0OTBlZGI5NGI1
Yjk2NDZhYzU4Mzc1M2I5MTZkN2Y4N2I2YzQwZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTI4LDYgKzI4
LDIzIEBAIE5vIHRleHQgdHJhY2sgY3VlIHdpdGggZGlzcGxheSBpZCAnLXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWRpc3BsYXknIGlzIGN1cnJlbnRsCiBFWFBFQ1RFRCAoY2FwdGlvbnNCdXR0b25D
b29yZGluYXRlc1swXSA8PSAnMCcpIE9LCiBFWFBFQ1RFRCAoY2FwdGlvbnNCdXR0b25Db29yZGlu
YXRlc1sxXSA8PSAnMCcpIE9LCiAKKyoqIEFkZCBub24tZGVmYXVsdCB0ZXh0IHRyYWNrIHRocm91
Z2ggSFRNTCB3aXRoIHVubG9hZGFibGUgVVJJICoqCitFWFBFQ1RFRCAodHJhY2sucmVhZHlTdGF0
ZSA9PSAnMCcpIE9LCitFWFBFQ1RFRCAodHJhY2sudHJhY2subW9kZSA9PSAnZGlzYWJsZWQnKSBP
SworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3MubGVuZ3RoID09ICcxJykgT0sKKworKiogQ2Fw
dGlvbiBidXR0b24gc2hvdWxkIGJlIHZpc2libGUgYW5kIGVuYWJsZWQgYmVjYXVzZSB3ZSBoYXZl
IGEgY2FwdGlvbnMgdHJhY2suCitFWFBFQ1RFRCAoY2FwdGlvbnNCdXR0b25Db29yZGluYXRlc1sw
XSA+ICcwJykgT0sKK0VYUEVDVEVEIChjYXB0aW9uc0J1dHRvbkNvb3JkaW5hdGVzWzFdID4gJzAn
KSBPSworRVhQRUNURUQgKGNhcHRpb25zQnV0dG9uRWxlbWVudC5kaXNhYmxlZCA9PSAnZmFsc2Un
KSBPSworCisqKiogQ2xpY2sgdGhlIENDIGJ1dHRvbi4KKyoqIFRyYWNrIGZhaWxlZCB0byBsb2Fk
ICoqCisKKyoqIENhcHRpb24gYnV0dG9uIHNob3VsZCBub3QgYmUgdmlzaWJsZSBhcyB0aGVyZSBh
cmUgbm8gY2FwdGlvbiB0cmFja3MuCitFWFBFQ1RFRCAoY2FwdGlvbnNCdXR0b25Db29yZGluYXRl
c1swXSA8PSAnMCcpIE9LCitFWFBFQ1RFRCAoY2FwdGlvbnNCdXR0b25Db29yZGluYXRlc1sxXSA8
PSAnMCcpIE9LCisKICoqIEFkZCBhIHRleHQgdHJhY2sgdGhyb3VnaCBKUyB0byB0aGUgdmlkZW8g
ZWxlbWVudCAqKgogCiAqKiBDYXB0aW9uIGJ1dHRvbiBzaG91bGQgYmUgdmlzaWJsZSBhbmQgZW5h
YmxlZCBiZWNhdXNlIHdlIGhhdmUgYSBjYXB0aW9ucyB0cmFjay4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy5odG1sCmluZGV4IGVlNzkyYzIwMjVhMjk2YmY4
MzdmODJhMDFhYjdiNzBlZmM0N2VlNGEuLjhmODI3Y2FiYjRmNmE4OTQwNDEzN2VjYmQzZmY4OWNh
ZGIzNTQwMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNh
cHRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlv
bnMuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgICB2YXIgY2FwdGlv
bnNCdXR0b25FbGVtZW50OwogICAgICAgICB2YXIgY2FwdGlvbnNCdXR0b25Db29yZGluYXRlczsK
KyAgICAgICAgdmFyIHRyYWNrOwogCiAgICAgICAgIGZ1bmN0aW9uIGFkZFRleHRUcmFja1Rocm91
Z2hKUygpCiAgICAgICAgIHsKQEAgLTE4LDYgKzE5LDI0IEBACiAgICAgICAgICAgICB0LmFkZEN1
ZShuZXcgVGV4dFRyYWNrQ3VlKDAuMCwgMTAuMCwgJ1NvbWUgcmFuZG9tIGNhcHRpb24gdGV4dCcp
KTsKICAgICAgICAgfQogCisgICAgICAgIGZ1bmN0aW9uIGFkZFVubG9hZGFibGVIVE1MVHJhY2tF
bGVtZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiKiogQWRkIG5vbi1kZWZhdWx0IHRleHQgdHJhY2sgdGhyb3Vn
aCBIVE1MIHdpdGggdW5sb2FkYWJsZSBVUkkgKioiKTsKKworICAgICAgICAgICAgdHJhY2sgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0cmFjayIpOworICAgICAgICAgICAgdHJhY2suc2V0QXR0
cmlidXRlKCJraW5kIiwgImNhcHRpb25zIik7CisgICAgICAgICAgICB0cmFjay5zZXRBdHRyaWJ1
dGUoInNyY2xhbmciLCAiZW4iKTsKKyAgICAgICAgICAgIHRyYWNrLnNldEF0dHJpYnV0ZSgic3Jj
IiwgImludmFsaWQudnR0Iik7CisKKyAgICAgICAgICAgIHRyYWNrLmFkZEV2ZW50TGlzdGVuZXIo
ImVycm9yIiwgdHJhY2tFcnJvcik7CisKKyAgICAgICAgICAgIHZpZGVvLmFwcGVuZENoaWxkKHRy
YWNrKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHJhY2sucmVhZHlTdGF0ZSIsIEhUTUxU
cmFja0VsZW1lbnQuTk9ORSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRyYWNrLnRyYWNr
Lm1vZGUiLCAiZGlzYWJsZWQiKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8udGV4
dFRyYWNrcy5sZW5ndGgiLCAxKTsKKyAgICAgICAgfQorCiAgICAgICAgIGZ1bmN0aW9uIHJlbW92
ZUhUTUxUcmFja0VsZW1lbnQoKQogICAgICAgICB7CiAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IiIpOwpAQCAtMTAwLDEyICsxMTksMjUgQEAKICAgICAgICAgICAgIHJlbW92ZUhUTUxUcmFja0Vs
ZW1lbnQoKTsKICAgICAgICAgICAgIHRlc3RDbG9zZWRDYXB0aW9uc0J1dHRvblZpc2liaWxpdHko
ZmFsc2UpOwogCisgICAgICAgICAgICBhZGRVbmxvYWRhYmxlSFRNTFRyYWNrRWxlbWVudCgpOwor
ICAgICAgICAgICAgdGVzdENsb3NlZENhcHRpb25zQnV0dG9uVmlzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIGNsaWNrQ0NCdXR0b24o
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRyYWNrRXJyb3IoKQorICAgICAgICB7
CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioqIFRyYWNrIGZhaWxlZCB0byBsb2FkICoqIik7
CisgICAgICAgICAgICB0ZXN0Q2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNpYmlsaXR5KGZhbHNlKTsK
KwogICAgICAgICAgICAgYWRkVGV4dFRyYWNrVGhyb3VnaEpTKCk7CiAgICAgICAgICAgICB0ZXN0
Q2xvc2VkQ2FwdGlvbnNCdXR0b25WaXNpYmlsaXR5KHRydWUpOwogCiAgICAgICAgICAgICBlbmRU
ZXN0KCk7CiAgICAgICAgIH0KIAorCiAgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>