<?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>162894</bug_id>
          
          <creation_ts>2016-10-04 03:24:37 -0700</creation_ts>
          <short_desc>[GStreamer] GStreamer Media Sample</short_desc>
          <delta_ts>2016-10-26 01:42:10 -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>Platform</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>157314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrique Ocaña">eocanha</reporter>
          <assigned_to name="Enrique Ocaña">eocanha</assigned_to>
          <cc>calvaris</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1236121</commentid>
    <comment_count>0</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-04 03:24:37 -0700</bug_when>
    <thetext>Implement the MediaSample interface for the GStreamer platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236123</commentid>
    <comment_count>1</comment_count>
      <attachid>290587</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-04 03:27:51 -0700</bug_when>
    <thetext>Created attachment 290587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236143</commentid>
    <comment_count>2</comment_count>
      <attachid>290596</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-04 05:45:14 -0700</bug_when>
    <thetext>Created attachment 290596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236155</commentid>
    <comment_count>3</comment_count>
      <attachid>290596</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2016-10-04 07:02:04 -0700</bug_when>
    <thetext>Comment on attachment 290596
Patch

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

This can be fixed at landing time.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:78
&gt; +    GstSample* gstSample = nullptr;
&gt; +    GStreamerMediaSample* gstreamerMediaSample = new GStreamerMediaSample(gstSample, presentationSize, trackId);

Can&apos;t you just GStreamerMediaSample* gstreamerMediaSample = new GStreamerMediaSample(nullptr, presentationSize, trackId); ?

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.h:36
&gt; +    MediaTime m_pts, m_dts, m_duration;

Three different lines, please.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.h:65
&gt; +    MediaTime presentationTime() const { return m_pts; }
&gt; +    MediaTime decodeTime() const { return m_dts; }
&gt; +    MediaTime duration() const { return m_duration; }
&gt; +    AtomicString trackID() const { return m_trackId; }
&gt; +    void setTrackID(const String&amp; trackId) { m_trackId = trackId; }
&gt; +    size_t sizeInBytes() const { return m_size; }
&gt; +    GstSample* sample() const { return m_sample.get(); }
&gt; +    FloatSize presentationSize() const { return m_presentationSize; }
&gt; +    void offsetTimestampsBy(const MediaTime&amp;);
&gt; +    void setTimestamps(const MediaTime&amp;, const MediaTime&amp;) { }
&gt; +    bool isDivisable() const { return false; }
&gt; +    std::pair&lt;RefPtr&lt;MediaSample&gt;, RefPtr&lt;MediaSample&gt;&gt; divide(const MediaTime&amp;) { return { nullptr, nullptr }; }
&gt; +    SampleFlags flags() const { return m_flags; }
&gt; +    PlatformSample platformSample() { return PlatformSample(); }

You need to add the override around here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236159</commentid>
    <comment_count>4</comment_count>
      <attachid>290596</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-04 07:06:43 -0700</bug_when>
    <thetext>Comment on attachment 290596
Patch

Wait until all the patches in 157314 are ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240759</commentid>
    <comment_count>5</comment_count>
      <attachid>291759</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-16 12:04:11 -0700</bug_when>
    <thetext>Created attachment 291759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241375</commentid>
    <comment_count>6</comment_count>
      <attachid>291759</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-10-18 01:18:53 -0700</bug_when>
    <thetext>Comment on attachment 291759
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:67
&gt; +        m_flags = (MediaSample::SampleFlags) (m_flags | MediaSample::NonDisplaying);

I think a static_cast&lt;MediaSample::SampleFlags&gt;() should be preferred here.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:73
&gt; +PassRefPtr&lt;GStreamerMediaSample&gt; GStreamerMediaSample::create(GstSample* sample, const FloatSize&amp; presentationSize, const AtomicString&amp; trackId)
&gt; +{
&gt; +    return adoptRef(new GStreamerMediaSample(sample, presentationSize, trackId));
&gt; +}

This should return Ref&lt;GStreamerMediaSample&gt;. The whole function should be put into the header.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:75
&gt; +PassRefPtr&lt;GStreamerMediaSample&gt; GStreamerMediaSample::createFakeSample(GstCaps*, MediaTime pts, MediaTime dts, MediaTime duration, const FloatSize&amp; presentationSize, const AtomicString&amp; trackId)

This should return Ref&lt;GStreamerMediaSample&gt;. This fits more into the implementation file though, so don&apos;t move it into a header.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp:108
&gt; +GStreamerMediaSample::~GStreamerMediaSample()
&gt; +{
&gt; +}

This should be placed directly after the constructor, and should be defaulted.

&gt; Source/WebCore/platform/graphics/gstreamer/mse/GStreamerMediaSample.h:44
&gt; +private:
&gt; +    MediaTime m_pts;
&gt; +    MediaTime m_dts;
&gt; +    MediaTime m_duration;
&gt; +    AtomicString m_trackId;
&gt; +    size_t m_size;
&gt; +    GRefPtr&lt;GstSample&gt; m_sample;
&gt; +    FloatSize m_presentationSize;
&gt; +    MediaSample::SampleFlags m_flags;
&gt; +
&gt; +    GStreamerMediaSample(GstSample*, const FloatSize&amp; presentationSize, const AtomicString&amp; trackId);

The private section always follows the public one. And the constructor is normally the first thing declared under it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242580</commentid>
    <comment_count>7</comment_count>
      <attachid>292250</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-20 13:55:03 -0700</bug_when>
    <thetext>Created attachment 292250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243093</commentid>
    <comment_count>8</comment_count>
      <attachid>292405</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-21 14:23:46 -0700</bug_when>
    <thetext>Created attachment 292405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244287</commentid>
    <comment_count>9</comment_count>
      <attachid>292778</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-25 11:02:39 -0700</bug_when>
    <thetext>Created attachment 292778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244672</commentid>
    <comment_count>10</comment_count>
      <attachid>292890</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-26 01:19:18 -0700</bug_when>
    <thetext>Created attachment 292890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244702</commentid>
    <comment_count>11</comment_count>
      <attachid>292890</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-26 01:42:02 -0700</bug_when>
    <thetext>Comment on attachment 292890
Patch

Clearing flags on attachment: 292890

Committed r207877: &lt;http://trac.webkit.org/changeset/207877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244703</commentid>
    <comment_count>12</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2016-10-26 01:42:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290587</attachid>
            <date>2016-10-04 03:27:51 -0700</date>
            <delta_ts>2016-10-04 05:45:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161004102440.patch</filename>
            <type>text/plain</type>
            <size>9686</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYwMTMzY2JhMTlhYjY4
N2RhMWE5ZmE2NmJlMjZlYTI3M2E4N2YwOC4uOGMzYzIwNDc1MDUxMzI4ODQ4NGUzNjEwZjk2M2Rh
Mzc2YTdiYWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBsZSBpbnRlcmZh
Y2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNPZmZzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRpbWVzdGFtcHNC
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdTdHJlYW1lck1l
ZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
TWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVh
bWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
TWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpz
aXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6c2Ft
cGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpwcmVzZW50YXRp
b25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpzZXRUaW1l
c3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjppc0Rpdmlz
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6ZGl2aWRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6CisgICAgICAg
IChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2LTEwLTA0ICBF
bnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKICAgICAgICAg
W0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2EyY2UzNjk4N2EyZmU0
NzJmZWEwNDM1MGIxZGFiY2UxMDFkNWI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYVNhbXBsZS5j
cHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgTWV0cm9sb2dp
Y2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisKKyNpbmNsdWRl
ICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJF
QU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQorCit1
c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dTdHJlYW1lck1l
ZGlhU2FtcGxlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3Qg
RmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQp
CisgICAgOiBNZWRpYVNhbXBsZSgpCisgICAgLCBtX3B0cyhNZWRpYVRpbWU6Onplcm9UaW1lKCkp
CisgICAgLCBtX2R0cyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R1cmF0aW9uKE1l
ZGlhVGltZTo6emVyb1RpbWUoKSkKKyAgICAsIG1fdHJhY2tJZCh0cmFja0lkKQorICAgICwgbV9z
aXplKDApCisgICAgLCBtX3ByZXNlbnRhdGlvblNpemUocHJlc2VudGF0aW9uU2l6ZSkKKyAgICAs
IG1fZmxhZ3MoTWVkaWFTYW1wbGU6OklzU3luYykKK3sKKworICAgIGlmICghc2FtcGxlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1
ZmZlcihzYW1wbGUpOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBh
dXRvIGNyZWF0ZU1lZGlhVGltZSA9CisgICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBN
ZWRpYVRpbWUgeworICAgICAgICAgICAgcmV0dXJuIE1lZGlhVGltZShHU1RfVElNRV9BU19VU0VD
T05EUyh0aW1lKSwgR19VU0VDX1BFUl9TRUMpOworICAgICAgICB9OworCisgICAgaWYgKEdTVF9C
VUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZlcikpCisgICAgICAgIG1fcHRzID0gY3JlYXRlTWVkaWFU
aW1lKEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikpOworICAgIGlmIChHU1RfQlVGRkVSX0RUU19JU19W
QUxJRChidWZmZXIpKQorICAgICAgICBtX2R0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVS
X0RUUyhidWZmZXIpKTsKKyAgICBpZiAoR1NUX0JVRkZFUl9EVVJBVElPTl9JU19WQUxJRChidWZm
ZXIpKQorICAgICAgICBtX2R1cmF0aW9uID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJfRFVS
QVRJT04oYnVmZmVyKSk7CisKKyAgICBtX3NpemUgPSBnc3RfYnVmZmVyX2dldF9zaXplKGJ1ZmZl
cik7CisgICAgbV9zYW1wbGUgPSBzYW1wbGU7CisKKyAgICBpZiAoR1NUX0JVRkZFUl9GTEFHX0lT
X1NFVChidWZmZXIsIEdTVF9CVUZGRVJfRkxBR19ERUxUQV9VTklUKSkKKyAgICAgICAgbV9mbGFn
cyA9IE1lZGlhU2FtcGxlOjpOb25lOworCisgICAgaWYgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQo
YnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfREVDT0RFX09OTFkpKQorICAgICAgICBtX2ZsYWdzID0g
KE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncykgKG1fZmxhZ3MgfCBNZWRpYVNhbXBsZTo6Tm9uRGlz
cGxheWluZyk7Cit9CisKK1Bhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1l
ck1lZGlhU2FtcGxlOjpjcmVhdGUoR3N0U2FtcGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYg
cHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgR1N0cmVhbWVyTWVkaWFTYW1wbGUoc2FtcGxlLCBwcmVzZW50YXRp
b25TaXplLCB0cmFja0lkKSk7Cit9CisKK1Bhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+
IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYVRp
bWUgcHRzLCBNZWRpYVRpbWUgZHRzLCBNZWRpYVRpbWUgZHVyYXRpb24sIGNvbnN0IEZsb2F0U2l6
ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAg
IEdzdFNhbXBsZSogZ3N0U2FtcGxlID0gbnVsbHB0cjsKKyAgICBHU3RyZWFtZXJNZWRpYVNhbXBs
ZSogZ3N0cmVhbWVyTWVkaWFTYW1wbGUgPSBuZXcgR1N0cmVhbWVyTWVkaWFTYW1wbGUoZ3N0U2Ft
cGxlLCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBs
ZS0+bV9wdHMgPSBwdHM7CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRzOwor
ICAgIGdzdHJlYW1lck1lZGlhU2FtcGxlLT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAgZ3N0
cmVhbWVyTWVkaWFTYW1wbGUtPm1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWluZzsK
KyAgICByZXR1cm4gYWRvcHRSZWYoZ3N0cmVhbWVyTWVkaWFTYW1wbGUpOworfQorCit2b2lkIEdT
dHJlYW1lck1lZGlhU2FtcGxlOjphcHBseVB0c09mZnNldChNZWRpYVRpbWUgdGltZXN0YW1wT2Zm
c2V0KQoreworICAgIGlmIChtX3B0cyA+IHRpbWVzdGFtcE9mZnNldCkgeworICAgICAgICBtX2R1
cmF0aW9uID0gbV9kdXJhdGlvbiArIChtX3B0cyAtIHRpbWVzdGFtcE9mZnNldCk7CisgICAgICAg
IG1fcHRzID0gdGltZXN0YW1wT2Zmc2V0OworICAgIH0KK30KKwordm9pZCBHU3RyZWFtZXJNZWRp
YVNhbXBsZTo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1wT2Zm
c2V0KQoreworICAgIGlmICghdGltZXN0YW1wT2Zmc2V0KQorICAgICAgICByZXR1cm47CisgICAg
bV9wdHMgKz0gdGltZXN0YW1wT2Zmc2V0OworICAgIG1fZHRzICs9IHRpbWVzdGFtcE9mZnNldDsK
KyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBsZS5n
ZXQoKSk7CisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBHU1RfQlVGRkVSX1BUUyhidWZmZXIp
ID0gdG9Hc3RDbG9ja1RpbWUobV9wdHMudG9GbG9hdCgpKTsKKyAgICAgICAgR1NUX0JVRkZFUl9E
VFMoYnVmZmVyKSA9IHRvR3N0Q2xvY2tUaW1lKG1fZHRzLnRvRmxvYXQoKSk7CisgICAgfQorfQor
CitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdTdHJlYW1lck1lZGlhU2FtcGxlKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZS4KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0NzMwZGU0
ZGJiZjExZTQyNWU1ZDZlYTQxN2QwOTMxNjAwYTFlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFT
YW1wbGUuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IE1ldHJv
bG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTAorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgR1N0cmVhbWVyTWVkaWFTYW1wbGVfaAorI2RlZmluZSBHU3RyZWFtZXJNZWRpYVNhbXBsZV9o
CisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgor
I2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgor
I2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHU3RyZWFtZXJNZWRpYVNhbXBsZSA6IHB1
YmxpYyBNZWRpYVNhbXBsZSB7Citwcml2YXRlOgorICAgIE1lZGlhVGltZSBtX3B0cywgbV9kdHMs
IG1fZHVyYXRpb247CisgICAgQXRvbWljU3RyaW5nIG1fdHJhY2tJZDsKKyAgICBzaXplX3QgbV9z
aXplOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBtX3NhbXBsZTsKKyAgICBGbG9hdFNpemUgbV9w
cmVzZW50YXRpb25TaXplOworICAgIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBtX2ZsYWdzOwor
CisgICAgR1N0cmVhbWVyTWVkaWFTYW1wbGUoR3N0U2FtcGxlKiwgY29uc3QgRmxvYXRTaXplJiBw
cmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQpOworCitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZShHc3RT
YW1wbGUqLCBjb25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdHJhY2tJRCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1w
bGU+IGNyZWF0ZUZha2VTYW1wbGUoR3N0Q2FwcyosIE1lZGlhVGltZSBwdHMsIE1lZGlhVGltZSBk
dHMsIE1lZGlhVGltZSBkdXJhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXpl
LCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpOworCisgICAgdmlydHVhbCB+R1N0cmVhbWVy
TWVkaWFTYW1wbGUoKTsKKworICAgIHZvaWQgYXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lKTsKKyAg
ICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRzOyB9Cisg
ICAgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2R0czsgfQorICAgIE1l
ZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBBdG9t
aWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tJZDsgfQorICAgIHZvaWQg
c2V0VHJhY2tJRChjb25zdCBTdHJpbmcmIHRyYWNrSWQpIHsgbV90cmFja0lkID0gdHJhY2tJZDsg
fQorICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAg
IEdzdFNhbXBsZSogc2FtcGxlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KKyAg
ICBGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VudGF0
aW9uU2l6ZTsgfQorICAgIHZvaWQgb2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYp
OworICAgIHZvaWQgc2V0VGltZXN0YW1wcyhjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRp
bWUmKSB7IH0KKyAgICBib29sIGlzRGl2aXNhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4g
ZGl2aWRlKGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9
CisgICAgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CisgICAg
UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSB7IHJldHVybiBQbGF0Zm9ybVNhbXBsZSgp
OyB9CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3QgeyB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlLgorCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290596</attachid>
            <date>2016-10-04 05:45:14 -0700</date>
            <delta_ts>2016-10-16 12:04:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161004124203.patch</filename>
            <type>text/plain</type>
            <size>9662</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYwMTMzY2JhMTlhYjY4
N2RhMWE5ZmE2NmJlMjZlYTI3M2E4N2YwOC4uOGMzYzIwNDc1MDUxMzI4ODQ4NGUzNjEwZjk2M2Rh
Mzc2YTdiYWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBsZSBpbnRlcmZh
Y2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNhbXBsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNPZmZzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRpbWVzdGFtcHNC
eSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdTdHJlYW1lck1l
ZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
TWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVh
bWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVy
TWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpz
aXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6c2Ft
cGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpwcmVzZW50YXRp
b25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpzZXRUaW1l
c3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjppc0Rpdmlz
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6ZGl2aWRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6CisgICAgICAg
IChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2LTEwLTA0ICBF
bnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKICAgICAgICAg
W0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWY5N2Y3ZjRiNjliMzYw
ZWQyODBkNTA2NzE4MzQ4MDBkMjFhZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYVNhbXBsZS5j
cHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgTWV0cm9sb2dp
Y2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisKKyNpbmNsdWRl
ICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJF
QU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0dTdHJlYW1lck1lZGlhU2FtcGxlOjpHU3RyZWFtZXJNZWRp
YVNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25T
aXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQpCisgICAgOiBNZWRpYVNhbXBsZSgpCisg
ICAgLCBtX3B0cyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R0cyhNZWRpYVRpbWU6
Onplcm9UaW1lKCkpCisgICAgLCBtX2R1cmF0aW9uKE1lZGlhVGltZTo6emVyb1RpbWUoKSkKKyAg
ICAsIG1fdHJhY2tJZCh0cmFja0lkKQorICAgICwgbV9zaXplKDApCisgICAgLCBtX3ByZXNlbnRh
dGlvblNpemUocHJlc2VudGF0aW9uU2l6ZSkKKyAgICAsIG1fZmxhZ3MoTWVkaWFTYW1wbGU6Oklz
U3luYykKK3sKKworICAgIGlmICghc2FtcGxlKQorICAgICAgICByZXR1cm47CisKKyAgICBHc3RC
dWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUpOworICAgIGlmICgh
YnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNyZWF0ZU1lZGlhVGltZSA9Cisg
ICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBNZWRpYVRpbWUgeworICAgICAgICAgICAg
cmV0dXJuIE1lZGlhVGltZShHU1RfVElNRV9BU19VU0VDT05EUyh0aW1lKSwgR19VU0VDX1BFUl9T
RUMpOworICAgICAgICB9OworCisgICAgaWYgKEdTVF9CVUZGRVJfUFRTX0lTX1ZBTElEKGJ1ZmZl
cikpCisgICAgICAgIG1fcHRzID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJfUFRTKGJ1ZmZl
cikpOworICAgIGlmIChHU1RfQlVGRkVSX0RUU19JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X2R0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX0RUUyhidWZmZXIpKTsKKyAgICBpZiAo
R1NUX0JVRkZFUl9EVVJBVElPTl9JU19WQUxJRChidWZmZXIpKQorICAgICAgICBtX2R1cmF0aW9u
ID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJfRFVSQVRJT04oYnVmZmVyKSk7CisKKyAgICBt
X3NpemUgPSBnc3RfYnVmZmVyX2dldF9zaXplKGJ1ZmZlcik7CisgICAgbV9zYW1wbGUgPSBzYW1w
bGU7CisKKyAgICBpZiAoR1NUX0JVRkZFUl9GTEFHX0lTX1NFVChidWZmZXIsIEdTVF9CVUZGRVJf
RkxBR19ERUxUQV9VTklUKSkKKyAgICAgICAgbV9mbGFncyA9IE1lZGlhU2FtcGxlOjpOb25lOwor
CisgICAgaWYgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdf
REVDT0RFX09OTFkpKQorICAgICAgICBtX2ZsYWdzID0gKE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFn
cykgKG1fZmxhZ3MgfCBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWluZyk7Cit9CisKK1Bhc3NSZWZQ
dHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGUoR3N0
U2FtcGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgR1N0cmVh
bWVyTWVkaWFTYW1wbGUoc2FtcGxlLCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lkKSk7Cit9CisK
K1Bhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpj
cmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRpbWUgZHRzLCBN
ZWRpYVRpbWUgZHVyYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIEdzdFNhbXBsZSogZ3N0U2FtcGxlID0g
bnVsbHB0cjsKKyAgICBHU3RyZWFtZXJNZWRpYVNhbXBsZSogZ3N0cmVhbWVyTWVkaWFTYW1wbGUg
PSBuZXcgR1N0cmVhbWVyTWVkaWFTYW1wbGUoZ3N0U2FtcGxlLCBwcmVzZW50YXRpb25TaXplLCB0
cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBsZS0+bV9wdHMgPSBwdHM7CisgICAgZ3N0
cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRzOworICAgIGdzdHJlYW1lck1lZGlhU2FtcGxl
LT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZmxh
Z3MgPSBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWluZzsKKyAgICByZXR1cm4gYWRvcHRSZWYoZ3N0
cmVhbWVyTWVkaWFTYW1wbGUpOworfQorCit2b2lkIEdTdHJlYW1lck1lZGlhU2FtcGxlOjphcHBs
eVB0c09mZnNldChNZWRpYVRpbWUgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmIChtX3B0cyA+
IHRpbWVzdGFtcE9mZnNldCkgeworICAgICAgICBtX2R1cmF0aW9uID0gbV9kdXJhdGlvbiArICht
X3B0cyAtIHRpbWVzdGFtcE9mZnNldCk7CisgICAgICAgIG1fcHRzID0gdGltZXN0YW1wT2Zmc2V0
OworICAgIH0KK30KKwordm9pZCBHU3RyZWFtZXJNZWRpYVNhbXBsZTo6b2Zmc2V0VGltZXN0YW1w
c0J5KGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmICghdGltZXN0
YW1wT2Zmc2V0KQorICAgICAgICByZXR1cm47CisgICAgbV9wdHMgKz0gdGltZXN0YW1wT2Zmc2V0
OworICAgIG1fZHRzICs9IHRpbWVzdGFtcE9mZnNldDsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9
IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKGJ1ZmZlcikg
eworICAgICAgICBHU1RfQlVGRkVSX1BUUyhidWZmZXIpID0gdG9Hc3RDbG9ja1RpbWUobV9wdHMu
dG9GbG9hdCgpKTsKKyAgICAgICAgR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSA9IHRvR3N0Q2xvY2tU
aW1lKG1fZHRzLnRvRmxvYXQoKSk7CisgICAgfQorfQorCitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
fkdTdHJlYW1lck1lZGlhU2FtcGxlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZS4K
KworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1l
ZGlhU2FtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0NzMwZGU0ZGJiZjExZTQyNWU1ZDZlYTQxN2QwOTMx
NjAwYTFlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFTYW1wbGUuaApAQCAtMCwwICsxLDcyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTAorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgR1N0cmVhbWVyTWVkaWFTYW1wbGVf
aAorI2RlZmluZSBHU3RyZWFtZXJNZWRpYVNhbXBsZV9oCisKKyNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURFT19U
UkFDSykKKworI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFt
ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBHU3RyZWFtZXJNZWRpYVNhbXBsZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7Citwcml2
YXRlOgorICAgIE1lZGlhVGltZSBtX3B0cywgbV9kdHMsIG1fZHVyYXRpb247CisgICAgQXRvbWlj
U3RyaW5nIG1fdHJhY2tJZDsKKyAgICBzaXplX3QgbV9zaXplOworICAgIEdSZWZQdHI8R3N0U2Ft
cGxlPiBtX3NhbXBsZTsKKyAgICBGbG9hdFNpemUgbV9wcmVzZW50YXRpb25TaXplOworICAgIE1l
ZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBtX2ZsYWdzOworCisgICAgR1N0cmVhbWVyTWVkaWFTYW1w
bGUoR3N0U2FtcGxlKiwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBB
dG9taWNTdHJpbmcmIHRyYWNrSWQpOworCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZShHc3RTYW1wbGUqLCBjb25zdCBGbG9hdFNpemUm
IHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCk7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZUZha2VTYW1wbGUoR3N0
Q2FwcyosIE1lZGlhVGltZSBwdHMsIE1lZGlhVGltZSBkdHMsIE1lZGlhVGltZSBkdXJhdGlvbiwg
Y29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRy
YWNrSUQpOworCisgICAgdmlydHVhbCB+R1N0cmVhbWVyTWVkaWFTYW1wbGUoKTsKKworICAgIHZv
aWQgYXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lKTsKKyAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHRzOyB9CisgICAgTWVkaWFUaW1lIGRlY29kZVRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2R0czsgfQorICAgIE1lZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBBdG9taWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhY2tJZDsgfQorICAgIHZvaWQgc2V0VHJhY2tJRChjb25zdCBTdHJpbmcm
IHRyYWNrSWQpIHsgbV90cmFja0lkID0gdHJhY2tJZDsgfQorICAgIHNpemVfdCBzaXplSW5CeXRl
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIEdzdFNhbXBsZSogc2FtcGxlKCkgY29u
c3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KKyAgICBGbG9hdFNpemUgcHJlc2VudGF0aW9u
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VudGF0aW9uU2l6ZTsgfQorICAgIHZvaWQgb2Zm
c2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYpOworICAgIHZvaWQgc2V0VGltZXN0YW1w
cyhjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IH0KKyAgICBib29sIGlzRGl2
aXNhYmxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGQ6OnBhaXI8UmVmUHRyPE1l
ZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlhU2FtcGxlPj4gZGl2aWRlKGNvbnN0IE1lZGlhVGltZSYp
IHsgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9CisgICAgU2FtcGxlRmxhZ3MgZmxhZ3Mo
KSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CisgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1T
YW1wbGUoKSB7IHJldHVybiBQbGF0Zm9ybVNhbXBsZSgpOyB9CisgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3QgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlLgorCisjZW5k
aWYgLy8gVVNFKEdTVFJFQU1FUikKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291759</attachid>
            <date>2016-10-16 12:04:11 -0700</date>
            <delta_ts>2016-10-20 13:54:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161016190039.patch</filename>
            <type>text/plain</type>
            <size>9732</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JkNzE0ZGFhM2NkODFm
N2NjODhmMTVhY2NlZWRmOGZiODVkMjMzOS4uYmE0ZDhlNmQ5MWMxYmUyOTc2NDZiZDI4MzliYjY5
YmZiN2VmMjQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBs
ZSBpbnRlcmZhY2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVk
aWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRp
bWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdT
dHJlYW1lck1lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lck1lZGlhU2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1l
ZGlhU2FtcGxlOjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjpzaXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNh
bXBsZTo6c2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpw
cmVzZW50YXRpb25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUaW1lc3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
Ojppc0RpdmlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2
LTEwLTA0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3Ry
ZWFtZXJNZWRpYVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGE1MGRh
OGYxMDQ0NDQ2MjAxM2Q2NzU4ODkzNTY1YmQ1NzNhODVhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5M
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisK
KyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RS
QUNLKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dTdHJlYW1lck1lZGlhU2FtcGxlOjpHU3Ry
ZWFtZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgRmxvYXRTaXplJiBwcmVz
ZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQpCisgICAgOiBNZWRpYVNh
bXBsZSgpCisgICAgLCBtX3B0cyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R0cyhN
ZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R1cmF0aW9uKE1lZGlhVGltZTo6emVyb1Rp
bWUoKSkKKyAgICAsIG1fdHJhY2tJZCh0cmFja0lkKQorICAgICwgbV9zaXplKDApCisgICAgLCBt
X3ByZXNlbnRhdGlvblNpemUocHJlc2VudGF0aW9uU2l6ZSkKKyAgICAsIG1fZmxhZ3MoTWVkaWFT
YW1wbGU6OklzU3luYykKK3sKKworICAgIGlmICghc2FtcGxlKQorICAgICAgICByZXR1cm47CisK
KyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUpOwor
ICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNyZWF0ZU1lZGlh
VGltZSA9CisgICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBNZWRpYVRpbWUgeworICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhVGltZShHU1RfVElNRV9BU19VU0VDT05EUyh0aW1lKSwgR19V
U0VDX1BFUl9TRUMpOworICAgICAgICB9OworCisgICAgaWYgKEdTVF9CVUZGRVJfUFRTX0lTX1ZB
TElEKGJ1ZmZlcikpCisgICAgICAgIG1fcHRzID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJf
UFRTKGJ1ZmZlcikpOworICAgIGlmIChHU1RfQlVGRkVSX0RUU19JU19WQUxJRChidWZmZXIpKQor
ICAgICAgICBtX2R0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX0RUUyhidWZmZXIpKTsK
KyAgICBpZiAoR1NUX0JVRkZFUl9EVVJBVElPTl9JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X2R1cmF0aW9uID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJfRFVSQVRJT04oYnVmZmVyKSk7
CisKKyAgICBtX3NpemUgPSBnc3RfYnVmZmVyX2dldF9zaXplKGJ1ZmZlcik7CisgICAgbV9zYW1w
bGUgPSBzYW1wbGU7CisKKyAgICBpZiAoR1NUX0JVRkZFUl9GTEFHX0lTX1NFVChidWZmZXIsIEdT
VF9CVUZGRVJfRkxBR19ERUxUQV9VTklUKSkKKyAgICAgICAgbV9mbGFncyA9IE1lZGlhU2FtcGxl
OjpOb25lOworCisgICAgaWYgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVG
RkVSX0ZMQUdfREVDT0RFX09OTFkpKQorICAgICAgICBtX2ZsYWdzID0gKE1lZGlhU2FtcGxlOjpT
YW1wbGVGbGFncykgKG1fZmxhZ3MgfCBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWluZyk7Cit9CisK
K1Bhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpj
cmVhdGUoR3N0U2FtcGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgR1N0cmVhbWVyTWVkaWFTYW1wbGUoc2FtcGxlLCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lk
KSk7Cit9CisKK1Bhc3NSZWZQdHI8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlh
U2FtcGxlOjpjcmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRp
bWUgZHRzLCBNZWRpYVRpbWUgZHVyYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9u
U2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIEdTdHJlYW1lck1lZGlh
U2FtcGxlKiBnc3RyZWFtZXJNZWRpYVNhbXBsZSA9IG5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShu
dWxscHRyLCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNh
bXBsZS0+bV9wdHMgPSBwdHM7CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRz
OworICAgIGdzdHJlYW1lck1lZGlhU2FtcGxlLT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAg
Z3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWlu
ZzsKKyAgICByZXR1cm4gYWRvcHRSZWYoZ3N0cmVhbWVyTWVkaWFTYW1wbGUpOworfQorCit2b2lk
IEdTdHJlYW1lck1lZGlhU2FtcGxlOjphcHBseVB0c09mZnNldChNZWRpYVRpbWUgdGltZXN0YW1w
T2Zmc2V0KQoreworICAgIGlmIChtX3B0cyA+IHRpbWVzdGFtcE9mZnNldCkgeworICAgICAgICBt
X2R1cmF0aW9uID0gbV9kdXJhdGlvbiArIChtX3B0cyAtIHRpbWVzdGFtcE9mZnNldCk7CisgICAg
ICAgIG1fcHRzID0gdGltZXN0YW1wT2Zmc2V0OworICAgIH0KK30KKwordm9pZCBHU3RyZWFtZXJN
ZWRpYVNhbXBsZTo6b2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1w
T2Zmc2V0KQoreworICAgIGlmICghdGltZXN0YW1wT2Zmc2V0KQorICAgICAgICByZXR1cm47Cisg
ICAgbV9wdHMgKz0gdGltZXN0YW1wT2Zmc2V0OworICAgIG1fZHRzICs9IHRpbWVzdGFtcE9mZnNl
dDsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBs
ZS5nZXQoKSk7CisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBHU1RfQlVGRkVSX1BUUyhidWZm
ZXIpID0gdG9Hc3RDbG9ja1RpbWUobV9wdHMudG9GbG9hdCgpKTsKKyAgICAgICAgR1NUX0JVRkZF
Ul9EVFMoYnVmZmVyKSA9IHRvR3N0Q2xvY2tUaW1lKG1fZHRzLnRvRmxvYXQoKSk7CisgICAgfQor
fQorCitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdTdHJlYW1lck1lZGlhU2FtcGxlKCkKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZS4KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0dTdHJlYW1lck1lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEyNzk0
MmRiNjE4YmE0ZDQwODI4NDM2NDdhZTIzOWFkNGYxM2EwZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVk
aWFTYW1wbGUuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IE1l
dHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTAor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFC
TEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJGbG9h
dFNpemUuaCIKKyNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiTWVkaWFT
YW1wbGUuaCIKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1N0cmVhbWVyTWVkaWFT
YW1wbGUgOiBwdWJsaWMgTWVkaWFTYW1wbGUgeworcHJpdmF0ZToKKyAgICBNZWRpYVRpbWUgbV9w
dHM7CisgICAgTWVkaWFUaW1lIG1fZHRzOworICAgIE1lZGlhVGltZSBtX2R1cmF0aW9uOworICAg
IEF0b21pY1N0cmluZyBtX3RyYWNrSWQ7CisgICAgc2l6ZV90IG1fc2l6ZTsKKyAgICBHUmVmUHRy
PEdzdFNhbXBsZT4gbV9zYW1wbGU7CisgICAgRmxvYXRTaXplIG1fcHJlc2VudGF0aW9uU2l6ZTsK
KyAgICBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgbV9mbGFnczsKKworICAgIEdTdHJlYW1lck1l
ZGlhU2FtcGxlKEdzdFNhbXBsZSosIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKTsKKworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEdTdHJlYW1lck1lZGlhU2FtcGxlPiBjcmVhdGUoR3N0U2FtcGxlKiwgY29uc3QgRmxv
YXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdTdHJlYW1lck1lZGlhU2FtcGxlPiBjcmVhdGVGYWtlU2Ft
cGxlKEdzdENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRpbWUgZHRzLCBNZWRpYVRpbWUgZHVy
YXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB0cmFja0lEKTsKKworICAgIHZpcnR1YWwgfkdTdHJlYW1lck1lZGlhU2FtcGxlKCk7CisK
KyAgICB2b2lkIGFwcGx5UHRzT2Zmc2V0KE1lZGlhVGltZSk7CisgICAgTWVkaWFUaW1lIHByZXNl
bnRhdGlvblRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3B0czsgfQorICAgIE1lZGlh
VGltZSBkZWNvZGVUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9kdHM7IH0KKyAgICBN
ZWRpYVRpbWUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2R1cmF0aW9uOyB9
CisgICAgQXRvbWljU3RyaW5nIHRyYWNrSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Ry
YWNrSWQ7IH0KKyAgICB2b2lkIHNldFRyYWNrSUQoY29uc3QgU3RyaW5nJiB0cmFja0lkKSBvdmVy
cmlkZSB7IG1fdHJhY2tJZCA9IHRyYWNrSWQ7IH0KKyAgICBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NpemU7IH0KKyAgICBHc3RTYW1wbGUqIHNhbXBsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlLmdldCgpOyB9CisgICAgRmxvYXRTaXplIHByZXNlbnRh
dGlvblNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ByZXNlbnRhdGlvblNpemU7IH0K
KyAgICB2b2lkIG9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNldFRpbWVzdGFtcHMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1l
Jikgb3ZlcnJpZGUgeyB9CisgICAgYm9vbCBpc0RpdmlzYWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgc3RkOjpwYWlyPFJlZlB0cjxNZWRpYVNhbXBsZT4sIFJlZlB0
cjxNZWRpYVNhbXBsZT4+IGRpdmlkZShjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZSAgeyByZXR1
cm4geyBudWxscHRyLCBudWxscHRyIH07IH0KKyAgICBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fZmxhZ3M7IH0KKyAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9y
bVNhbXBsZSgpIG92ZXJyaWRlICB7IHJldHVybiBQbGF0Zm9ybVNhbXBsZSgpOyB9CisgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGUgeyB9Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlLgorCisjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292250</attachid>
            <date>2016-10-20 13:55:03 -0700</date>
            <delta_ts>2016-10-21 14:23:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161020205125.patch</filename>
            <type>text/plain</type>
            <size>9548</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkZjZjNjQ0M2QyNjI5
YWY2OTFhMTdhYWYzNjM4MjI4ODUwMzBjNi4uZWFjMDA1YTBjMjk5OTAzYTk4MzhhZjg1NWJjODg1
NWQwM2NiM2E0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBs
ZSBpbnRlcmZhY2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVk
aWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRp
bWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdT
dHJlYW1lck1lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lck1lZGlhU2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1l
ZGlhU2FtcGxlOjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjpzaXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNh
bXBsZTo6c2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpw
cmVzZW50YXRpb25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUaW1lc3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
Ojppc0RpdmlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2
LTEwLTA0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3Ry
ZWFtZXJNZWRpYVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODYzOTFm
Y2FiZWZlNjM4YWI3OGFjZWIxMmYxNDE0MjJkNTRmYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5M
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisK
KyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RS
QUNLKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dTdHJlYW1lck1lZGlhU2FtcGxlOjpHU3Ry
ZWFtZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgRmxvYXRTaXplJiBwcmVz
ZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQpCisgICAgOiBNZWRpYVNh
bXBsZSgpCisgICAgLCBtX3B0cyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R0cyhN
ZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX2R1cmF0aW9uKE1lZGlhVGltZTo6emVyb1Rp
bWUoKSkKKyAgICAsIG1fdHJhY2tJZCh0cmFja0lkKQorICAgICwgbV9zaXplKDApCisgICAgLCBt
X3ByZXNlbnRhdGlvblNpemUocHJlc2VudGF0aW9uU2l6ZSkKKyAgICAsIG1fZmxhZ3MoTWVkaWFT
YW1wbGU6OklzU3luYykKK3sKKworICAgIGlmICghc2FtcGxlKQorICAgICAgICByZXR1cm47CisK
KyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihzYW1wbGUpOwor
ICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNyZWF0ZU1lZGlh
VGltZSA9CisgICAgICAgIFtdKEdzdENsb2NrVGltZSB0aW1lKSAtPiBNZWRpYVRpbWUgeworICAg
ICAgICAgICAgcmV0dXJuIE1lZGlhVGltZShHU1RfVElNRV9BU19VU0VDT05EUyh0aW1lKSwgR19V
U0VDX1BFUl9TRUMpOworICAgICAgICB9OworCisgICAgaWYgKEdTVF9CVUZGRVJfUFRTX0lTX1ZB
TElEKGJ1ZmZlcikpCisgICAgICAgIG1fcHRzID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJf
UFRTKGJ1ZmZlcikpOworICAgIGlmIChHU1RfQlVGRkVSX0RUU19JU19WQUxJRChidWZmZXIpKQor
ICAgICAgICBtX2R0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX0RUUyhidWZmZXIpKTsK
KyAgICBpZiAoR1NUX0JVRkZFUl9EVVJBVElPTl9JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X2R1cmF0aW9uID0gY3JlYXRlTWVkaWFUaW1lKEdTVF9CVUZGRVJfRFVSQVRJT04oYnVmZmVyKSk7
CisKKyAgICBtX3NpemUgPSBnc3RfYnVmZmVyX2dldF9zaXplKGJ1ZmZlcik7CisgICAgbV9zYW1w
bGUgPSBzYW1wbGU7CisKKyAgICBpZiAoR1NUX0JVRkZFUl9GTEFHX0lTX1NFVChidWZmZXIsIEdT
VF9CVUZGRVJfRkxBR19ERUxUQV9VTklUKSkKKyAgICAgICAgbV9mbGFncyA9IE1lZGlhU2FtcGxl
OjpOb25lOworCisgICAgaWYgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVG
RkVSX0ZMQUdfREVDT0RFX09OTFkpKQorICAgICAgICBtX2ZsYWdzID0gc3RhdGljX2Nhc3Q8TWVk
aWFTYW1wbGU6OlNhbXBsZUZsYWdzPihtX2ZsYWdzIHwgTWVkaWFTYW1wbGU6Ok5vbkRpc3BsYXlp
bmcpOworfQorCitSZWY8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxl
OjpjcmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRpbWUgZHRz
LCBNZWRpYVRpbWUgZHVyYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQoreworICAgIEdTdHJlYW1lck1lZGlhU2FtcGxl
KiBnc3RyZWFtZXJNZWRpYVNhbXBsZSA9IG5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShudWxscHRy
LCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBsZS0+
bV9wdHMgPSBwdHM7CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRzOworICAg
IGdzdHJlYW1lck1lZGlhU2FtcGxlLT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAgZ3N0cmVh
bWVyTWVkaWFTYW1wbGUtPm1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uRGlzcGxheWluZzsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKmdzdHJlYW1lck1lZGlhU2FtcGxlKTsKK30KKwordm9pZCBHU3Ry
ZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lIHRpbWVzdGFtcE9mZnNl
dCkKK3sKKyAgICBpZiAobV9wdHMgPiB0aW1lc3RhbXBPZmZzZXQpIHsKKyAgICAgICAgbV9kdXJh
dGlvbiA9IG1fZHVyYXRpb24gKyAobV9wdHMgLSB0aW1lc3RhbXBPZmZzZXQpOworICAgICAgICBt
X3B0cyA9IHRpbWVzdGFtcE9mZnNldDsKKyAgICB9Cit9CisKK3ZvaWQgR1N0cmVhbWVyTWVkaWFT
YW1wbGU6Om9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmIHRpbWVzdGFtcE9mZnNl
dCkKK3sKKyAgICBpZiAoIXRpbWVzdGFtcE9mZnNldCkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
cHRzICs9IHRpbWVzdGFtcE9mZnNldDsKKyAgICBtX2R0cyArPSB0aW1lc3RhbXBPZmZzZXQ7Cisg
ICAgR3N0QnVmZmVyKiBidWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIobV9zYW1wbGUuZ2V0
KCkpOworICAgIGlmIChidWZmZXIpIHsKKyAgICAgICAgR1NUX0JVRkZFUl9QVFMoYnVmZmVyKSA9
IHRvR3N0Q2xvY2tUaW1lKG1fcHRzLnRvRmxvYXQoKSk7CisgICAgICAgIEdTVF9CVUZGRVJfRFRT
KGJ1ZmZlcikgPSB0b0dzdENsb2NrVGltZShtX2R0cy50b0Zsb2F0KCkpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZS4KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dT
dHJlYW1lck1lZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzM1YTNmMTg2
YjM5MmMxZmY5ODg5YTRmN2MxMzc1YjBmOWFkMDlmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvR1N0cmVhbWVyTWVkaWFT
YW1wbGUuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IE1ldHJv
bG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTAorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWludCB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUo
TUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNpbmNsdWRlICJGbG9hdFNp
emUuaCIKKyNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1w
bGUuaCIKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR1N0cmVhbWVyTWVkaWFTYW1w
bGUgOiBwdWJsaWMgTWVkaWFTYW1wbGUgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8R1N0cmVh
bWVyTWVkaWFTYW1wbGU+IGNyZWF0ZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgRmxvYXRTaXpl
JiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShzYW1wbGUs
IHByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPEdT
dHJlYW1lck1lZGlhU2FtcGxlPiBjcmVhdGVGYWtlU2FtcGxlKEdzdENhcHMqLCBNZWRpYVRpbWUg
cHRzLCBNZWRpYVRpbWUgZHRzLCBNZWRpYVRpbWUgZHVyYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYg
cHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKTsKKworICAgIHZv
aWQgYXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lKTsKKyAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcHRzOyB9CisgICAgTWVkaWFUaW1lIGRl
Y29kZVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2R0czsgfQorICAgIE1lZGlhVGlt
ZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZHVyYXRpb247IH0KKyAgICBB
dG9taWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdHJhY2tJZDsg
fQorICAgIHZvaWQgc2V0VHJhY2tJRChjb25zdCBTdHJpbmcmIHRyYWNrSWQpIG92ZXJyaWRlIHsg
bV90cmFja0lkID0gdHJhY2tJZDsgfQorICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIEdzdFNhbXBsZSogc2FtcGxlKCkgY29uc3Qg
eyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KKyAgICBGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJlc2VudGF0aW9uU2l6ZTsgfQorICAgIHZv
aWQgb2Zmc2V0VGltZXN0YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlOworICAgIHZv
aWQgc2V0VGltZXN0YW1wcyhjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSBvdmVy
cmlkZSB7IH0KKyAgICBib29sIGlzRGl2aXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBzdGQ6OnBhaXI8UmVmUHRyPE1lZGlhU2FtcGxlPiwgUmVmUHRyPE1lZGlh
U2FtcGxlPj4gZGl2aWRlKGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlICB7IHJldHVybiB7IG51
bGxwdHIsIG51bGxwdHIgfTsgfQorICAgIFNhbXBsZUZsYWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9mbGFnczsgfQorICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxl
KCkgb3ZlcnJpZGUgIHsgcmV0dXJuIFBsYXRmb3JtU2FtcGxlKCk7IH0KKyAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZSB7IH0KKworcHJpdmF0ZToKKyAgICBHU3RyZWFt
ZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqLCBjb25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNp
emUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCk7CisgICAgdmlydHVhbCB+R1N0cmVhbWVy
TWVkaWFTYW1wbGUoKSA9IGRlZmF1bHQ7CisKKyAgICBNZWRpYVRpbWUgbV9wdHM7CisgICAgTWVk
aWFUaW1lIG1fZHRzOworICAgIE1lZGlhVGltZSBtX2R1cmF0aW9uOworICAgIEF0b21pY1N0cmlu
ZyBtX3RyYWNrSWQ7CisgICAgc2l6ZV90IG1fc2l6ZTsKKyAgICBHUmVmUHRyPEdzdFNhbXBsZT4g
bV9zYW1wbGU7CisgICAgRmxvYXRTaXplIG1fcHJlc2VudGF0aW9uU2l6ZTsKKyAgICBNZWRpYVNh
bXBsZTo6U2FtcGxlRmxhZ3MgbV9mbGFnczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUu
CisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292405</attachid>
            <date>2016-10-21 14:23:46 -0700</date>
            <delta_ts>2016-10-25 11:02:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161021212005.patch</filename>
            <type>text/plain</type>
            <size>9502</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkZjZjNjQ0M2QyNjI5
YWY2OTFhMTdhYWYzNjM4MjI4ODUwMzBjNi4uZWFjMDA1YTBjMjk5OTAzYTk4MzhhZjg1NWJjODg1
NWQwM2NiM2E0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBs
ZSBpbnRlcmZhY2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVk
aWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRp
bWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdT
dHJlYW1lck1lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lck1lZGlhU2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1l
ZGlhU2FtcGxlOjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjpzaXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNh
bXBsZTo6c2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpw
cmVzZW50YXRpb25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUaW1lc3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
Ojppc0RpdmlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2
LTEwLTA0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3Ry
ZWFtZXJNZWRpYVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2IwYWVk
NWJiZTI0ODg5NjI1ODkxYThiOGZkYmE3ZGUzZjQzZTUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5M
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisK
KyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGUoR3N0U2Ft
cGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lkKQorICAgIDogTWVkaWFTYW1wbGUoKQorICAgICwgbV9wdHMoTWVk
aWFUaW1lOjp6ZXJvVGltZSgpKQorICAgICwgbV9kdHMoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQor
ICAgICwgbV9kdXJhdGlvbihNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX3RyYWNrSWQo
dHJhY2tJZCkKKyAgICAsIG1fc2l6ZSgwKQorICAgICwgbV9wcmVzZW50YXRpb25TaXplKHByZXNl
bnRhdGlvblNpemUpCisgICAgLCBtX2ZsYWdzKE1lZGlhU2FtcGxlOjpJc1N5bmMpCit7CisKKyAg
ICBpZiAoIXNhbXBsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3N0QnVmZmVyKiBidWZmZXIg
PSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjcmVhdGVNZWRpYVRpbWUgPQorICAgICAgICBbXShHc3RD
bG9ja1RpbWUgdGltZSkgLT4gTWVkaWFUaW1lIHsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVRp
bWUoR1NUX1RJTUVfQVNfVVNFQ09ORFModGltZSksIEdfVVNFQ19QRVJfU0VDKTsKKyAgICAgICAg
fTsKKworICAgIGlmIChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X3B0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX1BUUyhidWZmZXIpKTsKKyAgICBpZiAo
R1NUX0JVRkZFUl9EVFNfSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdHMgPSBjcmVhdGVN
ZWRpYVRpbWUoR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSk7CisgICAgaWYgKEdTVF9CVUZGRVJfRFVS
QVRJT05fSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdXJhdGlvbiA9IGNyZWF0ZU1lZGlh
VGltZShHU1RfQlVGRkVSX0RVUkFUSU9OKGJ1ZmZlcikpOworCisgICAgbV9zaXplID0gZ3N0X2J1
ZmZlcl9nZXRfc2l6ZShidWZmZXIpOworICAgIG1fc2FtcGxlID0gc2FtcGxlOworCisgICAgaWYg
KEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfREVMVEFfVU5J
VCkpCisgICAgICAgIG1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uZTsKKworICAgIGlmIChHU1Rf
QlVGRkVSX0ZMQUdfSVNfU0VUKGJ1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0RFQ09ERV9PTkxZKSkK
KyAgICAgICAgbV9mbGFncyA9IHN0YXRpY19jYXN0PE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncz4o
bV9mbGFncyB8IE1lZGlhU2FtcGxlOjpOb25EaXNwbGF5aW5nKTsKK30KKworUmVmPEdTdHJlYW1l
ck1lZGlhU2FtcGxlPiBHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNhbXBsZShHc3RD
YXBzKiwgTWVkaWFUaW1lIHB0cywgTWVkaWFUaW1lIGR0cywgTWVkaWFUaW1lIGR1cmF0aW9uLCBj
b25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJh
Y2tJZCkKK3sKKyAgICBHU3RyZWFtZXJNZWRpYVNhbXBsZSogZ3N0cmVhbWVyTWVkaWFTYW1wbGUg
PSBuZXcgR1N0cmVhbWVyTWVkaWFTYW1wbGUobnVsbHB0ciwgcHJlc2VudGF0aW9uU2l6ZSwgdHJh
Y2tJZCk7CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fcHRzID0gcHRzOworICAgIGdzdHJl
YW1lck1lZGlhU2FtcGxlLT5tX2R0cyA9IGR0czsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBsZS0+
bV9kdXJhdGlvbiA9IGR1cmF0aW9uOworICAgIGdzdHJlYW1lck1lZGlhU2FtcGxlLT5tX2ZsYWdz
ID0gTWVkaWFTYW1wbGU6Ok5vbkRpc3BsYXlpbmc7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpnc3Ry
ZWFtZXJNZWRpYVNhbXBsZSk7Cit9CisKK3ZvaWQgR1N0cmVhbWVyTWVkaWFTYW1wbGU6OmFwcGx5
UHRzT2Zmc2V0KE1lZGlhVGltZSB0aW1lc3RhbXBPZmZzZXQpCit7CisgICAgaWYgKG1fcHRzID4g
dGltZXN0YW1wT2Zmc2V0KSB7CisgICAgICAgIG1fZHVyYXRpb24gPSBtX2R1cmF0aW9uICsgKG1f
cHRzIC0gdGltZXN0YW1wT2Zmc2V0KTsKKyAgICAgICAgbV9wdHMgPSB0aW1lc3RhbXBPZmZzZXQ7
CisgICAgfQorfQorCit2b2lkIEdTdHJlYW1lck1lZGlhU2FtcGxlOjpvZmZzZXRUaW1lc3RhbXBz
QnkoY29uc3QgTWVkaWFUaW1lJiB0aW1lc3RhbXBPZmZzZXQpCit7CisgICAgaWYgKCF0aW1lc3Rh
bXBPZmZzZXQpCisgICAgICAgIHJldHVybjsKKyAgICBtX3B0cyArPSB0aW1lc3RhbXBPZmZzZXQ7
CisgICAgbV9kdHMgKz0gdGltZXN0YW1wT2Zmc2V0OworICAgIEdzdEJ1ZmZlciogYnVmZmVyID0g
Z3N0X3NhbXBsZV9nZXRfYnVmZmVyKG1fc2FtcGxlLmdldCgpKTsKKyAgICBpZiAoYnVmZmVyKSB7
CisgICAgICAgIEdTVF9CVUZGRVJfUFRTKGJ1ZmZlcikgPSB0b0dzdENsb2NrVGltZShtX3B0cy50
b0Zsb2F0KCkpOworICAgICAgICBHU1RfQlVGRkVSX0RUUyhidWZmZXIpID0gdG9Hc3RDbG9ja1Rp
bWUobV9kdHMudG9GbG9hdCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUu
CisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYVNhbXBsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJN
ZWRpYVNhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNTk5OGExZmM5N2I2NzQ1OWU1ZmIxNjA1OGE3ZTRj
ODgzMDM2ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKQEAgLTAsMCArMSw3NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICog
Q29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIKKyNpbmNsdWRl
ICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHU3RyZWFt
ZXJNZWRpYVNhbXBsZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxHU3RyZWFtZXJNZWRpYVNhbXBsZT4gY3JlYXRlKEdzdFNhbXBsZSogc2FtcGxlLCBjb25z
dCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJ
ZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdTdHJlYW1lck1lZGlhU2Ft
cGxlKHNhbXBsZSwgcHJlc2VudGF0aW9uU2l6ZSwgdHJhY2tJZCkpOworICAgIH0KKworICAgIHN0
YXRpYyBSZWY8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZUZha2VTYW1wbGUoR3N0Q2Fwcyos
IE1lZGlhVGltZSBwdHMsIE1lZGlhVGltZSBkdHMsIE1lZGlhVGltZSBkdXJhdGlvbiwgY29uc3Qg
RmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSWQp
OworCisgICAgdm9pZCBhcHBseVB0c09mZnNldChNZWRpYVRpbWUpOworICAgIE1lZGlhVGltZSBw
cmVzZW50YXRpb25UaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wdHM7IH0KKyAgICBN
ZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZHRzOyB9Cisg
ICAgTWVkaWFUaW1lIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9kdXJhdGlv
bjsgfQorICAgIEF0b21pY1N0cmluZyB0cmFja0lEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV90cmFja0lkOyB9CisgICAgdm9pZCBzZXRUcmFja0lEKGNvbnN0IFN0cmluZyYgdHJhY2tJZCkg
b3ZlcnJpZGUgeyBtX3RyYWNrSWQgPSB0cmFja0lkOyB9CisgICAgc2l6ZV90IHNpemVJbkJ5dGVz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CisgICAgR3N0U2FtcGxlKiBzYW1w
bGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZS5nZXQoKTsgfQorICAgIEZsb2F0U2l6ZSBwcmVz
ZW50YXRpb25TaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wcmVzZW50YXRpb25TaXpl
OyB9CisgICAgdm9pZCBvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRUaW1lc3RhbXBzKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYpIG92ZXJyaWRlIHsgfQorICAgIGJvb2wgaXNEaXZpc2FibGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFTYW1wbGU+LCBS
ZWZQdHI8TWVkaWFTYW1wbGU+PiBkaXZpZGUoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGUgIHsg
cmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9CisgICAgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2ZsYWdzOyB9CisgICAgUGxhdGZvcm1TYW1wbGUgcGxh
dGZvcm1TYW1wbGUoKSBvdmVycmlkZSAgeyByZXR1cm4gUGxhdGZvcm1TYW1wbGUoKTsgfQorICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlIHsgfQorCitwcml2YXRlOgor
ICAgIEdTdHJlYW1lck1lZGlhU2FtcGxlKEdzdFNhbXBsZSosIGNvbnN0IEZsb2F0U2l6ZSYgcHJl
c2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKTsKKyAgICB2aXJ0dWFs
IH5HU3RyZWFtZXJNZWRpYVNhbXBsZSgpID0gZGVmYXVsdDsKKworICAgIE1lZGlhVGltZSBtX3B0
czsKKyAgICBNZWRpYVRpbWUgbV9kdHM7CisgICAgTWVkaWFUaW1lIG1fZHVyYXRpb247CisgICAg
QXRvbWljU3RyaW5nIG1fdHJhY2tJZDsKKyAgICBzaXplX3QgbV9zaXplOworICAgIEdSZWZQdHI8
R3N0U2FtcGxlPiBtX3NhbXBsZTsKKyAgICBGbG9hdFNpemUgbV9wcmVzZW50YXRpb25TaXplOwor
ICAgIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBtX2ZsYWdzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZS4KKworI2VuZGlmIC8vIFVTRShHU1RSRUFNRVIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292778</attachid>
            <date>2016-10-25 11:02:39 -0700</date>
            <delta_ts>2016-10-26 01:19:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161025175852.patch</filename>
            <type>text/plain</type>
            <size>10373</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI2NmZmYmYzMjlkMDNh
NWUyODllM2I0YmY0YmUzZDViOGM1YWE3Zi4uNTM0ZjVmYTVjOGM5OThiZThjYTcyYTQ2YmM2Njlk
ZGQ5ZGVkOWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTA0ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBs
ZSBpbnRlcmZhY2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVk
aWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRp
bWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdT
dHJlYW1lck1lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lck1lZGlhU2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1l
ZGlhU2FtcGxlOjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjpzaXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNh
bXBsZTo6c2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpw
cmVzZW50YXRpb25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUaW1lc3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
Ojppc0RpdmlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2
LTEwLTA0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3Ry
ZWFtZXJNZWRpYVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmQ0MzI5
ZGYyNTg1YmEwN2M5YTE2MWMxMmRmZmU3MmQ4ZGVmNGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5M
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisK
KyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGUoR3N0U2Ft
cGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lkKQorICAgIDogTWVkaWFTYW1wbGUoKQorICAgICwgbV9wdHMoTWVk
aWFUaW1lOjp6ZXJvVGltZSgpKQorICAgICwgbV9kdHMoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQor
ICAgICwgbV9kdXJhdGlvbihNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX3RyYWNrSWQo
dHJhY2tJZCkKKyAgICAsIG1fc2l6ZSgwKQorICAgICwgbV9wcmVzZW50YXRpb25TaXplKHByZXNl
bnRhdGlvblNpemUpCisgICAgLCBtX2ZsYWdzKE1lZGlhU2FtcGxlOjpJc1N5bmMpCit7CisKKyAg
ICBpZiAoIXNhbXBsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3N0QnVmZmVyKiBidWZmZXIg
PSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjcmVhdGVNZWRpYVRpbWUgPQorICAgICAgICBbXShHc3RD
bG9ja1RpbWUgdGltZSkgLT4gTWVkaWFUaW1lIHsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVRp
bWUoR1NUX1RJTUVfQVNfVVNFQ09ORFModGltZSksIEdfVVNFQ19QRVJfU0VDKTsKKyAgICAgICAg
fTsKKworICAgIGlmIChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X3B0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX1BUUyhidWZmZXIpKTsKKyAgICBpZiAo
R1NUX0JVRkZFUl9EVFNfSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdHMgPSBjcmVhdGVN
ZWRpYVRpbWUoR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSk7CisgICAgaWYgKEdTVF9CVUZGRVJfRFVS
QVRJT05fSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdXJhdGlvbiA9IGNyZWF0ZU1lZGlh
VGltZShHU1RfQlVGRkVSX0RVUkFUSU9OKGJ1ZmZlcikpOworCisgICAgbV9zaXplID0gZ3N0X2J1
ZmZlcl9nZXRfc2l6ZShidWZmZXIpOworICAgIG1fc2FtcGxlID0gc2FtcGxlOworCisgICAgaWYg
KEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfREVMVEFfVU5J
VCkpCisgICAgICAgIG1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uZTsKKworICAgIGlmIChHU1Rf
QlVGRkVSX0ZMQUdfSVNfU0VUKGJ1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0RFQ09ERV9PTkxZKSkK
KyAgICAgICAgbV9mbGFncyA9IHN0YXRpY19jYXN0PE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncz4o
bV9mbGFncyB8IE1lZGlhU2FtcGxlOjpJc05vbkRpc3BsYXlpbmcpOworfQorCitSZWY8R1N0cmVh
bWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGVGYWtlU2FtcGxlKEdz
dENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRpbWUgZHRzLCBNZWRpYVRpbWUgZHVyYXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lkKQoreworICAgIEdTdHJlYW1lck1lZGlhU2FtcGxlKiBnc3RyZWFtZXJNZWRpYVNhbXBs
ZSA9IG5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShudWxscHRyLCBwcmVzZW50YXRpb25TaXplLCB0
cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBsZS0+bV9wdHMgPSBwdHM7CisgICAgZ3N0
cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRzOworICAgIGdzdHJlYW1lck1lZGlhU2FtcGxl
LT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZmxh
Z3MgPSBNZWRpYVNhbXBsZTo6SXNOb25EaXNwbGF5aW5nOworICAgIHJldHVybiBhZG9wdFJlZigq
Z3N0cmVhbWVyTWVkaWFTYW1wbGUpOworfQorCit2b2lkIEdTdHJlYW1lck1lZGlhU2FtcGxlOjph
cHBseVB0c09mZnNldChNZWRpYVRpbWUgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmIChtX3B0
cyA+IHRpbWVzdGFtcE9mZnNldCkgeworICAgICAgICBtX2R1cmF0aW9uID0gbV9kdXJhdGlvbiAr
IChtX3B0cyAtIHRpbWVzdGFtcE9mZnNldCk7CisgICAgICAgIG1fcHRzID0gdGltZXN0YW1wT2Zm
c2V0OworICAgIH0KK30KKwordm9pZCBHU3RyZWFtZXJNZWRpYVNhbXBsZTo6b2Zmc2V0VGltZXN0
YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmICghdGlt
ZXN0YW1wT2Zmc2V0KQorICAgICAgICByZXR1cm47CisgICAgbV9wdHMgKz0gdGltZXN0YW1wT2Zm
c2V0OworICAgIG1fZHRzICs9IHRpbWVzdGFtcE9mZnNldDsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZl
ciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKGJ1ZmZl
cikgeworICAgICAgICBHU1RfQlVGRkVSX1BUUyhidWZmZXIpID0gdG9Hc3RDbG9ja1RpbWUobV9w
dHMudG9GbG9hdCgpKTsKKyAgICAgICAgR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSA9IHRvR3N0Q2xv
Y2tUaW1lKG1fZHRzLnRvRmxvYXQoKSk7CisgICAgfQorfQorCitSZWY8TWVkaWFTYW1wbGU+IEdT
dHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3NhbXBsZSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZha2VTYW1wbGUobnVsbHB0
ciwgbV9wdHMsIG1fZHRzLCBtX2R1cmF0aW9uLCBtX3ByZXNlbnRhdGlvblNpemUsIG1fdHJhY2tJ
ZCk7CisKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3Nh
bXBsZS5nZXQoKSk7CisgICAgR1NUX0JVRkZFUl9GTEFHX1NFVChidWZmZXIsIEdTVF9CVUZGRVJf
RkxBR19ERUNPREVfT05MWSk7CisKKyAgICBHc3RDYXBzKiBjYXBzID0gZ3N0X3NhbXBsZV9nZXRf
Y2FwcyhtX3NhbXBsZS5nZXQoKSk7CisgICAgR3N0U2VnbWVudCogc2VnbWVudCA9IGdzdF9zYW1w
bGVfZ2V0X3NlZ21lbnQobV9zYW1wbGUuZ2V0KCkpOworICAgIGNvbnN0IEdzdFN0cnVjdHVyZSog
b3JpZ2luYWxJbmZvID0gZ3N0X3NhbXBsZV9nZXRfaW5mbyhtX3NhbXBsZS5nZXQoKSk7CisgICAg
R3N0U3RydWN0dXJlKiBpbmZvID0gb3JpZ2luYWxJbmZvID8gZ3N0X3N0cnVjdHVyZV9jb3B5KG9y
aWdpbmFsSW5mbykgOiBudWxscHRyOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUgPSBh
ZG9wdEdSZWYoZ3N0X3NhbXBsZV9uZXcoYnVmZmVyLCBjYXBzLCBzZWdtZW50LCBpbmZvKSk7CisK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShzYW1wbGUuZ2V0
KCksIG1fcHJlc2VudGF0aW9uU2l6ZSwgbV90cmFja0lkKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUuCisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYVNh
bXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9H
U3RyZWFtZXJNZWRpYVNhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZTEyYjVjM2Y2ZTBlMDM0ZmY3OWFk
YWFlMzgwNmMxNDA2OTg5M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBNZXRyb2xvZ2ljYWwgR3JvdXAg
Qi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
KworI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIK
KyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBHU3RyZWFtZXJNZWRpYVNhbXBsZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxHU3RyZWFtZXJNZWRpYVNhbXBsZT4gY3JlYXRlKEdzdFNhbXBsZSogc2Ft
cGxlLCBjb25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHJhY2tJZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdTdHJlYW1l
ck1lZGlhU2FtcGxlKHNhbXBsZSwgcHJlc2VudGF0aW9uU2l6ZSwgdHJhY2tJZCkpOworICAgIH0K
KworICAgIHN0YXRpYyBSZWY8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZUZha2VTYW1wbGUo
R3N0Q2FwcyosIE1lZGlhVGltZSBwdHMsIE1lZGlhVGltZSBkdHMsIE1lZGlhVGltZSBkdXJhdGlv
biwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSWQpOworCisgICAgdm9pZCBhcHBseVB0c09mZnNldChNZWRpYVRpbWUpOworICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wdHM7
IH0KKyAgICBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZHRzOyB9CisgICAgTWVkaWFUaW1lIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9kdXJhdGlvbjsgfQorICAgIEF0b21pY1N0cmluZyB0cmFja0lEKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV90cmFja0lkOyB9CisgICAgdm9pZCBzZXRUcmFja0lEKGNvbnN0IFN0cmluZyYg
dHJhY2tJZCkgb3ZlcnJpZGUgeyBtX3RyYWNrSWQgPSB0cmFja0lkOyB9CisgICAgc2l6ZV90IHNp
emVJbkJ5dGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CisgICAgR3N0U2Ft
cGxlKiBzYW1wbGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZS5nZXQoKTsgfQorICAgIEZsb2F0
U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wcmVzZW50
YXRpb25TaXplOyB9CisgICAgdm9pZCBvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1l
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUaW1lc3RhbXBzKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfQorICAgIGJvb2wgaXNEaXZpc2FibGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFT
YW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBkaXZpZGUoY29uc3QgTWVkaWFUaW1lJikgb3Zl
cnJpZGUgIHsgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9CisgICAgUmVmPE1lZGlhU2Ft
cGxlPiBjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFNhbXBs
ZUZsYWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9mbGFnczsgfQorICAgIFBs
YXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgb3ZlcnJpZGUgIHsgcmV0dXJuIFBsYXRmb3Jt
U2FtcGxlKCk7IH0KKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZSB7
IH0KKworcHJpdmF0ZToKKyAgICBHU3RyZWFtZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqLCBjb25z
dCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJ
ZCk7CisgICAgdmlydHVhbCB+R1N0cmVhbWVyTWVkaWFTYW1wbGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBNZWRpYVRpbWUgbV9wdHM7CisgICAgTWVkaWFUaW1lIG1fZHRzOworICAgIE1lZGlhVGltZSBt
X2R1cmF0aW9uOworICAgIEF0b21pY1N0cmluZyBtX3RyYWNrSWQ7CisgICAgc2l6ZV90IG1fc2l6
ZTsKKyAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7CisgICAgRmxvYXRTaXplIG1fcHJl
c2VudGF0aW9uU2l6ZTsKKyAgICBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgbV9mbGFnczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUuCisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292890</attachid>
            <date>2016-10-26 01:19:18 -0700</date>
            <delta_ts>2016-10-26 01:42:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162894-20161026081530.patch</filename>
            <type>text/plain</type>
            <size>10373</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjdkMDgzYmRiOTE1YzQ4
MTgxNzE4MTc1MmQxODllNzNiNjFlNDUzYi4uMDQ5ZmQ0ZTgxYjk0OTczMjhkMmNjZjUyNGIyMTk5
YmYwYzQyMDM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE2LTEwLTI2ICBFbnJp
cXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0dT
dHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIFNhbXBsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFi
aWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBNZWRpYVNhbXBs
ZSBpbnRlcmZhY2UgZm9yIHRoZSBHU3RyZWFtZXIgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVk
aWFTYW1wbGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6Y3JlYXRlRmFrZVNh
bXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6YXBwbHlQdHNP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6Om9mZnNldFRp
bWVzdGFtcHNCeSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6fkdT
dHJlYW1lck1lZGlhU2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OnByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmRlY29kZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lck1lZGlhU2FtcGxlOjp0cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1l
ZGlhU2FtcGxlOjpzZXRUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlh
U2FtcGxlOjpzaXplSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNh
bXBsZTo6c2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpw
cmVzZW50YXRpb25TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
OjpzZXRUaW1lc3RhbXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxl
Ojppc0RpdmlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6
ZGl2aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lck1lZGlhU2FtcGxlOjpmbGFncyk6
CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJNZWRpYVNhbXBsZTo6cGxhdGZvcm1TYW1wbGUp
OgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGU6OmR1bXApOgorCisyMDE2
LTEwLTI2ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0dTdHJlYW1lcl0gR1N0cmVhbWVyIE1lZGlhIERlc2NyaXB0aW9uCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4OTMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3Ry
ZWFtZXJNZWRpYVNhbXBsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmQ0MzI5
ZGYyNTg1YmEwN2M5YTE2MWMxMmRmZmU3MmQ4ZGVmNGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRp
YVNhbXBsZS5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
TWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5M
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdTdHJlYW1lck1lZGlhU2FtcGxlLmgiCisK
KyNpbmNsdWRlICJHU3RyZWFtZXJVdGlsaXRpZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYg
VVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitHU3RyZWFtZXJNZWRpYVNhbXBsZTo6R1N0cmVhbWVyTWVkaWFTYW1wbGUoR3N0U2Ft
cGxlKiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lkKQorICAgIDogTWVkaWFTYW1wbGUoKQorICAgICwgbV9wdHMoTWVk
aWFUaW1lOjp6ZXJvVGltZSgpKQorICAgICwgbV9kdHMoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKQor
ICAgICwgbV9kdXJhdGlvbihNZWRpYVRpbWU6Onplcm9UaW1lKCkpCisgICAgLCBtX3RyYWNrSWQo
dHJhY2tJZCkKKyAgICAsIG1fc2l6ZSgwKQorICAgICwgbV9wcmVzZW50YXRpb25TaXplKHByZXNl
bnRhdGlvblNpemUpCisgICAgLCBtX2ZsYWdzKE1lZGlhU2FtcGxlOjpJc1N5bmMpCit7CisKKyAg
ICBpZiAoIXNhbXBsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3N0QnVmZmVyKiBidWZmZXIg
PSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjcmVhdGVNZWRpYVRpbWUgPQorICAgICAgICBbXShHc3RD
bG9ja1RpbWUgdGltZSkgLT4gTWVkaWFUaW1lIHsKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVRp
bWUoR1NUX1RJTUVfQVNfVVNFQ09ORFModGltZSksIEdfVVNFQ19QRVJfU0VDKTsKKyAgICAgICAg
fTsKKworICAgIGlmIChHU1RfQlVGRkVSX1BUU19JU19WQUxJRChidWZmZXIpKQorICAgICAgICBt
X3B0cyA9IGNyZWF0ZU1lZGlhVGltZShHU1RfQlVGRkVSX1BUUyhidWZmZXIpKTsKKyAgICBpZiAo
R1NUX0JVRkZFUl9EVFNfSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdHMgPSBjcmVhdGVN
ZWRpYVRpbWUoR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSk7CisgICAgaWYgKEdTVF9CVUZGRVJfRFVS
QVRJT05fSVNfVkFMSUQoYnVmZmVyKSkKKyAgICAgICAgbV9kdXJhdGlvbiA9IGNyZWF0ZU1lZGlh
VGltZShHU1RfQlVGRkVSX0RVUkFUSU9OKGJ1ZmZlcikpOworCisgICAgbV9zaXplID0gZ3N0X2J1
ZmZlcl9nZXRfc2l6ZShidWZmZXIpOworICAgIG1fc2FtcGxlID0gc2FtcGxlOworCisgICAgaWYg
KEdTVF9CVUZGRVJfRkxBR19JU19TRVQoYnVmZmVyLCBHU1RfQlVGRkVSX0ZMQUdfREVMVEFfVU5J
VCkpCisgICAgICAgIG1fZmxhZ3MgPSBNZWRpYVNhbXBsZTo6Tm9uZTsKKworICAgIGlmIChHU1Rf
QlVGRkVSX0ZMQUdfSVNfU0VUKGJ1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0RFQ09ERV9PTkxZKSkK
KyAgICAgICAgbV9mbGFncyA9IHN0YXRpY19jYXN0PE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncz4o
bV9mbGFncyB8IE1lZGlhU2FtcGxlOjpJc05vbkRpc3BsYXlpbmcpOworfQorCitSZWY8R1N0cmVh
bWVyTWVkaWFTYW1wbGU+IEdTdHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGVGYWtlU2FtcGxlKEdz
dENhcHMqLCBNZWRpYVRpbWUgcHRzLCBNZWRpYVRpbWUgZHRzLCBNZWRpYVRpbWUgZHVyYXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgcHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lkKQoreworICAgIEdTdHJlYW1lck1lZGlhU2FtcGxlKiBnc3RyZWFtZXJNZWRpYVNhbXBs
ZSA9IG5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShudWxscHRyLCBwcmVzZW50YXRpb25TaXplLCB0
cmFja0lkKTsKKyAgICBnc3RyZWFtZXJNZWRpYVNhbXBsZS0+bV9wdHMgPSBwdHM7CisgICAgZ3N0
cmVhbWVyTWVkaWFTYW1wbGUtPm1fZHRzID0gZHRzOworICAgIGdzdHJlYW1lck1lZGlhU2FtcGxl
LT5tX2R1cmF0aW9uID0gZHVyYXRpb247CisgICAgZ3N0cmVhbWVyTWVkaWFTYW1wbGUtPm1fZmxh
Z3MgPSBNZWRpYVNhbXBsZTo6SXNOb25EaXNwbGF5aW5nOworICAgIHJldHVybiBhZG9wdFJlZigq
Z3N0cmVhbWVyTWVkaWFTYW1wbGUpOworfQorCit2b2lkIEdTdHJlYW1lck1lZGlhU2FtcGxlOjph
cHBseVB0c09mZnNldChNZWRpYVRpbWUgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmIChtX3B0
cyA+IHRpbWVzdGFtcE9mZnNldCkgeworICAgICAgICBtX2R1cmF0aW9uID0gbV9kdXJhdGlvbiAr
IChtX3B0cyAtIHRpbWVzdGFtcE9mZnNldCk7CisgICAgICAgIG1fcHRzID0gdGltZXN0YW1wT2Zm
c2V0OworICAgIH0KK30KKwordm9pZCBHU3RyZWFtZXJNZWRpYVNhbXBsZTo6b2Zmc2V0VGltZXN0
YW1wc0J5KGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1wT2Zmc2V0KQoreworICAgIGlmICghdGlt
ZXN0YW1wT2Zmc2V0KQorICAgICAgICByZXR1cm47CisgICAgbV9wdHMgKz0gdGltZXN0YW1wT2Zm
c2V0OworICAgIG1fZHRzICs9IHRpbWVzdGFtcE9mZnNldDsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZl
ciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3NhbXBsZS5nZXQoKSk7CisgICAgaWYgKGJ1ZmZl
cikgeworICAgICAgICBHU1RfQlVGRkVSX1BUUyhidWZmZXIpID0gdG9Hc3RDbG9ja1RpbWUobV9w
dHMudG9GbG9hdCgpKTsKKyAgICAgICAgR1NUX0JVRkZFUl9EVFMoYnVmZmVyKSA9IHRvR3N0Q2xv
Y2tUaW1lKG1fZHRzLnRvRmxvYXQoKSk7CisgICAgfQorfQorCitSZWY8TWVkaWFTYW1wbGU+IEdT
dHJlYW1lck1lZGlhU2FtcGxlOjpjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3NhbXBsZSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZha2VTYW1wbGUobnVsbHB0
ciwgbV9wdHMsIG1fZHRzLCBtX2R1cmF0aW9uLCBtX3ByZXNlbnRhdGlvblNpemUsIG1fdHJhY2tJ
ZCk7CisKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZlcihtX3Nh
bXBsZS5nZXQoKSk7CisgICAgR1NUX0JVRkZFUl9GTEFHX1NFVChidWZmZXIsIEdTVF9CVUZGRVJf
RkxBR19ERUNPREVfT05MWSk7CisKKyAgICBHc3RDYXBzKiBjYXBzID0gZ3N0X3NhbXBsZV9nZXRf
Y2FwcyhtX3NhbXBsZS5nZXQoKSk7CisgICAgR3N0U2VnbWVudCogc2VnbWVudCA9IGdzdF9zYW1w
bGVfZ2V0X3NlZ21lbnQobV9zYW1wbGUuZ2V0KCkpOworICAgIGNvbnN0IEdzdFN0cnVjdHVyZSog
b3JpZ2luYWxJbmZvID0gZ3N0X3NhbXBsZV9nZXRfaW5mbyhtX3NhbXBsZS5nZXQoKSk7CisgICAg
R3N0U3RydWN0dXJlKiBpbmZvID0gb3JpZ2luYWxJbmZvID8gZ3N0X3N0cnVjdHVyZV9jb3B5KG9y
aWdpbmFsSW5mbykgOiBudWxscHRyOworICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1wbGUgPSBh
ZG9wdEdSZWYoZ3N0X3NhbXBsZV9uZXcoYnVmZmVyLCBjYXBzLCBzZWdtZW50LCBpbmZvKSk7CisK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJNZWRpYVNhbXBsZShzYW1wbGUuZ2V0
KCksIG1fcHJlc2VudGF0aW9uU2l6ZSwgbV90cmFja0lkKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUuCisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9HU3RyZWFtZXJNZWRpYVNh
bXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9H
U3RyZWFtZXJNZWRpYVNhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZTEyYjVjM2Y2ZTBlMDM0ZmY3OWFk
YWFlMzgwNmMxNDA2OTg5M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0dTdHJlYW1lck1lZGlhU2FtcGxlLmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBNZXRyb2xvZ2ljYWwgR3JvdXAg
Qi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwKKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
KworI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkdSZWZQdHJHU3RyZWFtZXIuaCIK
KyNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBHU3RyZWFtZXJNZWRpYVNhbXBsZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxHU3RyZWFtZXJNZWRpYVNhbXBsZT4gY3JlYXRlKEdzdFNhbXBsZSogc2Ft
cGxlLCBjb25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHJhY2tJZCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdTdHJlYW1l
ck1lZGlhU2FtcGxlKHNhbXBsZSwgcHJlc2VudGF0aW9uU2l6ZSwgdHJhY2tJZCkpOworICAgIH0K
KworICAgIHN0YXRpYyBSZWY8R1N0cmVhbWVyTWVkaWFTYW1wbGU+IGNyZWF0ZUZha2VTYW1wbGUo
R3N0Q2FwcyosIE1lZGlhVGltZSBwdHMsIE1lZGlhVGltZSBkdHMsIE1lZGlhVGltZSBkdXJhdGlv
biwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSWQpOworCisgICAgdm9pZCBhcHBseVB0c09mZnNldChNZWRpYVRpbWUpOworICAgIE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wdHM7
IH0KKyAgICBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
ZHRzOyB9CisgICAgTWVkaWFUaW1lIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9kdXJhdGlvbjsgfQorICAgIEF0b21pY1N0cmluZyB0cmFja0lEKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV90cmFja0lkOyB9CisgICAgdm9pZCBzZXRUcmFja0lEKGNvbnN0IFN0cmluZyYg
dHJhY2tJZCkgb3ZlcnJpZGUgeyBtX3RyYWNrSWQgPSB0cmFja0lkOyB9CisgICAgc2l6ZV90IHNp
emVJbkJ5dGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CisgICAgR3N0U2Ft
cGxlKiBzYW1wbGUoKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZS5nZXQoKTsgfQorICAgIEZsb2F0
U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wcmVzZW50
YXRpb25TaXplOyB9CisgICAgdm9pZCBvZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1l
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRUaW1lc3RhbXBzKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfQorICAgIGJvb2wgaXNEaXZpc2FibGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHN0ZDo6cGFpcjxSZWZQdHI8TWVkaWFT
YW1wbGU+LCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBkaXZpZGUoY29uc3QgTWVkaWFUaW1lJikgb3Zl
cnJpZGUgIHsgcmV0dXJuIHsgbnVsbHB0ciwgbnVsbHB0ciB9OyB9CisgICAgUmVmPE1lZGlhU2Ft
cGxlPiBjcmVhdGVOb25EaXNwbGF5aW5nQ29weSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFNhbXBs
ZUZsYWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9mbGFnczsgfQorICAgIFBs
YXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgb3ZlcnJpZGUgIHsgcmV0dXJuIFBsYXRmb3Jt
U2FtcGxlKCk7IH0KKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZSB7
IH0KKworcHJpdmF0ZToKKyAgICBHU3RyZWFtZXJNZWRpYVNhbXBsZShHc3RTYW1wbGUqLCBjb25z
dCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJ
ZCk7CisgICAgdmlydHVhbCB+R1N0cmVhbWVyTWVkaWFTYW1wbGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBNZWRpYVRpbWUgbV9wdHM7CisgICAgTWVkaWFUaW1lIG1fZHRzOworICAgIE1lZGlhVGltZSBt
X2R1cmF0aW9uOworICAgIEF0b21pY1N0cmluZyBtX3RyYWNrSWQ7CisgICAgc2l6ZV90IG1fc2l6
ZTsKKyAgICBHUmVmUHRyPEdzdFNhbXBsZT4gbV9zYW1wbGU7CisgICAgRmxvYXRTaXplIG1fcHJl
c2VudGF0aW9uU2l6ZTsKKyAgICBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgbV9mbGFnczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUuCisKKyNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>