<?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>168281</bug_id>
          
          <creation_ts>2017-02-13 22:47:04 -0800</creation_ts>
          <short_desc>Disabled Media Sources should render black/silence</short_desc>
          <delta_ts>2019-06-16 21:27:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1276582</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-13 22:47:04 -0800</bug_when>
    <thetext>Disabled Media Sources should render black/silence</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276584</commentid>
    <comment_count>1</comment_count>
      <attachid>301456</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-13 22:53:50 -0800</bug_when>
    <thetext>Created attachment 301456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276585</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-13 22:54:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/30508003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276631</commentid>
    <comment_count>3</comment_count>
      <attachid>301456</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-14 00:05:46 -0800</bug_when>
    <thetext>Comment on attachment 301456
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:88
&gt; +    if (!m_muted &amp;&amp; m_enabled) {
&gt; +        ASSERT(sample.platformSample().type == PlatformSample::CMSampleBufferType);
&gt; +        auto pixelBuffer = static_cast&lt;CVPixelBufferRef&gt;(CMSampleBufferGetImageBuffer(sample.platformSample().sample.cmSampleBuffer));

Do we want muting to affect the pixels?  Is it possible to mute but still send video?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276708</commentid>
    <comment_count>4</comment_count>
      <attachid>301456</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-14 07:18:03 -0800</bug_when>
    <thetext>Comment on attachment 301456
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:88
&gt;&gt; +        auto pixelBuffer = static_cast&lt;CVPixelBufferRef&gt;(CMSampleBufferGetImageBuffer(sample.platformSample().sample.cmSampleBuffer));
&gt; 
&gt; Do we want muting to affect the pixels?  Is it possible to mute but still send video?

The spec is explicit: disabling and muting each will cause the source to emit silence or black frames. Muting, here, doesn&apos;t necessarily refer to audio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276726</commentid>
    <comment_count>5</comment_count>
      <attachid>301456</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-14 07:25:40 -0800</bug_when>
    <thetext>Comment on attachment 301456
Patch

This should have a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276780</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-14 09:08:28 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 301456 [details]
&gt; Patch
&gt; 
&gt; This should have a test.

Hm, we should be able to render a stream to Web Audio and canvas, where we can verify that only silence/black is rendered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276874</commentid>
    <comment_count>7</comment_count>
      <attachid>301533</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-02-14 12:42:14 -0800</bug_when>
    <thetext>Created attachment 301533
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277369</commentid>
    <comment_count>8</comment_count>
      <attachid>301533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-15 14:46:05 -0800</bug_when>
    <thetext>Comment on attachment 301533
Patch for landing

Clearing flags on attachment: 301533

Committed r212399: &lt;http://trac.webkit.org/changeset/212399&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301456</attachid>
            <date>2017-02-13 22:53:50 -0800</date>
            <delta_ts>2017-02-14 07:25:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168281-20170213225118.patch</filename>
            <type>text/plain</type>
            <size>16384</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWViOWZhNDQ0YzdmZjAx
M2EyMjI0MjYwMTdlNDQ5M2JkMTM3MzZiZC4uNTM3N2FmODhlOTM5MGIxMzYzZDU2YzI0NTllY2Qw
NmU3NGRhMGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTAyLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGVkIE1lZGlhIFNv
dXJjZXMgc2hvdWxkIHJlbmRlciBibGFjay9zaWxlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIHRoZSBlbmFibGVkIGZsYWcgc2V0dGluZyBk
b3duIGZyb20gdGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIHRvIGl0cyB1bmRlcmx5aW5nCisg
ICAgICAgIHNvdXJjZSwgaW5jbHVkaW5nIFJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIFJlYWx0aW1l
T3V0Z29pbmdBdWRpby9WaWRlb1NvdXJjZS4gV2hlbiBlaXRoZXIKKyAgICAgICAgZW5hYmxlZCBp
cyBjbGVhcmVkIG9yIG11dGVkIGlzIHNldCwgZ2VuZXJhdGUgZW1wdHkgKGJsYWNrIG9yIHNpbGVu
dCkgbWVkaWEsIGFzIG9wcG9zZWQgdG8KKyAgICAgICAgcGF1c2luZyBtZWRpYSBvciAod29yc2Up
IGNvbnRpbnVpbmcgdG8gc2VuZCBnZW5lcmF0ZWQgbWVkaWEuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6
OnJlbmRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6cHVsbEF1ZGlvRGF0YSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2Vu
ZXJhdGVGcmFtZSk6CisKIFwyMDE3LTAyLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFZpZGVvIGVsZW1lbnRzIHdpdGggTWVkaWFTb3VyY2Ugb2JqZWN0cyBz
ZXQgYnkgc3JjT2JqZWN0IGFyZSBub3QgY2xlYXJlZCB3aGVuIHNyY09iamVjdCBpcyBzZXQgdG8g
bnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IDQ2NmIzZGI4YTJmZTE5YmU3
MTY4ZTgwYTk1N2FiOTk4NTQ1MzAzOWUuLjczNmM2ZjRjNWMzNTI0ODM3YWE3ZmM4NmNmZWU3YjIx
Y2VmNTUwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTEwMCw2ICsxMDAs
OCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKICAgICAvLyBBbHdheXMgdXBkYXRlIHRoZSBlbmFibGVkIHN0YXRlIHJlZ2FyZGxlc3Mgb2Yg
dGhlIHRyYWNrIGJlaW5nIGVuZGVkLgogICAgIG1faXNFbmFibGVkID0gZW5hYmxlZDsKIAorICAg
IG1fc291cmNlLT5zZXRFbmFibGVkKGVuYWJsZWQpOworCiAgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQogICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVkQ2hhbmdlZCgq
dGhpcyk7CiB9CkBAIC0xODYsNiArMTg4LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiAgICAgICAgIG9ic2VydmVyLT50cmFja011dGVkQ2hh
bmdlZCgqdGhpcyk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZUVu
YWJsZWRDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMp
CisgICAgICAgIG9ic2VydmVyLT50cmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKK30KKwogdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKCkKIHsKICAg
ICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAppbmRleCA2ODY0NzBkMjU1OGVmNWE4NWE2YTJjOTA4NGE5YjJlNGVlMjg5NDU5Li5jYTBk
N2MxN2Q3ODU4N2EzZjFjMGY2NDI2Y2Q2MWYxMThmYmM4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlT2JzZXJ2ZXIKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKICAgICB2b2lk
IHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAg
IGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQgdmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
aW5kZXggNTQ4NjBiNzE0OTljNzA0ZDM4YTMyMjBhMDM1MTNhOWMwMzMwMTU1OS4uZDBiZDAyOGRk
YTYzYWY4Yjg0ODA0OGEyNDZiOWRkMWFhZGE2YjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTk2LDYgKzk2LDIwIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0TXV0ZWQoYm9v
bCBtdXRlZCkKICAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZU11dGVkQ2hhbmdlZCgpOwogfQogCit2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAg
IGlmIChtX3N0b3BwZWQgfHwgbV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICBpZiAobV9zdG9wcGVkKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAg
ICAgIG9ic2VydmVyLT5zb3VyY2VFbmFibGVkQ2hhbmdlZCgpOworfQorCiB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldHRpbmdzRGlkQ2hhbmdlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDEzOWNiZmQxOTIwOThhYWEwOGQyNDYwNzUw
NWQxZWRlYmNmODhhODguLmM0OGExOWFkYTQxY2FiMTdjNzYwMTRlZjNhZDQ3OGM3YjI3YmQxOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAv
LyBTb3VyY2Ugc3RhdGUgY2hhbmdlcy4KICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0b3Bw
ZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpID0gMDsKIAogICAgICAgICAv
LyBPYnNlcnZlciBzdGF0ZSBxdWVyaWVzLgpAQCAtMTE3LDYgKzExOCw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldE11dGVkKGJvb2wpOwogCisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChi
b29sKTsKKwogICAgIHZpcnR1YWwgYm9vbCByZWFkb25seSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBzZXRSZWFkb25seShib29sIHJlYWRvbmx5KSB7IG1fcmVhZG9ubHkgPSByZWFkb25seTsg
fQogCkBAIC0xOTAsNiArMTk0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFs
PGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pOwogCiAgICAgYm9vbCBtX211dGVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIAogcHJpdmF0ZToKICAg
ICBXZWFrUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW1Db2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYS5oCmluZGV4IGNlYTAzMGZiZmYzZWRkOTkxZGI3
NDVkZjFjNjc1YTc0N2VkMDI2OTQuLjNhYTM4ZDUyYjE4ZjIxMzVjMDA0YmU1NGI4YzU0YzRmNWM4
ZTAxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNv
Y29hLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlOjpPYnNlcnZlcgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIHZvaWQg
c291cmNlTXV0ZWRDaGFuZ2VkKCkgIGZpbmFsIHsgfQorICAgIHZvaWQgc291cmNlRW5hYmxlZENo
YW5nZWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFs
IHsgfQogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
Jiwgc2l6ZV90KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5t
bQppbmRleCAwOWRjMjAzYWUyZWE1YTRjNGIzM2JlMzIwNmFiZWRkNGM4ODc5ZDRkLi4zOTk0MGU2
OTNkMzI1YzM5ZTYxN2E0MTg5YThkOWZiYjk1NmViMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlTWFjLm1tCkBAIC0xNDksNiArMTQ5LDkgQEAgdm9pZCBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYzo6cmVjb25maWd1cmUoKQogCiB2b2lkIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlTWFjOjpyZW5kZXIoZG91YmxlIGRlbHRhKQogeworICAgIGlmIChtX211dGVkIHx8ICFt
X2VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIHN0YXRpYyBkb3VibGUgdGhldGE7CiAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBmcmVxdWVuY2llc1tdID0geyAxNTAwLiwgNTAwLiB9Owog
ICAgIHN0YXRpYyBjb25zdCBkb3VibGUgdGF1ID0gMiAqIE1fUEk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGFjZDAxMDAxMTMwZTNhYTFkZTlkNmFm
NjJkMzAzODNjMmJkOGQyNTguLjk0YzAwMGRhZjliZWVlMzJiYWNhODRjNzkzODEzN2QzOTJmMjU5
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC01
Myw3ICs1MywxNCBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZQogCiB2b2lkIFJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKLSAgICBtX2lzTXV0ZWQg
PSBtX2F1ZGlvU291cmNlLT5tdXRlZCgpOworICAgIG1fbXV0ZWQgPSBtX2F1ZGlvU291cmNlLT5t
dXRlZCgpOworICAgIG1fc2FtcGxlQ29udmVydGVyLT5zZXRNdXRlZChtX211dGVkIHx8ICFtX2Vu
YWJsZWQpOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlRW5h
YmxlZENoYW5nZWQoKQoreworICAgIG1fZW5hYmxlZCA9IG1fYXVkaW9Tb3VyY2UtPmVuYWJsZWQo
KTsKKyAgICBtX3NhbXBsZUNvbnZlcnRlci0+c2V0TXV0ZWQobV9tdXRlZCB8fCAhbV9lbmFibGVk
KTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBh
dWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIHN0cmVhbURlc2NyaXB0aW9u
LCBzaXplX3Qgc2FtcGxlQ291bnQpCkBAIC04Niw4ICs5Myw2IEBAIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlOjpwdWxsQXVkaW9EYXRhKCkKIAogICAgIG1fc2FtcGxlQ29udmVydGVy
LT5wdWxsQXZhbGFpYmxlU2FtcGxlc0FzQ2h1bmtzKGJ1ZmZlckxpc3QsIExpYldlYlJUQ0F1ZGlv
Rm9ybWF0OjpjaHVua1NhbXBsZUNvdW50LCBtX3N0YXJ0RnJhbWUsIFt0aGlzXSB7CiAgICAgICAg
IG1fc3RhcnRGcmFtZSArPSBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6Y2h1bmtTYW1wbGVDb3VudDsK
LSAgICAgICAgaWYgKG1faXNNdXRlZCkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZm9y
IChhdXRvIHNpbmsgOiBtX3NpbmtzKQogICAgICAgICAgICAgc2luay0+T25EYXRhKG1fYXVkaW9C
dWZmZXIuZGF0YSgpLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgTGliV2ViUlRD
QXVkaW9Gb3JtYXQ6OnNhbXBsZVJhdGUsIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbi5udW1iZXJP
ZkNoYW5uZWxzKCksIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpjaHVua1NhbXBsZUNvdW50KTsKICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCBlNDVl
OTI1OGQzMjQ3ZTdiMTk2ZTQyMjY0OGRiODJmMjNiYWE2NjI0Li4wYTU1MDdkN2IwNGI1ZjdjMGUz
Nzc4MmUzM2ZiMmIwMjc2ZTllZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZS5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgeyB9
CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUVu
YWJsZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBm
aW5hbCB7IH0KICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7CkBAIC03OSw3ICs4MCw4IEBAIHByaXZhdGU6CiAKICAgICBW
ZWN0b3I8dWludDE2X3Q+IG1fYXVkaW9CdWZmZXI7CiAgICAgdWludDY0X3QgbV9zdGFydEZyYW1l
IHsgMCB9OwotICAgIGJvb2wgbV9pc011dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbXV0ZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNw
cAppbmRleCAyZTlmZjBlNGUzNDMzMzY2NmU2YWU3MzhkYzY1YmRjYzgzODNkNjdmLi41MTQ1Mjk5
NGNiODYwZjcyOGU2MGI5YmRlMmI0ZDQ4YTIzNzQ5N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtNDQsNiArNDQsMTYgQEAgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2UKICAgICBtX3ZpZGVvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAK
K3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQor
eworICAgIG1fbXV0ZWQgPSBtX3ZpZGVvU291cmNlLT5tdXRlZCgpOworfQorCit2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQoreworICAgIG1f
ZW5hYmxlZCA9IG1fdmlkZW9Tb3VyY2UtPmVuYWJsZWQoKTsKK30KKwogYm9vbCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OkdldFN0YXRzKFN0YXRzKikKIHsKICAgICByZXR1cm4gZmFsc2U7
CkBAIC02NiwxMiArNzYsNiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6dmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoIW1fc2lua3Mu
c2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2Ft
cGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBh
dXRvIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVC
dWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1w
bGVCdWZmZXIpKTsKLSAgICBhdXRvIHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQ
aXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNl
QWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7Ci0gICAgdWludDhfdCogc3JjID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMCkpOwogCiAgICAgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2l6ZSgpCiAgICAgY29uc3QgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZGVvU291cmNl
LT5zZXR0aW5ncygpOwpAQCAtNzksMTkgKzgzLDMwIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IG5lZWQgdG8gYWxsb2NhdGUgb25lIGJ1ZmZlciBwZXIg
ZnJhbWUuCiAgICAgYXV0byBkZXN0ID0gd2VicnRjOjpJNDIwQnVmZmVyOjpDcmVhdGUoc2V0dGlu
Z3Mud2lkdGgoKSwgc2V0dGluZ3MuaGVpZ2h0KCkpOwogCi0gICAgaWYgKHBpeGVsRm9ybWF0VHlw
ZSA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hcikgewotICAgICAgICAvLyBX
ZSBwcm9iYWJseSBjYW4gbWVtY3B5IHRoZSBkYXRhIGRpcmVjdGx5Ci0gICAgICAgIHdlYnJ0Yzo6
Q29udmVydFRvSTQyMCh3ZWJydGM6OmtJNDIwLCBzcmMsIDAsIDAsIHNldHRpbmdzLndpZHRoKCks
IHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsIGRlc3QpOwot
ICAgIH0gZWxzZSBpZiAocGl4ZWxGb3JtYXRUeXBlID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJH
UkEpCi0gICAgICAgIHdlYnJ0Yzo6Q29udmVydFRvSTQyMCh3ZWJydGM6OmtBUkdCLCBzcmMsIDAs
IDAsIHNldHRpbmdzLndpZHRoKCksIHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRl
b1JvdGF0aW9uXzAsIGRlc3QpOwotICAgIGVsc2UgewotICAgICAgICAvLyBGSVhNRTogTW9jayBz
b3VyY2UgY29udmVyc2lvbiB3b3JrcyB3aXRoIGtCR1JBIHdoaWxlIHJlZ3VsYXIgY2FtZXJhIHdv
cmtzIHdpdGgga0FSR0IKLSAgICAgICAgQVNTRVJUKHBpeGVsRm9ybWF0VHlwZSA9PSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfMzJBUkdCKTsKLSAgICAgICAgd2VicnRjOjpDb252ZXJ0VG9JNDIwKHdlYnJ0
Yzo6a0JHUkEsIHNyYywgMCwgMCwgc2V0dGluZ3Mud2lkdGgoKSwgc2V0dGluZ3MuaGVpZ2h0KCks
IDAsIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMCwgZGVzdCk7CisgICAgaWYgKCFtX211dGVkICYm
IG1fZW5hYmxlZCkgeworICAgICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlw
ZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKKyAgICAgICAgYXV0byBw
aXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVy
R2V0SW1hZ2VCdWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyKSk7CisgICAgICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CisKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CisgICAgICAgIHVpbnQ4X3QqIHNyYyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUo
cGl4ZWxCdWZmZXIsIDApKTsKKworICAgICAgICBpZiAocGl4ZWxGb3JtYXRUeXBlID09IGtDVlBp
eGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4UGxhbmFyKSB7CisgICAgICAgICAgICAvLyBXZSBwcm9i
YWJseSBjYW4gbWVtY3B5IHRoZSBkYXRhIGRpcmVjdGx5CisgICAgICAgICAgICB3ZWJydGM6OkNv
bnZlcnRUb0k0MjAod2VicnRjOjprSTQyMCwgc3JjLCAwLCAwLCBzZXR0aW5ncy53aWR0aCgpLCBz
ZXR0aW5ncy5oZWlnaHQoKSwgMCwgd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wLCBkZXN0KTsKKyAg
ICAgICAgfSBlbHNlIGlmIChwaXhlbEZvcm1hdFR5cGUgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMy
QkdSQSkKKyAgICAgICAgICAgIHdlYnJ0Yzo6Q29udmVydFRvSTQyMCh3ZWJydGM6OmtBUkdCLCBz
cmMsIDAsIDAsIHNldHRpbmdzLndpZHRoKCksIHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6
OmtWaWRlb1JvdGF0aW9uXzAsIGRlc3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBNb2NrIHNvdXJjZSBjb252ZXJzaW9uIHdvcmtzIHdpdGgga0JHUkEgd2hpbGUgcmVn
dWxhciBjYW1lcmEgd29ya3Mgd2l0aCBrQVJHQgorICAgICAgICAgICAgQVNTRVJUKHBpeGVsRm9y
bWF0VHlwZSA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJBUkdCKTsKKyAgICAgICAgICAgIHdlYnJ0
Yzo6Q29udmVydFRvSTQyMCh3ZWJydGM6OmtCR1JBLCBzcmMsIDAsIDAsIHNldHRpbmdzLndpZHRo
KCksIHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsIGRlc3Qp
OworICAgICAgICB9CisKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBp
eGVsQnVmZmVyLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZXN0LT5TZXRUb0JsYWNrKCk7
CiAgICAgfQogCi0gICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVy
LCAwKTsKLQogICAgIHdlYnJ0Yzo6VmlkZW9GcmFtZSBmcmFtZShkZXN0LCAwLCAwLCAgd2VicnRj
OjprVmlkZW9Sb3RhdGlvbl8wKTsKICAgICBmb3IgKGF1dG8qIHNpbmsgOiBtX3NpbmtzKQogICAg
ICAgICBzaW5rLT5PbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2UuaAppbmRleCAxOGViMGFiMjE3OGE1OTRiYTk1NGQ4YjUzMzY3MzYxY2ZhNjg0NDFj
Li4zZTZiN2JkMGUxNzgwOTZmZjMyYzZiNzE0MjBjYjk4MDk3ZjNhZjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC02OCwxMiArNjgsMTUgQEAgcHJpdmF0
ZToKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciBBUEkKICAgICBib29sIHBy
ZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZv
aWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2Vk
KCkgZmluYWwgeyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKyAgICB2
b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5n
c0NoYW5nZWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJikgZmluYWw7CiAKICAgICBWZWN0b3I8cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2Vi
cnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IG1fdmlkZW9Tb3VyY2U7CisgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBt
X211dGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKaW5kZXggZWY5NzI3NmE0NDM0MmFiYzVjNzVhZWE0ZTM2MTcxNDQxYjRjZGM2ZS4uZGEz
OWU0ZWY5YTI1NTRiMzcyZDVmNGQyNjE1NGQ2NGUyMzJmZTczZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
QEAgLTMzMyw5ICszMzMsMTEgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJh
dGVGcmFtZSgpCiAgICAgRmxvYXRSZWN0IGZyYW1lUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwog
ICAgIGNvbnRleHQuZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSksIENvbG9y
OjpibGFjayk7CiAKLSAgICBkcmF3VGV4dChjb250ZXh0KTsKLSAgICBkcmF3QW5pbWF0aW9uKGNv
bnRleHQpOwotICAgIGRyYXdCb3hlcyhjb250ZXh0KTsKKyAgICBpZiAoIW1fbXV0ZWQgJiYgbV9l
bmFibGVkKSB7CisgICAgICAgIGRyYXdUZXh0KGNvbnRleHQpOworICAgICAgICBkcmF3QW5pbWF0
aW9uKGNvbnRleHQpOworICAgICAgICBkcmF3Qm94ZXMoY29udGV4dCk7CisgICAgfQogCiAgICAg
dXBkYXRlU2FtcGxlQnVmZmVyKCk7CiB9Cg==
</data>
<flag name="review"
          id="323268"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301533</attachid>
            <date>2017-02-14 12:42:14 -0800</date>
            <delta_ts>2017-02-15 14:46:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168281-20170214123940.patch</filename>
            <type>text/plain</type>
            <size>20063</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU2NTNlZmZkZjMwNTM0
NjMyOGQxOTM3NWM0NDcwMWQwODMzYmI2YS4uOTVlNTFkMDMwN2NlOGU5Nzk1NmMxM2EyOTNkN2Q0
MTNjNGFiZTBlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE3LTAyLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIERpc2FibGVkIE1lZGlhIFNv
dXJjZXMgc2hvdWxkIHJlbmRlciBibGFjay9zaWxlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyODEKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdDogd2VicnRjL3ZpZGVvLWRpc2FibGVkLWJsYWNr
Lmh0bWwKKworICAgICAgICBQYXNzIHRoZSBlbmFibGVkIGZsYWcgc2V0dGluZyBkb3duIGZyb20g
dGhlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIHRvIGl0cyB1bmRlcmx5aW5nCisgICAgICAgIHNv
dXJjZSwgaW5jbHVkaW5nIFJlYWx0aW1lTWVkaWFTb3VyY2UgYW5kIFJlYWx0aW1lT3V0Z29pbmdB
dWRpby9WaWRlb1NvdXJjZS4gV2hlbiBlaXRoZXIKKyAgICAgICAgZW5hYmxlZCBpcyBjbGVhcmVk
IG9yIG11dGVkIGlzIHNldCwgZ2VuZXJhdGUgZW1wdHkgKGJsYWNrIG9yIHNpbGVudCkgbWVkaWEs
IGFzIG9wcG9zZWQgdG8KKyAgICAgICAgcGF1c2luZyBtZWRpYSBvciAod29yc2UpIGNvbnRpbnVp
bmcgdG8gc2VuZCBnZW5lcmF0ZWQgbWVkaWEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjplbmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OnJlbmRlcik6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Ojpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFt
ZSk6CisKKzIwMTctMDItMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAg
ICAgICAgVmlkZW8gZWxlbWVudHMgd2l0aCBNZWRpYVNvdXJjZSBvYmplY3RzIHNldCBieSBzcmNP
YmplY3QgYXJlIG5vdCBjbGVhcmVkIHdoZW4gc3JjT2JqZWN0IGlzIHNldCB0byBudWxsCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyNjgKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IDQ2NmIzZGI4YTJmZTE5YmU3MTY4ZTgwYTk1
N2FiOTk4NTQ1MzAzOWUuLjczNmM2ZjRjNWMzNTI0ODM3YWE3ZmM4NmNmZWU3YjIxY2VmNTUwNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTEwMCw2ICsxMDAsOCBAQCB2b2lk
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAv
LyBBbHdheXMgdXBkYXRlIHRoZSBlbmFibGVkIHN0YXRlIHJlZ2FyZGxlc3Mgb2YgdGhlIHRyYWNr
IGJlaW5nIGVuZGVkLgogICAgIG1faXNFbmFibGVkID0gZW5hYmxlZDsKIAorICAgIG1fc291cmNl
LT5zZXRFbmFibGVkKGVuYWJsZWQpOworCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQogICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVkQ2hhbmdlZCgqdGhpcyk7CiB9
CkBAIC0xODYsNiArMTg4LDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJj
ZU11dGVkQ2hhbmdlZCgpCiAgICAgICAgIG9ic2VydmVyLT50cmFja011dGVkQ2hhbmdlZCgqdGhp
cyk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZUVuYWJsZWRDaGFu
Z2VkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAg
IG9ic2VydmVyLT50cmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKK30KKwogdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKCkKIHsKICAgICBmb3IgKGF1
dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRl
eCA2ODY0NzBkMjU1OGVmNWE4NWE2YTJjOTA4NGE5YjJlNGVlMjg5NDU5Li5jYTBkN2MxN2Q3ODU4
N2EzZjFjMGY2NDI2Y2Q2MWYxMThmYmM4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgK
QEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlT2Jz
ZXJ2ZXIKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSBmaW5h
bDsKICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcHJl
dmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFp
bGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNTQ4
NjBiNzE0OTljNzA0ZDM4YTMyMjBhMDM1MTNhOWMwMzMwMTU1OS4uZDBiZDAyOGRkYTYzYWY4Yjg0
ODA0OGEyNDZiOWRkMWFhZGE2YjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTk2LDYg
Kzk2LDIwIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkK
ICAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZU11dGVkQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChtX3N0
b3BwZWQgfHwgbV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
ZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICBpZiAobV9zdG9wcGVkKQorICAgICAgICByZXR1cm47
CisKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2Vy
dmVyLT5zb3VyY2VFbmFibGVkQ2hhbmdlZCgpOworfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnNldHRpbmdzRGlkQ2hhbmdlKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCmluZGV4IDEzOWNiZmQxOTIwOThhYWEwOGQyNDYwNzUwNWQxZWRlYmNm
ODhhODguLmM0OGExOWFkYTQxY2FiMTdjNzYwMTRlZjNhZDQ3OGM3YjI3YmQxOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgICAgICAvLyBTb3VyY2Ug
c3RhdGUgY2hhbmdlcy4KICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0b3BwZWQoKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpID0gMDsKIAogICAgICAgICAvLyBPYnNlcnZl
ciBzdGF0ZSBxdWVyaWVzLgpAQCAtMTE3LDYgKzExOCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldE11dGVkKGJvb2wpOwogCisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2VuYWJsZWQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKTsKKwog
ICAgIHZpcnR1YWwgYm9vbCByZWFkb25seSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZWFkb25seShib29sIHJlYWRvbmx5KSB7IG1fcmVhZG9ubHkgPSByZWFkb25seTsgfQogCkBAIC0x
OTAsNiArMTk0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNpemVBbmRG
cmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVp
Z2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pOwogCiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW1Db2NvYS5oCmluZGV4IGNlYTAzMGZiZmYzZWRkOTkxZGI3NDVkZjFjNjc1
YTc0N2VkMDI2OTQuLjNhYTM4ZDUyYjE4ZjIxMzVjMDA0YmU1NGI4YzU0YzRmNWM4ZTAxNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmgKQEAg
LTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNl
cnZlcgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOwogICAgIHZvaWQgc291cmNlTXV0
ZWRDaGFuZ2VkKCkgIGZpbmFsIHsgfQorICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSBm
aW5hbCB7IH0KICAgICB2b2lkIHNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpIGZpbmFsIHsgfQogICAg
IGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQppbmRleCAw
OWRjMjAzYWUyZWE1YTRjNGIzM2JlMzIwNmFiZWRkNGM4ODc5ZDRkLi4zOTk0MGU2OTNkMzI1YzM5
ZTYxN2E0MTg5YThkOWZiYjk1NmViMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlv
U291cmNlTWFjLm1tCkBAIC0xNDksNiArMTQ5LDkgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYzo6cmVjb25maWd1cmUoKQogCiB2b2lkIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFj
OjpyZW5kZXIoZG91YmxlIGRlbHRhKQogeworICAgIGlmIChtX211dGVkIHx8ICFtX2VuYWJsZWQp
CisgICAgICAgIHJldHVybjsKKwogICAgIHN0YXRpYyBkb3VibGUgdGhldGE7CiAgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBmcmVxdWVuY2llc1tdID0geyAxNTAwLiwgNTAwLiB9OwogICAgIHN0YXRp
YyBjb25zdCBkb3VibGUgdGF1ID0gMiAqIE1fUEk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDk4MTgzMDM1NDU0YTU1NzI3YTUzYjdkOTE0OGM0Nzgw
ZWZkMzI3OWIuLjk2MjNmYjJhZDg4MDU4NGNhZWYxNmU5ODg5NTExY2UyZjlhOTM1YmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC01Myw3ICs1Mywx
NCBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZTo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKLSAgICBtX2lzTXV0ZWQgPSBtX2F1ZGlv
U291cmNlLT5tdXRlZCgpOworICAgIG1fbXV0ZWQgPSBtX2F1ZGlvU291cmNlLT5tdXRlZCgpOwor
ICAgIG1fc2FtcGxlQ29udmVydGVyLT5zZXRNdXRlZChtX211dGVkIHx8ICFtX2VuYWJsZWQpOwor
fQorCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5n
ZWQoKQoreworICAgIG1fZW5hYmxlZCA9IG1fYXVkaW9Tb3VyY2UtPmVuYWJsZWQoKTsKKyAgICBt
X3NhbXBsZUNvbnZlcnRlci0+c2V0TXV0ZWQobV9tdXRlZCB8fCAhbV9lbmFibGVkKTsKIH0KIAog
dm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRpb0RhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIHN0cmVhbURlc2NyaXB0aW9uLCBzaXplX3Qg
c2FtcGxlQ291bnQpCkBAIC04Niw4ICs5Myw2IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpwdWxsQXVkaW9EYXRhKCkKIAogICAgIG1fc2FtcGxlQ29udmVydGVyLT5wdWxsQXZh
bGFpYmxlU2FtcGxlc0FzQ2h1bmtzKGJ1ZmZlckxpc3QsIExpYldlYlJUQ0F1ZGlvRm9ybWF0Ojpj
aHVua1NhbXBsZUNvdW50LCBtX3N0YXJ0RnJhbWUsIFt0aGlzXSB7CiAgICAgICAgIG1fc3RhcnRG
cmFtZSArPSBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6Y2h1bmtTYW1wbGVDb3VudDsKLSAgICAgICAg
aWYgKG1faXNNdXRlZCkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZm9yIChhdXRvIHNp
bmsgOiBtX3NpbmtzKQogICAgICAgICAgICAgc2luay0+T25EYXRhKG1fYXVkaW9CdWZmZXIuZGF0
YSgpLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgTGliV2ViUlRDQXVkaW9Gb3Jt
YXQ6OnNhbXBsZVJhdGUsIG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbi5udW1iZXJPZkNoYW5uZWxz
KCksIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpjaHVua1NhbXBsZUNvdW50KTsKICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCBlNDVlOTI1OGQzMjQ3
ZTdiMTk2ZTQyMjY0OGRiODJmMjNiYWE2NjI0Li4wYTU1MDdkN2IwNGI1ZjdjMGUzNzc4MmUzM2Zi
MmIwMjc2ZTllZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5o
CkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIgQVBJCiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgeyB9CiAgICAgdm9p
ZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFu
Z2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7IH0K
ICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCkgZmluYWw7CkBAIC03OSw3ICs4MCw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8dWlu
dDE2X3Q+IG1fYXVkaW9CdWZmZXI7CiAgICAgdWludDY0X3QgbV9zdGFydEZyYW1lIHsgMCB9Owot
ICAgIGJvb2wgbV9pc011dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRleCAy
ZTlmZjBlNGUzNDMzMzY2NmU2YWU3MzhkYzY1YmRjYzgzODNkNjdmLi41MTQ1Mjk5NGNiODYwZjcy
OGU2MGI5YmRlMmI0ZDQ4YTIzNzQ5N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmNwcApAQCAtNDQsNiArNDQsMTYgQEAgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2UKICAgICBtX3ZpZGVvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAKK3ZvaWQgUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIG1f
bXV0ZWQgPSBtX3ZpZGVvU291cmNlLT5tdXRlZCgpOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQoreworICAgIG1fZW5hYmxlZCA9
IG1fdmlkZW9Tb3VyY2UtPmVuYWJsZWQoKTsKK30KKwogYm9vbCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OkdldFN0YXRzKFN0YXRzKikKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC02Niwx
MiArNzYsNiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoIW1fc2lua3Muc2l6ZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlw
ZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLSAgICBhdXRvIHBpeGVs
QnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJ
bWFnZUJ1ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIp
KTsKLSAgICBhdXRvIHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1h
dFR5cGUocGl4ZWxCdWZmZXIpOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhw
aXhlbEJ1ZmZlciwgMCk7Ci0gICAgdWludDhfdCogc3JjID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
OF90Kj4oQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkp
OwogCiAgICAgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2l6ZSgpCiAgICAgY29uc3QgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZGVvU291cmNlLT5zZXR0aW5n
cygpOwpAQCAtNzksMTkgKzgzLDMwIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgbm90IG5lZWQgdG8gYWxsb2NhdGUgb25lIGJ1ZmZlciBwZXIgZnJhbWUuCiAg
ICAgYXV0byBkZXN0ID0gd2VicnRjOjpJNDIwQnVmZmVyOjpDcmVhdGUoc2V0dGluZ3Mud2lkdGgo
KSwgc2V0dGluZ3MuaGVpZ2h0KCkpOwogCi0gICAgaWYgKHBpeGVsRm9ybWF0VHlwZSA9PSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hcikgewotICAgICAgICAvLyBXZSBwcm9iYWJs
eSBjYW4gbWVtY3B5IHRoZSBkYXRhIGRpcmVjdGx5Ci0gICAgICAgIHdlYnJ0Yzo6Q29udmVydFRv
STQyMCh3ZWJydGM6OmtJNDIwLCBzcmMsIDAsIDAsIHNldHRpbmdzLndpZHRoKCksIHNldHRpbmdz
LmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsIGRlc3QpOwotICAgIH0gZWxz
ZSBpZiAocGl4ZWxGb3JtYXRUeXBlID09IGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpCi0gICAg
ICAgIHdlYnJ0Yzo6Q29udmVydFRvSTQyMCh3ZWJydGM6OmtBUkdCLCBzcmMsIDAsIDAsIHNldHRp
bmdzLndpZHRoKCksIHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9u
XzAsIGRlc3QpOwotICAgIGVsc2UgewotICAgICAgICAvLyBGSVhNRTogTW9jayBzb3VyY2UgY29u
dmVyc2lvbiB3b3JrcyB3aXRoIGtCR1JBIHdoaWxlIHJlZ3VsYXIgY2FtZXJhIHdvcmtzIHdpdGgg
a0FSR0IKLSAgICAgICAgQVNTRVJUKHBpeGVsRm9ybWF0VHlwZSA9PSBrQ1ZQaXhlbEZvcm1hdFR5
cGVfMzJBUkdCKTsKLSAgICAgICAgd2VicnRjOjpDb252ZXJ0VG9JNDIwKHdlYnJ0Yzo6a0JHUkEs
IHNyYywgMCwgMCwgc2V0dGluZ3Mud2lkdGgoKSwgc2V0dGluZ3MuaGVpZ2h0KCksIDAsIHdlYnJ0
Yzo6a1ZpZGVvUm90YXRpb25fMCwgZGVzdCk7CisgICAgaWYgKCFtX211dGVkICYmIG1fZW5hYmxl
ZCkgeworICAgICAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0
Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKKyAgICAgICAgYXV0byBwaXhlbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VC
dWZmZXIoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKSk7Cisg
ICAgICAgIGF1dG8gcGl4ZWxGb3JtYXRUeXBlID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0
VHlwZShwaXhlbEJ1ZmZlcik7CisKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVz
cyhwaXhlbEJ1ZmZlciwgMCk7CisgICAgICAgIHVpbnQ4X3QqIHNyYyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxCdWZm
ZXIsIDApKTsKKworICAgICAgICBpZiAocGl4ZWxGb3JtYXRUeXBlID09IGtDVlBpeGVsRm9ybWF0
VHlwZV80MjBZcENiQ3I4UGxhbmFyKSB7CisgICAgICAgICAgICAvLyBXZSBwcm9iYWJseSBjYW4g
bWVtY3B5IHRoZSBkYXRhIGRpcmVjdGx5CisgICAgICAgICAgICB3ZWJydGM6OkNvbnZlcnRUb0k0
MjAod2VicnRjOjprSTQyMCwgc3JjLCAwLCAwLCBzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5o
ZWlnaHQoKSwgMCwgd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wLCBkZXN0KTsKKyAgICAgICAgfSBl
bHNlIGlmIChwaXhlbEZvcm1hdFR5cGUgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQSkKKyAg
ICAgICAgICAgIHdlYnJ0Yzo6Q29udmVydFRvSTQyMCh3ZWJydGM6OmtBUkdCLCBzcmMsIDAsIDAs
IHNldHRpbmdzLndpZHRoKCksIHNldHRpbmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1Jv
dGF0aW9uXzAsIGRlc3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBN
b2NrIHNvdXJjZSBjb252ZXJzaW9uIHdvcmtzIHdpdGgga0JHUkEgd2hpbGUgcmVndWxhciBjYW1l
cmEgd29ya3Mgd2l0aCBrQVJHQgorICAgICAgICAgICAgQVNTRVJUKHBpeGVsRm9ybWF0VHlwZSA9
PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfMzJBUkdCKTsKKyAgICAgICAgICAgIHdlYnJ0Yzo6Q29udmVy
dFRvSTQyMCh3ZWJydGM6OmtCR1JBLCBzcmMsIDAsIDAsIHNldHRpbmdzLndpZHRoKCksIHNldHRp
bmdzLmhlaWdodCgpLCAwLCB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzAsIGRlc3QpOworICAgICAg
ICB9CisKKyAgICAgICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVy
LCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZXN0LT5TZXRUb0JsYWNrKCk7CiAgICAgfQog
Ci0gICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKLQog
ICAgIHdlYnJ0Yzo6VmlkZW9GcmFtZSBmcmFtZShkZXN0LCAwLCAwLCAgd2VicnRjOjprVmlkZW9S
b3RhdGlvbl8wKTsKICAgICBmb3IgKGF1dG8qIHNpbmsgOiBtX3NpbmtzKQogICAgICAgICBzaW5r
LT5PbkZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Uu
aAppbmRleCAxOGViMGFiMjE3OGE1OTRiYTk1NGQ4YjUzMzY3MzYxY2ZhNjg0NDFjLi4zZTZiN2Jk
MGUxNzgwOTZmZjMyYzZiNzE0MjBjYjk4MDk3ZjNhZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC02OCwxMiArNjgsMTUgQEAgcHJpdmF0ZToKICAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciBBUEkKICAgICBib29sIHByZXZlbnRTb3Vy
Y2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgc291cmNl
U3RvcHBlZCgpIGZpbmFsIHsgfQotICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWwg
eyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJj
ZUVuYWJsZWRDaGFuZ2VkKCkgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQo
KSBmaW5hbCB7IH0KICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikg
ZmluYWw7CiAKICAgICBWZWN0b3I8cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRl
b0ZyYW1lPio+IG1fc2lua3M7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fdmlkZW9T
b3VyY2U7CisgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5k
ZXggZWY5NzI3NmE0NDM0MmFiYzVjNzVhZWE0ZTM2MTcxNDQxYjRjZGM2ZS4uZGEzOWU0ZWY5YTI1
NTRiMzcyZDVmNGQyNjE1NGQ2NGUyMzJmZTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTMzMyw5
ICszMzMsMTEgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVGcmFtZSgp
CiAgICAgRmxvYXRSZWN0IGZyYW1lUmVjdChGbG9hdFBvaW50KCksIHNpemUpOwogICAgIGNvbnRl
eHQuZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSksIENvbG9yOjpibGFjayk7
CiAKLSAgICBkcmF3VGV4dChjb250ZXh0KTsKLSAgICBkcmF3QW5pbWF0aW9uKGNvbnRleHQpOwot
ICAgIGRyYXdCb3hlcyhjb250ZXh0KTsKKyAgICBpZiAoIW1fbXV0ZWQgJiYgbV9lbmFibGVkKSB7
CisgICAgICAgIGRyYXdUZXh0KGNvbnRleHQpOworICAgICAgICBkcmF3QW5pbWF0aW9uKGNvbnRl
eHQpOworICAgICAgICBkcmF3Qm94ZXMoY29udGV4dCk7CisgICAgfQogCiAgICAgdXBkYXRlU2Ft
cGxlQnVmZmVyKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjYxN2NhZDYzZGEwYmFlZDkyNjg4ZDcxZmNiMzA0NmI4
MWU3ODE3YS4uMjE2NWVkMzQ3MzEwMjEwOTA5NjBjMTljMTM0NGExMDYwMzcwOTE5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDE3LTAyLTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIERpc2FibGVkIE1lZGlhIFNvdXJjZXMgc2hvdWxkIHJlbmRlciBibGFj
ay9zaWxlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjgyODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNTA4MDAzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1kaXNhYmxl
ZC1ibGFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy92aWRlby1kaXNh
YmxlZC1ibGFjay5odG1sOiBBZGRlZC4KKwogMjAxNy0wMi0xMyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBWaWRlbyBlbGVtZW50cyB3aXRoIE1lZGlhU291cmNl
IG9iamVjdHMgc2V0IGJ5IHNyY09iamVjdCBhcmUgbm90IGNsZWFyZWQgd2hlbiBzcmNPYmplY3Qg
aXMgc2V0IHRvIG51bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1kaXNh
YmxlZC1ibGFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tZGlzYWJs
ZWQtYmxhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2OWVmNGRkYTJhOWQwOGQ1YzcyOWU4
N2FjM2QzMDJlNGY2NWJjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMv
dmlkZW8tZGlzYWJsZWQtYmxhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BB
U1MgRGlzYWJsZWQgc291cmNlIGV4Y2hhbmdlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YnJ0Yy92aWRlby1kaXNhYmxlZC1ibGFjay5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVv
LWRpc2FibGVkLWJsYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EzZDhmNjRhYjRjYjI2MmVkMzhkYWIz
ZTJlYTA0MTBhZTgyNWQwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92
aWRlby1kaXNhYmxlZC1ibGFjay5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICAgICAgPHRpdGxlPlRlc3RpbmcgYmFzaWMgdmlkZW8gZXhjaGFuZ2UgZnJvbSBvZmZlcmVyIHRv
IHJlY2VpdmVyPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAg
PGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCI+PC9jYW52YXM+Cisg
ICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVy
Q29ubmVjdGlvbkZhY3RvcnkoIlR3b1JlYWxQZWVyQ29ubmVjdGlvbnMiKTsKKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVl
KTsKKwordmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkZW8iKTsKK2NhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKy8vIEZJWE1FOiBXZSBzaG91bGQg
dXNlIHRyYWNrcworCitmdW5jdGlvbiB0ZXN0SW1hZ2UoKQoreworICAgIHRyeSB7CisgICAgICAg
IGNhbnZhcy53aWR0aCA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAgICAgIGNhbnZhcy5oZWlnaHQg
PSB2aWRlby52aWRlb0hlaWdodDsKKyAgICAgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJh
d0ltYWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAg
ICAgIGltYWdlRGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAw
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICBhc3NlcnRfdHJ1ZShpbWFn
ZURhdGEuZGF0YS5ldmVyeSggKHBpeGVsLCBpbmRleCkgPT4geworICAgICAgICAgICAgaWYgKGlu
ZGV4ICUgNCA9PT0gMykKKyAgICAgICAgICAgICAgICByZXR1cm4gcGl4ZWwgPT09IDI1NTsKKyAg
ICAgICAgICAgIHJldHVybiBwaXhlbCA9PT0gMDsKKyAgICAgICAgfSkpOworCisgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgZXJyb3JUZXN0KGUpOworICAg
IH0KK30KKworZnVuY3Rpb24gdGVzdFN0cmVhbShzdHJlYW0pCit7CisgICAgdmlkZW8uc3JjT2Jq
ZWN0ID0gc3RyZWFtOworICAgIHN0cmVhbS5nZXRUcmFja3MoKVswXS5lbmFibGVkID0gZmFsc2U7
CisgICAgLy8gVmlkZW8gbWF5IHBsYXkgd2l0aCBibGFjayBmcmFtZXMKKyAgICB2aWRlby5vbnBs
YXkgPSBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgdGVzdEltYWdlKCk7CisgICAgfSwgMTAw
MCk7Cit9CisKK3ZhciBmaW5pc2hUZXN0LCBlcnJvclRlc3Q7Citwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2
aWRlbzogdHJ1ZX0pLnRoZW4oKHN0cmVhbSkgPT4geworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgZmluaXNoVGVzdCA9IHJlc29s
dmU7CisgICAgICAgICAgICBlcnJvclRlc3QgPSByZWplY3Q7CisgICAgICAgICAgICBjcmVhdGVD
b25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgZmlyc3RD
b25uZWN0aW9uLmFkZFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAgfSwgKHNlY29uZENvbm5l
Y3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9uYWRkc3RyZWFt
ID0gKHN0cmVhbUV2ZW50KSA9PiB7IHRlc3RTdHJlYW0oc3RyZWFtRXZlbnQuc3RyZWFtKTsgfTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJEaXNhYmxlZCBzb3Vy
Y2UgZXhjaGFuZ2UiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>