<?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>56930</bug_id>
          
          <creation_ts>2011-03-23 09:30:42 -0700</creation_ts>
          <short_desc>[GStreamer] RTSP playback broken</short_desc>
          <delta_ts>2011-04-12 01:54:08 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372192</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-23 09:30:42 -0700</bug_when>
    <thetext>Source/WebCore/manual-tests/video-rtsp.html loads but no video is displayed and I hear sound-cracks, the 
rtsp:// link plays fine with gst-launch.

Needs some further investigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380536</commentid>
    <comment_count>1</comment_count>
      <attachid>88462</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-06 10:13:35 -0700</bug_when>
    <thetext>Created attachment 88462
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380541</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-06 10:15:57 -0700</bug_when>
    <thetext>Attachment 88462 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1

Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:54:  The parameter name &quot;player&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:55:  The parameter name &quot;player&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381181</commentid>
    <comment_count>3</comment_count>
      <attachid>88592</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-07 01:38:38 -0700</bug_when>
    <thetext>Created attachment 88592
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381845</commentid>
    <comment_count>4</comment_count>
      <attachid>88592</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-04-07 16:45:14 -0700</bug_when>
    <thetext>Comment on attachment 88592
proposed patch

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

Looks good, though please make callback static, unless there is a reason they should be exposed in the header.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:215
&gt; +void mediaPlayerPrivateVideoChangedCallback(GObject* element, MediaPlayerPrivateGStreamer* player)

You should omit &quot;element&quot; here. Why aren&apos;t all of these callbacks defined statically inside this file? Are they shared anywhere?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:220
&gt; +void mediaPlayerPrivateAudioChangedCallback(GObject* element, MediaPlayerPrivateGStreamer* player)

Ditto.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:55
&gt; +void mediaPlayerPrivateVideoChangedCallback(GObject* element, MediaPlayerPrivateGStreamer*);
&gt; +void mediaPlayerPrivateAudioChangedCallback(GObject* element, MediaPlayerPrivateGStreamer*);
&gt; +gboolean mediaPlayerPrivateAudioChangeTimeoutCallback(MediaPlayerPrivateGStreamer*);
&gt; +gboolean mediaPlayerPrivateVideoChangeTimeoutCallback(MediaPlayerPrivateGStreamer*);

As above, couldn&apos;t these just be defined statically in the C++ file? Why make them public? Also, you should omit the &quot;element&quot; variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383075</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-11 03:12:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 88592 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88592&amp;action=review
&gt; 
&gt; Looks good, though please make callback static, unless there is a reason they should be exposed in the header.

Making the callbacks static leads to:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff23102b7 in g_object_get (_object=&lt;value optimized out&gt;, first_property_name=
    0x7ffff606b9a8 &quot;n-video&quot;) at gobject.c:1867
1867	  g_return_if_fail (G_IS_OBJECT (object));
(gdb) bt
#0  0x00007ffff23102b7 in g_object_get (_object=&lt;value optimized out&gt;, first_property_name=
    0x7ffff606b9a8 &quot;n-video&quot;) at gobject.c:1867
#1  0x00007ffff505e527 in WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo (this=0xcc0000)
    at ../../../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:635
#2  0x00007ffff505cd74 in WebCore::mediaPlayerPrivateVideoChangeTimeoutCallback (player=0xcc0000)
    at ../../../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:235
#3  0x00007ffff1a17edb in g_timeout_dispatch (source=0x7fffe00e01a0, callback=&lt;value optimized out&gt;, 
    user_data=&lt;value optimized out&gt;) at gmain.c:3882
#4  0x00007ffff1a165a3 in g_main_dispatch (context=0x6417e0) at gmain.c:2440
#5  g_main_context_dispatch (context=0x6417e0) at gmain.c:3013
#6  0x00007ffff1a16d80 in g_main_context_iterate (context=0x6417e0, block=1, dispatch=1, 
    self=&lt;value optimized out&gt;) at gmain.c:3091
#7  0x00007ffff1a173f2 in g_main_loop_run (loop=0xce5780) at gmain.c:3299
#8  0x00007ffff4199557 in IA__gtk_main () at gtkmain.c:1255
#9  0x0000000000402b09 in main (argc=2, argv=0x7fffffffd6c8) at ../../../../Tools/GtkLauncher/main.c:274
(gdb) f 1
#1  0x00007ffff505e527 in WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo (this=0xcc0000)
    at ../../../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:635
635	        g_object_get(m_playBin, &quot;n-video&quot;, &amp;videoTracks, NULL);
(gdb) p m_playBin
$1 = (GstElement *) 0xe1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383089</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-11 03:59:53 -0700</bug_when>
    <thetext>Sorry Martin, my initial patch was wrong in the first place...

The notify::caps signal should not reuse mediaPlayerPrivateVideoChangedCallback(). We need a new handler with a different signature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383090</commentid>
    <comment_count>7</comment_count>
      <attachid>88985</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-11 04:00:53 -0700</bug_when>
    <thetext>Created attachment 88985
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383092</commentid>
    <comment_count>8</comment_count>
      <attachid>88987</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-11 04:03:37 -0700</bug_when>
    <thetext>Created attachment 88987
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383204</commentid>
    <comment_count>9</comment_count>
      <attachid>88987</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-04-11 09:13:15 -0700</bug_when>
    <thetext>Comment on attachment 88987
proposed patch

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

Thanks for fixing this up!

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:49
&gt;  gboolean mediaPlayerPrivateMessageCallback(GstBus* bus, GstMessage* message, gpointer data);
&gt; -void mediaPlayerPrivateVolumeChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);
&gt; -void mediaPlayerPrivateMuteChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);
&gt;  void mediaPlayerPrivateSourceChangedCallback(GObject* element, GParamSpec* pspec, gpointer data);

It&apos;d be great to remove to remov the remaining two callback in a followup patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383888</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-12 01:54:08 -0700</bug_when>
    <thetext>Committed r83566: &lt;http://trac.webkit.org/changeset/83566&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88462</attachid>
            <date>2011-04-06 10:13:35 -0700</date>
            <delta_ts>2011-04-07 01:38:38 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>13406</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBmNjAxOWRkZTc4N2Y2NTdkODE4MDIzMWUzNGE1NzM2NTNhN2U1NzE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDYgQXByIDIwMTEgMTk6MTU6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVz
dHMvdmlkZW8tcnRzcC5odG1sICAgICAgICB8ICAgIDYgKy0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICA4MyArKysrKysrKysrKy0tLS0tLS0t
LQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAg
IDIwICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMTFlNGUyNi4uZjFkMTRhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDExLTA0LTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1N0cmVhbWVyXSBSVFNQIHBsYXliYWNrIGJyb2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MzAKKworICAgICAgICBSZWx5IG9uIHthdWRpbyx2
aWRlb30tY2hhbmdlZCBwbGF5YmluMiBzaWduYWxzIGluc3RlYWQgb2YgdGhlCisgICAgICAgIC10
YWdzLWNoYW5nZWQgc2lnbmFscyBiZWNhdXNlIHNvbWUgbWVkaWEgZG9uJ3QgcHJvdmlkZSB0YWdz
IGFuZAorICAgICAgICB0aGVuIGNhbiB0cmljayB0aGUgbWVkaWEtcGxheWVyIHRvIG5vdCBwYWlu
dCB2aWRlbywgZm9yIGluc3RhbmNlLgorCisgICAgICAgIEFsc28gdHJpZ2dlciBhIHZpZGVvIHNp
emUgY2FsY3VsYXRpb24gYWZ0ZXIgdGhlIHZpZGVvIHNpbmsKKyAgICAgICAgbmVnb3RpYXRlZCBp
dHMgY2Fwcy4gVGhpcyBpcyB1c2VmdWwgaW4gdGhlIGNhc2VzIHdoZXJlCisgICAgICAgIGF1ZGlv
LWNoYW5nZWQgc2lnbmFsIGlzIGVtaXR0ZWQgYnV0IHRoZSB2aWRlbyBzaW5rIHRha2VzIG1vcmUg
dGltZQorICAgICAgICB0byBuZWdvY2lhdGUgY2FwcyB3aXRoIGl0cyBwZWVyLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyB0aGUgcnRzcCBtYW51YWwtdGVzdCB3aXRoIGEgbmV3IHN0
cmVhbSB1cmwKKyAgICAgICAgd2hpY2ggc2VlbXMgdG8gYmUgbW9yZSBwZXJtYW5lbnQgdGhhbiB0
aGUgcHJldmlvdXMgV1dEQyBrZXlub3RlCisgICAgICAgIHN0cmVhbS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjptZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZVRpbWVvdXRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5v
dGlmeVBsYXllck9mVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjphdWRpb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Lmg6CisKIDIwMTEtMDQtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgTW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHBvc2l0aW9uTmV3RmxvYXRPbkxpbmUgaW4g
UmVuZGVyQmxvY2suaCBhZnRlciByODMwNDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3Rz
L3ZpZGVvLXJ0c3AuaHRtbAppbmRleCA0ZmZmOTg3Li5mNTAwZjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hbnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWwKQEAgLTMsOSArMyw3IEBACiA8dGl0bGU+
UlRTUCBwbGF5YmFjayB0ZXN0PC90aXRsZT4KIDwvaGVhZD4KIDxib2R5PgotPHZpZGVvIHdpdGg9
NjQwIGhlaWdodD0zNTIgYXV0b3BsYXkgY29udHJvbHMgc3JjPSJydHNwOi8vYTIwNDcudjE0MTFi
LmMxNDExLmcudnEuYWthbWFpc3RyZWFtLm5ldC81LzIwNDcvMTQxMS8yX2gyNjRfNjUwLzFhMWEx
YWU0NTRjNDMwOTUwMDY1ZGU0Y2JiMmY5NGMyMjY5NTBjN2FlNjU1YjYxYTQ4YTkxNDc1ZTI0M2Fj
ZGEzZGFjMTk0ODc5YWRkZTBmL3d3ZGNfMjAwNl8yXzY1MC5tb3YiPjwvdmlkZW8+Ci08cD5UZXN0
IHRoYXQgUXVpY2tUaW1lIGZpbGUgd2l0aCBSVFNQIFVSTCBsb2Fkcy48cD4KLTxzY3JpcHQ+c3Rh
cnQoKTwvc2NyaXB0PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8dmlkZW8gd2lkdGg9NDAw
IGhlaWdodD0zMDAgcHJlbG9hZD1ub25lIGF1dG9wbGF5IHNyYz0icnRzcDovL2Rtem9zeDAwMS5k
cGEuYWN0Lmdvdi5hdS9tZWRpdW0iPjwvdmlkZW8+Cis8cD5UZXN0IHRoYXQgUlRTUCBVUkwgbG9h
ZHMuPHA+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJmYjRjZWYuLjdkMjk2MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMTIsMjcgKzIxMiwy
NyBAQCBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91dENhbGxiYWNr
KE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcgogICAgIHJldHVybiBGQUxTRTsKIH0KIAotdm9p
ZCBtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCogZWxl
bWVudCwgZ2ludCBzdHJlYW1JZCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIp
Cit2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVs
ZW1lbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewotICAgIHBsYXll
ci0+dmlkZW9UYWdzQ2hhbmdlZChzdHJlYW1JZCk7CisgICAgcGxheWVyLT52aWRlb0NoYW5nZWQo
KTsKIH0KIAotdm9pZCBtZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2so
R09iamVjdCogZWxlbWVudCwgZ2ludCBzdHJlYW1JZCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKiBwbGF5ZXIpCit2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlZENhbGxiYWNr
KEdPYmplY3QqIGVsZW1lbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQog
ewotICAgIHBsYXllci0+YXVkaW9UYWdzQ2hhbmdlZChzdHJlYW1JZCk7CisgICAgcGxheWVyLT5h
dWRpb0NoYW5nZWQoKTsKIH0KIAotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdz
Q2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVy
KQorZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2FsbGJhY2so
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7Ci0gICAgLy8gVGhpcyBpcyB0
aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjphdWRpb1RhZ3ND
aGFuZ2VkLgotICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZBdWRpb1RhZ3MoKTsKKyAgICAvLyBU
aGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OmF1
ZGlvQ2hhbmdlZC4KKyAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mQXVkaW8oKTsKICAgICByZXR1
cm4gRkFMU0U7CiB9CiAKLWdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5n
ZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK2di
b29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewotICAgIC8vIFRoaXMgaXMgdGhlIGNh
bGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6dmlkZW9UYWdzQ2hhbmdl
ZC4KLSAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mVmlkZW9UYWdzKCk7CisgICAgLy8gVGhpcyBp
cyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjp2aWRlb0No
YW5nZWQuCisgICAgcGxheWVyLT5ub3RpZnlQbGF5ZXJPZlZpZGVvKCk7CiAgICAgcmV0dXJuIEZB
TFNFOwogfQogCkBAIC0zNDcsOCArMzQ3LDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAs
IG1fbXV0ZVRpbWVySGFuZGxlcigwKQogICAgICwgbV9oYXNWaWRlbyhmYWxzZSkKICAgICAsIG1f
aGFzQXVkaW8oZmFsc2UpCi0gICAgLCBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcigwKQotICAgICwg
bV92aWRlb1RhZ3NUaW1lckhhbmRsZXIoMCkKKyAgICAsIG1fYXVkaW9UaW1lckhhbmRsZXIoMCkK
KyAgICAsIG1fdmlkZW9UaW1lckhhbmRsZXIoMCkKIHsKICAgICBpZiAoZG9Hc3RJbml0KCkpCiAg
ICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4oKTsKQEAgLTM5MiwxMSArMzkyLDExIEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAg
aWYgKG1fdm9sdW1lVGltZXJIYW5kbGVyKQogICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92b2x1
bWVUaW1lckhhbmRsZXIpOwogCi0gICAgaWYgKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKQotICAg
ICAgICBnX3NvdXJjZV9yZW1vdmUobV92aWRlb1RhZ3NUaW1lckhhbmRsZXIpOworICAgIGlmICht
X3ZpZGVvVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92aWRlb1RpbWVy
SGFuZGxlcik7CiAKLSAgICBpZiAobV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIpCi0gICAgICAgIGdf
c291cmNlX3JlbW92ZShtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcik7CisgICAgaWYgKG1fYXVkaW9U
aW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVy
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3Ry
aW5nJiB1cmwpCkBAIC01ODIsNiArNTgyLDcgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICAgICAgfHwgIWdzdF92aWRlb19wYXJz
ZV9jYXBzX3BpeGVsX2FzcGVjdF9yYXRpbyhjYXBzLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRv
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
cGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5hdG9yKSkgewogICAgICAgICBnc3Rfb2JqZWN0X3VucmVm
KEdTVF9PQkpFQ1QocGFkKSk7CisgICAgICAgIC8vIFRoZSB2aWRlby1zaW5rIGhhcyBsaWtlbHkg
bm90IHlldCBuZWdvdGlhdGVkIGl0cyBjYXBzLgogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwog
ICAgIH0KIApAQCAtNjE4LDM5ICs2MTksNDAgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICByZXR1cm4gSW50U2l6ZShzdGF0aWNf
Y2FzdDxpbnQ+KHdpZHRoKSwgc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvVGFnc0NoYW5nZWQoZ2ludCBzdHJlYW1J
ZCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp2aWRlb0NoYW5nZWQoKQogewot
ICAgIGlmIChtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcikKLSAgICAgICAgZ19zb3VyY2VfcmVtb3Zl
KG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKTsKLSAgICBtX3ZpZGVvVGFnc1RpbWVySGFuZGxlciA9
IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5
ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CisgICAgaWYg
KG1fdmlkZW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZpZGVvVGlt
ZXJIYW5kbGVyKTsKKyAgICBtX3ZpZGVvVGltZXJIYW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCBy
ZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5n
ZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlb1RhZ3MoKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVmlkZW8oKQogewotICAgIG1fdmlkZW9UYWdzVGlt
ZXJIYW5kbGVyID0gMDsKKyAgICBtX3ZpZGVvVGltZXJIYW5kbGVyID0gMDsKIAotICAgIGdpbnQg
Y3VycmVudFZpZGVvID0gLTE7CisgICAgZ2ludCB2aWRlb1RyYWNrcyA9IDA7CiAgICAgaWYgKG1f
cGxheUJpbikKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgImN1cnJlbnQtdmlkZW8i
LCAmY3VycmVudFZpZGVvLCBOVUxMKTsKLSAgICBtX2hhc1ZpZGVvID0gY3VycmVudFZpZGVvID4g
LTE7CisgICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJuLXZpZGVvIiwgJnZpZGVvVHJh
Y2tzLCBOVUxMKTsKKworICAgIG1faGFzVmlkZW8gPSB2aWRlb1RyYWNrcyA+IDA7CiAgICAgbV9w
bGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZChtX3Bs
YXllcik7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphdWRpb1RhZ3ND
aGFuZ2VkKGdpbnQgc3RyZWFtSWQpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
YXVkaW9DaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIpCi0gICAg
ICAgIGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcik7Ci0gICAgbV9hdWRp
b1RhZ3NUaW1lckhhbmRsZXIgPSBnX3RpbWVvdXRfYWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFj
ayksIHRoaXMpOworICAgIGlmIChtX2F1ZGlvVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJj
ZV9yZW1vdmUobV9hdWRpb1RpbWVySGFuZGxlcik7CisgICAgbV9hdWRpb1RpbWVySGFuZGxlciA9
IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5
ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW9UYWdzKCkKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvKCkKIHsK
LSAgICBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlciA9IDA7CisgICAgbV9hdWRpb1RpbWVySGFuZGxl
ciA9IDA7CiAKLSAgICBnaW50IGN1cnJlbnRBdWRpbyA9IC0xOworICAgIGdpbnQgYXVkaW9UcmFj
a3MgPSAwOwogICAgIGlmIChtX3BsYXlCaW4pCi0gICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlC
aW4sICJjdXJyZW50LWF1ZGlvIiwgJmN1cnJlbnRBdWRpbywgTlVMTCk7Ci0gICAgbV9oYXNBdWRp
byA9IGN1cnJlbnRBdWRpbyA+IC0xOworICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAi
bi1hdWRpbyIsICZhdWRpb1RyYWNrcywgTlVMTCk7CisgICAgbV9oYXNBdWRpbyA9IGF1ZGlvVHJh
Y2tzID4gMDsKICAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJF
bmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKIH0KIApAQCAtMTM1OSw2ICsxMzYxLDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UmVjdCYKIAogICAgIGlmICghbV9wbGF5ZXItPnZpc2libGUoKSkKICAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKCFtX2J1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
NTg0LDggKzE1ODcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRl
R1NUUGxheUJpbigpCiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnZv
bHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNr
KSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnNvdXJj
ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKSwg
dGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6Om11dGUiLCBH
X0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsK
LSAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgInZpZGVvLXRhZ3MtY2hhbmdlZCIsIEdf
Q0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlZENhbGxiYWNrKSwgdGhp
cyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJhdWRpby10YWdzLWNoYW5nZWQi
LCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvVGFnc0NoYW5nZWRDYWxsYmFjayks
IHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAidmlkZW8tY2hhbmdlZCIs
IEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VkQ2FsbGJhY2spLCB0aGlz
KTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgImF1ZGlvLWNoYW5nZWQiLCBHX0NB
TExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAK
ICAgICBtX3dlYmtpdFZpZGVvU2luayA9IHdlYmtpdF92aWRlb19zaW5rX25ldygpOwogCkBAIC0x
NjU0LDYgKzE2NTcsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0
ZUdTVFBsYXlCaW4oKQogCiAgICAgLy8gU2V0IHRoZSBiaW4gYXMgdmlkZW8gc2luayBvZiBwbGF5
YmluLgogICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgbV92aWRlb1Np
bmtCaW4sIE5VTEwpOworCisKKyAgICBwYWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCht
X3dlYmtpdFZpZGVvU2luaywgInNpbmsiKTsKKyAgICBpZiAocGFkKSB7CisgICAgICAgIGdfc2ln
bmFsX2Nvbm5lY3QocGFkLCAibm90aWZ5OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclBy
aXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAgICAgICBnc3Rfb2JqZWN0X3Vu
cmVmKEdTVF9PQkpFQ1QocGFkKSk7CisgICAgfQorCiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA4MDAzODg3Li43YzM0MTEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC00OSwxMCAr
NDksMTAgQEAgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKEdzdEJ1
cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG8KIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
Vm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVj
LCBncG9pbnRlciBkYXRhKTsKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxs
YmFjayhHT2JqZWN0KiBlbGVtZW50LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIgZGF0YSk7
CiB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBl
bGVtZW50LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIgZGF0YSk7Ci12b2lkIG1lZGlhUGxh
eWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBnaW50
LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
QXVkaW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQsIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lciopOwotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9U
YWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxh
eWVyKTsKLWdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZVRpbWVvdXRD
YWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcik7Cit2b2lkIG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwordm9pZCBtZWRpYVBsYXllclByaXZhdGVBdWRpb0No
YW5nZWRDYWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIqKTsKK2dib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlVGltZW91dENhbGxi
YWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKTsKK2dib29sZWFuIG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lciogcGxheWVyKTsKIAogZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1l
Q2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwogZ2Jv
b2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIqKTsKQEAgLTEzMCwxMCArMTMwLDEwIEBAIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UgewogICAgICAgICAgICAgR3N0RWxlbWVudCogcGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBt
X3BsYXlCaW47IH0KICAgICAgICAgICAgIGJvb2wgcGlwZWxpbmVSZXNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzZXRQaXBlbGluZTsgfQogCi0gICAgICAgICAgICB2b2lkIHZpZGVvVGFnc0NoYW5n
ZWQoZ2ludCk7Ci0gICAgICAgICAgICB2b2lkIGF1ZGlvVGFnc0NoYW5nZWQoZ2ludCk7Ci0gICAg
ICAgICAgICB2b2lkIG5vdGlmeVBsYXllck9mVmlkZW9UYWdzKCk7Ci0gICAgICAgICAgICB2b2lk
IG5vdGlmeVBsYXllck9mQXVkaW9UYWdzKCk7CisgICAgICAgICAgICB2b2lkIHZpZGVvQ2hhbmdl
ZCgpOworICAgICAgICAgICAgdm9pZCBhdWRpb0NoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQg
bm90aWZ5UGxheWVyT2ZWaWRlbygpOworICAgICAgICAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZkF1
ZGlvKCk7CiAKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcihNZWRpYVBsYXllciopOwpAQCAtMTkxLDggKzE5MSw4IEBAIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UgewogICAgICAgICAgICAgZ3VpbnQgbV9tdXRlVGltZXJIYW5kbGVyOwogICAgICAgICAgICAg
Ym9vbCBtX2hhc1ZpZGVvOwogICAgICAgICAgICAgYm9vbCBtX2hhc0F1ZGlvOwotICAgICAgICAg
ICAgZ3VpbnQgbV9hdWRpb1RhZ3NUaW1lckhhbmRsZXI7Ci0gICAgICAgICAgICBndWludCBtX3Zp
ZGVvVGFnc1RpbWVySGFuZGxlcjsKKyAgICAgICAgICAgIGd1aW50IG1fYXVkaW9UaW1lckhhbmRs
ZXI7CisgICAgICAgICAgICBndWludCBtX3ZpZGVvVGltZXJIYW5kbGVyOwogICAgIH07CiB9CiAK
LS0gCjEuNy40LjE=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88592</attachid>
            <date>2011-04-07 01:38:38 -0700</date>
            <delta_ts>2011-04-11 04:00:53 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>13343</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiYzA2MjJjYjFjNzY3MGJlNjgwZWViM2I5NDYyMTAzMDdjYTU0NTBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDYgQXByIDIwMTEgMTk6MTU6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVz
dHMvdmlkZW8tcnRzcC5odG1sICAgICAgICB8ICAgIDYgKy0KIC4uLi9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICA4MyArKysrKysrKysrKy0tLS0tLS0t
LQogLi4uL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCAgICAgICAgfCAg
IDIwICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzQxOGEzNC4uN2E4NmYyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDExLTA0LTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1N0cmVhbWVyXSBSVFNQIHBsYXliYWNrIGJyb2tlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MzAKKworICAgICAgICBSZWx5IG9uIHthdWRpbyx2
aWRlb30tY2hhbmdlZCBwbGF5YmluMiBzaWduYWxzIGluc3RlYWQgb2YgdGhlCisgICAgICAgIC10
YWdzLWNoYW5nZWQgc2lnbmFscyBiZWNhdXNlIHNvbWUgbWVkaWEgZG9uJ3QgcHJvdmlkZSB0YWdz
IGFuZAorICAgICAgICB0aGVuIGNhbiB0cmljayB0aGUgbWVkaWEtcGxheWVyIHRvIG5vdCBwYWlu
dCB2aWRlbywgZm9yIGluc3RhbmNlLgorCisgICAgICAgIEFsc28gdHJpZ2dlciBhIHZpZGVvIHNp
emUgY2FsY3VsYXRpb24gYWZ0ZXIgdGhlIHZpZGVvIHNpbmsKKyAgICAgICAgbmVnb3RpYXRlZCBp
dHMgY2Fwcy4gVGhpcyBpcyB1c2VmdWwgaW4gdGhlIGNhc2VzIHdoZXJlCisgICAgICAgIGF1ZGlv
LWNoYW5nZWQgc2lnbmFsIGlzIGVtaXR0ZWQgYnV0IHRoZSB2aWRlbyBzaW5rIHRha2VzIG1vcmUg
dGltZQorICAgICAgICB0byBuZWdvY2lhdGUgY2FwcyB3aXRoIGl0cyBwZWVyLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyB0aGUgcnRzcCBtYW51YWwtdGVzdCB3aXRoIGEgbmV3IHN0
cmVhbSB1cmwKKyAgICAgICAgd2hpY2ggc2VlbXMgdG8gYmUgbW9yZSBwZXJtYW5lbnQgdGhhbiB0
aGUgcHJldmlvdXMgV1dEQyBrZXlub3RlCisgICAgICAgIHN0cmVhbS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjptZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZWRDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZVRpbWVvdXRDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjptZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5v
dGlmeVBsYXllck9mVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjphdWRpb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjcmVhdGVHU1RQbGF5QmluKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Lmg6CisKIDIwMTEtMDQtMDcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL21hbnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51
YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sCmluZGV4IDRmZmY5ODcuLmY1MDBmNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWwKKysrIGIvU291
cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL3ZpZGVvLXJ0c3AuaHRtbApAQCAtMyw5ICszLDcgQEAK
IDx0aXRsZT5SVFNQIHBsYXliYWNrIHRlc3Q8L3RpdGxlPgogPC9oZWFkPgogPGJvZHk+Ci08dmlk
ZW8gd2l0aD02NDAgaGVpZ2h0PTM1MiBhdXRvcGxheSBjb250cm9scyBzcmM9InJ0c3A6Ly9hMjA0
Ny52MTQxMWIuYzE0MTEuZy52cS5ha2FtYWlzdHJlYW0ubmV0LzUvMjA0Ny8xNDExLzJfaDI2NF82
NTAvMWExYTFhZTQ1NGM0MzA5NTAwNjVkZTRjYmIyZjk0YzIyNjk1MGM3YWU2NTViNjFhNDhhOTE0
NzVlMjQzYWNkYTNkYWMxOTQ4NzlhZGRlMGYvd3dkY18yMDA2XzJfNjUwLm1vdiI+PC92aWRlbz4K
LTxwPlRlc3QgdGhhdCBRdWlja1RpbWUgZmlsZSB3aXRoIFJUU1AgVVJMIGxvYWRzLjxwPgotPHNj
cmlwdD5zdGFydCgpPC9zY3JpcHQ+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzx2aWRlbyB3
aWR0aD00MDAgaGVpZ2h0PTMwMCBwcmVsb2FkPW5vbmUgYXV0b3BsYXkgc3JjPSJydHNwOi8vZG16
b3N4MDAxLmRwYS5hY3QuZ292LmF1L21lZGl1bSI+PC92aWRlbz4KKzxwPlRlc3QgdGhhdCBSVFNQ
IFVSTCBsb2Fkcy48cD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMmZiNGNlZi4uN2QyOTYzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTIxMiwy
NyArMjEyLDI3IEBAIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0
Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyCiAgICAgcmV0dXJuIEZBTFNFOwog
fQogCi12b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZWRDYWxsYmFjayhHT2Jq
ZWN0KiBlbGVtZW50LCBnaW50IHN0cmVhbUlkLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIq
IHBsYXllcikKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VkQ2FsbGJhY2soR09i
amVjdCogZWxlbWVudCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7Ci0g
ICAgcGxheWVyLT52aWRlb1RhZ3NDaGFuZ2VkKHN0cmVhbUlkKTsKKyAgICBwbGF5ZXItPnZpZGVv
Q2hhbmdlZCgpOwogfQogCi12b2lkIG1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvVGFnc0NoYW5nZWRD
YWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBnaW50IHN0cmVhbUlkLCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIqIHBsYXllcikKK3ZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2Vk
Q2FsbGJhY2soR09iamVjdCogZWxlbWVudCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBw
bGF5ZXIpCiB7Ci0gICAgcGxheWVyLT5hdWRpb1RhZ3NDaGFuZ2VkKHN0cmVhbUlkKTsKKyAgICBw
bGF5ZXItPmF1ZGlvQ2hhbmdlZCgpOwogfQogCi1nYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVB
dWRpb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
KiBwbGF5ZXIpCitnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZVRpbWVvdXRD
YWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsKLSAgICAvLyBU
aGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OmF1
ZGlvVGFnc0NoYW5nZWQuCi0gICAgcGxheWVyLT5ub3RpZnlQbGF5ZXJPZkF1ZGlvVGFncygpOwor
ICAgIC8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVk
IGluIDo6YXVkaW9DaGFuZ2VkLgorICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZBdWRpbygpOwog
ICAgIHJldHVybiBGQUxTRTsKIH0KIAotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9U
YWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxh
eWVyKQorZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VUaW1lb3V0Q2FsbGJh
Y2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7Ci0gICAgLy8gVGhpcyBp
cyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjp2aWRlb1Rh
Z3NDaGFuZ2VkLgotICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZWaWRlb1RhZ3MoKTsKKyAgICAv
LyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6
OnZpZGVvQ2hhbmdlZC4KKyAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mVmlkZW8oKTsKICAgICBy
ZXR1cm4gRkFMU0U7CiB9CiAKQEAgLTM0Nyw4ICszNDcsOCBAQCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVy
KQogICAgICwgbV9tdXRlVGltZXJIYW5kbGVyKDApCiAgICAgLCBtX2hhc1ZpZGVvKGZhbHNlKQog
ICAgICwgbV9oYXNBdWRpbyhmYWxzZSkKLSAgICAsIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKDAp
Ci0gICAgLCBtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcigwKQorICAgICwgbV9hdWRpb1RpbWVySGFu
ZGxlcigwKQorICAgICwgbV92aWRlb1RpbWVySGFuZGxlcigwKQogewogICAgIGlmIChkb0dzdElu
aXQoKSkKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigpOwpAQCAtMzkyLDExICszOTIsMTEgQEAg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
KCkKICAgICBpZiAobV92b2x1bWVUaW1lckhhbmRsZXIpCiAgICAgICAgIGdfc291cmNlX3JlbW92
ZShtX3ZvbHVtZVRpbWVySGFuZGxlcik7CiAKLSAgICBpZiAobV92aWRlb1RhZ3NUaW1lckhhbmRs
ZXIpCi0gICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcik7Cisg
ICAgaWYgKG1fdmlkZW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3Zp
ZGVvVGltZXJIYW5kbGVyKTsKIAotICAgIGlmIChtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcikKLSAg
ICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKTsKKyAgICBpZiAo
bV9hdWRpb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UaW1l
ckhhbmRsZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChj
b25zdCBTdHJpbmcmIHVybCkKQEAgLTU4Miw2ICs1ODIsNyBAQCBJbnRTaXplIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgICAgICB8fCAhZ3N0X3Zp
ZGVvX3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJhdGlv
TnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKSB7CiAgICAgICAgIGdzdF9vYmpl
Y3RfdW5yZWYoR1NUX09CSkVDVChwYWQpKTsKKyAgICAgICAgLy8gVGhlIHZpZGVvLXNpbmsgaGFz
IGxpa2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNhcHMuCiAgICAgICAgIHJldHVybiBJbnRT
aXplKCk7CiAgICAgfQogCkBAIC02MTgsMzkgKzYxOSw0MCBAQCBJbnRTaXplIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIHJldHVybiBJbnRTaXpl
KHN0YXRpY19jYXN0PGludD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkpOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9UYWdzQ2hhbmdlZChnaW50
IHN0cmVhbUlkKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvQ2hhbmdl
ZCgpCiB7Ci0gICAgaWYgKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKQotICAgICAgICBnX3NvdXJj
ZV9yZW1vdmUobV92aWRlb1RhZ3NUaW1lckhhbmRsZXIpOwotICAgIG1fdmlkZW9UYWdzVGltZXJI
YW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPiht
ZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsK
KyAgICBpZiAobV92aWRlb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1f
dmlkZW9UaW1lckhhbmRsZXIpOworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSBnX3RpbWVvdXRf
YWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJpdmF0ZVZp
ZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZpZGVvVGFncygpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbygpCiB7Ci0gICAgbV92aWRl
b1RhZ3NUaW1lckhhbmRsZXIgPSAwOworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSAwOwogCi0g
ICAgZ2ludCBjdXJyZW50VmlkZW8gPSAtMTsKKyAgICBnaW50IHZpZGVvVHJhY2tzID0gMDsKICAg
ICBpZiAobV9wbGF5QmluKQotICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAiY3VycmVu
dC12aWRlbyIsICZjdXJyZW50VmlkZW8sIE5VTEwpOwotICAgIG1faGFzVmlkZW8gPSBjdXJyZW50
VmlkZW8gPiAtMTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgIm4tdmlkZW8iLCAm
dmlkZW9UcmFja3MsIE5VTEwpOworCisgICAgbV9oYXNWaWRlbyA9IHZpZGVvVHJhY2tzID4gMDsK
ICAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJFbmdpbmVVcGRh
dGVkKG1fcGxheWVyKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmF1
ZGlvVGFnc0NoYW5nZWQoZ2ludCBzdHJlYW1JZCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjphdWRpb0NoYW5nZWQoKQogewotICAgIGlmIChtX2F1ZGlvVGFnc1RpbWVySGFuZGxl
cikKLSAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKTsKLSAg
ICBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRf
Y2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlVGltZW91
dENhbGxiYWNrKSwgdGhpcyk7CisgICAgaWYgKG1fYXVkaW9UaW1lckhhbmRsZXIpCisgICAgICAg
IGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVyKTsKKyAgICBtX2F1ZGlvVGltZXJI
YW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPiht
ZWRpYVBsYXllclByaXZhdGVBdWRpb0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpb1Rh
Z3MoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVk
aW8oKQogewotICAgIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyID0gMDsKKyAgICBtX2F1ZGlvVGlt
ZXJIYW5kbGVyID0gMDsKIAotICAgIGdpbnQgY3VycmVudEF1ZGlvID0gLTE7CisgICAgZ2ludCBh
dWRpb1RyYWNrcyA9IDA7CiAgICAgaWYgKG1fcGxheUJpbikKLSAgICAgICAgZ19vYmplY3RfZ2V0
KG1fcGxheUJpbiwgImN1cnJlbnQtYXVkaW8iLCAmY3VycmVudEF1ZGlvLCBOVUxMKTsKLSAgICBt
X2hhc0F1ZGlvID0gY3VycmVudEF1ZGlvID4gLTE7CisgICAgICAgIGdfb2JqZWN0X2dldChtX3Bs
YXlCaW4sICJuLWF1ZGlvIiwgJmF1ZGlvVHJhY2tzLCBOVUxMKTsKKyAgICBtX2hhc0F1ZGlvID0g
YXVkaW9UcmFja3MgPiAwOwogICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRp
YVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCkBAIC0xMzU5LDYgKzEzNjEsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JgogCiAgICAgaWYgKCFtX3BsYXllci0+dmlzaWJsZSgp
KQogICAgICAgICByZXR1cm47CisKICAgICBpZiAoIW1fYnVmZmVyKQogICAgICAgICByZXR1cm47
CiAKQEAgLTE1ODQsOCArMTU4Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
OjpjcmVhdGVHU1RQbGF5QmluKCkKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5v
dGlmeTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2Vk
Q2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlm
eTo6c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2Fs
bGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6
bXV0ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayks
IHRoaXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAidmlkZW8tdGFncy1jaGFu
Z2VkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJh
Y2spLCB0aGlzKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgImF1ZGlvLXRhZ3Mt
Y2hhbmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlZENh
bGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJ2aWRlby1j
aGFuZ2VkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFj
ayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAiYXVkaW8tY2hhbmdl
ZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VkQ2FsbGJhY2spLCB0
aGlzKTsKIAogICAgIG1fd2Via2l0VmlkZW9TaW5rID0gd2Via2l0X3ZpZGVvX3NpbmtfbmV3KCk7
CiAKQEAgLTE2NTQsNiArMTY1NywxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICAvLyBTZXQgdGhlIGJpbiBhcyB2aWRlbyBzaW5r
IG9mIHBsYXliaW4uCiAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBt
X3ZpZGVvU2lua0JpbiwgTlVMTCk7CisKKworICAgIHBhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0
aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpOworICAgIGlmIChwYWQpIHsKKyAgICAg
ICAgZ19zaWduYWxfY29ubmVjdChwYWQsICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1lZGlh
UGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisgICAgICAgIGdzdF9v
YmplY3RfdW5yZWYoR1NUX09CSkVDVChwYWQpKTsKKyAgICB9CisKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDgwMDM4ODcuLjg5MDFh
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAg
LTQ5LDEwICs0OSwxMCBAQCBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNZXNzYWdlQ2FsbGJh
Y2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwbwogdm9pZCBtZWRpYVBsYXll
clByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCogZWxlbWVudCwgR1BhcmFtU3Bl
YyogcHNwZWMsIGdwb2ludGVyIGRhdGEpOwogdm9pZCBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hh
bmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVjLCBncG9pbnRl
ciBkYXRhKTsKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKEdP
YmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVjLCBncG9pbnRlciBkYXRhKTsKLXZvaWQg
bWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1l
bnQsIGdpbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwotdm9pZCBtZWRpYVBsYXll
clByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCogZWxlbWVudCwgZ2ludCwg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7Ci1nYm9vbGVhbiBtZWRpYVBsYXllclByaXZh
dGVBdWRpb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKiBwbGF5ZXIpOwotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdl
VGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKTsKK3Zv
aWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VkQ2FsbGJhY2soR09iamVjdCogZWxlbWVu
dCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7Cit2b2lkIG1lZGlhUGxheWVyUHJpdmF0
ZUF1ZGlvQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lciopOworZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1l
b3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7CitnYm9vbGVhbiBtZWRp
YVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIqKTsKIAogZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdl
VGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwogZ2Jvb2xlYW4g
bWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIqKTsKQEAgLTEzMCwxMCArMTMwLDEwIEBAIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
ICAgICAgICAgICAgR3N0RWxlbWVudCogcGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXlC
aW47IH0KICAgICAgICAgICAgIGJvb2wgcGlwZWxpbmVSZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzZXRQaXBlbGluZTsgfQogCi0gICAgICAgICAgICB2b2lkIHZpZGVvVGFnc0NoYW5nZWQoZ2lu
dCk7Ci0gICAgICAgICAgICB2b2lkIGF1ZGlvVGFnc0NoYW5nZWQoZ2ludCk7Ci0gICAgICAgICAg
ICB2b2lkIG5vdGlmeVBsYXllck9mVmlkZW9UYWdzKCk7Ci0gICAgICAgICAgICB2b2lkIG5vdGlm
eVBsYXllck9mQXVkaW9UYWdzKCk7CisgICAgICAgICAgICB2b2lkIHZpZGVvQ2hhbmdlZCgpOwor
ICAgICAgICAgICAgdm9pZCBhdWRpb0NoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgbm90aWZ5
UGxheWVyT2ZWaWRlbygpOworICAgICAgICAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZkF1ZGlvKCk7
CiAKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcihNZWRpYVBsYXllciopOwpAQCAtMTkxLDggKzE5MSw4IEBAIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2Ugewog
ICAgICAgICAgICAgZ3VpbnQgbV9tdXRlVGltZXJIYW5kbGVyOwogICAgICAgICAgICAgYm9vbCBt
X2hhc1ZpZGVvOwogICAgICAgICAgICAgYm9vbCBtX2hhc0F1ZGlvOwotICAgICAgICAgICAgZ3Vp
bnQgbV9hdWRpb1RhZ3NUaW1lckhhbmRsZXI7Ci0gICAgICAgICAgICBndWludCBtX3ZpZGVvVGFn
c1RpbWVySGFuZGxlcjsKKyAgICAgICAgICAgIGd1aW50IG1fYXVkaW9UaW1lckhhbmRsZXI7Cisg
ICAgICAgICAgICBndWludCBtX3ZpZGVvVGltZXJIYW5kbGVyOwogICAgIH07CiB9CiAKLS0gCjEu
Ny40LjE=
</data>
<flag name="review"
          id="81122"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88985</attachid>
            <date>2011-04-11 04:00:53 -0700</date>
            <delta_ts>2011-04-11 04:03:37 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>14870</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhYTg4MTE1MDAzNjcyYTI1YThlYjIwY2MxNWVhYjgyYjU0ZTlmNjNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDYgQXByIDIwMTEgMTk6MTU6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy92aWRlby1ydHNwLmh0bWwgICAgICAgIHwgICAgNiArLQogLi4uL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgICAgfCAgIDk2ICsrKysrKysrKysrKy0tLS0tLS0t
CiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICAg
MjEgKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBlMmZjYTVjLi5kM2ZjODUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTEtMDQtMDYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtH
U3RyZWFtZXJdIFJUU1AgcGxheWJhY2sgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjkzMAorCisgICAgICAgIFJlbHkgb24ge2F1ZGlvLHZp
ZGVvfS1jaGFuZ2VkIHBsYXliaW4yIHNpZ25hbHMgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgLXRh
Z3MtY2hhbmdlZCBzaWduYWxzIGJlY2F1c2Ugc29tZSBtZWRpYSBkb24ndCBwcm92aWRlIHRhZ3Mg
YW5kCisgICAgICAgIHRoZW4gY2FuIHRyaWNrIHRoZSBtZWRpYS1wbGF5ZXIgdG8gbm90IHBhaW50
IHZpZGVvLCBmb3IgaW5zdGFuY2UuCisKKyAgICAgICAgQWxzbyB0cmlnZ2VyIGEgdmlkZW8gc2l6
ZSBjYWxjdWxhdGlvbiBhZnRlciB0aGUgdmlkZW8gc2luaworICAgICAgICBuZWdvdGlhdGVkIGl0
cyBjYXBzLiBUaGlzIGlzIHVzZWZ1bCBpbiB0aGUgY2FzZXMgd2hlcmUKKyAgICAgICAgYXVkaW8t
Y2hhbmdlZCBzaWduYWwgaXMgZW1pdHRlZCBidXQgdGhlIHZpZGVvIHNpbmsgdGFrZXMgbW9yZSB0
aW1lCisgICAgICAgIHRvIG5lZ29jaWF0ZSBjYXBzIHdpdGggaXRzIHBlZXIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIGZpeGVzIHRoZSBydHNwIG1hbnVhbC10ZXN0IHdpdGggYSBuZXcgc3Ry
ZWFtIHVybAorICAgICAgICB3aGljaCBzZWVtcyB0byBiZSBtb3JlIHBlcm1hbmVudCB0aGFuIHRo
ZSBwcmV2aW91cyBXV0RDIGtleW5vdGUKKyAgICAgICAgc3RyZWFtLgorCisgICAgICAgICogbWFu
dWFsLXRlc3RzL3ZpZGVvLXJ0c3AuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlVGltZW91dENhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5UGxheWVyT2ZWaWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aDoKKwogMjAxMS0wNC0xMCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFs
LXRlc3RzL3ZpZGVvLXJ0c3AuaHRtbAppbmRleCA0ZmZmOTg3Li5mNTAwZjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hbnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWwKQEAgLTMsOSArMyw3IEBACiA8
dGl0bGU+UlRTUCBwbGF5YmFjayB0ZXN0PC90aXRsZT4KIDwvaGVhZD4KIDxib2R5PgotPHZpZGVv
IHdpdGg9NjQwIGhlaWdodD0zNTIgYXV0b3BsYXkgY29udHJvbHMgc3JjPSJydHNwOi8vYTIwNDcu
djE0MTFiLmMxNDExLmcudnEuYWthbWFpc3RyZWFtLm5ldC81LzIwNDcvMTQxMS8yX2gyNjRfNjUw
LzFhMWExYWU0NTRjNDMwOTUwMDY1ZGU0Y2JiMmY5NGMyMjY5NTBjN2FlNjU1YjYxYTQ4YTkxNDc1
ZTI0M2FjZGEzZGFjMTk0ODc5YWRkZTBmL3d3ZGNfMjAwNl8yXzY1MC5tb3YiPjwvdmlkZW8+Ci08
cD5UZXN0IHRoYXQgUXVpY2tUaW1lIGZpbGUgd2l0aCBSVFNQIFVSTCBsb2Fkcy48cD4KLTxzY3Jp
cHQ+c3RhcnQoKTwvc2NyaXB0PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8dmlkZW8gd2lk
dGg9NDAwIGhlaWdodD0zMDAgcHJlbG9hZD1ub25lIGF1dG9wbGF5IHNyYz0icnRzcDovL2Rtem9z
eDAwMS5kcGEuYWN0Lmdvdi5hdS9tZWRpdW0iPjwvdmlkZW8+Cis8cD5UZXN0IHRoYXQgUlRTUCBV
UkwgbG9hZHMuPHA+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJmYjRjZWYuLjg3NmE4OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xODQsNTUg
KzE4NCw2MCBAQCB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhH
T2JqZWN0ICpvYmplY3QsIEdQYXJhbVNwZWMgKnBzcGVjLAogICAgIH0KIH0KIAotdm9pZCBtZWRp
YVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqZWxlbWVudCwgR1Bh
cmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBtZWRpYVBsYXllclBy
aXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqZWxlbWVudCwgR1BhcmFtU3BlYyAq
cHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBwbGF5
YmluIHJlY2VpdmVzIHRoZSBub3RpZnk6OnZvbHVtZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKj4oZGF0YSk7CiAgICAgbXAtPnZvbHVtZUNoYW5nZWQoKTsKIH0KIAotZ2Jvb2xl
YW4gbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQorc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVy
UHJpdmF0ZVZvbHVtZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIqIHBsYXllcikKIHsKICAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGlt
ZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OnZvbHVtZUNoYW5nZWQuCiAgICAgcGxheWVyLT5ub3Rp
ZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpOwogICAgIHJldHVybiBGQUxTRTsKIH0KIAotdm9pZCBt
ZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QgKmVsZW1lbnQsIEdQ
YXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciBkYXRhKQorc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQ
cml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICplbGVtZW50LCBHUGFyYW1TcGVjICpw
c3BlYywgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIHBsYXli
aW4gcmVjZWl2ZXMgdGhlIG5vdGlmeTo6bXV0ZSBzaWduYWwuCiAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKj4oZGF0YSk7CiAgICAgbXAtPm11dGVDaGFuZ2VkKCk7CiB9CiAKLWdib29sZWFuIG1l
ZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCitzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRl
TXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBs
YXllcikKIHsKICAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3Vy
Y2UgY3JlYXRlZCBpbiA6Om11dGVDaGFuZ2VkLgogICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZN
dXRlKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCi12b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVZp
ZGVvVGFnc0NoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBnaW50IHN0cmVhbUlkLCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK3N0YXRpYyB2b2lkIG1lZGlhUGxh
eWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNw
ZWMqLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsKLSAgICBwbGF5ZXIt
PnZpZGVvVGFnc0NoYW5nZWQoc3RyZWFtSWQpOworICAgIHBsYXllci0+dmlkZW9DaGFuZ2VkKCk7
CiB9CiAKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdP
YmplY3QqIGVsZW1lbnQsIGdpbnQgc3RyZWFtSWQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciogcGxheWVyKQorc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VkQ2Fs
bGJhY2soR09iamVjdCosIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewot
ICAgIHBsYXllci0+YXVkaW9UYWdzQ2hhbmdlZChzdHJlYW1JZCk7CisgICAgcGxheWVyLT52aWRl
b0NoYW5nZWQoKTsKIH0KIAotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hh
bmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQor
c3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VkQ2FsbGJhY2soR09iamVj
dCosIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewotICAgIC8vIFRoaXMg
aXMgdGhlIGNhbGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6YXVkaW9U
YWdzQ2hhbmdlZC4KLSAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mQXVkaW9UYWdzKCk7CisgICAg
cGxheWVyLT5hdWRpb0NoYW5nZWQoKTsKK30KKworc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVy
UHJpdmF0ZUF1ZGlvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciogcGxheWVyKQoreworICAgIC8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIG9mIHRoZSB0aW1l
b3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6YXVkaW9DaGFuZ2VkLgorICAgIHBsYXllci0+bm90aWZ5
UGxheWVyT2ZBdWRpbygpOwogICAgIHJldHVybiBGQUxTRTsKIH0KIAotZ2Jvb2xlYW4gbWVkaWFQ
bGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lciogcGxheWVyKQorc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0
ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciog
cGxheWVyKQogewotICAgIC8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNv
dXJjZSBjcmVhdGVkIGluIDo6dmlkZW9UYWdzQ2hhbmdlZC4KLSAgICBwbGF5ZXItPm5vdGlmeVBs
YXllck9mVmlkZW9UYWdzKCk7CisgICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRp
bWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjp2aWRlb0NoYW5nZWQuCisgICAgcGxheWVyLT5ub3Rp
ZnlQbGF5ZXJPZlZpZGVvKCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQogCkBAIC0zNDcsOCArMzUy
LDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICAsIG1fbXV0ZVRpbWVySGFuZGxlcigwKQog
ICAgICwgbV9oYXNWaWRlbyhmYWxzZSkKICAgICAsIG1faGFzQXVkaW8oZmFsc2UpCi0gICAgLCBt
X2F1ZGlvVGFnc1RpbWVySGFuZGxlcigwKQotICAgICwgbV92aWRlb1RhZ3NUaW1lckhhbmRsZXIo
MCkKKyAgICAsIG1fYXVkaW9UaW1lckhhbmRsZXIoMCkKKyAgICAsIG1fdmlkZW9UaW1lckhhbmRs
ZXIoMCkKIHsKICAgICBpZiAoZG9Hc3RJbml0KCkpCiAgICAgICAgIGNyZWF0ZUdTVFBsYXlCaW4o
KTsKQEAgLTM5MiwxMSArMzk3LDExIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiAgICAgaWYgKG1fdm9sdW1lVGltZXJIYW5kbGVy
KQogICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92b2x1bWVUaW1lckhhbmRsZXIpOwogCi0gICAg
aWYgKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKQotICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV92
aWRlb1RhZ3NUaW1lckhhbmRsZXIpOworICAgIGlmIChtX3ZpZGVvVGltZXJIYW5kbGVyKQorICAg
ICAgICBnX3NvdXJjZV9yZW1vdmUobV92aWRlb1RpbWVySGFuZGxlcik7CiAKLSAgICBpZiAobV9h
dWRpb1RhZ3NUaW1lckhhbmRsZXIpCi0gICAgICAgIGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGFn
c1RpbWVySGFuZGxlcik7CisgICAgaWYgKG1fYXVkaW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdf
c291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCkBAIC01ODIsNiArNTg3
LDcgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkg
Y29uc3QKICAgICAgICAgfHwgIWdzdF92aWRlb19wYXJzZV9jYXBzX3BpeGVsX2FzcGVjdF9yYXRp
byhjYXBzLCAmcGl4ZWxBc3BlY3RSYXRpb051bWVyYXRvciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxBc3BlY3RSYXRpb0Rlbm9taW5h
dG9yKSkgewogICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1QocGFkKSk7CisgICAg
ICAgIC8vIFRoZSB2aWRlby1zaW5rIGhhcyBsaWtlbHkgbm90IHlldCBuZWdvdGlhdGVkIGl0cyBj
YXBzLgogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogICAgIH0KIApAQCAtNjE4LDM5ICs2MjQs
NDAgQEAgSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkg
Y29uc3QKICAgICByZXR1cm4gSW50U2l6ZShzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoKSwgc3RhdGlj
X2Nhc3Q8aW50PihoZWlnaHQpKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnZpZGVvVGFnc0NoYW5nZWQoZ2ludCBzdHJlYW1JZCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjp2aWRlb0NoYW5nZWQoKQogewotICAgIGlmIChtX3ZpZGVvVGFnc1RpbWVy
SGFuZGxlcikKLSAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVy
KTsKLSAgICBtX3ZpZGVvVGFnc1RpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdl
VGltZW91dENhbGxiYWNrKSwgdGhpcyk7CisgICAgaWYgKG1fdmlkZW9UaW1lckhhbmRsZXIpCisg
ICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZpZGVvVGltZXJIYW5kbGVyKTsKKyAgICBtX3ZpZGVv
VGltZXJIYW5kbGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VG
dW5jPihtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMp
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZW
aWRlb1RhZ3MoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXll
ck9mVmlkZW8oKQogewotICAgIG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyID0gMDsKKyAgICBtX3Zp
ZGVvVGltZXJIYW5kbGVyID0gMDsKIAotICAgIGdpbnQgY3VycmVudFZpZGVvID0gLTE7CisgICAg
Z2ludCB2aWRlb1RyYWNrcyA9IDA7CiAgICAgaWYgKG1fcGxheUJpbikKLSAgICAgICAgZ19vYmpl
Y3RfZ2V0KG1fcGxheUJpbiwgImN1cnJlbnQtdmlkZW8iLCAmY3VycmVudFZpZGVvLCBOVUxMKTsK
LSAgICBtX2hhc1ZpZGVvID0gY3VycmVudFZpZGVvID4gLTE7CisgICAgICAgIGdfb2JqZWN0X2dl
dChtX3BsYXlCaW4sICJuLXZpZGVvIiwgJnZpZGVvVHJhY2tzLCBOVUxMKTsKKworICAgIG1faGFz
VmlkZW8gPSB2aWRlb1RyYWNrcyA+IDA7CiAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZChtX3BsYXllcik7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOjphdWRpb1RhZ3NDaGFuZ2VkKGdpbnQgc3RyZWFtSWQpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6YXVkaW9DaGFuZ2VkKCkKIHsKLSAgICBp
ZiAobV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIpCi0gICAgICAgIGdfc291cmNlX3JlbW92ZShtX2F1
ZGlvVGFnc1RpbWVySGFuZGxlcik7Ci0gICAgbV9hdWRpb1RhZ3NUaW1lckhhbmRsZXIgPSBnX3Rp
bWVvdXRfYWRkKDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJp
dmF0ZUF1ZGlvVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOworICAgIGlmIChtX2F1
ZGlvVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9hdWRpb1RpbWVySGFu
ZGxlcik7CisgICAgbV9hdWRpb1RpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1l
b3V0Q2FsbGJhY2spLCB0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeVBsYXllck9mQXVkaW9UYWdzKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvKCkKIHsKLSAgICBtX2F1ZGlvVGFnc1RpbWVySGFu
ZGxlciA9IDA7CisgICAgbV9hdWRpb1RpbWVySGFuZGxlciA9IDA7CiAKLSAgICBnaW50IGN1cnJl
bnRBdWRpbyA9IC0xOworICAgIGdpbnQgYXVkaW9UcmFja3MgPSAwOwogICAgIGlmIChtX3BsYXlC
aW4pCi0gICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4sICJjdXJyZW50LWF1ZGlvIiwgJmN1
cnJlbnRBdWRpbywgTlVMTCk7Ci0gICAgbV9oYXNBdWRpbyA9IGN1cnJlbnRBdWRpbyA+IC0xOwor
ICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAibi1hdWRpbyIsICZhdWRpb1RyYWNrcywg
TlVMTCk7CisgICAgbV9oYXNBdWRpbyA9IGF1ZGlvVHJhY2tzID4gMDsKICAgICBtX3BsYXllci0+
bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsK
IH0KIApAQCAtMTM1OSw2ICsxMzY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYKIAogICAg
IGlmICghbV9wbGF5ZXItPnZpc2libGUoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFt
X2J1ZmZlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNTg0LDggKzE1OTIsOCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAgICAgZ19zaWdu
YWxfY29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnZvbHVtZSIsIEdfQ0FMTEJBQ0sobWVkaWFQ
bGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxf
Y29ubmVjdChtX3BsYXlCaW4sICJub3RpZnk6OnNvdXJjZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5
ZXJQcml2YXRlU291cmNlQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29u
bmVjdChtX3BsYXlCaW4sICJub3RpZnk6Om11dGUiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJp
dmF0ZU11dGVDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1f
cGxheUJpbiwgInZpZGVvLXRhZ3MtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlVmlkZW9UYWdzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7Ci0gICAgZ19zaWduYWxfY29ubmVj
dChtX3BsYXlCaW4sICJhdWRpby10YWdzLWNoYW5nZWQiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVy
UHJpdmF0ZUF1ZGlvVGFnc0NoYW5nZWRDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nv
bm5lY3QobV9wbGF5QmluLCAidmlkZW8tY2hhbmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQ
cml2YXRlVmlkZW9DaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0
KG1fcGxheUJpbiwgImF1ZGlvLWNoYW5nZWQiLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0
ZUF1ZGlvQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CiAKICAgICBtX3dlYmtpdFZpZGVvU2luayA9
IHdlYmtpdF92aWRlb19zaW5rX25ldygpOwogCkBAIC0xNjU0LDYgKzE2NjIsMTQgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4oKQogCiAgICAgLy8g
U2V0IHRoZSBiaW4gYXMgdmlkZW8gc2luayBvZiBwbGF5YmluLgogICAgIGdfb2JqZWN0X3NldCht
X3BsYXlCaW4sICJ2aWRlby1zaW5rIiwgbV92aWRlb1NpbmtCaW4sIE5VTEwpOworCisKKyAgICBw
YWQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChtX3dlYmtpdFZpZGVvU2luaywgInNpbmsi
KTsKKyAgICBpZiAocGFkKSB7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QocGFkLCAibm90aWZ5
OjpjYXBzIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1NpbmtDYXBzQ2hhbmdl
ZENhbGxiYWNrKSwgdGhpcyk7CisgICAgICAgIGdzdF9vYmplY3RfdW5yZWYoR1NUX09CSkVDVChw
YWQpKTsKKyAgICB9CisKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDgwMDM4ODcuLjY1NGFkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTQ2LDE2ICs0Niw3IEBAIGNsYXNzIEdT
dHJlYW1lckdXb3JsZDsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAogZ2Jv
b2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVzc2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RN
ZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKTsKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
Vm9sdW1lQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVj
LCBncG9pbnRlciBkYXRhKTsKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxs
YmFjayhHT2JqZWN0KiBlbGVtZW50LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIgZGF0YSk7
CiB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBl
bGVtZW50LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIgZGF0YSk7Ci12b2lkIG1lZGlhUGxh
eWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiBlbGVtZW50LCBnaW50
LCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqKTsKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
QXVkaW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQsIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lciopOwotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9U
YWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxh
eWVyKTsKLWdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvVGFnc0NoYW5nZVRpbWVvdXRD
YWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcik7Ci0KLWdib29sZWFu
IG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIqKTsKLWdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFu
Z2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7CiAKIGNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UgewogICAgICAgICBmcmllbmQgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTWVz
c2FnZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBk
YXRhKTsKQEAgLTEzMCwxMCArMTIxLDEwIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAg
R3N0RWxlbWVudCogcGlwZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3BsYXlCaW47IH0KICAgICAg
ICAgICAgIGJvb2wgcGlwZWxpbmVSZXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzZXRQaXBlbGlu
ZTsgfQogCi0gICAgICAgICAgICB2b2lkIHZpZGVvVGFnc0NoYW5nZWQoZ2ludCk7Ci0gICAgICAg
ICAgICB2b2lkIGF1ZGlvVGFnc0NoYW5nZWQoZ2ludCk7Ci0gICAgICAgICAgICB2b2lkIG5vdGlm
eVBsYXllck9mVmlkZW9UYWdzKCk7Ci0gICAgICAgICAgICB2b2lkIG5vdGlmeVBsYXllck9mQXVk
aW9UYWdzKCk7CisgICAgICAgICAgICB2b2lkIHZpZGVvQ2hhbmdlZCgpOworICAgICAgICAgICAg
dm9pZCBhdWRpb0NoYW5nZWQoKTsKKyAgICAgICAgICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZWaWRl
bygpOworICAgICAgICAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZkF1ZGlvKCk7CiAKICAgICAgICAg
cHJpdmF0ZToKICAgICAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBs
YXllciopOwpAQCAtMTkxLDggKzE4Miw4IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogICAgICAgICAgICAg
Z3VpbnQgbV9tdXRlVGltZXJIYW5kbGVyOwogICAgICAgICAgICAgYm9vbCBtX2hhc1ZpZGVvOwog
ICAgICAgICAgICAgYm9vbCBtX2hhc0F1ZGlvOwotICAgICAgICAgICAgZ3VpbnQgbV9hdWRpb1Rh
Z3NUaW1lckhhbmRsZXI7Ci0gICAgICAgICAgICBndWludCBtX3ZpZGVvVGFnc1RpbWVySGFuZGxl
cjsKKyAgICAgICAgICAgIGd1aW50IG1fYXVkaW9UaW1lckhhbmRsZXI7CisgICAgICAgICAgICBn
dWludCBtX3ZpZGVvVGltZXJIYW5kbGVyOwogICAgIH07CiB9CiAKLS0gCjEuNy40LjE=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88987</attachid>
            <date>2011-04-11 04:03:37 -0700</date>
            <delta_ts>2011-04-11 09:13:15 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>14842</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjNWQzZTAzYmNmZDZhMTNiNzEyNDlkOTFhMzAwZGFhMzVmYjEyZThmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBXZWQsIDYgQXByIDIwMTEgMTk6MTU6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBw
cm9wb3NlZCBwYXRjaAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0
cy92aWRlby1ydHNwLmh0bWwgICAgICAgIHwgICAgNiArLQogLi4uL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwICAgICAgfCAgIDk2ICsrKysrKysrKysrKy0tLS0tLS0t
CiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oICAgICAgICB8ICAg
MjEgKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBlMmZjYTVjLi5kM2ZjODUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTEtMDQtMDYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtH
U3RyZWFtZXJdIFJUU1AgcGxheWJhY2sgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjkzMAorCisgICAgICAgIFJlbHkgb24ge2F1ZGlvLHZp
ZGVvfS1jaGFuZ2VkIHBsYXliaW4yIHNpZ25hbHMgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgLXRh
Z3MtY2hhbmdlZCBzaWduYWxzIGJlY2F1c2Ugc29tZSBtZWRpYSBkb24ndCBwcm92aWRlIHRhZ3Mg
YW5kCisgICAgICAgIHRoZW4gY2FuIHRyaWNrIHRoZSBtZWRpYS1wbGF5ZXIgdG8gbm90IHBhaW50
IHZpZGVvLCBmb3IgaW5zdGFuY2UuCisKKyAgICAgICAgQWxzbyB0cmlnZ2VyIGEgdmlkZW8gc2l6
ZSBjYWxjdWxhdGlvbiBhZnRlciB0aGUgdmlkZW8gc2luaworICAgICAgICBuZWdvdGlhdGVkIGl0
cyBjYXBzLiBUaGlzIGlzIHVzZWZ1bCBpbiB0aGUgY2FzZXMgd2hlcmUKKyAgICAgICAgYXVkaW8t
Y2hhbmdlZCBzaWduYWwgaXMgZW1pdHRlZCBidXQgdGhlIHZpZGVvIHNpbmsgdGFrZXMgbW9yZSB0
aW1lCisgICAgICAgIHRvIG5lZ29jaWF0ZSBjYXBzIHdpdGggaXRzIHBlZXIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIGZpeGVzIHRoZSBydHNwIG1hbnVhbC10ZXN0IHdpdGggYSBuZXcgc3Ry
ZWFtIHVybAorICAgICAgICB3aGljaCBzZWVtcyB0byBiZSBtb3JlIHBlcm1hbmVudCB0aGFuIHRo
ZSBwcmV2aW91cyBXV0RDIGtleW5vdGUKKyAgICAgICAgc3RyZWFtLgorCisgICAgICAgICogbWFu
dWFsLXRlc3RzL3ZpZGVvLXJ0c3AuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZUF1ZGlvQ2hhbmdlVGltZW91dENhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6Om1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5UGxheWVyT2ZWaWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OmF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8pOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmNyZWF0ZUdTVFBsYXlCaW4pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aDoKKwogMjAxMS0wNC0xMCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sIGIvU291cmNlL1dlYkNvcmUvbWFudWFs
LXRlc3RzL3ZpZGVvLXJ0c3AuaHRtbAppbmRleCA0ZmZmOTg3Li5mNTAwZjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvdmlkZW8tcnRzcC5odG1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hbnVhbC10ZXN0cy92aWRlby1ydHNwLmh0bWwKQEAgLTMsOSArMyw3IEBACiA8
dGl0bGU+UlRTUCBwbGF5YmFjayB0ZXN0PC90aXRsZT4KIDwvaGVhZD4KIDxib2R5PgotPHZpZGVv
IHdpdGg9NjQwIGhlaWdodD0zNTIgYXV0b3BsYXkgY29udHJvbHMgc3JjPSJydHNwOi8vYTIwNDcu
djE0MTFiLmMxNDExLmcudnEuYWthbWFpc3RyZWFtLm5ldC81LzIwNDcvMTQxMS8yX2gyNjRfNjUw
LzFhMWExYWU0NTRjNDMwOTUwMDY1ZGU0Y2JiMmY5NGMyMjY5NTBjN2FlNjU1YjYxYTQ4YTkxNDc1
ZTI0M2FjZGEzZGFjMTk0ODc5YWRkZTBmL3d3ZGNfMjAwNl8yXzY1MC5tb3YiPjwvdmlkZW8+Ci08
cD5UZXN0IHRoYXQgUXVpY2tUaW1lIGZpbGUgd2l0aCBSVFNQIFVSTCBsb2Fkcy48cD4KLTxzY3Jp
cHQ+c3RhcnQoKTwvc2NyaXB0PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8dmlkZW8gd2lk
dGg9NDAwIGhlaWdodD0zMDAgcHJlbG9hZD1ub25lIGF1dG9wbGF5IHNyYz0icnRzcDovL2Rtem9z
eDAwMS5kcGEuYWN0Lmdvdi5hdS9tZWRpdW0iPjwvdmlkZW8+Cis8cD5UZXN0IHRoYXQgUlRTUCBV
UkwgbG9hZHMuPHA+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDJmYjRjZWYuLjIyZjEzNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xODQsNTUg
KzE4NCw2MCBAQCB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVNvdXJjZUNoYW5nZWRDYWxsYmFjayhH
T2JqZWN0ICpvYmplY3QsIEdQYXJhbVNwZWMgKnBzcGVjLAogICAgIH0KIH0KIAotdm9pZCBtZWRp
YVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAqZWxlbWVudCwgR1Bh
cmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIGRhdGEpCitzdGF0aWMgdm9pZCBtZWRpYVBsYXllclBy
aXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqLCBncG9pbnRl
ciBkYXRhKQogewogICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxheWJpbiByZWNlaXZlcyB0
aGUgbm90aWZ5Ojp2b2x1bWUgc2lnbmFsLgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcio+KGRh
dGEpOwogICAgIG1wLT52b2x1bWVDaGFuZ2VkKCk7CiB9CiAKLWdib29sZWFuIG1lZGlhUGxheWVy
UHJpdmF0ZVZvbHVtZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIqIHBsYXllcikKK3N0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVD
aGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIp
CiB7CiAgICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNy
ZWF0ZWQgaW4gOjp2b2x1bWVDaGFuZ2VkLgogICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZWb2x1
bWVDaGFuZ2UoKTsKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKLXZvaWQgbWVkaWFQbGF5ZXJQcml2
YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhHT2JqZWN0ICplbGVtZW50LCBHUGFyYW1TcGVjICpwc3Bl
YywgZ3BvaW50ZXIgZGF0YSkKK3N0YXRpYyB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFu
Z2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqLCBncG9pbnRlciBkYXRhKQogewogICAg
IC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gcGxheWJpbiByZWNlaXZlcyB0aGUgbm90aWZ5OjptdXRl
IHNpZ25hbC4KICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIG1wID0gcmVpbnRlcnBy
ZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqPihkYXRhKTsKICAgICBtcC0+bXV0
ZUNoYW5nZWQoKTsKIH0KIAotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRp
bWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK3N0YXRp
YyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91dENhbGxiYWNrKE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewogICAgIC8vIFRoaXMgaXMgdGhl
IGNhbGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6bXV0ZUNoYW5nZWQu
CiAgICAgcGxheWVyLT5ub3RpZnlQbGF5ZXJPZk11dGUoKTsKICAgICByZXR1cm4gRkFMU0U7CiB9
CiAKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlZENhbGxiYWNrKEdPYmpl
Y3QqIGVsZW1lbnQsIGdpbnQgc3RyZWFtSWQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciog
cGxheWVyKQorc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9TaW5rQ2Fwc0NoYW5n
ZWRDYWxsYmFjayhHT2JqZWN0KiwgR1BhcmFtU3BlYyosIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lciogcGxheWVyKQogewotICAgIHBsYXllci0+dmlkZW9UYWdzQ2hhbmdlZChzdHJlYW1JZCk7
CisgICAgcGxheWVyLT52aWRlb0NoYW5nZWQoKTsKIH0KIAotdm9pZCBtZWRpYVBsYXllclByaXZh
dGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCogZWxlbWVudCwgZ2ludCBzdHJlYW1J
ZCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCitzdGF0aWMgdm9pZCBtZWRp
YVBsYXllclByaXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiwgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7Ci0gICAgcGxheWVyLT5hdWRpb1RhZ3NDaGFuZ2Vk
KHN0cmVhbUlkKTsKKyAgICBwbGF5ZXItPnZpZGVvQ2hhbmdlZCgpOwogfQogCi1nYm9vbGVhbiBt
ZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCitzdGF0aWMgdm9pZCBtZWRpYVBsYXllclByaXZh
dGVBdWRpb0NoYW5nZWRDYWxsYmFjayhHT2JqZWN0KiwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKiBwbGF5ZXIpCiB7Ci0gICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVv
dXQgc291cmNlIGNyZWF0ZWQgaW4gOjphdWRpb1RhZ3NDaGFuZ2VkLgotICAgIHBsYXllci0+bm90
aWZ5UGxheWVyT2ZBdWRpb1RhZ3MoKTsKKyAgICBwbGF5ZXItPmF1ZGlvQ2hhbmdlZCgpOworfQor
CitzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2Fs
bGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCit7CisgICAgLy8gVGhp
cyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjphdWRp
b0NoYW5nZWQuCisgICAgcGxheWVyLT5ub3RpZnlQbGF5ZXJPZkF1ZGlvKCk7CiAgICAgcmV0dXJu
IEZBTFNFOwogfQogCi1nYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VU
aW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCitzdGF0
aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9DaGFuZ2VUaW1lb3V0Q2FsbGJhY2so
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7Ci0gICAgLy8gVGhpcyBpcyB0
aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNlIGNyZWF0ZWQgaW4gOjp2aWRlb1RhZ3ND
aGFuZ2VkLgotICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZWaWRlb1RhZ3MoKTsKKyAgICAvLyBU
aGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OnZp
ZGVvQ2hhbmdlZC4KKyAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mVmlkZW8oKTsKICAgICByZXR1
cm4gRkFMU0U7CiB9CiAKQEAgLTM0Nyw4ICszNTIsOCBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQog
ICAgICwgbV9tdXRlVGltZXJIYW5kbGVyKDApCiAgICAgLCBtX2hhc1ZpZGVvKGZhbHNlKQogICAg
ICwgbV9oYXNBdWRpbyhmYWxzZSkKLSAgICAsIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKDApCi0g
ICAgLCBtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcigwKQorICAgICwgbV9hdWRpb1RpbWVySGFuZGxl
cigwKQorICAgICwgbV92aWRlb1RpbWVySGFuZGxlcigwKQogewogICAgIGlmIChkb0dzdEluaXQo
KSkKICAgICAgICAgY3JlYXRlR1NUUGxheUJpbigpOwpAQCAtMzkyLDExICszOTcsMTEgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkK
ICAgICBpZiAobV92b2x1bWVUaW1lckhhbmRsZXIpCiAgICAgICAgIGdfc291cmNlX3JlbW92ZSht
X3ZvbHVtZVRpbWVySGFuZGxlcik7CiAKLSAgICBpZiAobV92aWRlb1RhZ3NUaW1lckhhbmRsZXIp
Ci0gICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZpZGVvVGFnc1RpbWVySGFuZGxlcik7CisgICAg
aWYgKG1fdmlkZW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3ZpZGVv
VGltZXJIYW5kbGVyKTsKIAotICAgIGlmIChtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcikKLSAgICAg
ICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKTsKKyAgICBpZiAobV9h
dWRpb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UaW1lckhh
bmRsZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZChjb25z
dCBTdHJpbmcmIHVybCkKQEAgLTU4Miw2ICs1ODcsNyBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgICAgICB8fCAhZ3N0X3ZpZGVv
X3BhcnNlX2NhcHNfcGl4ZWxfYXNwZWN0X3JhdGlvKGNhcHMsICZwaXhlbEFzcGVjdFJhdGlvTnVt
ZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZwaXhlbEFzcGVjdFJhdGlvRGVub21pbmF0b3IpKSB7CiAgICAgICAgIGdzdF9vYmplY3Rf
dW5yZWYoR1NUX09CSkVDVChwYWQpKTsKKyAgICAgICAgLy8gVGhlIHZpZGVvLXNpbmsgaGFzIGxp
a2VseSBub3QgeWV0IG5lZ290aWF0ZWQgaXRzIGNhcHMuCiAgICAgICAgIHJldHVybiBJbnRTaXpl
KCk7CiAgICAgfQogCkBAIC02MTgsMzkgKzYyNCw0MCBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIHJldHVybiBJbnRTaXplKHN0
YXRpY19jYXN0PGludD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkpOwogfQogCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9UYWdzQ2hhbmdlZChnaW50IHN0
cmVhbUlkKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnZpZGVvQ2hhbmdlZCgp
CiB7Ci0gICAgaWYgKG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyKQotICAgICAgICBnX3NvdXJjZV9y
ZW1vdmUobV92aWRlb1RhZ3NUaW1lckhhbmRsZXIpOwotICAgIG1fdmlkZW9UYWdzVGltZXJIYW5k
bGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihtZWRp
YVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsKKyAg
ICBpZiAobV92aWRlb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdmlk
ZW9UaW1lckhhbmRsZXIpOworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSBnX3RpbWVvdXRfYWRk
KDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVv
Q2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZpZGVvVGFncygpCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbygpCiB7Ci0gICAgbV92aWRlb1Rh
Z3NUaW1lckhhbmRsZXIgPSAwOworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSAwOwogCi0gICAg
Z2ludCBjdXJyZW50VmlkZW8gPSAtMTsKKyAgICBnaW50IHZpZGVvVHJhY2tzID0gMDsKICAgICBp
ZiAobV9wbGF5QmluKQotICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAiY3VycmVudC12
aWRlbyIsICZjdXJyZW50VmlkZW8sIE5VTEwpOwotICAgIG1faGFzVmlkZW8gPSBjdXJyZW50Vmlk
ZW8gPiAtMTsKKyAgICAgICAgZ19vYmplY3RfZ2V0KG1fcGxheUJpbiwgIm4tdmlkZW8iLCAmdmlk
ZW9UcmFja3MsIE5VTEwpOworCisgICAgbV9oYXNWaWRlbyA9IHZpZGVvVHJhY2tzID4gMDsKICAg
ICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVk
KG1fcGxheWVyKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmF1ZGlv
VGFnc0NoYW5nZWQoZ2ludCBzdHJlYW1JZCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjphdWRpb0NoYW5nZWQoKQogewotICAgIGlmIChtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcikK
LSAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyKTsKLSAgICBt
X2F1ZGlvVGFnc1RpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlVGltZW91dENh
bGxiYWNrKSwgdGhpcyk7CisgICAgaWYgKG1fYXVkaW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdf
c291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVyKTsKKyAgICBtX2F1ZGlvVGltZXJIYW5k
bGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihtZWRp
YVBsYXllclByaXZhdGVBdWRpb0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQogCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpb1RhZ3Mo
KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8o
KQogewotICAgIG1fYXVkaW9UYWdzVGltZXJIYW5kbGVyID0gMDsKKyAgICBtX2F1ZGlvVGltZXJI
YW5kbGVyID0gMDsKIAotICAgIGdpbnQgY3VycmVudEF1ZGlvID0gLTE7CisgICAgZ2ludCBhdWRp
b1RyYWNrcyA9IDA7CiAgICAgaWYgKG1fcGxheUJpbikKLSAgICAgICAgZ19vYmplY3RfZ2V0KG1f
cGxheUJpbiwgImN1cnJlbnQtYXVkaW8iLCAmY3VycmVudEF1ZGlvLCBOVUxMKTsKLSAgICBtX2hh
c0F1ZGlvID0gY3VycmVudEF1ZGlvID4gLTE7CisgICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlC
aW4sICJuLWF1ZGlvIiwgJmF1ZGlvVHJhY2tzLCBOVUxMKTsKKyAgICBtX2hhc0F1ZGlvID0gYXVk
aW9UcmFja3MgPiAwOwogICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBs
YXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCkBAIC0xMzU5LDYgKzEzNjYsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JgogCiAgICAgaWYgKCFtX3BsYXllci0+dmlzaWJsZSgpKQog
ICAgICAgICByZXR1cm47CisKICAgICBpZiAoIW1fYnVmZmVyKQogICAgICAgICByZXR1cm47CiAK
QEAgLTE1ODQsOCArMTU5Miw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpj
cmVhdGVHU1RQbGF5QmluKCkKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlm
eTo6dm9sdW1lIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2Fs
bGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6
c291cmNlIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVTb3VyY2VDaGFuZ2VkQ2FsbGJh
Y2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgIm5vdGlmeTo6bXV0
ZSIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayksIHRo
aXMpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAidmlkZW8tdGFncy1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb1RhZ3NDaGFuZ2VkQ2FsbGJhY2sp
LCB0aGlzKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG1fcGxheUJpbiwgImF1ZGlvLXRhZ3MtY2hh
bmdlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9UYWdzQ2hhbmdlZENhbGxi
YWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChtX3BsYXlCaW4sICJ2aWRlby1jaGFu
Z2VkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZWRDYWxsYmFjayks
IHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9wbGF5QmluLCAiYXVkaW8tY2hhbmdlZCIs
IEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VkQ2FsbGJhY2spLCB0aGlz
KTsKIAogICAgIG1fd2Via2l0VmlkZW9TaW5rID0gd2Via2l0X3ZpZGVvX3NpbmtfbmV3KCk7CiAK
QEAgLTE2NTQsNiArMTY2MiwxNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICAvLyBTZXQgdGhlIGJpbiBhcyB2aWRlbyBzaW5rIG9m
IHBsYXliaW4uCiAgICAgZ19vYmplY3Rfc2V0KG1fcGxheUJpbiwgInZpZGVvLXNpbmsiLCBtX3Zp
ZGVvU2lua0JpbiwgTlVMTCk7CisKKworICAgIHBhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNf
cGFkKG1fd2Via2l0VmlkZW9TaW5rLCAic2luayIpOworICAgIGlmIChwYWQpIHsKKyAgICAgICAg
Z19zaWduYWxfY29ubmVjdChwYWQsICJub3RpZnk6OmNhcHMiLCBHX0NBTExCQUNLKG1lZGlhUGxh
eWVyUHJpdmF0ZVZpZGVvU2lua0NhcHNDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKKyAgICAgICAg
Z3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNUKHBhZCkpOworICAgIH0KKwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggODAwMzg4Ny4u
NjU0YWQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtNDYsMTYgKzQ2LDcgQEAgY2xhc3MgR1N0cmVhbWVyR1dvcmxkOwogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyOwogCiBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNZXNz
YWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdzdE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRh
dGEpOwotdm9pZCBtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVj
dCogZWxlbWVudCwgR1BhcmFtU3BlYyogcHNwZWMsIGdwb2ludGVyIGRhdGEpOwotdm9pZCBtZWRp
YVBsYXllclByaXZhdGVNdXRlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJh
bVNwZWMqIHBzcGVjLCBncG9pbnRlciBkYXRhKTsKIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlU291
cmNlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIEdQYXJhbVNwZWMqIHBzcGVjLCBn
cG9pbnRlciBkYXRhKTsKLXZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlVmlkZW9UYWdzQ2hhbmdlZENh
bGxiYWNrKEdPYmplY3QqIGVsZW1lbnQsIGdpbnQsIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ciopOwotdm9pZCBtZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VkQ2FsbGJhY2soR09i
amVjdCogZWxlbWVudCwgZ2ludCwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKik7Ci1nYm9v
bGVhbiBtZWRpYVBsYXllclByaXZhdGVBdWRpb1RhZ3NDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpOwotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQ
cml2YXRlVmlkZW9UYWdzQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lciogcGxheWVyKTsKLQotZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hh
bmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciopOwotZ2Jvb2xl
YW4gbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIqKTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CiAgICAgICAgIGZyaWVuZCBn
Ym9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNZXNzYWdlQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdz
dE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpOwpAQCAtMTMwLDEwICsxMjEsMTAgQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBHc3RFbGVtZW50KiBwaXBlbGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGxheUJpbjsgfQogICAgICAgICAgICAgYm9vbCBwaXBlbGluZVJlc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNldFBpcGVsaW5lOyB9CiAKLSAgICAgICAgICAgIHZvaWQgdmlk
ZW9UYWdzQ2hhbmdlZChnaW50KTsKLSAgICAgICAgICAgIHZvaWQgYXVkaW9UYWdzQ2hhbmdlZChn
aW50KTsKLSAgICAgICAgICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZWaWRlb1RhZ3MoKTsKLSAgICAg
ICAgICAgIHZvaWQgbm90aWZ5UGxheWVyT2ZBdWRpb1RhZ3MoKTsKKyAgICAgICAgICAgIHZvaWQg
dmlkZW9DaGFuZ2VkKCk7CisgICAgICAgICAgICB2b2lkIGF1ZGlvQ2hhbmdlZCgpOworICAgICAg
ICAgICAgdm9pZCBub3RpZnlQbGF5ZXJPZlZpZGVvKCk7CisgICAgICAgICAgICB2b2lkIG5vdGlm
eVBsYXllck9mQXVkaW8oKTsKIAogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKik7CkBAIC0xOTEsOCArMTgyLDggQEAg
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyIDogcHVibGljIE1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZSB7CiAgICAgICAgICAgICBndWludCBtX211dGVUaW1lckhhbmRsZXI7CiAg
ICAgICAgICAgICBib29sIG1faGFzVmlkZW87CiAgICAgICAgICAgICBib29sIG1faGFzQXVkaW87
Ci0gICAgICAgICAgICBndWludCBtX2F1ZGlvVGFnc1RpbWVySGFuZGxlcjsKLSAgICAgICAgICAg
IGd1aW50IG1fdmlkZW9UYWdzVGltZXJIYW5kbGVyOworICAgICAgICAgICAgZ3VpbnQgbV9hdWRp
b1RpbWVySGFuZGxlcjsKKyAgICAgICAgICAgIGd1aW50IG1fdmlkZW9UaW1lckhhbmRsZXI7CiAg
ICAgfTsKIH0KIAotLSAKMS43LjQuMQ==
</data>
<flag name="review"
          id="81606"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>