<?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>184737</bug_id>
          
          <creation_ts>2018-04-18 09:52:35 -0700</creation_ts>
          <short_desc>[MSE] Add allSamplesInTrackEnqueued event</short_desc>
          <delta_ts>2018-04-24 16:33:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alicia Boya García">aboya</reporter>
          <assigned_to name="Alicia Boya García">aboya</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jfbastien</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415572</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-04-18 09:52:35 -0700</bug_when>
    <thetext>MediaSource has a .endOfStream() method to signal when there are no more frames
after the ones currently buffered.

This bit of data is important for some multimedia frameworks. For instance, in
GStreamer a stream of frames being decoded should be terminated by a
&apos;end-of-stream&apos; (EOS) event that has a similar meaning. Some GStreamer elements
will expect this event in order to work properly under some circumstances.

Unfortunately currently WebKit provides no mechanism for this: an event of
sorts should be emitted after no more frames are going to be enqueued to signal
the end of the stream. The closest mechanism WebKit has for this is
`markEndOfStream()`, but it&apos;s not exactly the same: markEndOfStream() informs
that -- as far as network buffering is concerned -- we are done; but at that
point there may still be (and often are) many frames waiting in the
decodeQueue, so it would be wrong to signal the decoder that there are no more
frames.

This patch introduces a new optional method in SourceBufferPrivate,
`allSamplesInTrackEnqueued(const AtomicString&amp; trackID)` that is called
whenever the MediaSource is in &quot;ended&quot; state (the user has called
`MediaSource.endOfStream()`) and the decodeQueue is empty. Media framework
implementations can use this method to send a EOS event to a decoder that needs
it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415600</commentid>
    <comment_count>1</comment_count>
      <attachid>338229</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-04-18 11:11:05 -0700</bug_when>
    <thetext>Created attachment 338229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415626</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-04-18 11:55:21 -0700</bug_when>
    <thetext>Changes to SourceBuffer and MediaSource LGTM, but probably needs a GTK reviewer for the GTK parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416842</commentid>
    <comment_count>3</comment_count>
      <attachid>338229</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-23 04:19:06 -0700</bug_when>
    <thetext>Comment on attachment 338229
Patch

Clearing flags on attachment: 338229

Committed r230909: &lt;https://trac.webkit.org/changeset/230909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416843</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-23 04:19:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416844</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-23 04:20:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/39642725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416949</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2018-04-23 13:19:36 -0700</bug_when>
    <thetext>Looks like this broke some 32-bit builds due to a mismatch between trackBuffer.decodeQueue.size() (a size_t) and the printf %lu directive. This should probably be a %zu instead. Don&apos;t know why the mac-32bit EWS bot didn&apos;t catch this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416965</commentid>
    <comment_count>7</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-04-23 14:09:29 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #6)
&gt; Looks like this broke some 32-bit builds due to a mismatch between
&gt; trackBuffer.decodeQueue.size() (a size_t) and the printf %lu directive. This
&gt; should probably be a %zu instead. Don&apos;t know why the mac-32bit EWS bot
&gt; didn&apos;t catch this though.

Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417120</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-24 01:33:37 -0700</bug_when>
    <thetext>Ryan Haddad attempted a build fix in &lt;https://trac.webkit.org/changeset/230922&gt;. As it turned out this caused an compile-time failure on an Apple Internal debug builder that treated size_type (the return value of std::map::size()) as equivalent to unsigned int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417121</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-24 01:34:25 -0700</bug_when>
    <thetext>Cast std::map::size() to size_t before logging and committed in &lt;https://trac.webkit.org/changeset/230951&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417130</commentid>
    <comment_count>10</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-24 03:19:33 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #6)
&gt; Looks like this broke some 32-bit builds due to a mismatch between
&gt; trackBuffer.decodeQueue.size() (a size_t) and the printf %lu directive. This
&gt; should probably be a %zu instead. Don&apos;t know why the mac-32bit EWS bot
&gt; didn&apos;t catch this though.

Maybe because LOG calls are compiled out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417131</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-04-24 03:21:11 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #10)
&gt; (In reply to Jer Noble from comment #6)
&gt; &gt; Looks like this broke some 32-bit builds due to a mismatch between
&gt; &gt; trackBuffer.decodeQueue.size() (a size_t) and the printf %lu directive. This
&gt; &gt; should probably be a %zu instead. Don&apos;t know why the mac-32bit EWS bot
&gt; &gt; didn&apos;t catch this though.
&gt; 
&gt; Maybe because LOG calls are compiled out?

And in the console I don&apos;t see any Apple debug build for 32bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417134</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-24 04:53:47 -0700</bug_when>
    <thetext>&quot;&quot;&quot;According to &lt;​http://en.cppreference.com/w/cpp/container/map&gt; size_type is &quot;usually a size_t&quot;, but it may not be.&quot;&quot;&quot;

Because programming is more fun when types are uncertain!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417183</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-24 10:22:26 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)
&gt; &quot;&quot;&quot;According to &lt;​http://en.cppreference.com/w/cpp/container/map&gt; size_type
&gt; is &quot;usually a size_t&quot;, but it may not be.&quot;&quot;&quot;
&gt; 
&gt; Because programming is more fun when types are uncertain!

:)

CC&apos;ing JF Bastien. Maybe he has some insight in the ambiguousness or can help propose a change to remove this ambiguousness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417195</commentid>
    <comment_count>14</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-24 10:52:53 -0700</bug_when>
    <thetext>I&apos;m not sure I understand: casting to size_t and using %zu didn&apos;t work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417196</commentid>
    <comment_count>15</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2018-04-24 10:57:45 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #14)
&gt; I&apos;m not sure I understand: casting to size_t and using %zu didn&apos;t work?

Casting surely works, what is surprising is that std::map::size_type is not guaranteed to be a std::size_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417200</commentid>
    <comment_count>16</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-24 11:11:39 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #15)
&gt; (In reply to JF Bastien from comment #14)
&gt; &gt; I&apos;m not sure I understand: casting to size_t and using %zu didn&apos;t work?
&gt; 
&gt; Casting surely works, what is surprising is that std::map::size_type is not
&gt; guaranteed to be a std::size_t.

Ah OK gotcha!

To answer your question: the Committee works in mysterious ways 🤡

More seriously: I have no clue. I dug in the standard and see no obvious reason. I&apos;m asking committee folks, and might write a paper to Make It So.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417343</commentid>
    <comment_count>17</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-24 16:33:04 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #16)
&gt; (In reply to Alicia Boya García from comment #15)
&gt; &gt; (In reply to JF Bastien from comment #14)
&gt; &gt; &gt; I&apos;m not sure I understand: casting to size_t and using %zu didn&apos;t work?
&gt; &gt; 
&gt; &gt; Casting surely works, what is surprising is that std::map::size_type is not
&gt; &gt; guaranteed to be a std::size_t.
&gt; 
&gt; Ah OK gotcha!
&gt; 
&gt; To answer your question: the Committee works in mysterious ways 🤡
&gt; 
&gt; More seriously: I have no clue. I dug in the standard and see no obvious
&gt; reason. I&apos;m asking committee folks, and might write a paper to Make It So.

I asked and it sounds like there&apos;s not a good reason to not have this guarantee (size_type == size_t) for a container which uses the *default* allocator. It makes sense to let users customize size_type with their own allocator (say on 64-bit you want smaller vector, so you restrict to 2GiB of 4GiB), but that&apos;s not your case.

It&apos;ll likely be an ABI break for some implementations, but I think there are workarounds for them. I can probably get it fixed for C++20 if you think it&apos;s worth going for.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338229</attachid>
            <date>2018-04-18 11:11:05 -0700</date>
            <delta_ts>2018-04-23 04:19:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184737-20180418201103.patch</filename>
            <type>text/plain</type>
            <size>12046</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExNWIzNWYyZGQ2MzQ2
MmY5NWJmN2I5ZjNiZWFiZTg4YWY4MTU5MC4uZWNhNmRhNDAwNzc2ZDA3NWYxNTMzMDM3NzFjNjJm
MGZjZjk4YjVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE4LTA0LTE4ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBBZGQg
YWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZCBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzM3CisKKyAgICAgICAgTWVkaWFTb3VyY2UgaGFz
IGEgLmVuZE9mU3RyZWFtKCkgbWV0aG9kIHRvIHNpZ25hbCB3aGVuIHRoZXJlIGFyZSBubyBtb3Jl
IGZyYW1lcworICAgICAgICBhZnRlciB0aGUgb25lcyBjdXJyZW50bHkgYnVmZmVyZWQuCisKKyAg
ICAgICAgVGhpcyBiaXQgb2YgZGF0YSBpcyBpbXBvcnRhbnQgZm9yIHNvbWUgbXVsdGltZWRpYSBm
cmFtZXdvcmtzLiBGb3IgaW5zdGFuY2UsIGluCisgICAgICAgIEdTdHJlYW1lciBhIHN0cmVhbSBv
ZiBmcmFtZXMgYmVpbmcgZGVjb2RlZCBzaG91bGQgYmUgdGVybWluYXRlZCBieSBhCisgICAgICAg
ICdlbmQtb2Ytc3RyZWFtJyAoRU9TKSBldmVudCB0aGF0IGhhcyBhIHNpbWlsYXIgbWVhbmluZy4g
U29tZSBHU3RyZWFtZXIgZWxlbWVudHMKKyAgICAgICAgd2lsbCBleHBlY3QgdGhpcyBldmVudCBp
biBvcmRlciB0byB3b3JrIHByb3Blcmx5IHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4KKworICAg
ICAgICBVbmZvcnR1bmF0ZWx5IGN1cnJlbnRseSBXZWJLaXQgcHJvdmlkZXMgbm8gbWVjaGFuaXNt
IGZvciB0aGlzOiBhbiBldmVudCBvZgorICAgICAgICBzb3J0cyBzaG91bGQgYmUgZW1pdHRlZCBh
ZnRlciBubyBtb3JlIGZyYW1lcyBhcmUgZ29pbmcgdG8gYmUgZW5xdWV1ZWQgdG8gc2lnbmFsCisg
ICAgICAgIHRoZSBlbmQgb2YgdGhlIHN0cmVhbS4gVGhlIGNsb3Nlc3QgbWVjaGFuaXNtIFdlYktp
dCBoYXMgZm9yIHRoaXMgaXMKKyAgICAgICAgYG1hcmtFbmRPZlN0cmVhbSgpYCwgYnV0IGl0J3Mg
bm90IGV4YWN0bHkgdGhlIHNhbWU6IG1hcmtFbmRPZlN0cmVhbSgpIGluZm9ybXMKKyAgICAgICAg
dGhhdCAtLSBhcyBmYXIgYXMgbmV0d29yayBidWZmZXJpbmcgaXMgY29uY2VybmVkIC0tIHdlIGFy
ZSBkb25lOyBidXQgYXQgdGhhdAorICAgICAgICBwb2ludCB0aGVyZSBtYXkgc3RpbGwgYmUgKGFu
ZCBvZnRlbiBhcmUpIG1hbnkgZnJhbWVzIHdhaXRpbmcgaW4gdGhlCisgICAgICAgIGRlY29kZVF1
ZXVlLCBzbyBpdCB3b3VsZCBiZSB3cm9uZyB0byBzaWduYWwgdGhlIGRlY29kZXIgdGhhdCB0aGVy
ZSBhcmUgbm8gbW9yZQorICAgICAgICBmcmFtZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIGEgbmV3IG9wdGlvbmFsIG1ldGhvZCBpbiBTb3VyY2VCdWZmZXJQcml2YXRlLAorICAg
ICAgICBgYWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpYCB0aGF0IGlzIGNhbGxlZAorICAgICAgICB3aGVuZXZlciB0aGUgTWVkaWFTb3VyY2UgaXMg
aW4gImVuZGVkIiBzdGF0ZSAodGhlIHVzZXIgaGFzIGNhbGxlZAorICAgICAgICBgTWVkaWFTb3Vy
Y2UuZW5kT2ZTdHJlYW0oKWApIGFuZCB0aGUgZGVjb2RlUXVldWUgaXMgZW1wdHkuIE1lZGlhIGZy
YW1ld29yaworICAgICAgICBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSB0aGlzIG1ldGhvZCB0byBz
ZW5kIGEgRU9TIGV2ZW50IHRvIGEgZGVjb2RlciB0aGF0IG5lZWRzCisgICAgICAgIGl0LgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJj
ZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJvdmlk
ZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnRyeVNpZ25hbEFs
bFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojp0cnlTaWduYWxBbGxTYW1wbGVzRW5xdWV1ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZTo6
YWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTo6YWxsU2FtcGxlc0luVHJh
Y2tFbnF1ZXVlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9N
ZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvUGxheWJhY2tQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF5YmFja1BpcGVsaW5lOjphbGxTYW1wbGVzSW5UcmFja0VucXVldWVkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1BsYXliYWNrUGlwZWxpbmUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6YWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmg6CisK
IDIwMTgtMDQtMTggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTjogVXNpbmcgdGhlIHJlbG9hZCBidXR0b24gd2hpbGUgb2ZmbGluZSBwdXNoZXMg
aWRlbnRpY2FsIHBhZ2VzIG9udG8gdGhlIGJhY2svZm9yd2FyZCBsaXN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGQyMzQ5
ZTk5Nzg0OTdhYTQ2NjNmYjYxYjcxMTYyMjIwNTA2Nzc0ZjUuLmRjYjgyYzNkNmE3MWI1NTBmYjhi
NzdjYmJiYjVhNzg0N2QyYjNhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC01ODcsNiArNTg3LDggQEAgdm9pZCBNZWRp
YVNvdXJjZTo6c3RyZWFtRW5kZWRXaXRoRXJyb3Ioc3RkOjpvcHRpb25hbDxFbmRPZlN0cmVhbUVy
cm9yPiBlcnJvcikKICAgICAgICAgc2V0RHVyYXRpb25JbnRlcm5hbChtYXhFbmRUaW1lKTsKIAog
ICAgICAgICAvLyAyLiBOb3RpZnkgdGhlIG1lZGlhIGVsZW1lbnQgdGhhdCBpdCBub3cgaGFzIGFs
bCBvZiB0aGUgbWVkaWEgZGF0YS4KKyAgICAgICAgZm9yIChhdXRvJiBzb3VyY2VCdWZmZXIgOiAq
bV9zb3VyY2VCdWZmZXJzKQorICAgICAgICAgICAgc291cmNlQnVmZmVyLT50cnlTaWduYWxBbGxT
YW1wbGVzRW5xdWV1ZWQoKTsKICAgICAgICAgbV9wcml2YXRlLT5tYXJrRW5kT2ZTdHJlYW0oTWVk
aWFTb3VyY2VQcml2YXRlOjpFb3NOb0Vycm9yKTsKICAgICB9IGVsc2UgaWYgKGVycm9yID09IEVu
ZE9mU3RyZWFtRXJyb3I6Ok5ldHdvcmspIHsKICAgICAgICAgLy8g4oazIElmIGVycm9yIGlzIHNl
dCB0byAibmV0d29yayIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAppbmRleCBlMDNhMzgzODkxMGRiYTk3YWMwMjZkOGNkNzI4M2Ni
ODFiMDY5OTdjLi41NmRkNmQ1ZjkxOTA2NWE2ZDk5MjA1NzkyYzY3NTU5ODg4OWQ1OTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCkBAIC0xODUyLDcgKzE4NTIsMjMgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRp
YURhdGEoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcKICNlbmRp
ZgogICAgIH0KIAotICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1l
ZGlhRGF0YSglcCkgLSBFbnF1ZXVlZCAldSBzYW1wbGVzIiwgdGhpcywgZW5xdWV1ZWRTYW1wbGVz
KTsKKyAgICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEo
JXApIC0gRW5xdWV1ZWQgJXUgc2FtcGxlcywgJWx1IHJlbWFpbmluZyIsIHRoaXMsIGVucXVldWVk
U2FtcGxlcywgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuc2l6ZSgpKTsKKworICAgIHRyeVNpZ25h
bEFsbFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQodHJhY2tJRCk7Cit9CisKK3ZvaWQgU291cmNlQnVm
ZmVyOjp0cnlTaWduYWxBbGxTYW1wbGVzSW5UcmFja0VucXVldWVkKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHJhY2tJRCkKK3sKKyAgICBpZiAobV9zb3VyY2UtPmlzRW5kZWQoKSAmJiBtX3RyYWNrQnVm
ZmVyTWFwLmdldCh0cmFja0lEKS5kZWNvZGVRdWV1ZS5lbXB0eSgpKSB7CisgICAgICAgIExPRyhN
ZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6dHJ5U2lnbmFsQWxsU2FtcGxlc0luVHJhY2tFbnF1
ZXVlZCglcCkgLSBBbGwgc2FtcGxlcyBpbiB0cmFjayBcIiVzXCIgZW5xdWV1ZWQuIiwgdGhpcywg
dHJhY2tJRC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbV9wcml2YXRlLT5hbGxT
YW1wbGVzSW5UcmFja0VucXVldWVkKHRyYWNrSUQpOworICAgIH0KK30KKwordm9pZCBTb3VyY2VC
dWZmZXI6OnRyeVNpZ25hbEFsbFNhbXBsZXNFbnF1ZXVlZCgpCit7CisgICAgZm9yIChjb25zdCBB
dG9taWNTdHJpbmcmIHRyYWNrSUQgOiBtX3RyYWNrQnVmZmVyTWFwLmtleXMoKSkKKyAgICAgICAg
dHJ5U2lnbmFsQWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZCh0cmFja0lEKTsKIH0KIAogdm9pZCBT
b3VyY2VCdWZmZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZm
ZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgK
aW5kZXggMGQ3YTE0NGRmNWRjN2E3ZjBhNzFjZGUzYmYxZjI1NGExZDU5MWZjYi4uYzFhM2RjNWIw
OGIzY2E5YmNmYWEzZjAzODQ5NTM5OTBiNzlmNWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0xMTUsNiArMTE1LDggQEAg
cHVibGljOgogCiAgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAor
ICAgIHZvaWQgdHJ5U2lnbmFsQWxsU2FtcGxlc0VucXVldWVkKCk7CisKIHByaXZhdGU6CiAgICAg
U291cmNlQnVmZmVyKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiYmLCBNZWRpYVNvdXJjZSopOwog
CkBAIC0xODAsNiArMTgyLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmFuZ2VSZW1vdmFsKGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpOwogCisgICAgdm9pZCB0cnlTaWduYWxB
bGxTYW1wbGVzSW5UcmFja0VucXVldWVkKGNvbnN0IEF0b21pY1N0cmluZyYpOworCiAgICAgZnJp
ZW5kIGNsYXNzIEludGVybmFsczsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBi
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3Qg
QXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggNWYyMjBhZjdkZDQ5Y2VmM2VhZDc4NDI3
OTRhNmFmYWU0OTY3YjM4YS4uMzU1OTJlYjdiNGUxNGUwNjM0ZWMxYWQ1MmRhMDY2Njg3NDg1ZDU4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJj
ZUJ1ZmZlclByaXZhdGUuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVu
cXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgYWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZChjb25zdCBBdG9taWNT
dHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0
IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFj
dGl2ZShib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1T
RS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01l
ZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcAppbmRleCBjYThiOWMwMmY3ODA1MDkyYzc1
NzVlYTc3NDcwNzRlYzQ2NDMzMGVlLi5lNWQzZjhjOGMxOTJkOWY5YTY0MmFiMGY1ODU0OGVjMTZh
MWEzOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50
R1N0cmVhbWVyTVNFLmNwcApAQCAtMTk2LDYgKzE5NiwxNCBAQCB2b2lkIE1lZGlhU291cmNlQ2xp
ZW50R1N0cmVhbWVyTVNFOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUp
CiAgICAgICAgIG1fcGxheWVyUHJpdmF0ZS0+bV9wbGF5YmFja1BpcGVsaW5lLT5lbnF1ZXVlU2Ft
cGxlKFdURk1vdmUoc2FtcGxlKSk7CiB9CiAKK3ZvaWQgTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFt
ZXJNU0U6OmFsbFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lkKQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX3Bs
YXllclByaXZhdGUpCisgICAgICAgIG1fcGxheWVyUHJpdmF0ZS0+bV9wbGF5YmFja1BpcGVsaW5l
LT5hbGxTYW1wbGVzSW5UcmFja0VucXVldWVkKHRyYWNrSWQpOworfQorCiBHUmVmUHRyPFdlYktp
dE1lZGlhU3JjPiBNZWRpYVNvdXJjZUNsaWVudEdTdHJlYW1lck1TRTo6d2ViS2l0TWVkaWFTcmMo
KQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFTb3VyY2VDbGll
bnRHU3RyZWFtZXJNU0UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvTWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0UuaAppbmRleCAxMjc5MDNjYzM3
NWQ1NzcxNjdhNmI0NGNiN2M4ZDk3N2VlOGExMDhiLi41OWFmM2Y5Mjk0OTAxODBmZjkxZTkwODYw
MzJjYzc3ZDhlZDJhYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL01lZGlhU291cmNlQ2xpZW50R1N0cmVhbWVyTVNFLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVNvdXJj
ZUNsaWVudEdTdHJlYW1lck1TRS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI+KTsKICAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZyk7CiAgICAgdm9pZCBlbnF1ZXVlU2Ft
cGxlKFJlZjxNZWRpYVNhbXBsZT4mJik7CisgICAgdm9pZCBhbGxTYW1wbGVzSW5UcmFja0VucXVl
dWVkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdm9pZCBjbGVhclBsYXllclByaXZhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvUGxheWJhY2tQaXBlbGluZS5jcHAKaW5kZXggZGQ2NWQwZWE0
ZTIxMDdjNzVlZjVmZTZmNzZlNGM2NDVjMmI2OTM4NC4uMDZkNTg2MmM1MDYzZGJkZThkMDI5NWMw
YTBlNjljMzk1MDg1ZTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1BsYXliYWNrUGlwZWxpbmUuY3Bw
CkBAIC01MTMsNiArNTEzLDEyIEBAIHZvaWQgUGxheWJhY2tQaXBlbGluZTo6ZW5xdWV1ZVNhbXBs
ZShSZWY8TWVkaWFTYW1wbGU+JiYgbWVkaWFTYW1wbGUpCiAgICAgfQogfQogCit2b2lkIFBsYXli
YWNrUGlwZWxpbmU6OmFsbFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQoY29uc3QgQXRvbWljU3RyaW5n
JiB0cmFja0lkKQoreworICAgIFN0cmVhbSogc3RyZWFtID0gZ2V0U3RyZWFtQnlUcmFja0lkKG1f
d2ViS2l0TWVkaWFTcmMuZ2V0KCksIHRyYWNrSWQpOworICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9z
dHJlYW0oR1NUX0FQUF9TUkMoc3RyZWFtLT5hcHBzcmMpKTsKK30KKwogR3N0RWxlbWVudCogUGxh
eWJhY2tQaXBlbGluZTo6cGlwZWxpbmUoKQogewogICAgIGlmICghbV93ZWJLaXRNZWRpYVNyYyB8
fCAhR1NUX0VMRU1FTlRfUEFSRU5UKEdTVF9FTEVNRU5UKG1fd2ViS2l0TWVkaWFTcmMuZ2V0KCkp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvUGxheWJhY2tQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKaW5kZXggN2Y3MmU0N2ZhNzc5MTYw
ZTdkZTA0YzI4YTU1NDZhY2NmZGI2MzVjYS4uM2QyMTU4OGJmYTg2OGJjZTI3OWEwMmZjNWY1ODE0
Y2U2Y2Y1YjJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9QbGF5YmFja1BpcGVsaW5lLmgKQEAgLTY3LDYg
KzY3LDcgQEAgcHVibGljOgogICAgIC8vIEZyb20gU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci4KICAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZyk7CiAgICAgdm9pZCBlbnF1ZXVlU2FtcGxl
KFJlZjxNZWRpYVNhbXBsZT4mJik7CisgICAgdm9pZCBhbGxTYW1wbGVzSW5UcmFja0VucXVldWVk
KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgR3N0RWxlbWVudCogcGlwZWxpbmUoKTsKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAppbmRleCBkNDA5MjQxNjNlYTNlNGJlZGFkMTllYTc1MzZkOWQ4ODZhY2MwY2E1
Li4wZjFjNGU2YzkzYTI3YzVjZmQxODNjZGY3MjAyMTkzZmU1MTg5MTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEx
OCw2ICsxMTgsMTEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnMKICAgICBtX2NsaWVudC0+ZW5x
dWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSkpOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmFsbFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQoY29uc3QgQXRvbWljU3RyaW5n
JiB0cmFja0lkKQoreworICAgIG1fY2xpZW50LT5hbGxTYW1wbGVzSW5UcmFja0VucXVldWVkKHRy
YWNrSWQpOworfQorCiBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmlzUmVhZHlG
b3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2lzUmVh
ZHlGb3JNb3JlU2FtcGxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNTUwMjZjMTc5MjRkMmVhYTIxN2I5MmI4NjMwM2QwNDA4
MmU3M2VkMi4uZWI0NjkwMjQ4NWYwYzQxMzVkNzZlMzMyNTk4OGJiNTY3NzUxMTA3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAg
LTY0LDYgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJp
bmcmKSBmaW5hbDsKICAgICB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGFsbFNhbXBsZXNJblRyYWNrRW5x
dWV1ZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBzZXRBY3RpdmUo
Ym9vbCkgZmluYWw7CiAgICAgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>