<?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>133174</bug_id>
          
          <creation_ts>2014-05-22 00:16:17 -0700</creation_ts>
          <short_desc>[MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource</short_desc>
          <delta_ts>2014-05-22 11:26:16 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010913</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 00:16:17 -0700</bug_when>
    <thetext>[MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010918</commentid>
    <comment_count>1</comment_count>
      <attachid>231866</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 00:39:20 -0700</bug_when>
    <thetext>Created attachment 231866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010919</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-22 00:41:02 -0700</bug_when>
    <thetext>Attachment 231866 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediasource/SampleMap.h:47:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010964</commentid>
    <comment_count>3</comment_count>
      <attachid>231866</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-22 06:46:49 -0700</bug_when>
    <thetext>Comment on attachment 231866
Patch

r=me with GTK build and style fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010990</commentid>
    <comment_count>4</comment_count>
      <attachid>231866</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-22 08:45:43 -0700</bug_when>
    <thetext>Comment on attachment 231866
Patch

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

I wanted to set commit-queue+ on this, but I shouldn’t since it will break the GTK build.

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:279
&gt; +    for (auto&amp; trackBufferPair : m_trackBufferMap) {
&gt; +        trackBufferPair.value.samples.clear();
&gt; +        trackBufferPair.value.decodeQueue.clear();
&gt; +    }

A better, alternate way to write this is:

    for (auto&amp; trackBuffer : m_trackBufferMap.values()) {
        trackBuffer.samples.clear();
        trackBuffer.decodeQueue.clear();
    }

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1441
&gt; +    for (auto&amp; trackBufferPair : m_trackBufferMap)
&gt; +        extraMemoryCost += trackBufferPair.value.samples.sizeInBytes();

A better, alternate way to write this is:

    for (auto&amp; trackBuffer : m_trackBufferMap.values())
        extraMemoryCost += trackBuffer.samples.sizeInBytes();

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1446
&gt; +    JSC::JSLockHolder lock(scriptExecutionContext()-&gt;vm());

Apparently, to get this to compile on GTK, we need to add #include &lt;runtime/JSLock.h&gt; to the top of this file.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:402
&gt; +    virtual size_t sizeInBytes() const override { return CMSampleBufferGetTotalSampleSize(m_sample.get()); }

Note that this returns the sample size, not the overhead.

&gt; Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp:53
&gt; +    virtual size_t sizeInBytes() const override { return sizeof(m_box); }

And this returns an estimate of the overhead. I don’t think that really makes much sense. But it’s a mock, so I guess no big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010999</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-05-22 09:42:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/16933311&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011001</commentid>
    <comment_count>6</comment_count>
      <attachid>231866</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 09:58:04 -0700</bug_when>
    <thetext>Comment on attachment 231866
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:279
&gt;&gt; +    }
&gt; 
&gt; A better, alternate way to write this is:
&gt; 
&gt;     for (auto&amp; trackBuffer : m_trackBufferMap.values()) {
&gt;         trackBuffer.samples.clear();
&gt;         trackBuffer.decodeQueue.clear();
&gt;     }

Yes, that is much better!

&gt;&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1441
&gt;&gt; +        extraMemoryCost += trackBufferPair.value.samples.sizeInBytes();
&gt; 
&gt; A better, alternate way to write this is:
&gt; 
&gt;     for (auto&amp; trackBuffer : m_trackBufferMap.values())
&gt;         extraMemoryCost += trackBuffer.samples.sizeInBytes();

DItto.

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:402
&gt;&gt; +    virtual size_t sizeInBytes() const override { return CMSampleBufferGetTotalSampleSize(m_sample.get()); }
&gt; 
&gt; Note that this returns the sample size, not the overhead.

Yes, I realize, but as a first-order approximation, it will be largely correct.

&gt;&gt; Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp:53
&gt;&gt; +    virtual size_t sizeInBytes() const override { return sizeof(m_box); }
&gt; 
&gt; And this returns an estimate of the overhead. I don’t think that really makes much sense. But it’s a mock, so I guess no big deal.

Well, sort of.  The MockSampleBox is effectively &quot;the original sample data&quot;, since the data representation is just a serialized MockSampleBox. But I get that CMSampleBuffers may also have the same kind of internal caching of the sample data that I&apos;m not accounting for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011013</commentid>
    <comment_count>7</comment_count>
      <attachid>231895</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 10:49:07 -0700</bug_when>
    <thetext>Created attachment 231895
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011020</commentid>
    <comment_count>8</comment_count>
      <attachid>231898</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 11:07:56 -0700</bug_when>
    <thetext>Created attachment 231898
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011025</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-05-22 11:26:16 -0700</bug_when>
    <thetext>Committed r169209: &lt;http://trac.webkit.org/changeset/169209&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231866</attachid>
            <date>2014-05-22 00:39:20 -0700</date>
            <delta_ts>2014-05-22 09:58:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133174-20140522003856.patch</filename>
            <type>text/plain</type>
            <size>11404</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4OTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhiMThiODdiNTU2ZjEx
NGQzYjBhMzVmNjAyM2Y3ODJkMjUxNDY5ZC4uMDkwY2E2MGEyYTIzZDhjNGM5NjkxYWExZWYyYWUz
MTAzNWFlOWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA1LTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIFN0b3JlZCBzYW1w
bGVzIGFyZSBub3QgZnJlZWQgd2hlbiBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIE1lZGlh
U291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzMxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
bGVhciBvdXQgc3RvcmVkIE1lZGlhU2FtcGxlcyBmcm9tIFNvdXJjZUJ1ZmZlcidzIFRyYWNrQnVm
ZmVyIHN0b3JhZ2Ugd2hlbgorICAgICAgICBhYm9ydGluZyBsb2FkaW5nLiBBbHNvLCByZXBvcnQg
dGhlIG1lbW9yeSBjb3N0IG9mIHRob3NlIHNhbXBsZXMsIHNvIHRoYXQgdGhlCisgICAgICAgIFNv
dXJjZUJ1ZmZlciB3aWxsIGJlIEdDZCBtb3JlIHJlYWRpbHkuCisKKyAgICAgICAgQWRkIGEgbWVj
aGFuaXNtIGZvciByZXBvcnRpbmcgdGhlIHNpemUgb2YgYSBNZWRpYVNhbXBsZToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L01lZGlhU2FtcGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisKKyAgICAgICAg
VHJhY2sgdGhlIG1lbW9yeSB1c2FnZSBvZiBhIFNhbXBsZU1hcCB3aGVuIGFkZGluZyBhbmQgcmVt
b3Zpbmcgc2FtcGxlcywgYXMgd2VsbAorICAgICAgICBhcyBhbGxvd2luZyB0aGUgU2FtcGxlTWFw
IHRvIGJlIGNsZWFyZWQgd2hvbGVzYWxlOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
U2FtcGxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZU1hcDo6Y2xlYXIpOiBSZWxl
YXNlIGFsbCBzdG9yZWQgTWVkaWFTYW1wbGVzLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFw
OjphZGRTYW1wbGUpOiBVcGRhdGUgbV90b3RhbFNpemUuCisgICAgICAgIChXZWJDb3JlOjpTYW1w
bGVNYXA6OnJlbW92ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3Vy
Y2UvU2FtcGxlTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OlNhbXBsZU1hcCk6
IEluaXRpYWxpemUgbV90b3RhbFNpemUuCisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OnNp
emVJbkJ5dGVzKTogU2ltcGxlIGFjY2Vzc29yLgorCisgICAgICAgIENsZWFyIHRoZSBzdG9yZWQg
c2FtcGxlcyB3aGVuIGxvYWRpbmcgaXMgYWJvcnRlZCwgYW5kIHJlcG9ydCB0aGUgZXh0cmEgbWVt
b3J5CisgICAgICAgIGNvc3QKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcik6
IEluaXRpYWxpemUgbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdC4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6YWJvcnRJZlVwZGF0aW5nKTogQ2FsbCByZXBvcnRFeHRyYU1lbW9yeUNv
c3QoKS4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZUFwcGVuZENvbXBsZXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6
OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IEluZm9ybSB0aGUgdm0gb2YgdGhlIG5ldworICAgICAg
ICAgICAgZXh0cmEgbWVtb3J5IGNvc3QgaW5jdXJyZWQgYnkgdGhlIG9iamVjdC4KKwogMjAxNC0w
NS0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXSBD
YWxsIHN1c3BlbmRJZk5lZWRlZCgpIGluIHRoZSBNZWRpYUtleVNlc3Npb24gY3JlYXRlKCkgbWV0
aG9kIHRvIGF2b2lkIGFuIEFTU0VSVC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU2FtcGxlTWFwLmNwcAppbmRleCA4ODMzYTY4OTJlMzk3MzQ2YzU5NjAzZTgzODky
OTU3YzFlYjBjMmJhLi40MTdjZjAzMzkyYTgxY2JmM2M1ZTJiM2Q2MzZjYzRkYjMxMDc3Mzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuY3Bw
CkBAIC04MCwxMiArODAsMjEgQEAgcHVibGljOgogICAgIH0KIH07CiAKK3ZvaWQgU2FtcGxlTWFw
OjpjbGVhcigpCit7CisgICAgbV9wcmVzZW50YXRpb25TYW1wbGVzLmNsZWFyKCk7CisgICAgbV9k
ZWNvZGVTYW1wbGVzLmNsZWFyKCk7CisgICAgbV90b3RhbFNpemUgPSAwOworfQorCiB2b2lkIFNh
bXBsZU1hcDo6YWRkU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBycFNhbXBsZSkKIHsK
ICAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IHBycFNhbXBsZTsKICAgICBBU1NFUlQo
c2FtcGxlKTsKICAgICBtX3ByZXNlbnRhdGlvblNhbXBsZXMuaW5zZXJ0KE1hcFR5cGU6OnZhbHVl
X3R5cGUoc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZSkpOwogICAgIG1fZGVjb2Rl
U2FtcGxlcy5pbnNlcnQoTWFwVHlwZTo6dmFsdWVfdHlwZShzYW1wbGUtPmRlY29kZVRpbWUoKSwg
c2FtcGxlKSk7CisKKyAgICBtX3RvdGFsU2l6ZSArPSBzYW1wbGUtPnNpemVJbkJ5dGVzKCk7CiB9
CiAKIHZvaWQgU2FtcGxlTWFwOjpyZW1vdmVTYW1wbGUoTWVkaWFTYW1wbGUqIHNhbXBsZSkKQEAg
LTkzLDYgKzEwMiw4IEBAIHZvaWQgU2FtcGxlTWFwOjpyZW1vdmVTYW1wbGUoTWVkaWFTYW1wbGUq
IHNhbXBsZSkKICAgICBBU1NFUlQoc2FtcGxlKTsKICAgICBtX3ByZXNlbnRhdGlvblNhbXBsZXMu
ZXJhc2Uoc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCkpOwogICAgIG1fZGVjb2RlU2FtcGxlcy5l
cmFzZShzYW1wbGUtPmRlY29kZVRpbWUoKSk7CisKKyAgICBtX3RvdGFsU2l6ZSAtPSBzYW1wbGUt
PnNpemVJbkJ5dGVzKCk7CiB9CiAKIFNhbXBsZU1hcDo6aXRlcmF0b3IgU2FtcGxlTWFwOjpmaW5k
U2FtcGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKaW5kZXgg
ZGViNDJjNDUzZWU4NjE0NGRmMzZhNzQwNDQwY2YzYTc2MzcxNzQ3Ni4uMmM0MzNmNGQxNjRiMDQ5
ZDZhMGI3ODAzMDk3ZDljOTAzZGE1ZDQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NhbXBsZU1hcC5oCkBAIC00NCw4ICs0NCwxMiBAQCBwdWJsaWM6CiAgICAg
dHlwZWRlZiBzdGQ6OnBhaXI8aXRlcmF0b3IsIGl0ZXJhdG9yPiBpdGVyYXRvcl9yYW5nZTsKICAg
ICB0eXBlZGVmIHN0ZDo6cGFpcjxyZXZlcnNlX2l0ZXJhdG9yLCByZXZlcnNlX2l0ZXJhdG9yPiBy
ZXZlcnNlX2l0ZXJhdG9yX3JhbmdlOwogCisgICAgU2FtcGxlTWFwKCkgOiBtX3RvdGFsU2l6ZSgw
KSB7IH0KKworICAgIHZvaWQgY2xlYXIoKTsKICAgICB2b2lkIGFkZFNhbXBsZShQYXNzUmVmUHRy
PE1lZGlhU2FtcGxlPik7CiAgICAgdm9pZCByZW1vdmVTYW1wbGUoTWVkaWFTYW1wbGUqKTsKKyAg
ICBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsU2l6ZTsgfQogCiAg
ICAgaXRlcmF0b3IgcHJlc2VudGF0aW9uQmVnaW4oKSB7IHJldHVybiBtX3ByZXNlbnRhdGlvblNh
bXBsZXMuYmVnaW4oKTsgfQogICAgIGl0ZXJhdG9yIHByZXNlbnRhdGlvbkVuZCgpIHsgcmV0dXJu
IG1fcHJlc2VudGF0aW9uU2FtcGxlcy5lbmQoKTsgfQpAQCAtNzMsNiArNzcsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIE1hcFR5cGUgbV9wcmVzZW50YXRpb25TYW1wbGVzOwogICAgIE1hcFR5
cGUgbV9kZWNvZGVTYW1wbGVzOworICAgIHNpemVfdCBtX3RvdGFsU2l6ZTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cAppbmRleCA3NjJjNTdjZjQ4MjE3YWM4ZTNlNjEzYjY1MjkwZmExNWRjZWZmM2E4Li5mNDZiZmJi
NWNmMTdhYzM4ZjRhOWY4ZTEwOTlhNTAyOGEzYTFjZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xMDMsNiArMTAz
LDcgQEAgU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc1JlZjxTb3VyY2VCdWZmZXJQcml2
YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBNZWQKICAgICAsIG1fdGltZU9mQnVmZmVyaW5nTW9u
aXRvcihtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkKICAgICAsIG1fYnVmZmVyZWRTaW5j
ZUxhc3RNb25pdG9yKDApCiAgICAgLCBtX2F2ZXJhZ2VCdWZmZXJSYXRlKDApCisgICAgLCBtX3Jl
cG9ydGVkRXh0cmFNZW1vcnlDb3N0KDApCiAgICAgLCBtX3BlbmRpbmdSZW1vdmVTdGFydChNZWRp
YVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX3BlbmRpbmdSZW1vdmVFbmQoTWVkaWFUaW1l
OjppbnZhbGlkVGltZSgpKQogICAgICwgbV9yZW1vdmVUaW1lcih0aGlzLCAmU291cmNlQnVmZmVy
OjpyZW1vdmVUaW1lckZpcmVkKQpAQCAtMjcyLDYgKzI3MywxMSBAQCB2b2lkIFNvdXJjZUJ1ZmZl
cjo6YWJvcnRJZlVwZGF0aW5nKCkKICAgICBtX3BlbmRpbmdSZW1vdmVTdGFydCA9IE1lZGlhVGlt
ZTo6aW52YWxpZFRpbWUoKTsKICAgICBtX3BlbmRpbmdSZW1vdmVFbmQgPSBNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCk7CiAKKyAgICBmb3IgKGF1dG8mIHRyYWNrQnVmZmVyUGFpciA6IG1fdHJhY2tC
dWZmZXJNYXApIHsKKyAgICAgICAgdHJhY2tCdWZmZXJQYWlyLnZhbHVlLnNhbXBsZXMuY2xlYXIo
KTsKKyAgICAgICAgdHJhY2tCdWZmZXJQYWlyLnZhbHVlLmRlY29kZVF1ZXVlLmNsZWFyKCk7Cisg
ICAgfQorCiAgICAgLy8gMy4yLiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byBmYWxzZS4K
ICAgICBtX3VwZGF0aW5nID0gZmFsc2U7CiAKQEAgLTQ0Niw2ICs0NTIsOCBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6YXBwZW5kQnVmZmVySW50ZXJuYWwodW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWdu
ZWQgc2l6ZSwgRXhjZQogCiAgICAgLy8gNi4gQXN5bmNocm9ub3VzbHkgcnVuIHRoZSBidWZmZXIg
YXBwZW5kIGFsZ29yaXRobS4KICAgICBtX2FwcGVuZEJ1ZmZlclRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKKworICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdCgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZl
cjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+JikKQEAgLTUxNiw2
ICs1MjQsOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENv
bXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbgogICAgICAgICBtX3NvdXJjZS0+bW9u
aXRvclNvdXJjZUJ1ZmZlcnMoKTsKICAgICBmb3IgKGF1dG8gaXRlciA9IG1fdHJhY2tCdWZmZXJN
YXAuYmVnaW4oKSwgZW5kID0gbV90cmFja0J1ZmZlck1hcC5lbmQoKTsgaXRlciAhPSBlbmQ7ICsr
aXRlcikKICAgICAgICAgcHJvdmlkZU1lZGlhRGF0YShpdGVyLT52YWx1ZSwgaXRlci0+a2V5KTsK
KworICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdCgpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6
cmVtb3ZlQ29kZWRGcmFtZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQpCkBAIC0xNDI0LDYgKzE0MzQsMjAgQEAgYm9vbCBTb3VyY2VCdWZmZXI6OmNhblBsYXlU
aHJvdWdoKCkKICAgICByZXR1cm4gdW5idWZmZXJlZFRpbWUgLyBtX2F2ZXJhZ2VCdWZmZXJSYXRl
IDwgdGltZVJlbWFpbmluZzsKIH0KIAordm9pZCBTb3VyY2VCdWZmZXI6OnJlcG9ydEV4dHJhTWVt
b3J5Q29zdCgpCit7CisgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCA9IG1fcGVuZGluZ0FwcGVu
ZERhdGEuY2FwYWNpdHkoKTsKKyAgICBmb3IgKGF1dG8mIHRyYWNrQnVmZmVyUGFpciA6IG1fdHJh
Y2tCdWZmZXJNYXApCisgICAgICAgIGV4dHJhTWVtb3J5Q29zdCArPSB0cmFja0J1ZmZlclBhaXIu
dmFsdWUuc2FtcGxlcy5zaXplSW5CeXRlcygpOworCisgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29z
dERlbHRhID0gZXh0cmFNZW1vcnlDb3N0IC0gbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdDsKKyAg
ICBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0ID0gZXh0cmFNZW1vcnlDb3N0OworCisgICAgSlND
OjpKU0xvY2tIb2xkZXIgbG9jayhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnZtKCkpOworICAg
IGlmIChleHRyYU1lbW9yeUNvc3REZWx0YSA+IDApCisgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dm0oKS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5Q29zdChleHRyYU1lbW9yeUNvc3RE
ZWx0YSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCAxNDc5
YmJmMTY4MTNiNmRiYTU4ODlkNjA3Mzg1MjBiM2VlYmY2NzZmLi5jOGIyYjdlNzcxMWVlNzFjMmFi
MDY2NjU2MGZlZTY4MjFhOWUyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTE1Niw2ICsxNTYsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+Kik7CiAgICAgdm9p
ZCByZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCk7CiAKKyAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdCgpOworCiAgICAgUmVm
PFNvdXJjZUJ1ZmZlclByaXZhdGU+IG1fcHJpdmF0ZTsKICAgICBNZWRpYVNvdXJjZSogbV9zb3Vy
Y2U7CiAgICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CkBAIC0xODgsNiAr
MTkwLDggQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9idWZmZXJlZFNpbmNlTGFzdE1vbml0b3I7
CiAgICAgZG91YmxlIG1fYXZlcmFnZUJ1ZmZlclJhdGU7CiAKKyAgICBzaXplX3QgbV9yZXBvcnRl
ZEV4dHJhTWVtb3J5Q29zdDsKKwogICAgIE1lZGlhVGltZSBtX3BlbmRpbmdSZW1vdmVTdGFydDsK
ICAgICBNZWRpYVRpbWUgbV9wZW5kaW5nUmVtb3ZlRW5kOwogICAgIFRpbWVyPFNvdXJjZUJ1ZmZl
cj4gbV9yZW1vdmVUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCmluZGV4
IDdhNmIxN2I0MzZiNWQ4NWU3YTBhNGEwNDg5MzEyMDBmYjM2MmZiNzEuLmE3Y2ZkZGIxYjliM2Y4
MTExZWIwZjM1ZDhmNzUwYTkyOTU2MzljYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL01lZGlhU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFT
YW1wbGUuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVRpbWUg
ZGVjb2RlVGltZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBkdXJhdGlvbigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB0cmFja0lEKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgc2l6ZV90IHNpemVJbkJ5dGVzKCkgY29uc3QgPSAwOwogCiAgICAgZW51
bSBTYW1wbGVGbGFncyB7CiAgICAgICAgIE5vbmUgPSAwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA2MDA0MzI2ZmMx
NTJhNmYyMWFkODRjYTQ5ZjQ3MWMzZWYwNjM5YTY0Li40NzBjZjg2NTg0YjhhOGI0MjE0YmExMjEz
Nzg2NjEwYTMxZWIwNzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtODksNiArODksNyBAQCBTT0ZUX0xJTksoQ29y
ZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uLCBDTVRpbWUsIChDTVNhbXBsZUJ1ZmZl
clJlZiBzYnVmKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXRE
ZXNjcmlwdGlvbiwgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYpLCAoc2J1ZikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFByZXNl
bnRhdGlvblRpbWVTdGFtcCwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVm
KSkKIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlQXR0YWNobWVu
dHNBcnJheSwgQ0ZBcnJheVJlZiwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIEJvb2xlYW4gY3Jl
YXRlSWZOZWNlc3NhcnkpLCAoc2J1ZiwgY3JlYXRlSWZOZWNlc3NhcnkpKQorU09GVF9MSU5LKENv
cmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNhbXBsZVNpemUsIHNpemVfdCwgKENNU2Ft
cGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTUZvcm1h
dERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlLCBGb3VyQ2hhckNvZGUsIChDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNldEF0dGFj
aG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cmluZ1JlZiBr
ZXksIENGVHlwZVJlZiB2YWx1ZSwgQ01BdHRhY2htZW50TW9kZSBhdHRhY2htZW50TW9kZSksICh0
YXJnZXQsIGtleSwgdmFsdWUsIGF0dGFjaG1lbnRNb2RlKSkKIFNPRlRfTElOSyhDb3JlTWVkaWEs
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldFByZXNlbnRhdGlvbkRpbWVuc2lvbnMsIENHU2l6
ZSwgKENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb0Rlc2MsIEJvb2xlYW4gdXNlUGl4
ZWxBc3BlY3RSYXRpbywgQm9vbGVhbiB1c2VDbGVhbkFwZXJ0dXJlKSwgKHZpZGVvRGVzYywgdXNl
UGl4ZWxBc3BlY3RSYXRpbywgdXNlQ2xlYW5BcGVydHVyZSkpCkBAIC0zOTgsNiArMzk5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFtcCht
X3NhbXBsZS5nZXQoKSkpOyB9CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgZHVyYXRpb24oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9u
KG1fc2FtcGxlLmdldCgpKSk7IH0KICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB0cmFja0lEKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQorICAgIHZpcnR1YWwgc2l6ZV90IHNpemVJ
bkJ5dGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ01TYW1wbGVCdWZmZXJHZXRUb3RhbFNh
bXBsZVNpemUobV9zYW1wbGUuZ2V0KCkpOyB9CiAKICAgICB2aXJ0dWFsIFNhbXBsZUZsYWdzIGZs
YWdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9y
bVNhbXBsZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNw
cAppbmRleCAzMTcwMmFmNDJiMTAzZWQzYzcxZDllZDZhZDBkNzhkY2MzMDBhYjNkLi40NGMzYmNm
Y2UwMmE3YzE1NTZhNmY3NjhjMjI2MDQ2N2UyNTlkMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlLmNwcApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYm94LmRl
Y29kZVRpbWVzdGFtcCgpOyB9CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgZHVyYXRpb24oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2JveC5kdXJhdGlvbigpOyB9CiAgICAgdmlydHVhbCBBdG9t
aWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2
aXJ0dWFsIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHNpemVv
ZihtX2JveCk7IH0KIAogICAgIHZpcnR1YWwgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgb3ZlcnJp
ZGU7Cg==
</data>
<flag name="review"
          id="256328"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231895</attachid>
            <date>2014-05-22 10:49:07 -0700</date>
            <delta_ts>2014-05-22 11:07:39 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-133174-20140522104843.patch</filename>
            <type>text/plain</type>
            <size>11642</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA3NjA4M2FkMjFiY2I0
YWM3ZmM1MTdiMDliMTBkYTA5ODczNTdkMi4uNjFiZjdmMjExYjcyM2Q2NjEzZTU2NTk5ZmYzYmM2
MGJkNThlOTljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA1LTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIFN0b3JlZCBzYW1w
bGVzIGFyZSBub3QgZnJlZWQgd2hlbiBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIE1lZGlh
U291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzMxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQ2xl
YXIgb3V0IHN0b3JlZCBNZWRpYVNhbXBsZXMgZnJvbSBTb3VyY2VCdWZmZXIncyBUcmFja0J1ZmZl
ciBzdG9yYWdlIHdoZW4KKyAgICAgICAgYWJvcnRpbmcgbG9hZGluZy4gQWxzbywgcmVwb3J0IHRo
ZSBtZW1vcnkgY29zdCBvZiB0aG9zZSBzYW1wbGVzLCBzbyB0aGF0IHRoZQorICAgICAgICBTb3Vy
Y2VCdWZmZXIgd2lsbCBiZSBHQ2QgbW9yZSByZWFkaWx5LgorCisgICAgICAgIEFkZCBhIG1lY2hh
bmlzbSBmb3IgcmVwb3J0aW5nIHRoZSBzaXplIG9mIGEgTWVkaWFTYW1wbGU6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9N
ZWRpYVNhbXBsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorCisgICAgICAgIFRy
YWNrIHRoZSBtZW1vcnkgdXNhZ2Ugb2YgYSBTYW1wbGVNYXAgd2hlbiBhZGRpbmcgYW5kIHJlbW92
aW5nIHNhbXBsZXMsIGFzIHdlbGwKKyAgICAgICAgYXMgYWxsb3dpbmcgdGhlIFNhbXBsZU1hcCB0
byBiZSBjbGVhcmVkIHdob2xlc2FsZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nh
bXBsZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OmNsZWFyKTogUmVsZWFz
ZSBhbGwgc3RvcmVkIE1lZGlhU2FtcGxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZU1hcDo6
YWRkU2FtcGxlKTogVXBkYXRlIG1fdG90YWxTaXplLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxl
TWFwOjpyZW1vdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNl
L1NhbXBsZU1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFwOjpTYW1wbGVNYXApOiBJ
bml0aWFsaXplIG1fdG90YWxTaXplLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFwOjpzaXpl
SW5CeXRlcyk6IFNpbXBsZSBhY2Nlc3Nvci4KKworICAgICAgICBDbGVhciB0aGUgc3RvcmVkIHNh
bXBsZXMgd2hlbiBsb2FkaW5nIGlzIGFib3J0ZWQsIGFuZCByZXBvcnQgdGhlIGV4dHJhIG1lbW9y
eQorICAgICAgICBjb3N0CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIpOiBJ
bml0aWFsaXplIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QuCisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXI6OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UpOiBDbGVhciBhbGwgc3RvcmVkIHNh
bXBsZXMuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVBcHBlbmRDb21wbGV0ZSk6IENhbGwgcmVwb3J0RXh0cmFNZW1vcnlDb3N0KCkuCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IEluZm9ybSB0
aGUgdm0gb2YgdGhlIG5ldworICAgICAgICAgICAgZXh0cmEgbWVtb3J5IGNvc3QgaW5jdXJyZWQg
YnkgdGhlIG9iamVjdC4KKwogMjAxNC0wNS0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBkbyBub3QgZGVhY3RpdmF0ZSBhbiBhdWRpbyBz
ZXNzaW9uIHRoYXQgaGFzIHJ1bm5pbmcgSS9PCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAKaW5kZXggODgzM2E2ODkyZTM5NzM0NmM1OTYwM2U4
Mzg5Mjk1N2MxZWIwYzJiYS4uNDE3Y2YwMzM5MmE4MWNiZjNjNWUyYjNkNjM2Y2M0ZGIzMTA3NzM4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVN
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFw
LmNwcApAQCAtODAsMTIgKzgwLDIxIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCit2b2lkIFNhbXBs
ZU1hcDo6Y2xlYXIoKQoreworICAgIG1fcHJlc2VudGF0aW9uU2FtcGxlcy5jbGVhcigpOworICAg
IG1fZGVjb2RlU2FtcGxlcy5jbGVhcigpOworICAgIG1fdG90YWxTaXplID0gMDsKK30KKwogdm9p
ZCBTYW1wbGVNYXA6OmFkZFNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUp
CiB7CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGUgPSBwcnBTYW1wbGU7CiAgICAgQVNT
RVJUKHNhbXBsZSk7CiAgICAgbV9wcmVzZW50YXRpb25TYW1wbGVzLmluc2VydChNYXBUeXBlOjp2
YWx1ZV90eXBlKHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUpKTsKICAgICBtX2Rl
Y29kZVNhbXBsZXMuaW5zZXJ0KE1hcFR5cGU6OnZhbHVlX3R5cGUoc2FtcGxlLT5kZWNvZGVUaW1l
KCksIHNhbXBsZSkpOworCisgICAgbV90b3RhbFNpemUgKz0gc2FtcGxlLT5zaXplSW5CeXRlcygp
OwogfQogCiB2b2lkIFNhbXBsZU1hcDo6cmVtb3ZlU2FtcGxlKE1lZGlhU2FtcGxlKiBzYW1wbGUp
CkBAIC05Myw2ICsxMDIsOCBAQCB2b2lkIFNhbXBsZU1hcDo6cmVtb3ZlU2FtcGxlKE1lZGlhU2Ft
cGxlKiBzYW1wbGUpCiAgICAgQVNTRVJUKHNhbXBsZSk7CiAgICAgbV9wcmVzZW50YXRpb25TYW1w
bGVzLmVyYXNlKHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpKTsKICAgICBtX2RlY29kZVNhbXBs
ZXMuZXJhc2Uoc2FtcGxlLT5kZWNvZGVUaW1lKCkpOworCisgICAgbV90b3RhbFNpemUgLT0gc2Ft
cGxlLT5zaXplSW5CeXRlcygpOwogfQogCiBTYW1wbGVNYXA6Oml0ZXJhdG9yIFNhbXBsZU1hcDo6
ZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxl
TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCmlu
ZGV4IGRlYjQyYzQ1M2VlODYxNDRkZjM2YTc0MDQ0MGNmM2E3NjM3MTc0NzYuLmYyNTU0NmQ4MjAz
NjhkMWM5ODg4NmU4NzE1OGI2YzQ5OGM4M2FiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaApAQCAtNDQsOCArNDQsMTUgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgc3RkOjpwYWlyPGl0ZXJhdG9yLCBpdGVyYXRvcj4gaXRlcmF0b3JfcmFuZ2U7
CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8cmV2ZXJzZV9pdGVyYXRvciwgcmV2ZXJzZV9pdGVyYXRv
cj4gcmV2ZXJzZV9pdGVyYXRvcl9yYW5nZTsKIAorICAgIFNhbXBsZU1hcCgpCisgICAgICAgIDog
bV90b3RhbFNpemUoMCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpOwogICAgIHZv
aWQgYWRkU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKICAgICB2b2lkIHJlbW92ZVNh
bXBsZShNZWRpYVNhbXBsZSopOworICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fdG90YWxTaXplOyB9CiAKICAgICBpdGVyYXRvciBwcmVzZW50YXRpb25CZWdpbigpIHsg
cmV0dXJuIG1fcHJlc2VudGF0aW9uU2FtcGxlcy5iZWdpbigpOyB9CiAgICAgaXRlcmF0b3IgcHJl
c2VudGF0aW9uRW5kKCkgeyByZXR1cm4gbV9wcmVzZW50YXRpb25TYW1wbGVzLmVuZCgpOyB9CkBA
IC03Myw2ICs4MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWFwVHlwZSBtX3ByZXNlbnRh
dGlvblNhbXBsZXM7CiAgICAgTWFwVHlwZSBtX2RlY29kZVNhbXBsZXM7CisgICAgc2l6ZV90IG1f
dG90YWxTaXplOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDc2MmM1N2NmNDgyMTdhYzhlM2U2MTNiNjUy
OTBmYTE1ZGNlZmYzYTguLjkzMWM0YTFhZTQyMjdjOGUxM2YxYTJhNjExNWIyOTg0MTA5OTU3Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAKQEAgLTQ5LDYgKzQ5LDggQEAKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5j
bHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKICNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxydW50aW1lL1ZNLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTEwMyw2ICsx
MDUsNyBAQCBTb3VyY2VCdWZmZXI6OlNvdXJjZUJ1ZmZlcihQYXNzUmVmPFNvdXJjZUJ1ZmZlclBy
aXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZhdGUsIE1lZAogICAgICwgbV90aW1lT2ZCdWZmZXJpbmdN
b25pdG9yKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQogICAgICwgbV9idWZmZXJlZFNp
bmNlTGFzdE1vbml0b3IoMCkKICAgICAsIG1fYXZlcmFnZUJ1ZmZlclJhdGUoMCkKKyAgICAsIG1f
cmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QoMCkKICAgICAsIG1fcGVuZGluZ1JlbW92ZVN0YXJ0KE1l
ZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAsIG1fcGVuZGluZ1JlbW92ZUVuZChNZWRpYVRp
bWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlbW92ZVRpbWVyKHRoaXMsICZTb3VyY2VCdWZm
ZXI6OnJlbW92ZVRpbWVyRmlyZWQpCkBAIC0yODksNiArMjkyLDExIEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIAogICAgIGFib3J0SWZVcGRhdGluZygpOwog
CisgICAgZm9yIChhdXRvJiB0cmFja0J1ZmZlclBhaXIgOiBtX3RyYWNrQnVmZmVyTWFwLnZhbHVl
cygpKSB7CisgICAgICAgIHRyYWNrQnVmZmVyUGFpci5zYW1wbGVzLmNsZWFyKCk7CisgICAgICAg
IHRyYWNrQnVmZmVyUGFpci5kZWNvZGVRdWV1ZS5jbGVhcigpOworICAgIH0KKwogICAgIG1fcHJp
dmF0ZS0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwogICAgIG1fc291cmNlID0gMDsKICAgICBt
X2FzeW5jRXZlbnRRdWV1ZS5jbG9zZSgpOwpAQCAtNDQ2LDYgKzQ1NCw4IEBAIHZvaWQgU291cmNl
QnVmZmVyOjphcHBlbmRCdWZmZXJJbnRlcm5hbCh1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBzaXplLCBFeGNlCiAKICAgICAvLyA2LiBBc3luY2hyb25vdXNseSBydW4gdGhlIGJ1ZmZlciBh
cHBlbmQgYWxnb3JpdGhtLgogICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDAp
OworCisgICAgcmVwb3J0RXh0cmFNZW1vcnlDb3N0KCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVy
OjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4mKQpAQCAtNTE2LDYg
KzUyNiw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29t
cGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgICAgIG1fc291cmNlLT5tb25p
dG9yU291cmNlQnVmZmVycygpOwogICAgIGZvciAoYXV0byBpdGVyID0gbV90cmFja0J1ZmZlck1h
cC5iZWdpbigpLCBlbmQgPSBtX3RyYWNrQnVmZmVyTWFwLmVuZCgpOyBpdGVyICE9IGVuZDsgKytp
dGVyKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKGl0ZXItPnZhbHVlLCBpdGVyLT5rZXkpOwor
CisgICAgcmVwb3J0RXh0cmFNZW1vcnlDb3N0KCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpy
ZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCkKQEAgLTE0MjQsNiArMTQzNiwyMyBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6Y2FuUGxheVRo
cm91Z2goKQogICAgIHJldHVybiB1bmJ1ZmZlcmVkVGltZSAvIG1fYXZlcmFnZUJ1ZmZlclJhdGUg
PCB0aW1lUmVtYWluaW5nOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVwb3J0RXh0cmFNZW1v
cnlDb3N0KCkKK3sKKyAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0ID0gbV9wZW5kaW5nQXBwZW5k
RGF0YS5jYXBhY2l0eSgpOworICAgIGZvciAoYXV0byYgdHJhY2tCdWZmZXIgOiBtX3RyYWNrQnVm
ZmVyTWFwLnZhbHVlcygpKQorICAgICAgICBleHRyYU1lbW9yeUNvc3QgKz0gdHJhY2tCdWZmZXIu
c2FtcGxlcy5zaXplSW5CeXRlcygpOworCisgICAgaWYgKGV4dHJhTWVtb3J5Q29zdCA8IG1fcmVw
b3J0ZWRFeHRyYU1lbW9yeUNvc3QpCisgICAgICAgIHJldHVybjsKKworICAgIHNpemVfdCBleHRy
YU1lbW9yeUNvc3REZWx0YSA9IGV4dHJhTWVtb3J5Q29zdCAtIG1fcmVwb3J0ZWRFeHRyYU1lbW9y
eUNvc3Q7CisgICAgbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdCA9IGV4dHJhTWVtb3J5Q29zdDsK
KworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52
bSgpKTsKKyAgICBpZiAoZXh0cmFNZW1vcnlDb3N0RGVsdGEgPiAwKQorICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnZtKCkuaGVhcC5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoZXh0cmFN
ZW1vcnlDb3N0RGVsdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgK
aW5kZXggMTQ3OWJiZjE2ODEzYjZkYmE1ODg5ZDYwNzM4NTIwYjNlZWJmNjc2Zi4uYzhiMmI3ZTc3
MTFlZTcxYzJhYjA2NjY1NjBmZWU2ODIxYTllMjRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0xNTYsNiArMTU2LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZVRpbWVyRmlyZWQoVGltZXI8U291cmNlQnVmZmVyPiop
OwogICAgIHZvaWQgcmVtb3ZlQ29kZWRGcmFtZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQpOwogCisgICAgdm9pZCByZXBvcnRFeHRyYU1lbW9yeUNvc3QoKTsK
KwogICAgIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFTb3Vy
Y2UqIG1fc291cmNlOwogICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwpA
QCAtMTg4LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fYnVmZmVyZWRTaW5jZUxh
c3RNb25pdG9yOwogICAgIGRvdWJsZSBtX2F2ZXJhZ2VCdWZmZXJSYXRlOwogCisgICAgc2l6ZV90
IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7CisKICAgICBNZWRpYVRpbWUgbV9wZW5kaW5nUmVt
b3ZlU3RhcnQ7CiAgICAgTWVkaWFUaW1lIG1fcGVuZGluZ1JlbW92ZUVuZDsKICAgICBUaW1lcjxT
b3VyY2VCdWZmZXI+IG1fcmVtb3ZlVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1w
bGUuaAppbmRleCA3YTZiMTdiNDM2YjVkODVlN2EwYTRhMDQ4OTMxMjAwZmIzNjJmYjcxLi5hN2Nm
ZGRiMWI5YjNmODExMWViMGYzNWQ4Zjc1MGE5Mjk1NjM5Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU2FtcGxlLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
TWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBNZWRpYVRpbWUg
ZHVyYXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdHJhY2tJRCgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0ID0gMDsK
IAogICAgIGVudW0gU2FtcGxlRmxhZ3MgewogICAgICAgICBOb25lID0gMCwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXgg
ZTY5YTdmNmRkMWRiOTFiYWM0YWMzZjA5MjM4NzRhOGY3NDE4Njk4ZC4uMTYzNDdjZmI4OGFkOWU5
Mjk2NzY1MWVmZDNkNzkwYjVmMzg3OTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTg5LDYgKzg5LDcgQEAgU09G
VF9MSU5LKENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZikKIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24sIENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1
ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01TYW1wbGVCdWZm
ZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNi
dWYpLCAoc2J1ZikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXksIENGQXJyYXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBC
b29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKK1NP
RlRfTElOSyhDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXpl
X3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQogU09GVF9MSU5LKENvcmVNZWRp
YSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3ViVHlwZSwgRm91ckNoYXJDb2RlLCAoQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpKQogU09GVF9MSU5LKENvcmVNZWRpYSwg
Q01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZT
dHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgdmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVu
dE1vZGUpLCAodGFyZ2V0LCBrZXksIHZhbHVlLCBhdHRhY2htZW50TW9kZSkpCiBTT0ZUX0xJTkso
Q29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNp
b25zLCBDR1NpemUsIChDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9EZXNjLCBCb29s
ZWFuIHVzZVBpeGVsQXNwZWN0UmF0aW8sIEJvb2xlYW4gdXNlQ2xlYW5BcGVydHVyZSksICh2aWRl
b0Rlc2MsIHVzZVBpeGVsQXNwZWN0UmF0aW8sIHVzZUNsZWFuQXBlcnR1cmUpKQpAQCAtMjkyLDYg
KzI5Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBkZWNvZGVUaW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVU
aW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkpKTsgfQogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGR1cmF0
aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJH
ZXREdXJhdGlvbihtX3NhbXBsZS5nZXQoKSkpOyB9CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcg
dHJhY2tJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2aXJ0dWFsIHNp
emVfdCBzaXplSW5CeXRlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENNU2FtcGxlQnVmZmVy
R2V0VG90YWxTYW1wbGVTaXplKG1fc2FtcGxlLmdldCgpKTsgfQogCiAgICAgdmlydHVhbCBTYW1w
bGVGbGFncyBmbGFncygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TYW1w
bGUgcGxhdGZvcm1TYW1wbGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKaW5kZXggMzE3MDJhZjQyYjEwM2VkM2M3MWQ5ZWQ2YWQwZDc4ZGNjMzAwYWIz
ZC4uNDRjM2JjZmNlMDJhN2MxNTU2YTZmNzY4YzIyNjA0NjdlMjU5ZDM1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2JveC5kZWNvZGVUaW1lc3RhbXAoKTsgfQogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGR1cmF0
aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ib3guZHVyYXRpb24oKTsgfQogICAgIHZp
cnR1YWwgQXRvbWljU3RyaW5nIHRyYWNrSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lk
OyB9CisgICAgdmlydHVhbCBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBzaXplb2YobV9ib3gpOyB9CiAKICAgICB2aXJ0dWFsIFNhbXBsZUZsYWdzIGZsYWdzKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBs
ZSgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231898</attachid>
            <date>2014-05-22 11:07:56 -0700</date>
            <delta_ts>2014-05-22 11:07:56 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-133174-20140522110733.patch</filename>
            <type>text/plain</type>
            <size>11675</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA3NjA4M2FkMjFiY2I0
YWM3ZmM1MTdiMDliMTBkYTA5ODczNTdkMi4uNjFiZjdmMjExYjcyM2Q2NjEzZTU2NTk5ZmYzYmM2
MGJkNThlOTljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA1LTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIFN0b3JlZCBzYW1w
bGVzIGFyZSBub3QgZnJlZWQgd2hlbiBTb3VyY2VCdWZmZXIgaXMgcmVtb3ZlZCBmcm9tIE1lZGlh
U291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzMxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQ2xl
YXIgb3V0IHN0b3JlZCBNZWRpYVNhbXBsZXMgZnJvbSBTb3VyY2VCdWZmZXIncyBUcmFja0J1ZmZl
ciBzdG9yYWdlIHdoZW4KKyAgICAgICAgYWJvcnRpbmcgbG9hZGluZy4gQWxzbywgcmVwb3J0IHRo
ZSBtZW1vcnkgY29zdCBvZiB0aG9zZSBzYW1wbGVzLCBzbyB0aGF0IHRoZQorICAgICAgICBTb3Vy
Y2VCdWZmZXIgd2lsbCBiZSBHQ2QgbW9yZSByZWFkaWx5LgorCisgICAgICAgIEFkZCBhIG1lY2hh
bmlzbSBmb3IgcmVwb3J0aW5nIHRoZSBzaXplIG9mIGEgTWVkaWFTYW1wbGU6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9N
ZWRpYVNhbXBsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorCisgICAgICAgIFRy
YWNrIHRoZSBtZW1vcnkgdXNhZ2Ugb2YgYSBTYW1wbGVNYXAgd2hlbiBhZGRpbmcgYW5kIHJlbW92
aW5nIHNhbXBsZXMsIGFzIHdlbGwKKyAgICAgICAgYXMgYWxsb3dpbmcgdGhlIFNhbXBsZU1hcCB0
byBiZSBjbGVhcmVkIHdob2xlc2FsZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nh
bXBsZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OmNsZWFyKTogUmVsZWFz
ZSBhbGwgc3RvcmVkIE1lZGlhU2FtcGxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZU1hcDo6
YWRkU2FtcGxlKTogVXBkYXRlIG1fdG90YWxTaXplLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxl
TWFwOjpyZW1vdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNl
L1NhbXBsZU1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFwOjpTYW1wbGVNYXApOiBJ
bml0aWFsaXplIG1fdG90YWxTaXplLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFwOjpzaXpl
SW5CeXRlcyk6IFNpbXBsZSBhY2Nlc3Nvci4KKworICAgICAgICBDbGVhciB0aGUgc3RvcmVkIHNh
bXBsZXMgd2hlbiBsb2FkaW5nIGlzIGFib3J0ZWQsIGFuZCByZXBvcnQgdGhlIGV4dHJhIG1lbW9y
eQorICAgICAgICBjb3N0CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIpOiBJ
bml0aWFsaXplIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QuCisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXI6OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UpOiBDbGVhciBhbGwgc3RvcmVkIHNh
bXBsZXMuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVBcHBlbmRDb21wbGV0ZSk6IENhbGwgcmVwb3J0RXh0cmFNZW1vcnlDb3N0KCkuCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IEluZm9ybSB0
aGUgdm0gb2YgdGhlIG5ldworICAgICAgICAgICAgZXh0cmEgbWVtb3J5IGNvc3QgaW5jdXJyZWQg
YnkgdGhlIG9iamVjdC4KKwogMjAxNC0wNS0yMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBkbyBub3QgZGVhY3RpdmF0ZSBhbiBhdWRpbyBz
ZXNzaW9uIHRoYXQgaGFzIHJ1bm5pbmcgSS9PCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAKaW5kZXggODgzM2E2ODkyZTM5NzM0NmM1OTYwM2U4
Mzg5Mjk1N2MxZWIwYzJiYS4uNDE3Y2YwMzM5MmE4MWNiZjNjNWUyYjNkNjM2Y2M0ZGIzMTA3NzM4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVN
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFw
LmNwcApAQCAtODAsMTIgKzgwLDIxIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCit2b2lkIFNhbXBs
ZU1hcDo6Y2xlYXIoKQoreworICAgIG1fcHJlc2VudGF0aW9uU2FtcGxlcy5jbGVhcigpOworICAg
IG1fZGVjb2RlU2FtcGxlcy5jbGVhcigpOworICAgIG1fdG90YWxTaXplID0gMDsKK30KKwogdm9p
ZCBTYW1wbGVNYXA6OmFkZFNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUp
CiB7CiAgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGUgPSBwcnBTYW1wbGU7CiAgICAgQVNT
RVJUKHNhbXBsZSk7CiAgICAgbV9wcmVzZW50YXRpb25TYW1wbGVzLmluc2VydChNYXBUeXBlOjp2
YWx1ZV90eXBlKHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLCBzYW1wbGUpKTsKICAgICBtX2Rl
Y29kZVNhbXBsZXMuaW5zZXJ0KE1hcFR5cGU6OnZhbHVlX3R5cGUoc2FtcGxlLT5kZWNvZGVUaW1l
KCksIHNhbXBsZSkpOworCisgICAgbV90b3RhbFNpemUgKz0gc2FtcGxlLT5zaXplSW5CeXRlcygp
OwogfQogCiB2b2lkIFNhbXBsZU1hcDo6cmVtb3ZlU2FtcGxlKE1lZGlhU2FtcGxlKiBzYW1wbGUp
CkBAIC05Myw2ICsxMDIsOCBAQCB2b2lkIFNhbXBsZU1hcDo6cmVtb3ZlU2FtcGxlKE1lZGlhU2Ft
cGxlKiBzYW1wbGUpCiAgICAgQVNTRVJUKHNhbXBsZSk7CiAgICAgbV9wcmVzZW50YXRpb25TYW1w
bGVzLmVyYXNlKHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpKTsKICAgICBtX2RlY29kZVNhbXBs
ZXMuZXJhc2Uoc2FtcGxlLT5kZWNvZGVUaW1lKCkpOworCisgICAgbV90b3RhbFNpemUgLT0gc2Ft
cGxlLT5zaXplSW5CeXRlcygpOwogfQogCiBTYW1wbGVNYXA6Oml0ZXJhdG9yIFNhbXBsZU1hcDo6
ZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxl
TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oCmlu
ZGV4IGRlYjQyYzQ1M2VlODYxNDRkZjM2YTc0MDQ0MGNmM2E3NjM3MTc0NzYuLmYyNTU0NmQ4MjAz
NjhkMWM5ODg4NmU4NzE1OGI2YzQ5OGM4M2FiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaApAQCAtNDQsOCArNDQsMTUgQEAgcHVibGljOgog
ICAgIHR5cGVkZWYgc3RkOjpwYWlyPGl0ZXJhdG9yLCBpdGVyYXRvcj4gaXRlcmF0b3JfcmFuZ2U7
CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8cmV2ZXJzZV9pdGVyYXRvciwgcmV2ZXJzZV9pdGVyYXRv
cj4gcmV2ZXJzZV9pdGVyYXRvcl9yYW5nZTsKIAorICAgIFNhbXBsZU1hcCgpCisgICAgICAgIDog
bV90b3RhbFNpemUoMCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpOwogICAgIHZv
aWQgYWRkU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKICAgICB2b2lkIHJlbW92ZVNh
bXBsZShNZWRpYVNhbXBsZSopOworICAgIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fdG90YWxTaXplOyB9CiAKICAgICBpdGVyYXRvciBwcmVzZW50YXRpb25CZWdpbigpIHsg
cmV0dXJuIG1fcHJlc2VudGF0aW9uU2FtcGxlcy5iZWdpbigpOyB9CiAgICAgaXRlcmF0b3IgcHJl
c2VudGF0aW9uRW5kKCkgeyByZXR1cm4gbV9wcmVzZW50YXRpb25TYW1wbGVzLmVuZCgpOyB9CkBA
IC03Myw2ICs4MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWFwVHlwZSBtX3ByZXNlbnRh
dGlvblNhbXBsZXM7CiAgICAgTWFwVHlwZSBtX2RlY29kZVNhbXBsZXM7CisgICAgc2l6ZV90IG1f
dG90YWxTaXplOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDc2MmM1N2NmNDgyMTdhYzhlM2U2MTNiNjUy
OTBmYTE1ZGNlZmYzYTguLmQyZGJjNzc0NTQ0ZThjMDJhZWU3NDdlMmUyNWZhYjMyNmUyYzhhYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5j
bHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKICNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0NJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxy
dW50aW1lL1ZNLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTEwMyw2ICsxMDYsNyBAQCBTb3VyY2VCdWZmZXI6OlNv
dXJjZUJ1ZmZlcihQYXNzUmVmPFNvdXJjZUJ1ZmZlclByaXZhdGU+IHNvdXJjZUJ1ZmZlclByaXZh
dGUsIE1lZAogICAgICwgbV90aW1lT2ZCdWZmZXJpbmdNb25pdG9yKG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpKQogICAgICwgbV9idWZmZXJlZFNpbmNlTGFzdE1vbml0b3IoMCkKICAgICAs
IG1fYXZlcmFnZUJ1ZmZlclJhdGUoMCkKKyAgICAsIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Qo
MCkKICAgICAsIG1fcGVuZGluZ1JlbW92ZVN0YXJ0KE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkK
ICAgICAsIG1fcGVuZGluZ1JlbW92ZUVuZChNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAg
LCBtX3JlbW92ZVRpbWVyKHRoaXMsICZTb3VyY2VCdWZmZXI6OnJlbW92ZVRpbWVyRmlyZWQpCkBA
IC0yODksNiArMjkzLDExIEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkKIAogICAgIGFib3J0SWZVcGRhdGluZygpOwogCisgICAgZm9yIChhdXRvJiB0cmFja0J1
ZmZlclBhaXIgOiBtX3RyYWNrQnVmZmVyTWFwLnZhbHVlcygpKSB7CisgICAgICAgIHRyYWNrQnVm
ZmVyUGFpci5zYW1wbGVzLmNsZWFyKCk7CisgICAgICAgIHRyYWNrQnVmZmVyUGFpci5kZWNvZGVR
dWV1ZS5jbGVhcigpOworICAgIH0KKwogICAgIG1fcHJpdmF0ZS0+cmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpOwogICAgIG1fc291cmNlID0gMDsKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jbG9zZSgp
OwpAQCAtNDQ2LDYgKzQ1NSw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJJbnRl
cm5hbCh1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplLCBFeGNlCiAKICAgICAvLyA2
LiBBc3luY2hyb25vdXNseSBydW4gdGhlIGJ1ZmZlciBhcHBlbmQgYWxnb3JpdGhtLgogICAgIG1f
YXBwZW5kQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgcmVwb3J0RXh0cmFNZW1v
cnlDb3N0KCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVk
KFRpbWVyPFNvdXJjZUJ1ZmZlcj4mKQpAQCAtNTE2LDYgKzUyNyw4IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0
ZSosIEFwcGVuCiAgICAgICAgIG1fc291cmNlLT5tb25pdG9yU291cmNlQnVmZmVycygpOwogICAg
IGZvciAoYXV0byBpdGVyID0gbV90cmFja0J1ZmZlck1hcC5iZWdpbigpLCBlbmQgPSBtX3RyYWNr
QnVmZmVyTWFwLmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKQogICAgICAgICBwcm92aWRlTWVk
aWFEYXRhKGl0ZXItPnZhbHVlLCBpdGVyLT5rZXkpOworCisgICAgcmVwb3J0RXh0cmFNZW1vcnlD
b3N0KCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCkKQEAgLTE0MjQsNiArMTQzNywy
MyBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6Y2FuUGxheVRocm91Z2goKQogICAgIHJldHVybiB1bmJ1
ZmZlcmVkVGltZSAvIG1fYXZlcmFnZUJ1ZmZlclJhdGUgPCB0aW1lUmVtYWluaW5nOwogfQogCit2
b2lkIFNvdXJjZUJ1ZmZlcjo6cmVwb3J0RXh0cmFNZW1vcnlDb3N0KCkKK3sKKyAgICBzaXplX3Qg
ZXh0cmFNZW1vcnlDb3N0ID0gbV9wZW5kaW5nQXBwZW5kRGF0YS5jYXBhY2l0eSgpOworICAgIGZv
ciAoYXV0byYgdHJhY2tCdWZmZXIgOiBtX3RyYWNrQnVmZmVyTWFwLnZhbHVlcygpKQorICAgICAg
ICBleHRyYU1lbW9yeUNvc3QgKz0gdHJhY2tCdWZmZXIuc2FtcGxlcy5zaXplSW5CeXRlcygpOwor
CisgICAgaWYgKGV4dHJhTWVtb3J5Q29zdCA8IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3REZWx0YSA9IGV4dHJh
TWVtb3J5Q29zdCAtIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7CisgICAgbV9yZXBvcnRlZEV4
dHJhTWVtb3J5Q29zdCA9IGV4dHJhTWVtb3J5Q29zdDsKKworICAgIEpTQzo6SlNMb2NrSG9sZGVy
IGxvY2soc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52bSgpKTsKKyAgICBpZiAoZXh0cmFNZW1v
cnlDb3N0RGVsdGEgPiAwKQorICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnZtKCku
aGVhcC5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoZXh0cmFNZW1vcnlDb3N0RGVsdGEpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggMTQ3OWJiZjE2ODEzYjZkYmE1
ODg5ZDYwNzM4NTIwYjNlZWJmNjc2Zi4uYzhiMmI3ZTc3MTFlZTcxYzJhYjA2NjY1NjBmZWU2ODIx
YTllMjRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5oCkBAIC0xNTYsNiArMTU2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92
ZVRpbWVyRmlyZWQoVGltZXI8U291cmNlQnVmZmVyPiopOwogICAgIHZvaWQgcmVtb3ZlQ29kZWRG
cmFtZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpOwogCisg
ICAgdm9pZCByZXBvcnRFeHRyYU1lbW9yeUNvc3QoKTsKKwogICAgIFJlZjxTb3VyY2VCdWZmZXJQ
cml2YXRlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFTb3VyY2UqIG1fc291cmNlOwogICAgIEdlbmVy
aWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwpAQCAtMTg4LDYgKzE5MCw4IEBAIHByaXZh
dGU6CiAgICAgZG91YmxlIG1fYnVmZmVyZWRTaW5jZUxhc3RNb25pdG9yOwogICAgIGRvdWJsZSBt
X2F2ZXJhZ2VCdWZmZXJSYXRlOwogCisgICAgc2l6ZV90IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNv
c3Q7CisKICAgICBNZWRpYVRpbWUgbV9wZW5kaW5nUmVtb3ZlU3RhcnQ7CiAgICAgTWVkaWFUaW1l
IG1fcGVuZGluZ1JlbW92ZUVuZDsKICAgICBUaW1lcjxTb3VyY2VCdWZmZXI+IG1fcmVtb3ZlVGlt
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAppbmRleCA3YTZiMTdiNDM2YjVk
ODVlN2EwYTRhMDQ4OTMxMjAwZmIzNjJmYjcxLi5hN2NmZGRiMWI5YjNmODExMWViMGYzNWQ4Zjc1
MGE5Mjk1NjM5Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNh
bXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKQEAgLTU1
LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgZHVyYXRpb24oKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0ID0gMDsKIAogICAgIGVudW0gU2FtcGxlRmxhZ3Mg
ewogICAgICAgICBOb25lID0gMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggZTY5YTdmNmRkMWRiOTFiYWM0YWMzZjA5
MjM4NzRhOGY3NDE4Njk4ZC4uMTYzNDdjZmI4OGFkOWU5Mjk2NzY1MWVmZDNkNzkwYjVmMzg3OTUx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0KQEAgLTg5LDYgKzg5LDcgQEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01TYW1w
bGVCdWZmZXJHZXREdXJhdGlvbiwgQ01UaW1lLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZikKIFNP
RlRfTElOSyhDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24sIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmKSwgKHNidWYpKQog
U09GVF9MSU5LKENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3Rh
bXAsIENNVGltZSwgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYpLCAoc2J1ZikpCiBTT0ZUX0xJTkso
Q29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXksIENGQXJy
YXlSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBzYnVmLCBCb29sZWFuIGNyZWF0ZUlmTmVjZXNzYXJ5
KSwgKHNidWYsIGNyZWF0ZUlmTmVjZXNzYXJ5KSkKK1NPRlRfTElOSyhDb3JlTWVkaWEsIENNU2Ft
cGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplLCBzaXplX3QsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01Gb3JtYXREZXNjcmlwdGlvbkdl
dE1lZGlhU3ViVHlwZSwgRm91ckNoYXJDb2RlLCAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNj
KSwgKGRlc2MpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAo
Q01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYg
dmFsdWUsIENNQXR0YWNobWVudE1vZGUgYXR0YWNobWVudE1vZGUpLCAodGFyZ2V0LCBrZXksIHZh
bHVlLCBhdHRhY2htZW50TW9kZSkpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25HZXRQcmVzZW50YXRpb25EaW1lbnNpb25zLCBDR1NpemUsIChDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgdmlkZW9EZXNjLCBCb29sZWFuIHVzZVBpeGVsQXNwZWN0UmF0aW8s
IEJvb2xlYW4gdXNlQ2xlYW5BcGVydHVyZSksICh2aWRlb0Rlc2MsIHVzZVBpeGVsQXNwZWN0UmF0
aW8sIHVzZUNsZWFuQXBlcnR1cmUpKQpAQCAtMjkyLDYgKzI5Myw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIE1lZGlhVGltZSBkZWNvZGVUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREZWNvZGVUaW1lU3RhbXAobV9zYW1wbGUuZ2V0KCkp
KTsgfQogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdG9NZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihtX3NhbXBsZS5nZXQo
KSkpOyB9CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBzaXplSW5CeXRlcygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIENNU2FtcGxlQnVmZmVyR2V0VG90YWxTYW1wbGVTaXplKG1fc2Ft
cGxlLmdldCgpKTsgfQogCiAgICAgdmlydHVhbCBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXggMzE3MDJh
ZjQyYjEwM2VkM2M3MWQ5ZWQ2YWQwZDc4ZGNjMzAwYWIzZC4uNDRjM2JjZmNlMDJhN2MxNTU2YTZm
NzY4YzIyNjA0NjdlMjU5ZDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGRl
Y29kZVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2JveC5kZWNvZGVUaW1lc3RhbXAo
KTsgfQogICAgIHZpcnR1YWwgTWVkaWFUaW1lIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9ib3guZHVyYXRpb24oKTsgfQogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHRyYWNr
SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CisgICAgdmlydHVhbCBzaXplX3Qg
c2l6ZUluQnl0ZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzaXplb2YobV9ib3gpOyB9CiAK
ICAgICB2aXJ0dWFsIFNhbXBsZUZsYWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>