<?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>171146</bug_id>
          
          <creation_ts>2017-04-21 15:22:50 -0700</creation_ts>
          <short_desc>[MediaCapture] Improvements to CoreAudioCaptureSource</short_desc>
          <delta_ts>2017-05-01 08:48:46 -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>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>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1299938</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 15:22:50 -0700</bug_when>
    <thetext>[MediaCapture] Improvements to CoreAudioCaptureSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299948</commentid>
    <comment_count>1</comment_count>
      <attachid>307819</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 15:30:50 -0700</bug_when>
    <thetext>Created attachment 307819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299950</commentid>
    <comment_count>2</comment_count>
      <attachid>307820</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 15:38:07 -0700</bug_when>
    <thetext>Created attachment 307820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299974</commentid>
    <comment_count>3</comment_count>
      <attachid>307826</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 16:18:57 -0700</bug_when>
    <thetext>Created attachment 307826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299975</commentid>
    <comment_count>4</comment_count>
      <attachid>307827</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 16:20:54 -0700</bug_when>
    <thetext>Created attachment 307827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299992</commentid>
    <comment_count>5</comment_count>
      <attachid>307837</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 16:41:27 -0700</bug_when>
    <thetext>Created attachment 307837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299998</commentid>
    <comment_count>6</comment_count>
      <attachid>307837</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-04-21 16:54:48 -0700</bug_when>
    <thetext>Comment on attachment 307837
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:402
&gt; +    uint32_t propertySize = sizeof(m_captureDeviceID);

Does this work in a 32-bit build?

&gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:550
&gt; +    m_currentSettings = std::nullopt;

This should call the base class method so it notifies observers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300000</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-21 16:55:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/31769428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300017</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 17:22:19 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #6)
&gt; Comment on attachment 307837 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=307837&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:402
&gt; &gt; +    uint32_t propertySize = sizeof(m_captureDeviceID);
&gt; 
&gt; Does this work in a 32-bit build?

It should, since we use this pattern in other places in this file.

&gt; &gt; Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:550
&gt; &gt; +    m_currentSettings = std::nullopt;
&gt; 
&gt; This should call the base class method so it notifies observers.

Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300018</commentid>
    <comment_count>9</comment_count>
      <attachid>307845</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 17:25:54 -0700</bug_when>
    <thetext>Created attachment 307845
Patch for Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300041</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-04-21 18:00:20 -0700</bug_when>
    <thetext>Committed r215659: &lt;http://trac.webkit.org/changeset/215659&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307819</attachid>
            <date>2017-04-21 15:30:50 -0700</date>
            <delta_ts>2017-04-21 15:38:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171146-20170421153049.patch</filename>
            <type>text/plain</type>
            <size>13978</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg1YzRkMzMwYTgxOWU0
NDU4MTAxNWE1MjQ0YzI5MDVhNzVjYzVjNy4uZGQ2OTNmMDBjMzgwOWEyOGRmNmJmOWE2NGZmNjlk
ZWZmMTNjYTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE3LTA0LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtNZWRpYUNhcHR1cmVdIElt
cHJvdmVtZW50cyB0byBDb3JlQXVkaW9DYXB0dXJlU291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWYXJpb3VzIGludGVybG9ja2luZyBpbXByb3Zl
bWVudHMgdG8gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZToKKworICAgICAgICAtIEFsbG93IHRoZSB2
b2x1bWUsIHNhbXBsZVJhdGUsIGFuZCBlY2hvQ2FuY2VsbGF0aW9uIHNldHRpbmdzIHRvIGJlIGFw
cGxpZWQgdG8gdGhlIHNvdXJjZS4KKyAgICAgICAgLSBVcGRhdGUgdGhlIHZhbHVlcyByZXR1cm5l
ZCB2aWEgc2V0dGluZ3MoKSB3aGVuIHRoZXNlIHZhbHVlcyBjaGFuZ2UuCisgICAgICAgIC0gT2Jl
eSB0aGUgc2FtcGxlUmF0ZSBhbmQgZWNob0NhbmNlbGxhdGlvbiBzZXR0aW5ncyB3aGVuIGNyZWF0
aW5nIHRoZSBWUElPIHVuaXQuCisgICAgICAgIC0gQmVjYXVzZSBBdWRpb1VuaXRSZW5kZXIoKSBt
dXRhdGVzIHRoZSBwYXNzZWQgaW4gQXVkaW9CdWZmZXJMaXN0LCByZXNldCBpdCBpbW1lZGlhdGVs
eSBiZWZvcmUgY2FsbGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZFNhbXBsZVJhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQ
cm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3Vy
ZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OnByb2Nlc3NNaWNyb3Bob25lU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3NEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaDoKKworMjAxNy0wNC0yMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKwogICAgICAgICBNYWtlIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6cmVzZXQoKSBsZXNzIGV4
cGVuc2l2ZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MTEyNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMThmMjE5
ZmI2ZjhiYTBiYjlmZTQ0NWMyNmRhMzY5NGQwMDk1NDUzOS4uYWU4YjViN2RiMzg1NTk1MDE5OWIz
MTQyNTFkN2MwYzNmZDhlZjM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmgi
CiAjaW5jbHVkZSAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIgogI2luY2x1ZGUgIkNv
cmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAt
NjcsOCArNjgsOCBAQCBSZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZT4gQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aQogICAgIGlmICghZGV2aWNlKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGxhYmVsID0gZGV2aWNlLmxhYmVsKCk7Ci0g
ICAgcGVyc2lzdGVudElEID0gZGV2aWNlLnBlcnNpc3RlbnRJRCgpOworICAgIGxhYmVsID0gZGV2
aWNlLT5sYWJlbCgpOworICAgIHBlcnNpc3RlbnRJRCA9IGRldmljZS0+ZGV2aWNlSUQoKTsKICNl
bmRpZgogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQpKTsKIApAQCAtOTUsMTAgKzk2LDkgQEAg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBjb25zdCBTdHIKIHsKICAgICBtX211dGVkID0gdHJ1ZTsKIAotICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFZvbHVtZSgxLjApOwotICAgIG1fY3VycmVudFNldHRpbmdzLnNl
dFNhbXBsZVJhdGUocHJlZmVycmVkU2FtcGxlUmF0ZSgpKTsKLSAgICBtX2N1cnJlbnRTZXR0aW5n
cy5zZXREZXZpY2VJZChpZCgpKTsKLSAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRFY2hvQ2FuY2Vs
bGF0aW9uKHRydWUpOworICAgIHNldFZvbHVtZSgxLjApOworICAgIHNldFNhbXBsZVJhdGUocHJl
ZmVycmVkU2FtcGxlUmF0ZSgpKTsKKyAgICBzZXRFY2hvQ2FuY2VsbGF0aW9uKHRydWUpOwogCiAg
ICAgbWFjaF90aW1lYmFzZV9pbmZvX2RhdGFfdCB0aW1lYmFzZUluZm87CiAgICAgbWFjaF90aW1l
YmFzZV9pbmZvKCZ0aW1lYmFzZUluZm8pOwpAQCAtMTIxLDE2ICsxMjEsMTIgQEAgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6fkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKQogCiBkb3VibGUgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkU2FtcGxlUmF0ZSgpCiB7Ci0gICAgLy8gRklYTUU6
IEdldCB0aGUgcHJlZmVycmVkIHJhdGUgZHluYW1pY2FsbHksIGtBVVZvaWNlSU9Qcm9wZXJ0eV9Q
cmVmZXJyZWRIV1NhbXBsZVJhdGUvIFtbQVZBdWRpb1Nlc3Npb24gc2hhcmVkSW5zdGFuY2VdIHBy
ZWZlcnJlZFNhbXBsZVJhdGVdCi0gICAgc3RhdGljIGNvbnN0IGZsb2F0IHByZWZlcnJlZFJhdGUg
PSAyNDAwMC47Ci0gICAgcmV0dXJuIHByZWZlcnJlZFJhdGU7CisgICAgcmV0dXJuIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNhbXBsZVJhdGUoKTsKIH0KIAotZG91YmxlIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZElPQnVmZmVyRHVyYXRpb24oKQorc2l6ZV90IENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZElPQnVmZmVyU2l6ZSgpCiB7Ci0gICAgLy8gRklY
TUU6IEdldCB0aGUgcHJlZmVycmVkIGR1cmF0aW9uIGR5bmFtaWNhbGx5IC0ga0FVVm9pY2VJT1By
b3BlcnR5X1ByZWZlcnJlZEhXQmxvY2tTaXplSW5TZWNvbmRzIC8gW1tBVkF1ZGlvU2Vzc2lvbiBz
aGFyZWRJbnN0YW5jZV0gcHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbl0KLSAgICBzdGF0aWMgY29u
c3QgZmxvYXQgcHJlZmVycmVkRHVyYXRpb24gPSAwLjA0OwotICAgIHJldHVybiBwcmVmZXJyZWRE
dXJhdGlvbjsKKyAgICByZXR1cm4gQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkuYnVmZmVy
U2l6ZSgpOwogfQogCiBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVN
aWNyb3Bob25lUHJvYygpCkBAIC0xNDUsMTUgKzE0MSwyMCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjpjb25maWd1cmVNaWNyb3Bob25lUHJvYygpCiAgICAgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uIG1pY3JvcGhvbmVQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMy
IHNpemUgPSBzaXplb2YobWljcm9waG9uZVByb2NGb3JtYXQpOwotICAgIGVyciA9IEF1ZGlvVW5p
dEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBr
QXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAm
c2l6ZSk7CisgICAgZXJyID0gQXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1Vu
aXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMs
ICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmlndXJlTWljcm9waG9uZVBy
b2MoJXApIHVuYWJsZSB0byBnZXQgb3V0cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRz
KSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAg
ICAgfQogCi0gICAgaWYgKCFtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSkKLSAgICAg
ICAgbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBwcmVmZXJyZWRTYW1wbGVSYXRl
KCk7Ci0gICAgbV9taWNyb3Bob25lU2FtcGxlQnVmZmVyID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0
OjpjcmVhdGUobWljcm9waG9uZVByb2NGb3JtYXQsIHByZWZlcnJlZElPQnVmZmVyRHVyYXRpb24o
KSAqIG1pY3JvcGhvbmVQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlICogMik7CisgICAgbWljcm9waG9u
ZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7CisgICAgZXJyID0gQXVkaW9V
bml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQs
IGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQs
IHNpemUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoJXApIHVuYWJsZSB0byBzZXQgb3V0
cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CisgICAgICAgIHJldHVybiBlcnI7CisgICAgfQorCisgICAgbV9taWNyb3Bob25l
U2FtcGxlQnVmZmVyID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0OjpjcmVhdGUobWljcm9waG9uZVBy
b2NGb3JtYXQsIHByZWZlcnJlZElPQnVmZmVyU2l6ZSgpICogMik7CiAgICAgbV9taWNyb3Bob25l
UHJvY0Zvcm1hdCA9IG1pY3JvcGhvbmVQcm9jRm9ybWF0OwogCiAgICAgcmV0dXJuIGVycjsKQEAg
LTE2Miw3ICsxNjMsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1
cmVNaWNyb3Bob25lUHJvYygpCiBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25m
aWd1cmVTcGVha2VyUHJvYygpCiB7CiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBjYWxsYmFj
ayA9IHsgc3BlYWtlckNhbGxiYWNrLCB0aGlzIH07Ci0gICAgYXV0byBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNr
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNh
bGxiYWNrKSk7CisgICAgYXV0byBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwg
a0F1ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfSW5w
dXQsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2FsbGJhY2spKTsKICAgICBpZiAoZXJy
KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3Vy
ZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBzcGVha2VyIHByb2MsIGVy
cm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAgIHJl
dHVybiBlcnI7CkBAIC0xNzEsMTUgKzE3MiwyMCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpjb25maWd1cmVTcGVha2VyUHJvYygpCiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uIHNwZWFrZXJQcm9jRm9ybWF0ID0geyB9OwogCiAgICAgVUludDMyIHNpemUgPSBzaXpl
b2Yoc3BlYWtlclByb2NGb3JtYXQpOwotICAgIGVyciAgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zvcm1hdCwgJnNpemUpOworICAgIGVyciA9
IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFt
Rm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9y
bWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIGdldCBp
bnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAotICAgIGlmICghc3BlYWtl
clByb2NGb3JtYXQubVNhbXBsZVJhdGUpCi0gICAgICAgIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1w
bGVSYXRlID0gcHJlZmVycmVkU2FtcGxlUmF0ZSgpOwotICAgIG1fc3BlYWtlclNhbXBsZUJ1ZmZl
ciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y3JlYXRlKHNwZWFrZXJQcm9jRm9ybWF0LCBwcmVm
ZXJyZWRJT0J1ZmZlckR1cmF0aW9uKCkgKiBzcGVha2VyUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSAq
IDIpOworICAgIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOwor
ICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVy
dHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIG91dHB1dEJ1cywgJnNwZWFr
ZXJQcm9jRm9ybWF0LCBzaXplKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIExPRyhNZWRpYSwg
IkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUg
dG8gZ2V0IGlucHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQp
ZXJyLCAoY2hhciopJmVycik7CisgICAgICAgIHJldHVybiBlcnI7CisgICAgfQorCisgICAgbV9z
cGVha2VyU2FtcGxlQnVmZmVyID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0OjpjcmVhdGUoc3BlYWtl
clByb2NGb3JtYXQsIHByZWZlcnJlZElPQnVmZmVyU2l6ZSgpICogMik7CiAgICAgbV9zcGVha2Vy
UHJvY0Zvcm1hdCA9IHNwZWFrZXJQcm9jRm9ybWF0OwogCiAgICAgcmV0dXJuIGVycjsKQEAgLTI3
OSw2ICsyODUsNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTWlj
cm9waG9uZVNhbXBsZXMoQXVkaW9Vbml0UmVuZGVyQWN0aW9uRgogI2VuZGlmCiAKICAgICAvLyBQ
dWxsIHRocm91Z2ggdGhlIHZwaW8gdW5pdCB0byBvdXIgbWljIGJ1ZmZlci4KKyAgICBtX21pY3Jv
cGhvbmVTYW1wbGVCdWZmZXItPnJlc2V0KCk7CiAgICAgQXVkaW9CdWZmZXJMaXN0JiBidWZmZXJM
aXN0ID0gbV9taWNyb3Bob25lU2FtcGxlQnVmZmVyLT5idWZmZXJMaXN0KCk7CiAgICAgYXV0byBl
cnIgPSBBdWRpb1VuaXRSZW5kZXIobV9pb1VuaXQsICZpb0FjdGlvbkZsYWdzLCAmdGltZVN0YW1w
LCBpbkJ1c051bWJlciwgaW5OdW1iZXJGcmFtZXMsICZidWZmZXJMaXN0KTsKICAgICBpZiAoZXJy
KSB7CkBAIC0zNzEsMTggKzM3OCwxOCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpzZXR1cEF1ZGlvVW5pdHMoKQogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAotI2lmIFBM
QVRGT1JNKElPUykKLSAgICB1aW50MzJfdCBwYXJhbSA9IDE7Ci0gICAgZXJyID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywg
a0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsK
KyAgICB1aW50MzJfdCBwYXJhbSA9IGVjaG9DYW5jZWxsYXRpb24oKTsKKyAgICBlcnIgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0FVVm9pY2VJT1Byb3BlcnR5X1ZvaWNlUHJvY2Vz
c2luZ0VuYWJsZUFHQywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZwYXJhbSwg
c2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycikgewotICAgICAgICBMT0coTWVkaWEsICJDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5pdHMoJXApIHVuYWJsZSB0byBlbmFibGUg
dnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIq
KSZlcnIpOworICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1
cEF1ZGlvVW5pdHMoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IGVjaG8gY2FuY2VsbGF0aW9u
LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAg
ICByZXR1cm4gZXJyOwogICAgIH0KIAorI2lmIFBMQVRGT1JNKElPUykKICAgICBwYXJhbSA9IDE7
Ci0gICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVu
aXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgb3V0cHV0QnVzLCAm
cGFyYW0sIHNpemVvZihwYXJhbSkpOworICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7CiAgICAgaWYgKGVycikg
ewotICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cEF1ZGlv
VW5pdHMoJXApIHVuYWJsZSB0byBlbmFibGUgdnBpbyB1bml0IG91dHB1dCwgZXJyb3IgJWQgKCUu
NHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKKyAgICAgICAgTE9HKE1lZGlhLCAi
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBBdWRpb1VuaXRzKCVwKSB1bmFibGUgdG8gZW5h
YmxlIHZwaW8gdW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAjZWxzZQpAQCAtMzkyLDcg
KzM5OSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQXVkaW9Vbml0
cygpCiAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIAotICAgIFVJbnQzMiBwcm9wZXJ0
eVNpemUgPSBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpOworICAgIHVpbnQzMl90IHByb3BlcnR5
U2l6ZSA9IHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCk7CiAgICAgZXJyID0gQXVkaW9Vbml0U2V0
UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9DdXJyZW50RGV2aWNl
LCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJm1fY2FwdHVyZURldmljZUlELCBw
cm9wZXJ0eVNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBBdWRpb1VuaXRzKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8g
dW5pdCBjYXB0dXJlIGRldmljZSBJRCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIs
IChjaGFyKikmZXJyKTsKQEAgLTUyNSw3ICs1MzIsMjIgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkg
Y28KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpzZXR0aW5ncygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdz
OworICAgIGlmICghbV9jdXJyZW50U2V0dGluZ3MpIHsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzIHNldHRpbmdzOworICAgICAgICBzZXR0aW5ncy5zZXRWb2x1bWUodm9sdW1l
KCkpOworICAgICAgICBzZXR0aW5ncy5zZXRTYW1wbGVSYXRlKHNhbXBsZVJhdGUoKSk7CisgICAg
ICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBzZXR0aW5ncy5zZXRFY2hv
Q2FuY2VsbGF0aW9uKGVjaG9DYW5jZWxsYXRpb24oKSk7CisKKyAgICAgICAgbV9jdXJyZW50U2V0
dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsKKworICAgIH0KKyAgICByZXR1cm4gbV9jdXJyZW50
U2V0dGluZ3MudmFsdWUoKTsKK30KKwordm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0
aW5nc0RpZENoYW5nZSgpCit7CisgICAgbV9jdXJyZW50U2V0dGluZ3MgPSBzdGQ6Om51bGxvcHQ7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IDkxMGY3ZDQ0NDUyYWNlOGZmNTc2MTRlMmEwM2MzMzkzYzllM2IxYTAuLjIzNWQ1
YTMxNGRjMmFjODEyZDcyYmY4ODQ5YjZlNjFiZDc5YmM0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuaApAQCAtNzksOCArNzksMTMgQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyBz
dXNwZW5kKCk7CiAgICAgT1NTdGF0dXMgcmVzdW1lKCk7CiAKKyAgICBib29sIGFwcGx5Vm9sdW1l
KGRvdWJsZSkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgYXBwbHlTYW1wbGVS
YXRlKGludCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgYXBwbHlFY2hvQ2Fu
Y2VsbGF0aW9uKGJvb2wpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IGZpbmFs
OwogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKCkgZmluYWw7CiAKICAgICBPU1N0
YXR1cyBzZXR1cEF1ZGlvVW5pdHMoKTsKICAgICB2b2lkIGNsZWFudXBBdWRpb1VuaXRzKCk7CkBA
IC04OSw4ICs5NCw2IEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgZGVmYXVsdE91dHB1dERldmlj
ZSh1aW50MzJfdCopOwogICAgIE9TU3RhdHVzIGRlZmF1bHRJbnB1dERldmljZSh1aW50MzJfdCop
OwogCi0gICAgdm9pZCBjaGVja1RpbWVzdGFtcHMoY29uc3QgQXVkaW9UaW1lU3RhbXAmLCB1aW50
NjRfdCwgZG91YmxlKTsKLQogICAgIHN0YXRpYyBPU1N0YXR1cyBtaWNyb3Bob25lQ2FsbGJhY2so
dm9pZCosIEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdzKiwgY29uc3QgQXVkaW9UaW1lU3RhbXAq
LCBVSW50MzIsIFVJbnQzMiwgQXVkaW9CdWZmZXJMaXN0Kik7CiAgICAgT1NTdGF0dXMgcHJvY2Vz
c01pY3JvcGhvbmVTYW1wbGVzKEF1ZGlvVW5pdFJlbmRlckFjdGlvbkZsYWdzJiwgY29uc3QgQXVk
aW9UaW1lU3RhbXAmLCBVSW50MzIsIFVJbnQzMiwgQXVkaW9CdWZmZXJMaXN0Kik7CiAKQEAgLTk4
LDEwICsxMDEsOSBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIHByb3ZpZGVTcGVha2VyRGF0YShB
dWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYsIGNvbnN0IEF1ZGlvVGltZVN0YW1wJiwgVUludDMy
LCBVSW50MzIsIEF1ZGlvQnVmZmVyTGlzdCopOwogCiAgICAgc3RhdGljIGRvdWJsZSBwcmVmZXJy
ZWRTYW1wbGVSYXRlKCk7Ci0gICAgc3RhdGljIGRvdWJsZSBwcmVmZXJyZWRJT0J1ZmZlckR1cmF0
aW9uKCk7CisgICAgc3RhdGljIHNpemVfdCBwcmVmZXJyZWRJT0J1ZmZlclNpemUoKTsKIAogICAg
IEF1ZGlvVW5pdCBtX2lvVW5pdCB7IG51bGxwdHIgfTsKLSAgICBTdHJpbmcgbV9pb1VuaXROYW1l
OwogCiAgICAgLy8gT25seSByZWFkL21vZGlmaWVkIGZyb20gdGhlIElPIHRocmVhZC4KICAgICBW
ZWN0b3I8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4+IG1fYWN0aXZlU291cmNlczsKQEAgLTEx
MywxMiArMTE1LDEwIEBAIHByaXZhdGU6CiAKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24g
bV9taWNyb3Bob25lUHJvY0Zvcm1hdDsKICAgICBSZWZQdHI8QXVkaW9TYW1wbGVCdWZmZXJMaXN0
PiBtX21pY3JvcGhvbmVTYW1wbGVCdWZmZXI7Ci0gICAgdWludDY0X3QgbV9taWNyb3Bob25lUHJv
Y3NDYWxsZWQgeyAwIH07CiAgICAgdWludDY0X3QgbV9sYXRlc3RNaWNUaW1lU3RhbXAgeyAwIH07
CiAKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9zcGVha2VyUHJvY0Zvcm1hdDsKICAg
ICBSZWZQdHI8QXVkaW9TYW1wbGVCdWZmZXJMaXN0PiBtX3NwZWFrZXJTYW1wbGVCdWZmZXI7Ci0g
ICAgdWludDY0X3QgbV9zcGVha2VyUHJvY3NDYWxsZWQgeyAwIH07CiAKICAgICBkb3VibGUgbV9E
VFNDb252ZXJzaW9uUmF0aW8geyAwIH07CiAKQEAgLTEzMCw3ICsxMzAsMTUgQEAgcHJpdmF0ZToK
IAogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIG11dGFibGUgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7Ci0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOworICAgIG11dGFibGUgc3RkOjpv
cHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M+IG1fY3VycmVudFNldHRpbmdzOwor
CisjaWYgIUxPR19ESVNBQkxFRAorICAgIHZvaWQgY2hlY2tUaW1lc3RhbXBzKGNvbnN0IEF1ZGlv
VGltZVN0YW1wJiwgdWludDY0X3QsIGRvdWJsZSk7CisKKyAgICBTdHJpbmcgbV9pb1VuaXROYW1l
OworICAgIHVpbnQ2NF90IG1fc3BlYWtlclByb2NzQ2FsbGVkIHsgMCB9OworICAgIHVpbnQ2NF90
IG1fbWljcm9waG9uZVByb2NzQ2FsbGVkIHsgMCB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307820</attachid>
            <date>2017-04-21 15:38:07 -0700</date>
            <delta_ts>2017-04-21 16:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171146-20170421153806.patch</filename>
            <type>text/plain</type>
            <size>11280</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmMmE1YmM1M2QyNDU3
YTMxMGJlNjQ3ZTExYjM5NGQ4YTJjNTQ1ZC4uYjA1NGMxMjhhYzAyZjQ5ZDUzZTkxMmNmZmYzNGI5
ZTI3MzZiMTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA0LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBzdGFja2FibGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzEwOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvIGtlZXAgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBmcm9tIGJlaW5nIGNyZWF0ZWQgb24gdGhlIHN0YWNrLiAKKyAgICAgICAgTWFr
ZSBpdCB1bi1SZWZDb3VudGVkLCBhbmQgaGF2ZSBpdCdzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCBy
ZXR1cm4gYW4gc3RkOjpvcHRpb25hbCByYXRoZXIKKyAgICAgICAgdGhhbiBhIFJlZlB0ci4KKwor
ICAgICAgICBEcml2ZS1ieSBmaXg6IGNsZWFuIHVwIHRoZSBmYWN0b3J5IG1ldGhvZCBvZiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlIGEgYml0LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b0NhcHR1cmVEZXZpY2U6OmRldmljZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlSUQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2Fw
dHVyZURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXI6OmNvcmVBdWRpb0RldmljZVdpdGhVSUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnJlZnJlc2hBdWRpb0NhcHR1cmVEZXZpY2VzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKwogMjAxNy0wNC0yMSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZpeCBhZnRlciByMjE1NjI0
OyBudWxsLWRlcmVmIGNyYXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCmlu
ZGV4IDg1MjUzMmQ2NWYyMjU5MzFhMGViNWM1MDU1YzQ3NDA2MTQyNzI5MjYuLjVhYzk0YzRjNDYz
ZTkyM2I2NWYyOTQyYTc1N2ZhZmU2ODgxYTlhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5jcHAKQEAgLTY0LDE0ICs2NCwxNCBAQCBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZv
KHVpbnQzMl90IGRldmljZUlELCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKHVpbnQzMl90IGRldmljZUlEKQorc3RkOjpvcHRp
b25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVh
dGUodWludDMyX3QgZGV2aWNlSUQpCiB7CiAgICAgU3RyaW5nIHBlcnNpc3RlbnRJRDsKICAgICBT
dHJpbmcgbGFiZWw7CiAgICAgaWYgKCFnZXREZXZpY2VJbmZvKGRldmljZUlELCBwZXJzaXN0ZW50
SUQsIGxhYmVsKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UoZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFiZWwpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlv
Q2FwdHVyZURldmljZShkZXZpY2VJRCwgcGVyc2lzdGVudElELCBsYWJlbCk7CiB9CiAKIENvcmVB
dWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QgZGV2aWNl
SUQsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElELCBjb25zdCBTdHJpbmcmIGxhYmVsKQpAQCAt
ODAsMTEgKzgwLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVyZURl
dmljZSh1aW50MzJfdCBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJgogewogfQogCi11aW50MzJfdCBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VJRCgpCi17Ci0gICAgcmV0dXJuIG1fZGV2aWNl
SUQ7Ci19Ci0KIFJldGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpk
ZXZpY2VDbG9jaygpCiB7CiAgICAgaWYgKG1fZGV2aWNlQ2xvY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaAppbmRleCA3OWVmMTM5Y2VlMjhlNmY0NTlkYzE3OTUyNWQxZmQ0YTkxNDhh
NzVlLi5mOGY5YmIzOWE0YmZkNDk0NjJkYzJiMmVkYTgzMzc5Yjk2NjY3YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgKQEAgLTM1LDEzICszNSwxMyBAQCB0eXBlZGVmIHN0cnVj
dCBPcGFxdWVDTUNsb2NrKiBDTUNsb2NrUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UgOiBwdWJsaWMgQ2FwdHVyZURldmljZSwgcHVibGlj
IFJlZkNvdW50ZWQ8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4geworY2xhc3MgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRp
YyBSZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY3JlYXRlKHVpbnQzMl90KTsKKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBjcmVhdGUodWludDMy
X3QpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UoKSA9IGRlZmF1bHQ7CiAK
LSAgICB1aW50MzJfdCBkZXZpY2VJRCgpOworICAgIHVpbnQzMl90IGRldmljZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VJRDsgfQogICAgIFJldGFpblB0cjxDTUNsb2NrUmVmPiBkZXZpY2VD
bG9jaygpOwogICAgIGJvb2wgaXNBbGl2ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBiMzZjYzE1N2E0MDA3YTQ3MTBiYmZlNmI3Nzli
MmQ5YjNkMWQ5MTY3Li42ZGQzMjMzMGYyNTQyYzA1ZDNmNWJlNzljOTQ4NzMzNTQ1NWVlMjI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0
SUQgZGV2aWNlSUQpCiAgICAgcmV0dXJuICFlcnIgJiYgZGF0YVNpemU7CiB9CiAKLVZlY3RvcjxS
ZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cjo6Y29yZUF1ZGlvQ2FwdHVyZURldmljZXMoKQorVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2U+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXMoKQogewogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOwogICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKQEAgLTc1LDYgKzc1LDE2IEBAIFZlY3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmlj
ZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwCiAgICAgcmV0
dXJuIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXM7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Q29yZUF1
ZGlvQ2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OmNvcmVBdWRp
b0RldmljZVdpdGhVSUQoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICBmb3IgKGF1dG8m
IGRldmljZSA6IGNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICAgICAgaWYgKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSA9PSBkZXZpY2VJRCkKKyAgICAgICAgICAgIHJldHVybiBkZXZpY2U7
CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKwogdm9pZCBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogewogICAg
IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0hhcmR3YXJlUHJv
cGVydHlEZXZpY2VzLCBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLCBrQXVkaW9PYmpl
Y3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKQEAgLTk5LDIxICsxMDksMjEgQEAgdm9pZCBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQog
ICAgICAgICBpZiAoIWRldmljZUhhc0lucHV0U3RyZWFtcyhkZXZpY2VJRCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoc3RkOjphbnlfb2YobV9jb3JlQXVkaW9DYXB0dXJl
RGV2aWNlcy5iZWdpbigpLCBtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzLmVuZCgpLCBbZGV2aWNl
SURdKGF1dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLT5kZXZpY2VJRCgpID09IGRldmljZUlE
OyB9KSkKKyAgICAgICAgaWYgKHN0ZDo6YW55X29mKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMu
YmVnaW4oKSwgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5lbmQoKSwgW2RldmljZUlEXShhdXRv
JiBkZXZpY2UpIHsgcmV0dXJuIGRldmljZS5kZXZpY2VJRCgpID09IGRldmljZUlEOyB9KSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlEKTsKICAgICAgICAgaWYgKCFkZXZpY2UpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBl
bmQoZGV2aWNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBtX2NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2VzLmFwcGVuZChXVEZNb3ZlKGRldmljZS52YWx1ZSgpKSk7CiAKICAgICAgICAgaGF2ZURl
dmljZUNoYW5nZXMgPSB0cnVlOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9j
b3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewotICAgICAgICBib29sIGlzQWxpdmUgPSBkZXZpY2Ut
PmlzQWxpdmUoKTsKLSAgICAgICAgaWYgKGRldmljZS0+ZW5hYmxlZCgpICE9IGlzQWxpdmUpIHsK
LSAgICAgICAgICAgIGRldmljZS0+c2V0RW5hYmxlZChpc0FsaXZlKTsKKyAgICAgICAgYm9vbCBp
c0FsaXZlID0gZGV2aWNlLmlzQWxpdmUoKTsKKyAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkg
IT0gaXNBbGl2ZSkgeworICAgICAgICAgICAgZGV2aWNlLnNldEVuYWJsZWQoaXNBbGl2ZSk7CiAg
ICAgICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xMjIsOCArMTMyLDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVm
cmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogICAgICAgICBtX2RldmljZXMgPSBWZWN0b3I8Q2Fw
dHVyZURldmljZT4oKTsKIAogICAgICAgICBmb3IgKGF1dG8gJmRldmljZSA6IG1fY29yZUF1ZGlv
Q2FwdHVyZURldmljZXMpIHsKLSAgICAgICAgICAgIENhcHR1cmVEZXZpY2UgY2FwdHVyZURldmlj
ZShkZXZpY2UtPnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRp
bywgZGV2aWNlLT5sYWJlbCgpKTsKLSAgICAgICAgICAgIGNhcHR1cmVEZXZpY2Uuc2V0RW5hYmxl
ZChkZXZpY2UtPmVuYWJsZWQoKSk7CisgICAgICAgICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVE
ZXZpY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpB
dWRpbywgZGV2aWNlLmxhYmVsKCkpOworICAgICAgICAgICAgY2FwdHVyZURldmljZS5zZXRFbmFi
bGVkKGRldmljZS5lbmFibGVkKCkpOwogICAgICAgICAgICAgbV9kZXZpY2VzLmFwcGVuZChjYXB0
dXJlRGV2aWNlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggNWI0ZjE2NGIxMmFiMjI3NGZlZWMxMmVkODhjN2ZjNGZh
ZTg3N2MxYy4uYzUxYTM2ZjM3ZTc5ZmNlOTNhNjVmMzUyYmI3NzZmYmNmYjg5ZGZlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQ1LDcgKzQ1LDgg
QEAgcHVibGljOgogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygp
IGZpbmFsOwogCi0gICAgVmVjdG9yPFJlZjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPj4mIGNvcmVB
dWRpb0NhcHR1cmVEZXZpY2VzKCk7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+
JiBjb3JlQXVkaW9DYXB0dXJlRGV2aWNlcygpOworICAgIHN0ZDo6b3B0aW9uYWw8Q29yZUF1ZGlv
Q2FwdHVyZURldmljZT4gY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsKIAog
cHJpdmF0ZToKICAgICBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gZGVmYXVsdDsK
QEAgLTU2LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hBdWRpb0NhcHR1cmVE
ZXZpY2VzKCk7CiAKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kZXZpY2VzOwotICAgIFZl
Y3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+IG1fY29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXM7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IG1fY29yZUF1ZGlvQ2FwdHVy
ZURldmljZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTA2MmNmOWRkM2RmZTk4Y2VjYzRiMWJlM2I0Nzk2N2E4
ZDAxNjZkNS4uMDg2NjE1MzVjYTAyYjA1YjUyMGVmOGEwYTdlZmIxMDYyMjczNDI1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjAsMTMgKzYwLDE4IEBAIFJlZlB0
cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpCiAgICAgaWYgKHR5cGUgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgU3RyaW5nIGxhYmVs
OworICAgIHVpbnQzMl90IHBlcnNpc3RlbnRJRCA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmRldmljZVdpdGhVSUQoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
KTsKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmlj
ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwo
KTsKKyAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlE
LCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlEKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRz
KSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpIHsKQEAgLTg0LDIxICs4OSwxMCBAQCBSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
ZmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1
cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkK
LSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8sIGVtcHR5U3RyaW5nKCkpCi0gICAgLCBtX2NhcHR1cmVEZXZpY2VJ
RCgwKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIGxhYmVsLCB1aW50MzJfdCBwZXJzaXN0
ZW50SUQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgbGFiZWwpCisgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJz
aXN0ZW50SUQpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGZvciAoYXV0byYgcGxhdGZvcm1E
ZXZpY2UgOiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1
ZGlvQ2FwdHVyZURldmljZXMoKSkgewotICAgICAgICBpZiAocGxhdGZvcm1EZXZpY2UtPnBlcnNp
c3RlbnRJZCgpID09IGRldmljZUlEKSB7Ci0gICAgICAgICAgICBtX2NhcHR1cmVEZXZpY2VJRCA9
IHBsYXRmb3JtRGV2aWNlLT5kZXZpY2VJRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgQVNTRVJUKG1fY2FwdHVyZURldmljZUlEKTsKLSNlbmRpZgotCi0gICAg
c2V0UGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBtX211dGVkID0gdHJ1ZTsKIAogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFZvbHVtZSgxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmgKaW5kZXggOTA4ZjJjNTUzZjExZDU2M2I3Mjg5ZTU3YjliYWY5MjVmY2ZlNjgyNi4uOTEw
ZjdkNDQ0NTJhY2U4ZmY1NzYxNGUyYTAzYzMzOTNjOWUzYjFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBDTUNsb2NrUmVm
IHRpbWViYXNlQ2xvY2soKTsKIAogcHJpdmF0ZToKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lz
dGVudElEKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCk7CiAKICAgICBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307826</attachid>
            <date>2017-04-21 16:18:57 -0700</date>
            <delta_ts>2017-04-21 16:20:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171146-20170421161856.patch</filename>
            <type>text/plain</type>
            <size>11280</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmMmE1YmM1M2QyNDU3
YTMxMGJlNjQ3ZTExYjM5NGQ4YTJjNTQ1ZC4uYjA1NGMxMjhhYzAyZjQ5ZDUzZTkxMmNmZmYzNGI5
ZTI3MzZiMTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA0LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBzdGFja2FibGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzEwOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvIGtlZXAgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBmcm9tIGJlaW5nIGNyZWF0ZWQgb24gdGhlIHN0YWNrLiAKKyAgICAgICAgTWFr
ZSBpdCB1bi1SZWZDb3VudGVkLCBhbmQgaGF2ZSBpdCdzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCBy
ZXR1cm4gYW4gc3RkOjpvcHRpb25hbCByYXRoZXIKKyAgICAgICAgdGhhbiBhIFJlZlB0ci4KKwor
ICAgICAgICBEcml2ZS1ieSBmaXg6IGNsZWFuIHVwIHRoZSBmYWN0b3J5IG1ldGhvZCBvZiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlIGEgYml0LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b0NhcHR1cmVEZXZpY2U6OmRldmljZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlSUQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2Fw
dHVyZURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXI6OmNvcmVBdWRpb0RldmljZVdpdGhVSUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnJlZnJlc2hBdWRpb0NhcHR1cmVEZXZpY2VzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKwogMjAxNy0wNC0yMSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZpeCBhZnRlciByMjE1NjI0
OyBudWxsLWRlcmVmIGNyYXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCmlu
ZGV4IDg1MjUzMmQ2NWYyMjU5MzFhMGViNWM1MDU1YzQ3NDA2MTQyNzI5MjYuLjVhYzk0YzRjNDYz
ZTkyM2I2NWYyOTQyYTc1N2ZhZmU2ODgxYTlhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5jcHAKQEAgLTY0LDE0ICs2NCwxNCBAQCBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZv
KHVpbnQzMl90IGRldmljZUlELCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKHVpbnQzMl90IGRldmljZUlEKQorc3RkOjpvcHRp
b25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVh
dGUodWludDMyX3QgZGV2aWNlSUQpCiB7CiAgICAgU3RyaW5nIHBlcnNpc3RlbnRJRDsKICAgICBT
dHJpbmcgbGFiZWw7CiAgICAgaWYgKCFnZXREZXZpY2VJbmZvKGRldmljZUlELCBwZXJzaXN0ZW50
SUQsIGxhYmVsKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UoZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFiZWwpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlv
Q2FwdHVyZURldmljZShkZXZpY2VJRCwgcGVyc2lzdGVudElELCBsYWJlbCk7CiB9CiAKIENvcmVB
dWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QgZGV2aWNl
SUQsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElELCBjb25zdCBTdHJpbmcmIGxhYmVsKQpAQCAt
ODAsMTEgKzgwLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVyZURl
dmljZSh1aW50MzJfdCBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJgogewogfQogCi11aW50MzJfdCBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VJRCgpCi17Ci0gICAgcmV0dXJuIG1fZGV2aWNl
SUQ7Ci19Ci0KIFJldGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpk
ZXZpY2VDbG9jaygpCiB7CiAgICAgaWYgKG1fZGV2aWNlQ2xvY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaAppbmRleCA3OWVmMTM5Y2VlMjhlNmY0NTlkYzE3OTUyNWQxZmQ0YTkxNDhh
NzVlLi5mOGY5YmIzOWE0YmZkNDk0NjJkYzJiMmVkYTgzMzc5Yjk2NjY3YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgKQEAgLTM1LDEzICszNSwxMyBAQCB0eXBlZGVmIHN0cnVj
dCBPcGFxdWVDTUNsb2NrKiBDTUNsb2NrUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UgOiBwdWJsaWMgQ2FwdHVyZURldmljZSwgcHVibGlj
IFJlZkNvdW50ZWQ8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4geworY2xhc3MgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRp
YyBSZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY3JlYXRlKHVpbnQzMl90KTsKKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBjcmVhdGUodWludDMy
X3QpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UoKSA9IGRlZmF1bHQ7CiAK
LSAgICB1aW50MzJfdCBkZXZpY2VJRCgpOworICAgIHVpbnQzMl90IGRldmljZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VJRDsgfQogICAgIFJldGFpblB0cjxDTUNsb2NrUmVmPiBkZXZpY2VD
bG9jaygpOwogICAgIGJvb2wgaXNBbGl2ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBiMzZjYzE1N2E0MDA3YTQ3MTBiYmZlNmI3Nzli
MmQ5YjNkMWQ5MTY3Li42ZGQzMjMzMGYyNTQyYzA1ZDNmNWJlNzljOTQ4NzMzNTQ1NWVlMjI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0
SUQgZGV2aWNlSUQpCiAgICAgcmV0dXJuICFlcnIgJiYgZGF0YVNpemU7CiB9CiAKLVZlY3RvcjxS
ZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cjo6Y29yZUF1ZGlvQ2FwdHVyZURldmljZXMoKQorVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2U+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXMoKQogewogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOwogICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKQEAgLTc1LDYgKzc1LDE2IEBAIFZlY3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmlj
ZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwCiAgICAgcmV0
dXJuIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXM7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Q29yZUF1
ZGlvQ2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OmNvcmVBdWRp
b0RldmljZVdpdGhVSUQoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICBmb3IgKGF1dG8m
IGRldmljZSA6IGNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICAgICAgaWYgKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSA9PSBkZXZpY2VJRCkKKyAgICAgICAgICAgIHJldHVybiBkZXZpY2U7
CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKwogdm9pZCBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogewogICAg
IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0hhcmR3YXJlUHJv
cGVydHlEZXZpY2VzLCBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLCBrQXVkaW9PYmpl
Y3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKQEAgLTk5LDIxICsxMDksMjEgQEAgdm9pZCBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQog
ICAgICAgICBpZiAoIWRldmljZUhhc0lucHV0U3RyZWFtcyhkZXZpY2VJRCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoc3RkOjphbnlfb2YobV9jb3JlQXVkaW9DYXB0dXJl
RGV2aWNlcy5iZWdpbigpLCBtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzLmVuZCgpLCBbZGV2aWNl
SURdKGF1dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLT5kZXZpY2VJRCgpID09IGRldmljZUlE
OyB9KSkKKyAgICAgICAgaWYgKHN0ZDo6YW55X29mKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMu
YmVnaW4oKSwgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5lbmQoKSwgW2RldmljZUlEXShhdXRv
JiBkZXZpY2UpIHsgcmV0dXJuIGRldmljZS5kZXZpY2VJRCgpID09IGRldmljZUlEOyB9KSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlEKTsKICAgICAgICAgaWYgKCFkZXZpY2UpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBl
bmQoZGV2aWNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBtX2NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2VzLmFwcGVuZChXVEZNb3ZlKGRldmljZS52YWx1ZSgpKSk7CiAKICAgICAgICAgaGF2ZURl
dmljZUNoYW5nZXMgPSB0cnVlOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9j
b3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewotICAgICAgICBib29sIGlzQWxpdmUgPSBkZXZpY2Ut
PmlzQWxpdmUoKTsKLSAgICAgICAgaWYgKGRldmljZS0+ZW5hYmxlZCgpICE9IGlzQWxpdmUpIHsK
LSAgICAgICAgICAgIGRldmljZS0+c2V0RW5hYmxlZChpc0FsaXZlKTsKKyAgICAgICAgYm9vbCBp
c0FsaXZlID0gZGV2aWNlLmlzQWxpdmUoKTsKKyAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkg
IT0gaXNBbGl2ZSkgeworICAgICAgICAgICAgZGV2aWNlLnNldEVuYWJsZWQoaXNBbGl2ZSk7CiAg
ICAgICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xMjIsOCArMTMyLDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVm
cmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogICAgICAgICBtX2RldmljZXMgPSBWZWN0b3I8Q2Fw
dHVyZURldmljZT4oKTsKIAogICAgICAgICBmb3IgKGF1dG8gJmRldmljZSA6IG1fY29yZUF1ZGlv
Q2FwdHVyZURldmljZXMpIHsKLSAgICAgICAgICAgIENhcHR1cmVEZXZpY2UgY2FwdHVyZURldmlj
ZShkZXZpY2UtPnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRp
bywgZGV2aWNlLT5sYWJlbCgpKTsKLSAgICAgICAgICAgIGNhcHR1cmVEZXZpY2Uuc2V0RW5hYmxl
ZChkZXZpY2UtPmVuYWJsZWQoKSk7CisgICAgICAgICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVE
ZXZpY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpB
dWRpbywgZGV2aWNlLmxhYmVsKCkpOworICAgICAgICAgICAgY2FwdHVyZURldmljZS5zZXRFbmFi
bGVkKGRldmljZS5lbmFibGVkKCkpOwogICAgICAgICAgICAgbV9kZXZpY2VzLmFwcGVuZChjYXB0
dXJlRGV2aWNlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggNWI0ZjE2NGIxMmFiMjI3NGZlZWMxMmVkODhjN2ZjNGZh
ZTg3N2MxYy4uYzUxYTM2ZjM3ZTc5ZmNlOTNhNjVmMzUyYmI3NzZmYmNmYjg5ZGZlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQ1LDcgKzQ1LDgg
QEAgcHVibGljOgogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygp
IGZpbmFsOwogCi0gICAgVmVjdG9yPFJlZjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPj4mIGNvcmVB
dWRpb0NhcHR1cmVEZXZpY2VzKCk7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+
JiBjb3JlQXVkaW9DYXB0dXJlRGV2aWNlcygpOworICAgIHN0ZDo6b3B0aW9uYWw8Q29yZUF1ZGlv
Q2FwdHVyZURldmljZT4gY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsKIAog
cHJpdmF0ZToKICAgICBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gZGVmYXVsdDsK
QEAgLTU2LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hBdWRpb0NhcHR1cmVE
ZXZpY2VzKCk7CiAKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kZXZpY2VzOwotICAgIFZl
Y3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+IG1fY29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXM7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IG1fY29yZUF1ZGlvQ2FwdHVy
ZURldmljZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTA2MmNmOWRkM2RmZTk4Y2VjYzRiMWJlM2I0Nzk2N2E4
ZDAxNjZkNS4uMDg2NjE1MzVjYTAyYjA1YjUyMGVmOGEwYTdlZmIxMDYyMjczNDI1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjAsMTMgKzYwLDE4IEBAIFJlZlB0
cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpCiAgICAgaWYgKHR5cGUgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgU3RyaW5nIGxhYmVs
OworICAgIHVpbnQzMl90IHBlcnNpc3RlbnRJRCA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmRldmljZVdpdGhVSUQoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
KTsKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmlj
ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwo
KTsKKyAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlE
LCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlEKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRz
KSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpIHsKQEAgLTg0LDIxICs4OSwxMCBAQCBSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
ZmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1
cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkK
LSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8sIGVtcHR5U3RyaW5nKCkpCi0gICAgLCBtX2NhcHR1cmVEZXZpY2VJ
RCgwKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIGxhYmVsLCB1aW50MzJfdCBwZXJzaXN0
ZW50SUQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgbGFiZWwpCisgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJz
aXN0ZW50SUQpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGZvciAoYXV0byYgcGxhdGZvcm1E
ZXZpY2UgOiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1
ZGlvQ2FwdHVyZURldmljZXMoKSkgewotICAgICAgICBpZiAocGxhdGZvcm1EZXZpY2UtPnBlcnNp
c3RlbnRJZCgpID09IGRldmljZUlEKSB7Ci0gICAgICAgICAgICBtX2NhcHR1cmVEZXZpY2VJRCA9
IHBsYXRmb3JtRGV2aWNlLT5kZXZpY2VJRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgQVNTRVJUKG1fY2FwdHVyZURldmljZUlEKTsKLSNlbmRpZgotCi0gICAg
c2V0UGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBtX211dGVkID0gdHJ1ZTsKIAogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFZvbHVtZSgxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmgKaW5kZXggOTA4ZjJjNTUzZjExZDU2M2I3Mjg5ZTU3YjliYWY5MjVmY2ZlNjgyNi4uOTEw
ZjdkNDQ0NTJhY2U4ZmY1NzYxNGUyYTAzYzMzOTNjOWUzYjFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBDTUNsb2NrUmVm
IHRpbWViYXNlQ2xvY2soKTsKIAogcHJpdmF0ZToKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lz
dGVudElEKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCk7CiAKICAgICBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307827</attachid>
            <date>2017-04-21 16:20:54 -0700</date>
            <delta_ts>2017-04-21 16:24:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171146-20170421162053.patch</filename>
            <type>text/plain</type>
            <size>11280</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNmMmE1YmM1M2QyNDU3
YTMxMGJlNjQ3ZTExYjM5NGQ4YTJjNTQ1ZC4uYjA1NGMxMjhhYzAyZjQ5ZDUzZTkxMmNmZmYzNGI5
ZTI3MzZiMTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA0LTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBzdGFja2FibGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzEwOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvIGtlZXAgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSBmcm9tIGJlaW5nIGNyZWF0ZWQgb24gdGhlIHN0YWNrLiAKKyAgICAgICAgTWFr
ZSBpdCB1bi1SZWZDb3VudGVkLCBhbmQgaGF2ZSBpdCdzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCBy
ZXR1cm4gYW4gc3RkOjpvcHRpb25hbCByYXRoZXIKKyAgICAgICAgdGhhbiBhIFJlZlB0ci4KKwor
ICAgICAgICBEcml2ZS1ieSBmaXg6IGNsZWFuIHVwIHRoZSBmYWN0b3J5IG1ldGhvZCBvZiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlIGEgYml0LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b0NhcHR1cmVEZXZpY2U6OmRldmljZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZTo6ZGV2aWNlSUQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2Fw
dHVyZURldmljZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXI6OmNvcmVBdWRpb0RldmljZVdpdGhVSUQpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnJlZnJlc2hBdWRpb0NhcHR1cmVEZXZpY2VzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKwogMjAxNy0wNC0yMSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZpeCBhZnRlciByMjE1NjI0
OyBudWxsLWRlcmVmIGNyYXNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2UuY3BwCmlu
ZGV4IDg1MjUzMmQ2NWYyMjU5MzFhMGViNWM1MDU1YzQ3NDA2MTQyNzI5MjYuLjVhYzk0YzRjNDYz
ZTkyM2I2NWYyOTQyYTc1N2ZhZmU2ODgxYTlhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5jcHAKQEAgLTY0LDE0ICs2NCwxNCBAQCBzdGF0aWMgYm9vbCBnZXREZXZpY2VJbmZv
KHVpbnQzMl90IGRldmljZUlELCBTdHJpbmcmIHBlcnNpc3RlbnRJRCwgU3RyaW5nJiBsYWJlbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZTo6Y3JlYXRlKHVpbnQzMl90IGRldmljZUlEKQorc3RkOjpvcHRp
b25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpjcmVh
dGUodWludDMyX3QgZGV2aWNlSUQpCiB7CiAgICAgU3RyaW5nIHBlcnNpc3RlbnRJRDsKICAgICBT
dHJpbmcgbGFiZWw7CiAgICAgaWYgKCFnZXREZXZpY2VJbmZvKGRldmljZUlELCBwZXJzaXN0ZW50
SUQsIGxhYmVsKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UoZGV2aWNlSUQsIHBlcnNpc3RlbnRJRCwgbGFiZWwpKTsKKyAgICByZXR1cm4gQ29yZUF1ZGlv
Q2FwdHVyZURldmljZShkZXZpY2VJRCwgcGVyc2lzdGVudElELCBsYWJlbCk7CiB9CiAKIENvcmVB
dWRpb0NhcHR1cmVEZXZpY2U6OkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UodWludDMyX3QgZGV2aWNl
SUQsIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElELCBjb25zdCBTdHJpbmcmIGxhYmVsKQpAQCAt
ODAsMTEgKzgwLDYgQEAgQ29yZUF1ZGlvQ2FwdHVyZURldmljZTo6Q29yZUF1ZGlvQ2FwdHVyZURl
dmljZSh1aW50MzJfdCBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJgogewogfQogCi11aW50MzJfdCBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpkZXZpY2VJRCgpCi17Ci0gICAgcmV0dXJuIG1fZGV2aWNl
SUQ7Ci19Ci0KIFJldGFpblB0cjxDTUNsb2NrUmVmPiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlOjpk
ZXZpY2VDbG9jaygpCiB7CiAgICAgaWYgKG1fZGV2aWNlQ2xvY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmlj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2UuaAppbmRleCA3OWVmMTM5Y2VlMjhlNmY0NTlkYzE3OTUyNWQxZmQ0YTkxNDhh
NzVlLi5mOGY5YmIzOWE0YmZkNDk0NjJkYzJiMmVkYTgzMzc5Yjk2NjY3YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgKQEAgLTM1LDEzICszNSwxMyBAQCB0eXBlZGVmIHN0cnVj
dCBPcGFxdWVDTUNsb2NrKiBDTUNsb2NrUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UgOiBwdWJsaWMgQ2FwdHVyZURldmljZSwgcHVibGlj
IFJlZkNvdW50ZWQ8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4geworY2xhc3MgQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZSA6IHB1YmxpYyBDYXB0dXJlRGV2aWNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRp
YyBSZWZQdHI8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4gY3JlYXRlKHVpbnQzMl90KTsKKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPiBjcmVhdGUodWludDMy
X3QpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UoKSA9IGRlZmF1bHQ7CiAK
LSAgICB1aW50MzJfdCBkZXZpY2VJRCgpOworICAgIHVpbnQzMl90IGRldmljZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VJRDsgfQogICAgIFJldGFpblB0cjxDTUNsb2NrUmVmPiBkZXZpY2VD
bG9jaygpOwogICAgIGJvb2wgaXNBbGl2ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAppbmRleCBiMzZjYzE1N2E0MDA3YTQ3MTBiYmZlNmI3Nzli
MmQ5YjNkMWQ5MTY3Li42ZGQzMjMzMGYyNTQyYzA1ZDNmNWJlNzljOTQ4NzMzNTQ1NWVlMjI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlSGFzSW5wdXRTdHJlYW1zKEF1ZGlvT2JqZWN0
SUQgZGV2aWNlSUQpCiAgICAgcmV0dXJuICFlcnIgJiYgZGF0YVNpemU7CiB9CiAKLVZlY3RvcjxS
ZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cjo6Y29yZUF1ZGlvQ2FwdHVyZURldmljZXMoKQorVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2U+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXMoKQogewogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOwogICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKQEAgLTc1LDYgKzc1LDE2IEBAIFZlY3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmlj
ZT4+JiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6Y29yZUF1ZGlvQ2FwCiAgICAgcmV0
dXJuIG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXM7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Q29yZUF1
ZGlvQ2FwdHVyZURldmljZT4gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OmNvcmVBdWRp
b0RldmljZVdpdGhVSUQoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkKK3sKKyAgICBmb3IgKGF1dG8m
IGRldmljZSA6IGNvcmVBdWRpb0NhcHR1cmVEZXZpY2VzKCkpIHsKKyAgICAgICAgaWYgKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSA9PSBkZXZpY2VJRCkKKyAgICAgICAgICAgIHJldHVybiBkZXZpY2U7
CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKwogdm9pZCBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogewogICAg
IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGFkZHJlc3MgPSB7IGtBdWRpb0hhcmR3YXJlUHJv
cGVydHlEZXZpY2VzLCBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLCBrQXVkaW9PYmpl
Y3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKQEAgLTk5LDIxICsxMDksMjEgQEAgdm9pZCBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVmcmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQog
ICAgICAgICBpZiAoIWRldmljZUhhc0lucHV0U3RyZWFtcyhkZXZpY2VJRCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoc3RkOjphbnlfb2YobV9jb3JlQXVkaW9DYXB0dXJl
RGV2aWNlcy5iZWdpbigpLCBtX2NvcmVBdWRpb0NhcHR1cmVEZXZpY2VzLmVuZCgpLCBbZGV2aWNl
SURdKGF1dG8mIGRldmljZSkgeyByZXR1cm4gZGV2aWNlLT5kZXZpY2VJRCgpID09IGRldmljZUlE
OyB9KSkKKyAgICAgICAgaWYgKHN0ZDo6YW55X29mKG1fY29yZUF1ZGlvQ2FwdHVyZURldmljZXMu
YmVnaW4oKSwgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5lbmQoKSwgW2RldmljZUlEXShhdXRv
JiBkZXZpY2UpIHsgcmV0dXJuIGRldmljZS5kZXZpY2VJRCgpID09IGRldmljZUlEOyB9KSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZTo6Y3JlYXRlKGRldmljZUlEKTsKICAgICAgICAgaWYgKCFkZXZpY2UpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9jb3JlQXVkaW9DYXB0dXJlRGV2aWNlcy5hcHBl
bmQoZGV2aWNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBtX2NvcmVBdWRpb0NhcHR1cmVE
ZXZpY2VzLmFwcGVuZChXVEZNb3ZlKGRldmljZS52YWx1ZSgpKSk7CiAKICAgICAgICAgaGF2ZURl
dmljZUNoYW5nZXMgPSB0cnVlOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgZGV2aWNlIDogbV9j
b3JlQXVkaW9DYXB0dXJlRGV2aWNlcykgewotICAgICAgICBib29sIGlzQWxpdmUgPSBkZXZpY2Ut
PmlzQWxpdmUoKTsKLSAgICAgICAgaWYgKGRldmljZS0+ZW5hYmxlZCgpICE9IGlzQWxpdmUpIHsK
LSAgICAgICAgICAgIGRldmljZS0+c2V0RW5hYmxlZChpc0FsaXZlKTsKKyAgICAgICAgYm9vbCBp
c0FsaXZlID0gZGV2aWNlLmlzQWxpdmUoKTsKKyAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkg
IT0gaXNBbGl2ZSkgeworICAgICAgICAgICAgZGV2aWNlLnNldEVuYWJsZWQoaXNBbGl2ZSk7CiAg
ICAgICAgICAgICBoYXZlRGV2aWNlQ2hhbmdlcyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBA
IC0xMjIsOCArMTMyLDggQEAgdm9pZCBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6cmVm
cmVzaEF1ZGlvQ2FwdHVyZURldmljZXMoKQogICAgICAgICBtX2RldmljZXMgPSBWZWN0b3I8Q2Fw
dHVyZURldmljZT4oKTsKIAogICAgICAgICBmb3IgKGF1dG8gJmRldmljZSA6IG1fY29yZUF1ZGlv
Q2FwdHVyZURldmljZXMpIHsKLSAgICAgICAgICAgIENhcHR1cmVEZXZpY2UgY2FwdHVyZURldmlj
ZShkZXZpY2UtPnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRp
bywgZGV2aWNlLT5sYWJlbCgpKTsKLSAgICAgICAgICAgIGNhcHR1cmVEZXZpY2Uuc2V0RW5hYmxl
ZChkZXZpY2UtPmVuYWJsZWQoKSk7CisgICAgICAgICAgICBDYXB0dXJlRGV2aWNlIGNhcHR1cmVE
ZXZpY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpB
dWRpbywgZGV2aWNlLmxhYmVsKCkpOworICAgICAgICAgICAgY2FwdHVyZURldmljZS5zZXRFbmFi
bGVkKGRldmljZS5lbmFibGVkKCkpOwogICAgICAgICAgICAgbV9kZXZpY2VzLmFwcGVuZChjYXB0
dXJlRGV2aWNlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggNWI0ZjE2NGIxMmFiMjI3NGZlZWMxMmVkODhjN2ZjNGZh
ZTg3N2MxYy4uYzUxYTM2ZjM3ZTc5ZmNlOTNhNjVmMzUyYmI3NzZmYmNmYjg5ZGZlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTQ1LDcgKzQ1LDgg
QEAgcHVibGljOgogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlcygp
IGZpbmFsOwogCi0gICAgVmVjdG9yPFJlZjxDb3JlQXVkaW9DYXB0dXJlRGV2aWNlPj4mIGNvcmVB
dWRpb0NhcHR1cmVEZXZpY2VzKCk7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+
JiBjb3JlQXVkaW9DYXB0dXJlRGV2aWNlcygpOworICAgIHN0ZDo6b3B0aW9uYWw8Q29yZUF1ZGlv
Q2FwdHVyZURldmljZT4gY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChjb25zdCBTdHJpbmcmKTsKIAog
cHJpdmF0ZToKICAgICBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gZGVmYXVsdDsK
QEAgLTU2LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hBdWRpb0NhcHR1cmVE
ZXZpY2VzKCk7CiAKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kZXZpY2VzOwotICAgIFZl
Y3RvcjxSZWY8Q29yZUF1ZGlvQ2FwdHVyZURldmljZT4+IG1fY29yZUF1ZGlvQ2FwdHVyZURldmlj
ZXM7CisgICAgVmVjdG9yPENvcmVBdWRpb0NhcHR1cmVEZXZpY2U+IG1fY29yZUF1ZGlvQ2FwdHVy
ZURldmljZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggYTA2MmNmOWRkM2RmZTk4Y2VjYzRiMWJlM2I0Nzk2N2E4
ZDAxNjZkNS4uMDg2NjE1MzVjYTAyYjA1YjUyMGVmOGEwYTdlZmIxMDYyMjczNDI1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjAsMTMgKzYwLDE4IEBAIFJlZlB0
cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpCiAgICAgaWYgKHR5cGUgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgU3RyaW5nIGxhYmVs
OworICAgIHVpbnQzMl90IHBlcnNpc3RlbnRJRCA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmRldmljZVdpdGhVSUQoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlv
KTsKKyAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmlj
ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwo
KTsKKyAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlE
LCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlEKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRz
KSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpIHsKQEAgLTg0LDIxICs4OSwxMCBAQCBSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
ZmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1
cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCkK
LSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8sIGVtcHR5U3RyaW5nKCkpCi0gICAgLCBtX2NhcHR1cmVEZXZpY2VJ
RCgwKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIGxhYmVsLCB1aW50MzJfdCBwZXJzaXN0
ZW50SUQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgbGFiZWwpCisgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJz
aXN0ZW50SUQpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGZvciAoYXV0byYgcGxhdGZvcm1E
ZXZpY2UgOiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1
ZGlvQ2FwdHVyZURldmljZXMoKSkgewotICAgICAgICBpZiAocGxhdGZvcm1EZXZpY2UtPnBlcnNp
c3RlbnRJZCgpID09IGRldmljZUlEKSB7Ci0gICAgICAgICAgICBtX2NhcHR1cmVEZXZpY2VJRCA9
IHBsYXRmb3JtRGV2aWNlLT5kZXZpY2VJRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgQVNTRVJUKG1fY2FwdHVyZURldmljZUlEKTsKLSNlbmRpZgotCi0gICAg
c2V0UGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBtX211dGVkID0gdHJ1ZTsKIAogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFZvbHVtZSgxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291
cmNlLmgKaW5kZXggOTA4ZjJjNTUzZjExZDU2M2I3Mjg5ZTU3YjliYWY5MjVmY2ZlNjgyNi4uOTEw
ZjdkNDQ0NTJhY2U4ZmY1NzYxNGUyYTAzYzMzOTNjOWUzYjFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBDTUNsb2NrUmVm
IHRpbWViYXNlQ2xvY2soKTsKIAogcHJpdmF0ZToKLSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lz
dGVudElEKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCk7CiAKICAgICBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307837</attachid>
            <date>2017-04-21 16:41:27 -0700</date>
            <delta_ts>2017-05-01 08:48:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171146-20170421164126.patch</filename>
            <type>text/plain</type>
            <size>13523</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1NGMxMjhhYzAyZjQ5
ZDUzZTkxMmNmZmYzNGI5ZTI3MzZiMTY3Ni4uZDg4ODU1ZmNhNWUxYWI4MTk0OWMyNzQ5YzA2Yjdi
MWMzNDI3MDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA0LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYUNhcHR1cmVdIElt
cHJvdmVtZW50cyB0byBDb3JlQXVkaW9DYXB0dXJlU291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWYXJpb3VzIGludGVybG9ja2luZyBpbXByb3Zl
bWVudHMgdG8gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZToKKworICAgICAgICAtIEFsbG93IHRoZSB2
b2x1bWUsIHNhbXBsZVJhdGUsIGFuZCBlY2hvQ2FuY2VsbGF0aW9uIHNldHRpbmdzIHRvIGJlIGFw
cGxpZWQgdG8gdGhlIHNvdXJjZS4KKyAgICAgICAgLSBVcGRhdGUgdGhlIHZhbHVlcyByZXR1cm5l
ZCB2aWEgc2V0dGluZ3MoKSB3aGVuIHRoZXNlIHZhbHVlcyBjaGFuZ2UuCisgICAgICAgIC0gT2Jl
eSB0aGUgc2FtcGxlUmF0ZSBhbmQgZWNob0NhbmNlbGxhdGlvbiBzZXR0aW5ncyB3aGVuIGNyZWF0
aW5nIHRoZSBWUElPIHVuaXQuCisgICAgICAgIC0gQmVjYXVzZSBBdWRpb1VuaXRSZW5kZXIoKSBt
dXRhdGVzIHRoZSBwYXNzZWQgaW4gQXVkaW9CdWZmZXJMaXN0LCByZXNldCBpdCBpbW1lZGlhdGVs
eSBiZWZvcmUgY2FsbGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZFNhbXBsZVJhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQ
cm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3Vy
ZVNwZWFrZXJQcm9jKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OnByb2Nlc3NNaWNyb3Bob25lU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6Q29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3NEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaDoKKwogMjAxNy0wNC0yMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIENvcmVBdWRpb0NhcHR1cmVEZXZpY2Ugc3RhY2thYmxlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDA4NjYxNTM1Y2EwMmIwNWI1MjBl
ZjhhMGE3ZWZiMTA2MjI3MzQyNWUuLmFlOGI1YjdkYjM4NTU5NTAxOTliMzE0MjUxZDdjMGMzZmQ4
ZWYzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgIkF1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1
ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCIKICNpbmNsdWRlICJDb3JlQXVkaW9DYXB0dXJl
RGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTk1LDEwICs5Niw5IEBA
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyCiB7CiAgICAgbV9tdXRlZCA9IHRydWU7CiAKLSAgICBt
X2N1cnJlbnRTZXR0aW5ncy5zZXRWb2x1bWUoMS4wKTsKLSAgICBtX2N1cnJlbnRTZXR0aW5ncy5z
ZXRTYW1wbGVSYXRlKHByZWZlcnJlZFNhbXBsZVJhdGUoKSk7Ci0gICAgbV9jdXJyZW50U2V0dGlu
Z3Muc2V0RGV2aWNlSWQoaWQoKSk7Ci0gICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0RWNob0NhbmNl
bGxhdGlvbih0cnVlKTsKKyAgICBzZXRWb2x1bWUoMS4wKTsKKyAgICBzZXRTYW1wbGVSYXRlKHBy
ZWZlcnJlZFNhbXBsZVJhdGUoKSk7CisgICAgc2V0RWNob0NhbmNlbGxhdGlvbih0cnVlKTsKIAog
ICAgIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QgdGltZWJhc2VJbmZvOwogICAgIG1hY2hfdGlt
ZWJhc2VfaW5mbygmdGltZWJhc2VJbmZvKTsKQEAgLTEyMSwxNiArMTIxLDEyIEBAIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6On5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCkKIAogZG91YmxlIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZFNhbXBsZVJhdGUoKQogewotICAgIC8vIEZJWE1F
OiBHZXQgdGhlIHByZWZlcnJlZCByYXRlIGR5bmFtaWNhbGx5LCBrQVVWb2ljZUlPUHJvcGVydHlf
UHJlZmVycmVkSFdTYW1wbGVSYXRlLyBbW0FWQXVkaW9TZXNzaW9uIHNoYXJlZEluc3RhbmNlXSBw
cmVmZXJyZWRTYW1wbGVSYXRlXQotICAgIHN0YXRpYyBjb25zdCBmbG9hdCBwcmVmZXJyZWRSYXRl
ID0gMjQwMDAuOwotICAgIHJldHVybiBwcmVmZXJyZWRSYXRlOworICAgIHJldHVybiBBdWRpb1Nl
c3Npb246OnNoYXJlZFNlc3Npb24oKS5zYW1wbGVSYXRlKCk7CiB9CiAKLWRvdWJsZSBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpwcmVmZXJyZWRJT0J1ZmZlckR1cmF0aW9uKCkKK3NpemVfdCBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpwcmVmZXJyZWRJT0J1ZmZlclNpemUoKQogewotICAgIC8vIEZJ
WE1FOiBHZXQgdGhlIHByZWZlcnJlZCBkdXJhdGlvbiBkeW5hbWljYWxseSAtIGtBVVZvaWNlSU9Q
cm9wZXJ0eV9QcmVmZXJyZWRIV0Jsb2NrU2l6ZUluU2Vjb25kcyAvIFtbQVZBdWRpb1Nlc3Npb24g
c2hhcmVkSW5zdGFuY2VdIHByZWZlcnJlZElPQnVmZmVyRHVyYXRpb25dCi0gICAgc3RhdGljIGNv
bnN0IGZsb2F0IHByZWZlcnJlZER1cmF0aW9uID0gMC4wNDsKLSAgICByZXR1cm4gcHJlZmVycmVk
RHVyYXRpb247CisgICAgcmV0dXJuIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLmJ1ZmZl
clNpemUoKTsKIH0KIAogT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmlndXJl
TWljcm9waG9uZVByb2MoKQpAQCAtMTQ1LDE1ICsxNDEsMjAgQEAgT1NTdGF0dXMgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6Y29uZmlndXJlTWljcm9waG9uZVByb2MoKQogICAgIEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiBtaWNyb3Bob25lUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQz
MiBzaXplID0gc2l6ZW9mKG1pY3JvcGhvbmVQcm9jRm9ybWF0KTsKLSAgICBlcnIgPSBBdWRpb1Vu
aXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwg
JnNpemUpOworICAgIGVyciA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9V
bml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVz
LCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAg
IExPRyhNZWRpYSwgIkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQ
cm9jKCVwKSB1bmFibGUgdG8gZ2V0IG91dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwog
ICAgIH0KIAotICAgIGlmICghbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUpCi0gICAg
ICAgIG1pY3JvcGhvbmVQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gcHJlZmVycmVkU2FtcGxlUmF0
ZSgpOwotICAgIG1fbWljcm9waG9uZVNhbXBsZUJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dDo6Y3JlYXRlKG1pY3JvcGhvbmVQcm9jRm9ybWF0LCBwcmVmZXJyZWRJT0J1ZmZlckR1cmF0aW9u
KCkgKiBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSAqIDIpOworICAgIG1pY3JvcGhv
bmVQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlID0gc2FtcGxlUmF0ZSgpOworICAgIGVyciA9IEF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0
LCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBpbnB1dEJ1cywgJm1pY3JvcGhvbmVQcm9jRm9ybWF0
LCBzaXplKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCVwKSB1bmFibGUgdG8gc2V0IG91
dHB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAgIG1fbWljcm9waG9u
ZVNhbXBsZUJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y3JlYXRlKG1pY3JvcGhvbmVQ
cm9jRm9ybWF0LCBwcmVmZXJyZWRJT0J1ZmZlclNpemUoKSAqIDIpOwogICAgIG1fbWljcm9waG9u
ZVByb2NGb3JtYXQgPSBtaWNyb3Bob25lUHJvY0Zvcm1hdDsKIAogICAgIHJldHVybiBlcnI7CkBA
IC0xNjIsNyArMTYzLDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmln
dXJlTWljcm9waG9uZVByb2MoKQogT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29u
ZmlndXJlU3BlYWtlclByb2MoKQogewogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3QgY2FsbGJh
Y2sgPSB7IHNwZWFrZXJDYWxsYmFjaywgdGhpcyB9OwotICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0
U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFj
aywga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihj
YWxsYmFjaykpOworICAgIGF1dG8gZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQs
IGtBdWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0lu
cHV0LCBvdXRwdXRCdXMsICZjYWxsYmFjaywgc2l6ZW9mKGNhbGxiYWNrKSk7CiAgICAgaWYgKGVy
cikgewogICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1
cmVTcGVha2VyUHJvYyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgc3BlYWtlciBwcm9jLCBl
cnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOwogICAgICAgICBy
ZXR1cm4gZXJyOwpAQCAtMTcxLDE1ICsxNzIsMjAgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y29uZmlndXJlU3BlYWtlclByb2MoKQogICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiBzcGVha2VyUHJvY0Zvcm1hdCA9IHsgfTsKIAogICAgIFVJbnQzMiBzaXplID0gc2l6
ZW9mKHNwZWFrZXJQcm9jRm9ybWF0KTsKLSAgICBlcnIgID0gQXVkaW9Vbml0R2V0UHJvcGVydHko
bV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29w
ZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3JtYXQsICZzaXplKTsKKyAgICBlcnIg
PSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVh
bUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVha2VyUHJvY0Zv
cm1hdCwgJnNpemUpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBnZXQg
aW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChj
aGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKLSAgICBpZiAoIXNwZWFr
ZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlKQotICAgICAgICBzcGVha2VyUHJvY0Zvcm1hdC5tU2Ft
cGxlUmF0ZSA9IHByZWZlcnJlZFNhbXBsZVJhdGUoKTsKLSAgICBtX3NwZWFrZXJTYW1wbGVCdWZm
ZXIgPSBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzcGVha2VyUHJvY0Zvcm1hdCwgcHJl
ZmVycmVkSU9CdWZmZXJEdXJhdGlvbigpICogc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUg
KiAyKTsKKyAgICBzcGVha2VyUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsK
KyAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3Bl
cnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBvdXRwdXRCdXMsICZzcGVh
a2VyUHJvY0Zvcm1hdCwgc2l6ZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBMT0coTWVkaWEs
ICJDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVTcGVha2VyUHJvYyglcCkgdW5hYmxl
IHRvIGdldCBpbnB1dCBzdHJlYW0gZm9ybWF0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50
KWVyciwgKGNoYXIqKSZlcnIpOworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAgIG1f
c3BlYWtlclNhbXBsZUJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y3JlYXRlKHNwZWFr
ZXJQcm9jRm9ybWF0LCBwcmVmZXJyZWRJT0J1ZmZlclNpemUoKSAqIDIpOwogICAgIG1fc3BlYWtl
clByb2NGb3JtYXQgPSBzcGVha2VyUHJvY0Zvcm1hdDsKIAogICAgIHJldHVybiBlcnI7CkBAIC0y
NzksNiArMjg1LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc01p
Y3JvcGhvbmVTYW1wbGVzKEF1ZGlvVW5pdFJlbmRlckFjdGlvbkYKICNlbmRpZgogCiAgICAgLy8g
UHVsbCB0aHJvdWdoIHRoZSB2cGlvIHVuaXQgdG8gb3VyIG1pYyBidWZmZXIuCisgICAgbV9taWNy
b3Bob25lU2FtcGxlQnVmZmVyLT5yZXNldCgpOwogICAgIEF1ZGlvQnVmZmVyTGlzdCYgYnVmZmVy
TGlzdCA9IG1fbWljcm9waG9uZVNhbXBsZUJ1ZmZlci0+YnVmZmVyTGlzdCgpOwogICAgIGF1dG8g
ZXJyID0gQXVkaW9Vbml0UmVuZGVyKG1faW9Vbml0LCAmaW9BY3Rpb25GbGFncywgJnRpbWVTdGFt
cCwgaW5CdXNOdW1iZXIsIGluTnVtYmVyRnJhbWVzLCAmYnVmZmVyTGlzdCk7CiAgICAgaWYgKGVy
cikgewpAQCAtMzcxLDE4ICszNzgsMTggQEAgT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6c2V0dXBBdWRpb1VuaXRzKCkKICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKLSNpZiBQ
TEFURk9STShJT1MpCi0gICAgdWludDMyX3QgcGFyYW0gPSAxOwotICAgIGVyciA9IEF1ZGlvVW5p
dFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfRW5hYmxlSU8s
IGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgaW5wdXRCdXMsICZwYXJhbSwgc2l6ZW9mKHBhcmFtKSk7
CisgICAgdWludDMyX3QgcGFyYW0gPSBlY2hvQ2FuY2VsbGF0aW9uKCk7CisgICAgZXJyID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBVVZvaWNlSU9Qcm9wZXJ0eV9Wb2ljZVByb2Nl
c3NpbmdFbmFibGVBR0MsIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmcGFyYW0s
IHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBBdWRpb1VuaXRzKCVwKSB1bmFibGUgdG8gZW5hYmxl
IHZwaW8gdW5pdCBpbnB1dCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0
dXBBdWRpb1VuaXRzKCVwKSB1bmFibGUgdG8gc2V0IHZwaW8gdW5pdCBlY2hvIGNhbmNlbGxhdGlv
biwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAg
ICAgcmV0dXJuIGVycjsKICAgICB9CiAKKyNpZiBQTEFURk9STShJT1MpCiAgICAgcGFyYW0gPSAx
OwotICAgIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRV
bml0UHJvcGVydHlfRW5hYmxlSU8sIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQsIG91dHB1dEJ1cywg
JnBhcmFtLCBzaXplb2YocGFyYW0pKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eSht
X2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2Nv
cGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwogICAgIGlmIChlcnIp
IHsKLSAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBBdWRp
b1VuaXRzKCVwKSB1bmFibGUgdG8gZW5hYmxlIHZwaW8gdW5pdCBvdXRwdXQsIGVycm9yICVkICgl
LjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CisgICAgICAgIExPRyhNZWRpYSwg
IkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQXVkaW9Vbml0cyglcCkgdW5hYmxlIHRvIGVu
YWJsZSB2cGlvIHVuaXQgaW5wdXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAo
Y2hhciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogI2Vsc2UKQEAgLTM5Miw3
ICszOTksNyBAQCBPU1N0YXR1cyBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5p
dHMoKQogICAgICAgICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKLSAgICBVSW50MzIgcHJvcGVy
dHlTaXplID0gc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKTsKKyAgICB1aW50MzJfdCBwcm9wZXJ0
eVNpemUgPSBzaXplb2YobV9jYXB0dXJlRGV2aWNlSUQpOwogICAgIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9PdXRwdXRVbml0UHJvcGVydHlfQ3VycmVudERldmlj
ZSwga0F1ZGlvVW5pdFNjb3BlX0dsb2JhbCwgaW5wdXRCdXMsICZtX2NhcHR1cmVEZXZpY2VJRCwg
cHJvcGVydHlTaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQXVkaW9Vbml0cyglcCkgdW5hYmxlIHRvIHNldCB2cGlv
IHVuaXQgY2FwdHVyZSBkZXZpY2UgSUQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJy
LCAoY2hhciopJmVycik7CkBAIC01MjUsNyArNTMyLDIyIEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygp
IGNvCiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6c2V0dGluZ3MoKSBjb25zdAogewotICAgIHJldHVybiBtX2N1cnJlbnRTZXR0aW5n
czsKKyAgICBpZiAoIW1fY3VycmVudFNldHRpbmdzKSB7CisgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKKyAgICAgICAgc2V0dGluZ3Muc2V0Vm9sdW1lKHZvbHVt
ZSgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKCkpOworICAg
ICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0RWNo
b0NhbmNlbGxhdGlvbihlY2hvQ2FuY2VsbGF0aW9uKCkpOworCisgICAgICAgIG1fY3VycmVudFNl
dHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7CisKKyAgICB9CisgICAgcmV0dXJuIG1fY3VycmVu
dFNldHRpbmdzLnZhbHVlKCk7Cit9CisKK3ZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0
dGluZ3NEaWRDaGFuZ2UoKQoreworICAgIG1fY3VycmVudFNldHRpbmdzID0gc3RkOjpudWxsb3B0
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCA5MTBmN2Q0NDQ1MmFjZThmZjU3NjE0ZTJhMDNjMzM5M2M5ZTNiMWEwLi4yMzVk
NWEzMTRkYzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3OWJjNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmgKQEAgLTc5LDggKzc5LDEzIEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMg
c3VzcGVuZCgpOwogICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCisgICAgYm9vbCBhcHBseVZvbHVt
ZShkb3VibGUpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGFwcGx5U2FtcGxl
UmF0ZShpbnQpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGFwcGx5RWNob0Nh
bmNlbGxhdGlvbihib29sKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKICAgICBjb25zdCBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5h
bDsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgT1NT
dGF0dXMgc2V0dXBBdWRpb1VuaXRzKCk7CiAgICAgdm9pZCBjbGVhbnVwQXVkaW9Vbml0cygpOwpA
QCAtODksOCArOTQsNiBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIGRlZmF1bHRPdXRwdXREZXZp
Y2UodWludDMyX3QqKTsKICAgICBPU1N0YXR1cyBkZWZhdWx0SW5wdXREZXZpY2UodWludDMyX3Qq
KTsKIAotICAgIHZvaWQgY2hlY2tUaW1lc3RhbXBzKGNvbnN0IEF1ZGlvVGltZVN0YW1wJiwgdWlu
dDY0X3QsIGRvdWJsZSk7Ci0KICAgICBzdGF0aWMgT1NTdGF0dXMgbWljcm9waG9uZUNhbGxiYWNr
KHZvaWQqLCBBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGltZVN0YW1w
KiwgVUludDMyLCBVSW50MzIsIEF1ZGlvQnVmZmVyTGlzdCopOwogICAgIE9TU3RhdHVzIHByb2Nl
c3NNaWNyb3Bob25lU2FtcGxlcyhBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYsIGNvbnN0IEF1
ZGlvVGltZVN0YW1wJiwgVUludDMyLCBVSW50MzIsIEF1ZGlvQnVmZmVyTGlzdCopOwogCkBAIC05
OCwxMCArMTAxLDkgQEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyBwcm92aWRlU3BlYWtlckRhdGEo
QXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxhZ3MmLCBjb25zdCBBdWRpb1RpbWVTdGFtcCYsIFVJbnQz
MiwgVUludDMyLCBBdWRpb0J1ZmZlckxpc3QqKTsKIAogICAgIHN0YXRpYyBkb3VibGUgcHJlZmVy
cmVkU2FtcGxlUmF0ZSgpOwotICAgIHN0YXRpYyBkb3VibGUgcHJlZmVycmVkSU9CdWZmZXJEdXJh
dGlvbigpOworICAgIHN0YXRpYyBzaXplX3QgcHJlZmVycmVkSU9CdWZmZXJTaXplKCk7CiAKICAg
ICBBdWRpb1VuaXQgbV9pb1VuaXQgeyBudWxscHRyIH07Ci0gICAgU3RyaW5nIG1faW9Vbml0TmFt
ZTsKIAogICAgIC8vIE9ubHkgcmVhZC9tb2RpZmllZCBmcm9tIHRoZSBJTyB0aHJlYWQuCiAgICAg
VmVjdG9yPFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX2FjdGl2ZVNvdXJjZXM7CkBAIC0x
MTMsMTIgKzExNSwxMCBAQCBwcml2YXRlOgogCiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IG1fbWljcm9waG9uZVByb2NGb3JtYXQ7CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlQnVmZmVyTGlz
dD4gbV9taWNyb3Bob25lU2FtcGxlQnVmZmVyOwotICAgIHVpbnQ2NF90IG1fbWljcm9waG9uZVBy
b2NzQ2FsbGVkIHsgMCB9OwogICAgIHVpbnQ2NF90IG1fbGF0ZXN0TWljVGltZVN0YW1wIHsgMCB9
OwogCiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fc3BlYWtlclByb2NGb3JtYXQ7CiAg
ICAgUmVmUHRyPEF1ZGlvU2FtcGxlQnVmZmVyTGlzdD4gbV9zcGVha2VyU2FtcGxlQnVmZmVyOwot
ICAgIHVpbnQ2NF90IG1fc3BlYWtlclByb2NzQ2FsbGVkIHsgMCB9OwogCiAgICAgZG91YmxlIG1f
RFRTQ29udmVyc2lvblJhdGlvIHsgMCB9OwogCkBAIC0xMzAsNyArMTMwLDE1IEBAIHByaXZhdGU6
CiAKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBtdXRhYmxlIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyAgICBtdXRhYmxlIHN0ZDo6
b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzPiBtX2N1cnJlbnRTZXR0aW5nczsK
KworI2lmICFMT0dfRElTQUJMRUQKKyAgICB2b2lkIGNoZWNrVGltZXN0YW1wcyhjb25zdCBBdWRp
b1RpbWVTdGFtcCYsIHVpbnQ2NF90LCBkb3VibGUpOworCisgICAgU3RyaW5nIG1faW9Vbml0TmFt
ZTsKKyAgICB1aW50NjRfdCBtX3NwZWFrZXJQcm9jc0NhbGxlZCB7IDAgfTsKKyAgICB1aW50NjRf
dCBtX21pY3JvcGhvbmVQcm9jc0NhbGxlZCB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307845</attachid>
            <date>2017-04-21 17:25:54 -0700</date>
            <delta_ts>2017-04-21 18:00:44 -0700</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>bug-171146-20170421172552.patch</filename>
            <type>text/plain</type>
            <size>13568</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1NGMxMjhhYzAyZjQ5
ZDUzZTkxMmNmZmYzNGI5ZTI3MzZiMTY3Ni4uNWNjZGQwNjZlOTBhNzQ4MWEyNzEzYmNiYjQzZmE2
N2Y3MGJkMGUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA0LTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYUNhcHR1cmVdIElt
cHJvdmVtZW50cyB0byBDb3JlQXVkaW9DYXB0dXJlU291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVmFyaW91cyBpbnRlcmxvY2tpbmcgaW1wcm92ZW1l
bnRzIHRvIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6CisKKyAgICAgICAgLSBBbGxvdyB0aGUgdm9s
dW1lLCBzYW1wbGVSYXRlLCBhbmQgZWNob0NhbmNlbGxhdGlvbiBzZXR0aW5ncyB0byBiZSBhcHBs
aWVkIHRvIHRoZSBzb3VyY2UuCisgICAgICAgIC0gVXBkYXRlIHRoZSB2YWx1ZXMgcmV0dXJuZWQg
dmlhIHNldHRpbmdzKCkgd2hlbiB0aGVzZSB2YWx1ZXMgY2hhbmdlLgorICAgICAgICAtIE9iZXkg
dGhlIHNhbXBsZVJhdGUgYW5kIGVjaG9DYW5jZWxsYXRpb24gc2V0dGluZ3Mgd2hlbiBjcmVhdGlu
ZyB0aGUgVlBJTyB1bml0LgorICAgICAgICAtIEJlY2F1c2UgQXVkaW9Vbml0UmVuZGVyKCkgbXV0
YXRlcyB0aGUgcGFzc2VkIGluIEF1ZGlvQnVmZmVyTGlzdCwgcmVzZXQgaXQgaW1tZWRpYXRlbHkg
YmVmb3JlIGNhbGxpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpwcmVmZXJyZWRTYW1wbGVSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZElPQnVmZmVyU2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVNaWNyb3Bob25lUHJv
Yyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVT
cGVha2VyUHJvYyk6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpw
cm9jZXNzTWljcm9waG9uZVNhbXBsZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6c2V0dXBBdWRpb1VuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnByZWZlcnJlZElPQnVmZmVyRHVyYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmg6CisKIDIwMTctMDQtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBDb3JlQXVkaW9DYXB0dXJlRGV2aWNlIHN0YWNrYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAwODY2MTUzNWNhMDJiMDViNTIwZWY4
YTBhN2VmYjEwNjIyNzM0MjVlLi40OGI2ZGFjMDRlYzUyZDJiZjcxMzVkZjA0M2M0OTU0OTRhYWRm
MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlICJBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCIKICNpbmNsdWRlICJBdWRp
b1NhbXBsZURhdGFTb3VyY2UuaCIKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRl
ICJDb3JlQXVkaW9DYXB0dXJlRGV2aWNlLmgiCiAjaW5jbHVkZSAiQ29yZUF1ZGlvQ2FwdHVyZURl
dmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC05NSwxMCArOTYsOSBAQCBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IFN0cgogewogICAgIG1fbXV0ZWQgPSB0cnVlOwogCi0gICAgbV9j
dXJyZW50U2V0dGluZ3Muc2V0Vm9sdW1lKDEuMCk7Ci0gICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0
U2FtcGxlUmF0ZShwcmVmZXJyZWRTYW1wbGVSYXRlKCkpOwotICAgIG1fY3VycmVudFNldHRpbmdz
LnNldERldmljZUlkKGlkKCkpOwotICAgIG1fY3VycmVudFNldHRpbmdzLnNldEVjaG9DYW5jZWxs
YXRpb24odHJ1ZSk7CisgICAgc2V0Vm9sdW1lKDEuMCk7CisgICAgc2V0U2FtcGxlUmF0ZShwcmVm
ZXJyZWRTYW1wbGVSYXRlKCkpOworICAgIHNldEVjaG9DYW5jZWxsYXRpb24odHJ1ZSk7CiAKICAg
ICBtYWNoX3RpbWViYXNlX2luZm9fZGF0YV90IHRpbWViYXNlSW5mbzsKICAgICBtYWNoX3RpbWVi
YXNlX2luZm8oJnRpbWViYXNlSW5mbyk7CkBAIC0xMjEsMTYgKzEyMSwxMiBAQCBDb3JlQXVkaW9D
YXB0dXJlU291cmNlOjp+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpCiAKIGRvdWJsZSBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpwcmVmZXJyZWRTYW1wbGVSYXRlKCkKIHsKLSAgICAvLyBGSVhNRTog
R2V0IHRoZSBwcmVmZXJyZWQgcmF0ZSBkeW5hbWljYWxseSwga0FVVm9pY2VJT1Byb3BlcnR5X1By
ZWZlcnJlZEhXU2FtcGxlUmF0ZS8gW1tBVkF1ZGlvU2Vzc2lvbiBzaGFyZWRJbnN0YW5jZV0gcHJl
ZmVycmVkU2FtcGxlUmF0ZV0KLSAgICBzdGF0aWMgY29uc3QgZmxvYXQgcHJlZmVycmVkUmF0ZSA9
IDI0MDAwLjsKLSAgICByZXR1cm4gcHJlZmVycmVkUmF0ZTsKKyAgICByZXR1cm4gQXVkaW9TZXNz
aW9uOjpzaGFyZWRTZXNzaW9uKCkuc2FtcGxlUmF0ZSgpOwogfQogCi1kb3VibGUgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbigpCitzaXplX3QgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6cHJlZmVycmVkSU9CdWZmZXJTaXplKCkKIHsKLSAgICAvLyBGSVhN
RTogR2V0IHRoZSBwcmVmZXJyZWQgZHVyYXRpb24gZHluYW1pY2FsbHkgLSBrQVVWb2ljZUlPUHJv
cGVydHlfUHJlZmVycmVkSFdCbG9ja1NpemVJblNlY29uZHMgLyBbW0FWQXVkaW9TZXNzaW9uIHNo
YXJlZEluc3RhbmNlXSBwcmVmZXJyZWRJT0J1ZmZlckR1cmF0aW9uXQotICAgIHN0YXRpYyBjb25z
dCBmbG9hdCBwcmVmZXJyZWREdXJhdGlvbiA9IDAuMDQ7Ci0gICAgcmV0dXJuIHByZWZlcnJlZER1
cmF0aW9uOworICAgIHJldHVybiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS5idWZmZXJT
aXplKCk7CiB9CiAKIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1p
Y3JvcGhvbmVQcm9jKCkKQEAgLTE0NSwxNSArMTQxLDIwIEBAIE9TU3RhdHVzIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNvbmZpZ3VyZU1pY3JvcGhvbmVQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24gbWljcm9waG9uZVByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIg
c2l6ZSA9IHNpemVvZihtaWNyb3Bob25lUHJvY0Zvcm1hdCk7Ci0gICAgZXJyID0gQXVkaW9Vbml0
R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1Gb3JtYXQsIGtB
dWRpb1VuaXRTY29wZV9PdXRwdXQsIGlucHV0QnVzLCAmbWljcm9waG9uZVByb2NGb3JtYXQsICZz
aXplKTsKKyAgICBlcnIgPSBBdWRpb1VuaXRHZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5p
dFByb3BlcnR5X1N0cmVhbUZvcm1hdCwga0F1ZGlvVW5pdFNjb3BlX0lucHV0LCBpbnB1dEJ1cywg
Jm1pY3JvcGhvbmVQcm9jRm9ybWF0LCAmc2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBM
T0coTWVkaWEsICJDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjb25maWd1cmVNaWNyb3Bob25lUHJv
YyglcCkgdW5hYmxlIHRvIGdldCBvdXRwdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMp
IiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0dXJuIGVycjsKICAg
ICB9CiAKLSAgICBpZiAoIW1pY3JvcGhvbmVQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlKQotICAgICAg
ICBtaWNyb3Bob25lUHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHByZWZlcnJlZFNhbXBsZVJhdGUo
KTsKLSAgICBtX21pY3JvcGhvbmVTYW1wbGVCdWZmZXIgPSBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6
OmNyZWF0ZShtaWNyb3Bob25lUHJvY0Zvcm1hdCwgcHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbigp
ICogbWljcm9waG9uZVByb2NGb3JtYXQubVNhbXBsZVJhdGUgKiAyKTsKKyAgICBtaWNyb3Bob25l
UHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGUoKTsKKyAgICBlcnIgPSBBdWRpb1Vu
aXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvVW5pdFByb3BlcnR5X1N0cmVhbUZvcm1hdCwg
a0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgaW5wdXRCdXMsICZtaWNyb3Bob25lUHJvY0Zvcm1hdCwg
c2l6ZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjb25maWd1cmVNaWNyb3Bob25lUHJvYyglcCkgdW5hYmxlIHRvIHNldCBvdXRw
dXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFy
KikmZXJyKTsKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisKKyAgICBtX21pY3JvcGhvbmVT
YW1wbGVCdWZmZXIgPSBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNyZWF0ZShtaWNyb3Bob25lUHJv
Y0Zvcm1hdCwgcHJlZmVycmVkSU9CdWZmZXJTaXplKCkgKiAyKTsKICAgICBtX21pY3JvcGhvbmVQ
cm9jRm9ybWF0ID0gbWljcm9waG9uZVByb2NGb3JtYXQ7CiAKICAgICByZXR1cm4gZXJyOwpAQCAt
MTYyLDcgKzE2Myw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3Vy
ZU1pY3JvcGhvbmVQcm9jKCkKIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNvbmZp
Z3VyZVNwZWFrZXJQcm9jKCkKIHsKICAgICBBVVJlbmRlckNhbGxiYWNrU3RydWN0IGNhbGxiYWNr
ID0geyBzcGVha2VyQ2FsbGJhY2ssIHRoaXMgfTsKLSAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNl
dFByb3BlcnR5KG1faW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIG91dHB1dEJ1cywgJmNhbGxiYWNrLCBzaXplb2YoY2Fs
bGJhY2spKTsKKyAgICBhdXRvIGVyciA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBr
QXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9JbnB1
dCwgb3V0cHV0QnVzLCAmY2FsbGJhY2ssIHNpemVvZihjYWxsYmFjaykpOwogICAgIGlmIChlcnIp
IHsKICAgICAgICAgTE9HKE1lZGlhLCAiQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmlndXJl
U3BlYWtlclByb2MoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1bml0IHNwZWFrZXIgcHJvYywgZXJy
b3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCllcnIsIChjaGFyKikmZXJyKTsKICAgICAgICAgcmV0
dXJuIGVycjsKQEAgLTE3MSwxNSArMTcyLDIwIEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCkKICAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3Jp
cHRpb24gc3BlYWtlclByb2NGb3JtYXQgPSB7IH07CiAKICAgICBVSW50MzIgc2l6ZSA9IHNpemVv
ZihzcGVha2VyUHJvY0Zvcm1hdCk7Ci0gICAgZXJyICA9IEF1ZGlvVW5pdEdldFByb3BlcnR5KG1f
aW9Vbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU3RyZWFtRm9ybWF0LCBrQXVkaW9Vbml0U2NvcGVf
SW5wdXQsIG91dHB1dEJ1cywgJnNwZWFrZXJQcm9jRm9ybWF0LCAmc2l6ZSk7CisgICAgZXJyID0g
QXVkaW9Vbml0R2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0eV9TdHJlYW1G
b3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtlclByb2NGb3Jt
YXQsICZzaXplKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkNvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OmNvbmZpZ3VyZVNwZWFrZXJQcm9jKCVwKSB1bmFibGUgdG8gZ2V0IGlu
cHV0IHN0cmVhbSBmb3JtYXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hh
ciopJmVycik7CiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAgaWYgKCFzcGVha2Vy
UHJvY0Zvcm1hdC5tU2FtcGxlUmF0ZSkKLSAgICAgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBs
ZVJhdGUgPSBwcmVmZXJyZWRTYW1wbGVSYXRlKCk7Ci0gICAgbV9zcGVha2VyU2FtcGxlQnVmZmVy
ID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0OjpjcmVhdGUoc3BlYWtlclByb2NGb3JtYXQsIHByZWZl
cnJlZElPQnVmZmVyRHVyYXRpb24oKSAqIHNwZWFrZXJQcm9jRm9ybWF0Lm1TYW1wbGVSYXRlICog
Mik7CisgICAgc3BlYWtlclByb2NGb3JtYXQubVNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlKCk7Cisg
ICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9pb1VuaXQsIGtBdWRpb1VuaXRQcm9wZXJ0
eV9TdHJlYW1Gb3JtYXQsIGtBdWRpb1VuaXRTY29wZV9JbnB1dCwgb3V0cHV0QnVzLCAmc3BlYWtl
clByb2NGb3JtYXQsIHNpemUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAi
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y29uZmlndXJlU3BlYWtlclByb2MoJXApIHVuYWJsZSB0
byBnZXQgaW5wdXQgc3RyZWFtIGZvcm1hdCwgZXJyb3IgJWQgKCUuNHMpIiwgdGhpcywgKGludCll
cnIsIChjaGFyKikmZXJyKTsKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisKKyAgICBtX3Nw
ZWFrZXJTYW1wbGVCdWZmZXIgPSBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Q6OmNyZWF0ZShzcGVha2Vy
UHJvY0Zvcm1hdCwgcHJlZmVycmVkSU9CdWZmZXJTaXplKCkgKiAyKTsKICAgICBtX3NwZWFrZXJQ
cm9jRm9ybWF0ID0gc3BlYWtlclByb2NGb3JtYXQ7CiAKICAgICByZXR1cm4gZXJyOwpAQCAtMjc5
LDYgKzI4NSw3IEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NNaWNy
b3Bob25lU2FtcGxlcyhBdWRpb1VuaXRSZW5kZXJBY3Rpb25GCiAjZW5kaWYKIAogICAgIC8vIFB1
bGwgdGhyb3VnaCB0aGUgdnBpbyB1bml0IHRvIG91ciBtaWMgYnVmZmVyLgorICAgIG1fbWljcm9w
aG9uZVNhbXBsZUJ1ZmZlci0+cmVzZXQoKTsKICAgICBBdWRpb0J1ZmZlckxpc3QmIGJ1ZmZlckxp
c3QgPSBtX21pY3JvcGhvbmVTYW1wbGVCdWZmZXItPmJ1ZmZlckxpc3QoKTsKICAgICBhdXRvIGVy
ciA9IEF1ZGlvVW5pdFJlbmRlcihtX2lvVW5pdCwgJmlvQWN0aW9uRmxhZ3MsICZ0aW1lU3RhbXAs
IGluQnVzTnVtYmVyLCBpbk51bWJlckZyYW1lcywgJmJ1ZmZlckxpc3QpOwogICAgIGlmIChlcnIp
IHsKQEAgLTM3MSwxOCArMzc4LDE4IEBAIE9TU3RhdHVzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OnNldHVwQXVkaW9Vbml0cygpCiAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0jaWYgUExB
VEZPUk0oSU9TKQotICAgIHVpbnQzMl90IHBhcmFtID0gMTsKLSAgICBlcnIgPSBBdWRpb1VuaXRT
ZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0VuYWJsZUlPLCBr
QXVkaW9Vbml0U2NvcGVfSW5wdXQsIGlucHV0QnVzLCAmcGFyYW0sIHNpemVvZihwYXJhbSkpOwor
ICAgIHVpbnQzMl90IHBhcmFtID0gZWNob0NhbmNlbGxhdGlvbigpOworICAgIGVyciA9IEF1ZGlv
VW5pdFNldFByb3BlcnR5KG1faW9Vbml0LCBrQVVWb2ljZUlPUHJvcGVydHlfVm9pY2VQcm9jZXNz
aW5nRW5hYmxlQUdDLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCBpbnB1dEJ1cywgJnBhcmFtLCBz
aXplb2YocGFyYW0pKTsKICAgICBpZiAoZXJyKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQXVkaW9Vbml0cyglcCkgdW5hYmxlIHRvIGVuYWJsZSB2
cGlvIHVuaXQgaW5wdXQsIGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciop
JmVycik7CisgICAgICAgIExPRyhNZWRpYSwgIkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVw
QXVkaW9Vbml0cyglcCkgdW5hYmxlIHRvIHNldCB2cGlvIHVuaXQgZWNobyBjYW5jZWxsYXRpb24s
IGVycm9yICVkICglLjRzKSIsIHRoaXMsIChpbnQpZXJyLCAoY2hhciopJmVycik7CiAgICAgICAg
IHJldHVybiBlcnI7CiAgICAgfQogCisjaWYgUExBVEZPUk0oSU9TKQogICAgIHBhcmFtID0gMTsK
LSAgICBlcnIgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5p
dFByb3BlcnR5X0VuYWJsZUlPLCBrQXVkaW9Vbml0U2NvcGVfT3V0cHV0LCBvdXRwdXRCdXMsICZw
YXJhbSwgc2l6ZW9mKHBhcmFtKSk7CisgICAgZXJyID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9p
b1VuaXQsIGtBdWRpb091dHB1dFVuaXRQcm9wZXJ0eV9FbmFibGVJTywga0F1ZGlvVW5pdFNjb3Bl
X0lucHV0LCBpbnB1dEJ1cywgJnBhcmFtLCBzaXplb2YocGFyYW0pKTsKICAgICBpZiAoZXJyKSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHVwQXVkaW9V
bml0cyglcCkgdW5hYmxlIHRvIGVuYWJsZSB2cGlvIHVuaXQgb3V0cHV0LCBlcnJvciAlZCAoJS40
cykiLCB0aGlzLCAoaW50KWVyciwgKGNoYXIqKSZlcnIpOworICAgICAgICBMT0coTWVkaWEsICJD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5pdHMoJXApIHVuYWJsZSB0byBlbmFi
bGUgdnBpbyB1bml0IGlucHV0LCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwgKGNo
YXIqKSZlcnIpOwogICAgICAgICByZXR1cm4gZXJyOwogICAgIH0KICNlbHNlCkBAIC0zOTIsNyAr
Mzk5LDcgQEAgT1NTdGF0dXMgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBBdWRpb1VuaXRz
KCkKICAgICAgICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCi0gICAgVUludDMyIHByb3BlcnR5
U2l6ZSA9IHNpemVvZihtX2NhcHR1cmVEZXZpY2VJRCk7CisgICAgdWludDMyX3QgcHJvcGVydHlT
aXplID0gc2l6ZW9mKG1fY2FwdHVyZURldmljZUlEKTsKICAgICBlcnIgPSBBdWRpb1VuaXRTZXRQ
cm9wZXJ0eShtX2lvVW5pdCwga0F1ZGlvT3V0cHV0VW5pdFByb3BlcnR5X0N1cnJlbnREZXZpY2Us
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIGlucHV0QnVzLCAmbV9jYXB0dXJlRGV2aWNlSUQsIHBy
b3BlcnR5U2l6ZSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBMT0coTWVkaWEsICJDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpzZXR1cEF1ZGlvVW5pdHMoJXApIHVuYWJsZSB0byBzZXQgdnBpbyB1
bml0IGNhcHR1cmUgZGV2aWNlIElELCBlcnJvciAlZCAoJS40cykiLCB0aGlzLCAoaW50KWVyciwg
KGNoYXIqKSZlcnIpOwpAQCAtNTI1LDcgKzUzMiwyMyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKSBj
bwogCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OnNldHRpbmdzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3M7
CisgICAgaWYgKCFtX2N1cnJlbnRTZXR0aW5ncykgeworICAgICAgICBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CisgICAgICAgIHNldHRpbmdzLnNldFZvbHVtZSh2b2x1bWUo
KSk7CisgICAgICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsKKyAgICAg
ICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldEVjaG9D
YW5jZWxsYXRpb24oZWNob0NhbmNlbGxhdGlvbigpKTsKKworICAgICAgICBtX2N1cnJlbnRTZXR0
aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworCisgICAgfQorICAgIHJldHVybiBtX2N1cnJlbnRT
ZXR0aW5ncy52YWx1ZSgpOworfQorCit2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRp
bmdzRGlkQ2hhbmdlKCkKK3sKKyAgICBtX2N1cnJlbnRTZXR0aW5ncyA9IHN0ZDo6bnVsbG9wdDsK
KyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5nc0RpZENoYW5nZSgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA5
MTBmN2Q0NDQ1MmFjZThmZjU3NjE0ZTJhMDNjMzM5M2M5ZTNiMWEwLi4yMzVkNWEzMTRkYzJhYzgx
MmQ3MmJmODg0OWI2ZTYxYmQ3OWJjNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKQEAgLTc5LDggKzc5LDEzIEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgc3VzcGVuZCgpOwog
ICAgIE9TU3RhdHVzIHJlc3VtZSgpOwogCisgICAgYm9vbCBhcHBseVZvbHVtZShkb3VibGUpIG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGFwcGx5U2FtcGxlUmF0ZShpbnQpIG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGFwcGx5RWNob0NhbmNlbGxhdGlvbihi
b29sKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKICAgICBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7Cisg
ICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgT1NTdGF0dXMgc2V0dXBB
dWRpb1VuaXRzKCk7CiAgICAgdm9pZCBjbGVhbnVwQXVkaW9Vbml0cygpOwpAQCAtODksOCArOTQs
NiBAQCBwcml2YXRlOgogICAgIE9TU3RhdHVzIGRlZmF1bHRPdXRwdXREZXZpY2UodWludDMyX3Qq
KTsKICAgICBPU1N0YXR1cyBkZWZhdWx0SW5wdXREZXZpY2UodWludDMyX3QqKTsKIAotICAgIHZv
aWQgY2hlY2tUaW1lc3RhbXBzKGNvbnN0IEF1ZGlvVGltZVN0YW1wJiwgdWludDY0X3QsIGRvdWJs
ZSk7Ci0KICAgICBzdGF0aWMgT1NTdGF0dXMgbWljcm9waG9uZUNhbGxiYWNrKHZvaWQqLCBBdWRp
b1VuaXRSZW5kZXJBY3Rpb25GbGFncyosIGNvbnN0IEF1ZGlvVGltZVN0YW1wKiwgVUludDMyLCBV
SW50MzIsIEF1ZGlvQnVmZmVyTGlzdCopOwogICAgIE9TU3RhdHVzIHByb2Nlc3NNaWNyb3Bob25l
U2FtcGxlcyhBdWRpb1VuaXRSZW5kZXJBY3Rpb25GbGFncyYsIGNvbnN0IEF1ZGlvVGltZVN0YW1w
JiwgVUludDMyLCBVSW50MzIsIEF1ZGlvQnVmZmVyTGlzdCopOwogCkBAIC05OCwxMCArMTAxLDkg
QEAgcHJpdmF0ZToKICAgICBPU1N0YXR1cyBwcm92aWRlU3BlYWtlckRhdGEoQXVkaW9Vbml0UmVu
ZGVyQWN0aW9uRmxhZ3MmLCBjb25zdCBBdWRpb1RpbWVTdGFtcCYsIFVJbnQzMiwgVUludDMyLCBB
dWRpb0J1ZmZlckxpc3QqKTsKIAogICAgIHN0YXRpYyBkb3VibGUgcHJlZmVycmVkU2FtcGxlUmF0
ZSgpOwotICAgIHN0YXRpYyBkb3VibGUgcHJlZmVycmVkSU9CdWZmZXJEdXJhdGlvbigpOworICAg
IHN0YXRpYyBzaXplX3QgcHJlZmVycmVkSU9CdWZmZXJTaXplKCk7CiAKICAgICBBdWRpb1VuaXQg
bV9pb1VuaXQgeyBudWxscHRyIH07Ci0gICAgU3RyaW5nIG1faW9Vbml0TmFtZTsKIAogICAgIC8v
IE9ubHkgcmVhZC9tb2RpZmllZCBmcm9tIHRoZSBJTyB0aHJlYWQuCiAgICAgVmVjdG9yPFJlZjxB
dWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX2FjdGl2ZVNvdXJjZXM7CkBAIC0xMTMsMTIgKzExNSwx
MCBAQCBwcml2YXRlOgogCiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fbWljcm9waG9u
ZVByb2NGb3JtYXQ7CiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlQnVmZmVyTGlzdD4gbV9taWNyb3Bo
b25lU2FtcGxlQnVmZmVyOwotICAgIHVpbnQ2NF90IG1fbWljcm9waG9uZVByb2NzQ2FsbGVkIHsg
MCB9OwogICAgIHVpbnQ2NF90IG1fbGF0ZXN0TWljVGltZVN0YW1wIHsgMCB9OwogCiAgICAgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fc3BlYWtlclByb2NGb3JtYXQ7CiAgICAgUmVmUHRyPEF1
ZGlvU2FtcGxlQnVmZmVyTGlzdD4gbV9zcGVha2VyU2FtcGxlQnVmZmVyOwotICAgIHVpbnQ2NF90
IG1fc3BlYWtlclByb2NzQ2FsbGVkIHsgMCB9OwogCiAgICAgZG91YmxlIG1fRFRTQ29udmVyc2lv
blJhdGlvIHsgMCB9OwogCkBAIC0xMzAsNyArMTMwLDE1IEBAIHByaXZhdGU6CiAKICAgICBtdXRh
YmxlIHN0ZDo6dW5pcXVlX3B0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2Nh
cGFiaWxpdGllczsKICAgICBtdXRhYmxlIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25z
dHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzPiBtX2N1cnJlbnRTZXR0aW5nczsKKworI2lmICFMT0df
RElTQUJMRUQKKyAgICB2b2lkIGNoZWNrVGltZXN0YW1wcyhjb25zdCBBdWRpb1RpbWVTdGFtcCYs
IHVpbnQ2NF90LCBkb3VibGUpOworCisgICAgU3RyaW5nIG1faW9Vbml0TmFtZTsKKyAgICB1aW50
NjRfdCBtX3NwZWFrZXJQcm9jc0NhbGxlZCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX21pY3JvcGhv
bmVQcm9jc0NhbGxlZCB7IDAgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>