<?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>127297</bug_id>
          
          <creation_ts>2014-01-20 09:56:02 -0800</creation_ts>
          <short_desc>Allow MediaSessionManager to restrict &apos;preload&apos; behavior</short_desc>
          <delta_ts>2014-01-20 11:20:21 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969895</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-01-20 09:56:02 -0800</bug_when>
    <thetext>Some platforms limit media data preloading. Allow ports to configure MediaSessionManager to control this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969908</commentid>
    <comment_count>1</comment_count>
      <attachid>221672</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-01-20 10:25:12 -0800</bug_when>
    <thetext>Created attachment 221672
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969913</commentid>
    <comment_count>2</comment_count>
      <attachid>221672</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-01-20 10:42:31 -0800</bug_when>
    <thetext>Comment on attachment 221672
Proposed patch

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

r=me with one nit.

&gt; Source/WebCore/html/HTMLMediaSession.cpp:146
&gt; +MediaPlayer::Preload HTMLMediaSession::applyPreloadRestrictions(const HTMLMediaElement&amp;, MediaPlayer::Preload preload) const

I&apos;m not a huge fan of this name.  It implies that the parameter is being modified, rather than a new preload being returned.  How about &quot;effectivePreload()&quot; or &quot;effectivePreloadForElement()&quot;, like your variables above?  If you added an accessor for m_preload, you wouldn&apos;t even have to pass in the m_preload attribute; effectivePreloadForElement() could just as the media element for it&apos;s m_preload value and return the effective (post-restrictions) preload value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969928</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-01-20 11:19:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 221672 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221672&amp;action=review
&gt; 
&gt; r=me with one nit.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaSession.cpp:146
&gt; &gt; +MediaPlayer::Preload HTMLMediaSession::applyPreloadRestrictions(const HTMLMediaElement&amp;, MediaPlayer::Preload preload) const
&gt; 
&gt; I&apos;m not a huge fan of this name.  It implies that the parameter is being modified, rather than a new preload being returned.  How about &quot;effectivePreload()&quot; or &quot;effectivePreloadForElement()&quot;, like your variables above?  If you added an accessor for m_preload, you wouldn&apos;t even have to pass in the m_preload attribute; effectivePreloadForElement() could just as the media element for it&apos;s m_preload value and return the effective (post-restrictions) preload value.

Great suggestion, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969929</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-01-20 11:20:12 -0800</bug_when>
    <thetext>Committed r162360: https://trac.webkit.org/r162360</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221672</attachid>
            <date>2014-01-20 10:25:12 -0800</date>
            <delta_ts>2014-01-20 11:20:21 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>preload_restricted_patch_2.txt</filename>
            <type>text/plain</type>
            <size>14937</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MjM1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAxLTIwICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IE1lZGlhU2Vz
c2lvbk1hbmFnZXIgdG8gcmVzdHJpY3QgJ3ByZWxvYWQnIGJlaGF2aW9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcyOTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogbWVkaWEvdmlkZW8tcmVz
dHJpY3RlZC1uby1wcmVsb2FkLWF1dG8uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvdmlkZW8t
cmVzdHJpY3RlZC1uby1wcmVsb2FkLW1ldGFkYXRhLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6IEFwcGx5IHJlc3RyaWN0aW9ucyB0byBwcmVsb2FkIGF0dHJpYnV0ZSBi
ZWZvcmUKKyAgICAgICAgICAgIHBhc3NpbmcgdG8gbWVkaWEgZW5naW5lLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKTogRGl0dG8uCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
U2Vzc2lvbjo6YXBwbHlQcmVsb2FkUmVzdHJpY3Rpb25zKTogTmV3LCBsaW1pdCBwcmVsb2FkIGFj
Y29yZGluZyB0byByZXN0cmljdGlvbnMuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFTZXNzaW9u
Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpyZXNldFJlc3RyaWN0aW9u
cyk6IExpbWl0IHByZWxvYWQgdG8gbWV0YWRhdGEgb25seS4gRHJpdmUtYnkKKyAgICAgICAgICAg
IHN0YXRpYyBkZXZpY2VDbGFzcyBpbml0aWFsaXphdGlvbiBjbGVhbnVwLgorCisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRN
ZWRpYVNlc3Npb25SZXN0cmljdGlvbnMpOiBTdXBwb3J0IE1ldGFkYXRhUHJlbG9hZGluZ05vdFBl
cm1pdHRlZCBhbmQKKyAgICAgICAgICAgIEF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkLgorCiAy
MDE0LTAxLTIwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBM
ZXQgUmVuZGVySW1hZ2UgY29uc3RydWN0IGl0cyBSZW5kZXJJbWFnZVJlc291cmNlLgpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjIzMzkp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NDYsNyArNTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjbwogCiAgICAgICAgIC8vIFRoZSBhdHRyaWJ1dGUgbXVzdCBiZSBpZ25vcmVkIGlmIHRo
ZSBhdXRvcGxheSBhdHRyaWJ1dGUgaXMgcHJlc2VudAogICAgICAgICBpZiAoIWF1dG9wbGF5KCkg
JiYgbV9wbGF5ZXIpCi0gICAgICAgICAgICBtX3BsYXllci0+c2V0UHJlbG9hZChtX3ByZWxvYWQp
OworICAgICAgICAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQobV9tZWRpYVNlc3Npb24tPmFwcGx5
UHJlbG9hZFJlc3RyaWN0aW9ucygqdGhpcywgbV9wcmVsb2FkKSk7CiAKICAgICB9IGVsc2UgaWYg
KG5hbWUgPT0gbWVkaWFncm91cEF0dHIpCiAgICAgICAgIHNldE1lZGlhR3JvdXAodmFsdWUpOwpA
QCAtOTg3LDEyICs5ODcsMTMgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9h
ZCgpCiAgICAgLy8gVGhlIHNwZWMgZG9lc24ndCBzYXkgdG8gYmxvY2sgdGhlIGxvYWQgZXZlbnQg
dW50aWwgd2UgYWN0dWFsbHkgcnVuIHRoZSBhc3luY2hyb25vdXMgc2VjdGlvbgogICAgIC8vIGFs
Z29yaXRobSwgYnV0IGRvIGl0IG5vdyBiZWNhdXNlIHdlIHdvbid0IHN0YXJ0IHRoYXQgdW50aWwg
YWZ0ZXIgdGhlIHRpbWVyIGZpcmVzIGFuZCB0aGUgCiAgICAgLy8gZXZlbnQgbWF5IGhhdmUgYWxy
ZWFkeSBmaXJlZCBieSB0aGVuLgotICAgIGlmIChtX3ByZWxvYWQgIT0gTWVkaWFQbGF5ZXI6Ok5v
bmUpCisgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgZWZmZWN0aXZlUHJlbG9hZCA9IG1fbWVkaWFT
ZXNzaW9uLT5hcHBseVByZWxvYWRSZXN0cmljdGlvbnMoKnRoaXMsIG1fcHJlbG9hZCk7CisgICAg
aWYgKGVmZmVjdGl2ZVByZWxvYWQgIT0gTWVkaWFQbGF5ZXI6Ok5vbmUpCiAgICAgICAgIHNldFNo
b3VsZERlbGF5TG9hZEV2ZW50KHRydWUpOwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFNldHRp
bmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKTsKLSAgICBpZiAobV9wcmVsb2Fk
ICE9IE1lZGlhUGxheWVyOjpOb25lICYmIHNldHRpbmdzICYmIHNldHRpbmdzLT5tZWRpYURhdGFM
b2Fkc0F1dG9tYXRpY2FsbHkoKSkKKyAgICBpZiAoZWZmZWN0aXZlUHJlbG9hZCAhPSBNZWRpYVBs
YXllcjo6Tm9uZSAmJiBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+bWVkaWFEYXRhTG9hZHNBdXRvbWF0
aWNhbGx5KCkpCiAgICAgICAgIHByZXBhcmVUb1BsYXkoKTsKICNlbmRpZgogCkBAIC0xMjExLDcg
KzEyMTIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zCiAgICAg
c2V0RGlzcGxheU1vZGUoVW5rbm93bik7CiAKICAgICBpZiAoIWF1dG9wbGF5KCkpCi0gICAgICAg
IG1fcGxheWVyLT5zZXRQcmVsb2FkKG1fcHJlbG9hZCk7CisgICAgICAgIG1fcGxheWVyLT5zZXRQ
cmVsb2FkKG1fbWVkaWFTZXNzaW9uLT5hcHBseVByZWxvYWRSZXN0cmljdGlvbnMoKnRoaXMsIG1f
cHJlbG9hZCkpOwogICAgIG1fcGxheWVyLT5zZXRQcmVzZXJ2ZXNQaXRjaChtX3dlYmtpdFByZXNl
cnZlc1BpdGNoKTsKIAogICAgIGlmIChmYXN0SGFzQXR0cmlidXRlKG11dGVkQXR0cikpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAJKHJldmlzaW9uIDE2MjMz
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Myw2ICsxNDMsMjEgQEAgYm9vbCBIVE1MTWVkaWFTZXNzaW9uOjpzaG93aW5n
UGxheWJhY2tUYQogfQogI2VuZGlmCiAKK01lZGlhUGxheWVyOjpQcmVsb2FkIEhUTUxNZWRpYVNl
c3Npb246OmFwcGx5UHJlbG9hZFJlc3RyaWN0aW9ucyhjb25zdCBIVE1MTWVkaWFFbGVtZW50Jiwg
TWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZCkgY29uc3QKK3sKKyAgICBNZWRpYVNlc3Npb25N
YW5hZ2VyOjpTZXNzaW9uUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9ucyA9IE1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZXN0cmljdGlvbnMobWVkaWFUeXBlKCkpOworCisgICAg
aWYgKChyZXN0cmljdGlvbnMgJiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpNZXRhZGF0YVByZWxvYWRp
bmdOb3RQZXJtaXR0ZWQpID09IE1lZGlhU2Vzc2lvbk1hbmFnZXI6Ok1ldGFkYXRhUHJlbG9hZGlu
Z05vdFBlcm1pdHRlZCkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpOb25lOworCisgICAg
aWYgKChyZXN0cmljdGlvbnMgJiBNZWRpYVNlc3Npb25NYW5hZ2VyOjpBdXRvUHJlbG9hZGluZ05v
dFBlcm1pdHRlZCkgPT0gTWVkaWFTZXNzaW9uTWFuYWdlcjo6QXV0b1ByZWxvYWRpbmdOb3RQZXJt
aXR0ZWQpIHsKKyAgICAgICAgaWYgKHByZWxvYWQgPiBNZWRpYVBsYXllcjo6TWV0YURhdGEpCisg
ICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6Ok1ldGFEYXRhOworICAgIH0KKworICAgIHJl
dHVybiBwcmVsb2FkOworfQorCiB2b2lkIEhUTUxNZWRpYVNlc3Npb246OmNsaWVudFdpbGxCZWdp
blBsYXliYWNrKCkgY29uc3QKIHsKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkuc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKCp0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhU2Vzc2lvbi5oCShyZXZpc2lvbiAxNjIzMzkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsNiAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG93aW5nUGxheWJhY2tUYXJnZXRQaWNrZXJQZXJt
aXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0OwogI2VuZGlmCiAgICAgYm9vbCBy
ZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQm
KSBjb25zdDsKKyAgICBNZWRpYVBsYXllcjo6UHJlbG9hZCBhcHBseVByZWxvYWRSZXN0cmljdGlv
bnMoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYsIE1lZGlhUGxheWVyOjpQcmVsb2FkKSBjb25zdDsK
IAogICAgIC8vIFJlc3RyaWN0aW9ucyB0byBtb2RpZnkgZGVmYXVsdCBiZWhhdmlvcnMuCiAgICAg
ZW51bSBCZWhhdmlvclJlc3RyaWN0aW9uRmxhZ3MgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuaAkocmV2aXNpb24gMTYy
MzM5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw5IEBAIHB1YmxpYzoKICAgICBlbnVtIFNl
c3Npb25SZXN0cmljdGlvbkZsYWdzIHsKICAgICAgICAgTm9SZXN0cmljdGlvbnMgPSAwLAogICAg
ICAgICBDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQgPSAxIDw8IDAsCi0gICAgICAgIElu
bGluZVZpZGVvUGxheWJhY2tSZXN0cmljdGVkID0gMSA8PCAwLAorICAgICAgICBJbmxpbmVWaWRl
b1BsYXliYWNrUmVzdHJpY3RlZCA9IDEgPDwgMSwKKyAgICAgICAgTWV0YWRhdGFQcmVsb2FkaW5n
Tm90UGVybWl0dGVkID0gMSA8PCAyLAorICAgICAgICBBdXRvUHJlbG9hZGluZ05vdFBlcm1pdHRl
ZCA9IDEgPDwgMywKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgU2Vzc2lvblJlc3RyaWN0
aW9uczsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRp
YVNlc3Npb25NYW5hZ2VySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCShyZXZpc2lvbiAxNjIzMzkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksMTIgKzc5LDE1IEBAIHZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmkKIHsKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpy
ZXNldFJlc3RyaWN0aW9ucygpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTCh3a0RldmljZUNs
YXNzLCBkZXZpY2VDbGFzcywgKGlvc0RldmljZUNsYXNzKCkpKTsKLQorICAgIHN0YXRpYyB3a0Rl
dmljZUNsYXNzIGRldmljZUNsYXNzID0gaW9zRGV2aWNlQ2xhc3MoKTsKICAgICBpZiAoZGV2aWNl
Q2xhc3MgPT0gd2tEZXZpY2VDbGFzc2lQaG9uZSB8fCBkZXZpY2VDbGFzcyA9PSB3a0RldmljZUNs
YXNzaVBvZCkKICAgICAgICAgYWRkUmVzdHJpY3Rpb24oTWVkaWFTZXNzaW9uOjpWaWRlbywgSW5s
aW5lVmlkZW9QbGF5YmFja1Jlc3RyaWN0ZWQpOwogCiAgICAgYWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpWaWRlbywgQ29uY3VycmVudFBsYXliYWNrTm90UGVybWl0dGVkKTsKKyAgICByZW1v
dmVSZXN0cmljdGlvbihNZWRpYVNlc3Npb246OkF1ZGlvLCBNZXRhZGF0YVByZWxvYWRpbmdOb3RQ
ZXJtaXR0ZWQpOworICAgIHJlbW92ZVJlc3RyaWN0aW9uKE1lZGlhU2Vzc2lvbjo6VmlkZW8sIE1l
dGFkYXRhUHJlbG9hZGluZ05vdFBlcm1pdHRlZCk7CisgICAgYWRkUmVzdHJpY3Rpb24oTWVkaWFT
ZXNzaW9uOjpBdWRpbywgQXV0b1ByZWxvYWRpbmdOb3RQZXJtaXR0ZWQpOworICAgIGFkZFJlc3Ry
aWN0aW9uKE1lZGlhU2Vzc2lvbjo6VmlkZW8sIEF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAkocmV2aXNpb24gMTYyMzM5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjExLDcgKzIyMTEsMTEgQEAgdm9pZCBJ
bnRlcm5hbHM6OnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aQogICAgICAgICByZXN0cmljdGlvbnMg
PSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpDb25jdXJyZW50UGxheWJhY2tOb3RQZXJtaXR0ZWQ7CiAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIklubGluZVZpZGVv
UGxheWJhY2tSZXN0cmljdGVkIikpCiAgICAgICAgIHJlc3RyaWN0aW9ucyArPSBNZWRpYVNlc3Np
b25NYW5hZ2VyOjpJbmxpbmVWaWRlb1BsYXliYWNrUmVzdHJpY3RlZDsKLSAgICAKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UocmVzdHJpY3Rpb25zU3RyaW5nLCAiTWV0YWRhdGFQcmVsb2FkaW5n
Tm90UGVybWl0dGVkIikpCisgICAgICAgIHJlc3RyaWN0aW9ucyArPSBNZWRpYVNlc3Npb25NYW5h
Z2VyOjpNZXRhZGF0YVByZWxvYWRpbmdOb3RQZXJtaXR0ZWQ7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKHJlc3RyaWN0aW9uc1N0cmluZywgIkF1dG9QcmVsb2FkaW5nTm90UGVybWl0dGVkIikp
CisgICAgICAgIHJlc3RyaWN0aW9ucyArPSBNZWRpYVNlc3Npb25NYW5hZ2VyOjpBdXRvUHJlbG9h
ZGluZ05vdFBlcm1pdHRlZDsKKwogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5hZGRSZXN0cmljdGlvbihtZWRpYVR5cGUsIHJlc3RyaWN0aW9ucyk7CiB9CiAKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE2MjM1NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTIwICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IE1lZGlhU2Vzc2lvbk1hbmFnZXIgdG8g
cmVzdHJpY3QgJ3ByZWxvYWQnIGJlaGF2aW9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3ZpZGVvLXJlc3RyaWN0ZWQtbm8tcHJlbG9hZC1h
dXRvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tcmVzdHJpY3Rl
ZC1uby1wcmVsb2FkLWF1dG8uaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tcmVz
dHJpY3RlZC1uby1wcmVsb2FkLW1ldGFkYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvdmlkZW8tcmVzdHJpY3RlZC1uby1wcmVsb2FkLW1ldGFkYXRhLmh0bWw6IEFkZGVk
LgorCiAyMDE0LTAxLTIwICBNaWhhaSBUaWNhICA8bWl0aWNhQGFkb2JlLmNvbT4KIAogICAgICAg
ICBSZWFwcGx5OgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcmVzdHJpY3RlZC1uby1w
cmVsb2FkLWF1dG8tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXJlc3RyaWN0ZWQtbm8tcHJlbG9hZC1hdXRvLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL21lZGlhL3ZpZGVvLXJlc3RyaWN0ZWQtbm8tcHJlbG9hZC1hdXRv
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACisKK1Rlc3QgdGhh
dCAibm8gYXV0by1sb2FkaW5nIHJlc3RyaWN0aW9uIiBvbmx5IGFsbG93cyBtZXRhZGF0YSB0byBs
b2FkIGluIHNwaXRlIG9mIHByZWxvYWQ9J2F1dG8nLgorCisqKiBzZXR0aW5nIHZpZGVvLnNyYwor
RVhQRUNURUQgKHZpZGVvLnByZWxvYWQgPT0gJ2F1dG8nKSBPSworUlVOKGludGVybmFscy5zZXRN
ZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoJ3ZpZGVvJywgJ0F1dG9QcmVsb2FkaW5nTm90UGVybWl0
dGVkJykpCisKK0VWRU5UKGxvYWRlZG1ldGFkYXRhKQorRVhQRUNURUQgKHZpZGVvLnJlYWR5U3Rh
dGUgPCAnMicpIE9LCisqKiBQYXVzaW5nLi4uCisKKworKiogMjUwbXMgdGltZXIgZmlyZWQKK0VY
UEVDVEVEICh2aWRlby5yZWFkeVN0YXRlIDwgJzInKSBPSworRVhQRUNURUQgKHZpZGVvLmJ1ZmZl
cmVkLmxlbmd0aCA9PSAnMCcpIE9LCitSVU4odmlkZW8ucGxheSgpKQorCitFVkVOVChjYW5wbGF5
dGhyb3VnaCkKKworRU5EIE9GIFRFU1QKKwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cmVzdHJpY3RlZC1uby1wcmVsb2FkLWF1dG8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1yZXN0cmljdGVkLW5vLXByZWxvYWQtYXV0by5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcmVzdHJpY3RlZC1uby1wcmVsb2FkLWF1dG8u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYyIEBACis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICB2YXIgcGxheUNhbGxlZCA9IGZhbHNlOworCisgICAgICAgICAgICBmdW5jdGlv
biBjYW5wbGF5dGhyb3VnaCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBsYXlDYWxsZWQpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKioqIEZBSUw6IG1lZGlhIGRhdGEgbG9hZGVkIGJlZm9y
ZSBwbGF5KCkgd2FzIGNhbGxlZCAqKio8YnI+Iik7CisKKyAgICAgICAgICAgICAgICBlbmRUZXN0
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBsYXkoKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiogMjUwbXMgdGltZXIgZmly
ZWQiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnJlYWR5U3RhdGUiLCBI
VE1MTWVkaWFFbGVtZW50LkhBVkVfQ1VSUkVOVF9EQVRBLCAiPCIpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidmlkZW8uYnVmZmVyZWQubGVuZ3RoIiwgMCwgIj09Iik7CisgICAgICAg
ICAgICAgICAgcGxheUNhbGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5w
bGF5KCkiKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBsb2FkZWRtZXRhZGF0YSgpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5yZWFkeVN0YXRlIiwgSFRNTE1l
ZGlhRWxlbWVudC5IQVZFX0NVUlJFTlRfREFUQSwgIjwiKTsKKworICAgICAgICAgICAgICAgIC8v
IFdhaXQgMjUwbXMgYmVmb3JlIHBsYXkoKWluZyB0byBtYWtlIHN1cmUgc2V0dGluZyBzcmMgZGlk
IG5vdCBraWNrIG9mZiB0aGUgbG9hZC4KKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioq
IFBhdXNpbmcuLi48YnI+Iik7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChwbGF5LCAyNTAp
OworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRlc3Qo
J1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzLicpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluZE1l
ZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiogc2V0dGluZyB2
aWRlby5zcmMiKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2
aWRlbyIsICJjb250ZW50L3Rlc3QiKTsKKworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ucHJlbG9hZCIsICJhdXRvIik7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCds
b2FkZWRtZXRhZGF0YScsIGxvYWRlZG1ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9y
RXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAgICAgICAgICAgICAg
IGZhaWxUZXN0SW4oMjAwMCk7CisgICAgICAgICAgICAgICAgcnVuKCJpbnRlcm5hbHMuc2V0TWVk
aWFTZXNzaW9uUmVzdHJpY3Rpb25zKCd2aWRlbycsICdBdXRvUHJlbG9hZGluZ05vdFBlcm1pdHRl
ZCcpIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJzdGFy
dCgpIj4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzIHByZWxvYWQ9YXV0bz48L3ZpZGVvPgorICAg
ICAgICA8cD5UZXN0IHRoYXQgIm5vIGF1dG8tbG9hZGluZyByZXN0cmljdGlvbiIgb25seSBhbGxv
d3MgbWV0YWRhdGEgdG8gbG9hZCBpbiBzcGl0ZSBvZiBwcmVsb2FkPSdhdXRvJy48L3A+CisgICAg
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcmVzdHJpY3Rl
ZC1uby1wcmVsb2FkLW1ldGFkYXRhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1yZXN0cmljdGVkLW5vLXByZWxvYWQtbWV0YWRhdGEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcmVzdHJpY3RlZC1u
by1wcmVsb2FkLW1ldGFkYXRhLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE3IEBACisKK1Rlc3QgdGhhdCAibm8gcHJlbG9hZGluZyByZXN0cmljdGlvbiIgZGlzYWJsZXMg
cHJlbG9hZGluZyBpbiBzcGl0ZSBvZiBwcmVsb2FkPSdhdXRvJy4KKworKiogc2V0dGluZyB2aWRl
by5zcmMKK0VYUEVDVEVEICh2aWRlby5wcmVsb2FkID09ICdhdXRvJykgT0sKK1JVTihpbnRlcm5h
bHMuc2V0TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKCd2aWRlbycsICdNZXRhZGF0YVByZWxvYWRp
bmdOb3RQZXJtaXR0ZWQnKSkKKyoqIFBhdXNpbmcuLi4KKworKiogMjUwbXMgdGltZXIgZmlyZWQK
K0VYUEVDVEVEICh2aWRlby5yZWFkeVN0YXRlID09ICcwJykgT0sKK0VYUEVDVEVEICh2aWRlby5i
dWZmZXJlZC5sZW5ndGggPT0gJzAnKSBPSworUlVOKHZpZGVvLmxvYWQoKSkKKworRVZFTlQobG9h
ZGVkbWV0YWRhdGEpCisKK0VORCBPRiBURVNUCisKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3Zp
ZGVvLXJlc3RyaWN0ZWQtbm8tcHJlbG9hZC1tZXRhZGF0YS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXJlc3RyaWN0ZWQtbm8tcHJlbG9hZC1tZXRhZGF0YS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcmVzdHJpY3RlZC1uby1w
cmVsb2FkLW1ldGFkYXRhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIGxvYWRDYWxsZWQgPSBmYWxzZTsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gbG9hZGVkbWV0YWRhdGEoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICAgICAgaWYgKCFsb2FkQ2Fs
bGVkKQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioqKiBGQUlMOiBtZWRpYSBk
YXRhIGxvYWRlZCBiZWZvcmUgbG9hZCgpIHdhcyBjYWxsZWQgKioqPGJyPiIpOworCisgICAgICAg
ICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBsb2FkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioq
IDI1MG1zIHRpbWVyIGZpcmVkIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by5yZWFkeVN0YXRlIiwgSFRNTE1lZGlhRWxlbWVudC5IQVZFX05PVEhJTkcpOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uYnVmZmVyZWQubGVuZ3RoIiwgMCwgIj09Iik7Cisg
ICAgICAgICAgICAgICAgbG9hZENhbGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgcnVuKCJ2
aWRlby5sb2FkKCkiKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAg
ICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscy4nKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
IioqIHNldHRpbmcgdmlkZW8uc3JjIik7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gZmlu
ZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0Iik7CisKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLnByZWxvYWQiLCAiYXV0byIpOworICAgICAgICAgICAgICAgIHdh
aXRGb3JFdmVudCgnbG9hZGVkbWV0YWRhdGEnLCBsb2FkZWRtZXRhZGF0YSk7CisgICAgICAgICAg
ICAgICAgcnVuKCJpbnRlcm5hbHMuc2V0TWVkaWFTZXNzaW9uUmVzdHJpY3Rpb25zKCd2aWRlbycs
ICdNZXRhZGF0YVByZWxvYWRpbmdOb3RQZXJtaXR0ZWQnKSIpOworCisgICAgICAgICAgICAgICAg
Ly8gV2FpdCAyNTBtcyBiZWZvcmUgbG9hZCgpaW5nIHRvIG1ha2Ugc3VyZSBzZXR0aW5nIHNyYyBk
aWQgbm90IGtpY2sgb2ZmIHRoZSBsb2FkLgorICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
KiogUGF1c2luZy4uLjxicj4iKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGxvYWQsIDI1
MCk7CisgICAgICAgICAgICAgICAgZmFpbFRlc3RJbigyMDAwKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgp
Ij4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzIHByZWxvYWQ9YXV0bz48L3ZpZGVvPgorICAgICAg
ICA8cD5UZXN0IHRoYXQgIm5vIHByZWxvYWRpbmcgcmVzdHJpY3Rpb24iIGRpc2FibGVzIHByZWxv
YWRpbmcgaW4gc3BpdGUgb2YgcHJlbG9hZD0nYXV0bycuPC9wPgorICAgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>